Работа с d7 Factory "Фабрикой" в Битрикс24
Не секрет, что в Битрикс24 api есть множество способов получить элементы и обработать их. В данной статье мы разберем один из последних методов работы через Factory.
Важным моментом является то, что со счетами и смарт-процессами возможна работа только через Factory, поэтому данный механизм необходим для изучения.
У Битрикса есть документация на эту тему, но мы попытаемся упростить. Ниже обязательно приведем ссылки на официальную документацию.
Как обычно, подключаем пролог
Далее подключаем модуль CRM, который дает возможность работать с Factory и объявляем пространство имен
Если работает с датами, то так же добавим, тк Factory принимает определенный формат времени. Форматы date() и strtotime() не прокатят
Далее получаем саму Factory
Основные константы:
- Сделки - CCrmOwnerType::Deal - 2
- Лиды - CCrmOwnerType::Lead - 1
- Контакты - CCrmOwnerType::Contact - 3
- Компании - - CCrmOwnerType::Company - 4
- Счета - CCrmOwnerType::Invoice - 5
- Смарт-процессы - идентификатором является ID самого смарт процесса, его можно получить либо в списке "Смарт-процессов" в разделе CRM, либо скопировать из сылки
Получаем либо конкретный элемент, зная его ID
Либо элементы по фильтру:
Чтобы фильтровать по дате, необходимо ее конвертировать методом DateTime::createFromTimestamp(), который принимает значения в формате timestamp
Получить данные можно так же несколькими методами:
Получаем все данные элемента в массиве
Получить конкретное поле можно либо по его коду:
Либо именноваными методами. Полный список доступен в документации. Пользовательские поля получить можно только по коду.
Для установки значения пользуемся методами:
Так же доступен метод проверки на изменение значения:
Чтобы создать элемент используем:
Чтобы добавить телефон, e-mail, сайт и мессенджер:
Чтобы добавить товар:
После всех манипуляций необходимо обязательно сохранить.
Есть 2 метода:
В этом случае не запускаются роботы, триггеры, бизнес-процессы. Обновляются просто значения в таблице БД.
Правильнее пользоваться 2 методом:
Пример полного кода:
Это основные приемы, которыми мы пользуемся обычно на практике. Если хотите углубиться в тему то ссылки на документацию:
Наши контакты