- Cformresult add не работает
- Параметры метода
- Смотрите также
- Примеры использования
- Пользовательские комментарии
- 1С-Битрикс как сохранить результат веб формы при помощи CFormResult::Add
- Как добавить запись в админку на битриксе в веб-формы
- автор: Dmitriy
- Битрикс — Как исправить в веб-форме «Согласитесь с условиями»
- Убрать ошибку Согласитесь с условиями в Битриксе
- автор: Dmitriy
- Класс CFormResult
- Методы
- Пользовательские комментарии
- Прикрепить файлы из веб-формы 1С-Битрикс к письму
Cformresult add не работает
Создает новый результат веб-формы. В случае успеха — возвращает ID нового результата, в противном случае — «false». Метод нестатический.
Данный метод не создает почтовое событие, связанное с формой. Для этого нужно использовать CFormResult::Mail.
Примечание: в случае неактивных вопросов данные из формы в них не сохраняются и сообщения об ошибках не выводятся.
Параметры метода
| Параметр | Описание |
|---|---|
| form_id | ID веб-формы. |
| values | Массив со значениями ответов. Массив имеет следующую структуру: Правила формирования «имен HTML полей ответов» и «значений ответов» описаны в разделе «Имена HTML полей веб-форм». |
Пример:
Параметр необязательный. По умолчанию — «false» (будет взят стандартный массив $_REQUEST).
- Y — права необходимо проверить;
- N — право не нужно проверять.
Для создания нового результата необходимо иметь право [10] Заполнение веб-формы на веб-форму form_id.
Параметр необязательный. По умолчанию — «Y» (права необходимо проверить).
Параметр необязательный. По умолчанию — «false» (будет взят ID текущего пользователя).
Смотрите также
Примеры использования
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
1С-Битрикс как сохранить результат веб формы при помощи CFormResult::Add
При помощи данного кода вы научитесь добавлять результаты сразу в админку, причем абсолютно из любой HTML формы. Использовать мы будем CFormResult::Add. Рассмотрим, как можно сохранять результат в 1С-Битрикс при помощи стандартного модуля.
Как добавить запись в админку на битриксе в веб-формы
Предположим, что вы уже настроили поля для своей формы, создали статусы и дали нужные права (там довольно хитрая схема даже на этапе создания 🙂 ). Нам понадобится эта таблица из документации в дальнейшем.
Посмотрите как задаются имена полей для различных типов — form_text_answer_id для обычного текстового поля input type=»text», form_hidden_answer_id для скрытого поля ну и т.д.
Как вы сами понимаете, используя API, мы скорее всего не будем использовать модуль с самой формой, а напишем свой собственный HTML — в моем случае часть данных передается через input[type=text] а другая через input[type=hidden], НО при этом тип полей в настройках формы hidden. После отправки формы мы попадаем на страницу с благодарностью, и код ее приблизительно такой:
После того как код отработает, наша форма добавляет в админку новый результат с соответствующими полями. На самом деле, при помощи подобной схемы можно реализовывать неплохую обратную связь с клиентом, вплоть до симуляции Каталога товаров и даже интернет магазина, но это уже совсем другая история 🙂 .
автор: Dmitriy
Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.
— Создание сайтов на 1С-Битрикс любой сложности
— Вёрстка макетов Figma, Photoshop, Zeplin
— Поддержка проектов на Битриксе
— Разработка нового функционала для сайта
— Парсинг данных
— Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
— Интеграция по API со сторонними сервисами
и многое другое
Источник
Битрикс — Как исправить в веб-форме «Согласитесь с условиями»
Что делать, если при добавлении результата в веб-форму при помощи API выдает ошибку «Согласитесь с условиями»?
Убрать ошибку Согласитесь с условиями в Битриксе
Давайте для начала определим какие могут быть ошибки в АПИ:
1. Неправильно указан $FORM_ID
2. Перед вызовом метода забыли указать CModule::IncludeModule(«form»);
3. Не все обязательные поля заполнены
Как оказалось, есть и 4ая ошибка 🙂 . Если вы добавите вывод ошибок в форму:
То можете обнаружить Согласитесь с условиями. В интернете практически нет информации по этому вопросу как и в документации (на данный момент). В одной статье по подписке сделали хороший намек, что нужно добавить еще одно поле. Для веб формы это поле:
После того как вы указываете в коде ‘licenses_popup’ => ‘Y’ или передали с вашей веб-формы, то ошибка уходит. Изначально мне казалось что это можно как-то убрать через админку, но в настройках модуля и самого Битрикса не нашел ничего похожего по данному вопросу.
Что самое интересное, на более старых версиях редакции 1С-Битрикс Управление сайтом — код работает без ошибок, и данная ошибка возникает только в тех версиях, где CMS начали адаптировать под соответствие законам РФ (привет закон о защите персональных данных).
Надеюсь у вас всё получилось и формы больше не выдают никаких ошибок 🙂
На всякий случай участок кода для наглядности из моей формы:
автор: Dmitriy
Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.
— Создание сайтов на 1С-Битрикс любой сложности
— Вёрстка макетов Figma, Photoshop, Zeplin
— Поддержка проектов на Битриксе
— Разработка нового функционала для сайта
— Парсинг данных
— Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
— Интеграция по API со сторонними сервисами
и многое другое
Источник
Класс CFormResult
CFormResult — класс для работы с результатами.
| Поле | Тип | Описание |
|---|---|---|
| ID | int | Идентификатор результата. |
| FORM_ID | int | Идентификатор веб-формы. |
| TIMESTAMP_X | datetime | Время последнего изменения. |
| DATE_CREATE | datetime | Время создания. |
| STATUS_ID | int | Идентификатор текущего статуса. |
| USER_ID | int | ID пользователя, создавшего результата (автор результата). |
| USER_AUTH | char | Флаг авторизованности автора результата в момент создания результата [Y|N]. |
| STAT_GUEST_ID | int | Идентификатор посетителя, создавшего результат (инициализируется модулем «Статистика» в момент создания результата). |
| STAT_SESSION_ID | int | Идентификатор сессии, в которой был создан результат (инициализируется модулем «Статистика» в момент создания результата). |
Методы
| Метод | Описание | С версии |
|---|---|---|
| Add | Создает новый результат. | |
| Update | Обновляет результат. | |
| SetField | Для указанного результата обновляет значения ответа на вопрос или обновляет значение поля веб-формы. | |
| GetList | Возвращает список результатов. | |
| GetByID | Возвращает поля результата. | |
| GetDataByID | Возвращает ряд массивов, содержащих данные по значениям ответов на вопросы веб-формы, а также значения полей веб-формы для указанного результата. | |
| GetDataByIDForHTML | Возвращает массив значений ответов на вопросы веб-формы, а также значения полей веб-формы для указанного результата. Ключи данного массива в точности соответствуют правилам формирования имен HTML полей для веб-формы. | 4.0.4 |
| Reset | Удаляет значения ответов и значения полей веб-формы для указанного результата. | 4.0.4 |
| Delete | Удаляет указанный результат. | 4.0.4 |
| Создает почтовое событие. | 4.0.4 | |
| SetEvent | Создает событие в модуле «Статистика». | 4.0.4 |
| SetStatus | Устанавливает указанный статус для указанного результата. | 4.0.4 |
| GetCount | Возвращает количество результатов указанной веб-формы. | 4.0.4 |
| GetPermissions | Возвращает массив прав на результат в зависимости от его статуса. |
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
Прикрепить файлы из веб-формы 1С-Битрикс к письму
На клиентском сайте, в разделе «Карьера», есть форма для откликов на вакансии. К этой форме есть возможность прикрепить файл с резюме и фотографию. Но…
По желанию клиента резюме и фотографии должны приходить в письме на email в виде вложения, а не в виде ссылки на скачивания файла, как это реализовано в стандартной форме Bitrix.
Почему в Битриксе не предусмотрели такую возможность по стандарту, не понятно.
Итак, как реализовать прикрепление файлов в виде вложения в письмо из веб-формы на Битрикс?
Гугление дало несколько вариантов решения задачи, мне понравился вариант на форуме 1С-Битрикс.
Зарегистрируем событие OnBeforeEventAdd которое вызывается в момент добавления почтового события в таблицу b_event и с помощью него добавим в письмо наши вложения.
Для этого пройдемся циклом по всем полям веб-формы и с помощью регулярного выражения найдем все ссылки на скачивание файла.
Внимание! Чтобы была возможность прикрепить файл к письму, права доступа на форму нужно выбрать: Все пользователи — Полный доступ.
Далее разбираем ссылку и получаем rid и hash файла и прикрепляем файл к письму.
Следующий код нужно добавить в файл init.php:
Если у вас в форме несколько полей с файлами, к письму прикрепиться тоже несколько файлов.
P.s. Если письмо отправляется в формате HTML, сделайте регулярное выражение таким:
preg_match(«/(https\:.*form_show_file.*)/», $field, $out);
Иначе при наличии нескольких форм с файлами, у вас будет отправляться только один файл
Источник