На днях мне понадобилось настроить автозаполнение полей сделки на основе полей Компании. Я создала процесс при создании Сделки, настроила проверку заполненности полей и при пустом значении заполнила их из Компании. Вроде все просто, но вот поля типа Список заполняться отказались 🙁
Пришлось искать варианты. Что же я сделала?
Рассмотрим на примере поля “Условия оплаты” со значениями:
100% предоплата
Отсрочка 100%
Частичная предоплата
Это поле создано как в Сделке, так и в Компании. Т.е. когда создается сделка, проверяем заполнено ли значение свойства и если оно пустое, смотрим аналогичное поле в Компании и устанавливаем такое же значение.
Содержание
Для начала создадим Бизнес-процесс при создании сделки. CRM – Настройки – Роботы и бизнес-процессы – Бизнес-процессы – Сделки – Список шаблонов – Добавить шаблон
Бизнес-процесс по заполнению поля "Условия оплаты" в Сделке из Компании
Создание переменной
Создадим переменную с тем же названием и типом Список. Для это зайдем в Параметры шаблона, перейдем на вкладку Переменные и нажмем кнопку Добавить переменную.
Идентификатор – Название поля на английском или латинице;
Название – Условия оплаты;
Описание – Можете добавить на свое усмотрение;
Тип – Список;
Варианты значений – это самое интересное, рассмотрим ниже, пока оставляем пустым;
Значение по умолчанию – Не установлено.
Действия бизнес-процесса
Условия оплаты заполнены?
Выбираем конструкцию Условие и указываем в каком случае Условия оплаты заполнены, а в каком нет.
Условие "Да"
Заголовок – Да
Тип условия – Поле документа
Поле документа – Условия оплаты
Условие – заполнено
Условие "Нет"
Заголовок – Нет
Тип условия – Истина
Т.к. условия проверяются слева направо, то в условии Нет можно просто выбрать истину.
Разветвление. Заполнено
Логируем результат разветвления по условию.
Заголовок – Разветвление
Текст – Условия оплаты заполнены; {{Условия оплаты}}; {{Условия оплаты > select}}
Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку
Разветвление. Не заполнено
Заголовок – Разветвление
Текст – Условия оплаты не заполнены; В компании: {{Компания: Условия оплаты}}; {{Компания: Условия оплаты > select}}
Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку
Эти логи как раз и помогут нам в заполнении значений переменной. Нам нужно определить идентификаторы значений списков полей Условия оплаты в Сделке и в Компании. Запускаем процесс в сделке, открываем вкладку Бизнес-процессы и смотрим журнал. Если запущенных процессов несколько, то определяем по названию и времени запуска.
3519fa98840a8b3a6c9ffecf5800529e — это и есть идентификатор значения “Частичная оплата” в поле “Условия оплаты” в Компании. Так нам нужно определить все идентификаторы в обоих списках.
господи, какая дичь. А если значений у списка не 3, а 30? Не зря это одна и та же контора с 1с…