
На днях мне понадобилось настроить автозаполнение полей сделки на основе полей Компании. Я создала процесс при создании Сделки, настроила проверку заполненности полей и при пустом значении заполнила их из Компании. Вроде все просто, но вот поля типа Список заполняться отказались 🙁
Пришлось искать варианты. Что же я сделала?
Рассмотрим на примере поля “Условия оплаты” со значениями:
- 100% предоплата
- Отсрочка 100%
- Частичная предоплата

Это поле создано как в Сделке, так и в Компании. Т.е. когда создается сделка, проверяем заполнено ли значение свойства и если оно пустое, смотрим аналогичное поле в Компании и устанавливаем такое же значение.
Содержание
Для начала создадим Бизнес-процесс при создании сделки. CRM – Настройки – Роботы и бизнес-процессы – Бизнес-процессы – Сделки – Список шаблонов – Добавить шаблон



Бизнес-процесс по заполнению поля "Условия оплаты" в Сделке из Компании

Создание переменной
Создадим переменную с тем же названием и типом Список. Для это зайдем в Параметры шаблона, перейдем на вкладку Переменные и нажмем кнопку Добавить переменную.



- Идентификатор – Название поля на английском или латинице;
- Название – Условия оплаты;
- Описание – Можете добавить на свое усмотрение;
- Тип – Список;
- Варианты значений – это самое интересное, рассмотрим ниже, пока оставляем пустым;
- Значение по умолчанию – Не установлено.
Действия бизнес-процесса
Условия оплаты заполнены?
Выбираем конструкцию Условие и указываем в каком случае Условия оплаты заполнены, а в каком нет.


Условие "Да"
- Заголовок – Да
- Тип условия – Поле документа
- Поле документа – Условия оплаты
- Условие – заполнено
Условие "Нет"
- Заголовок – Нет
- Тип условия – Истина
Т.к. условия проверяются слева направо, то в условии Нет можно просто выбрать истину.


Разветвление. Заполнено
Логируем результат разветвления по условию.
- Заголовок – Разветвление
- Текст – Условия оплаты заполнены; {{Условия оплаты}}; {{Условия оплаты > select}}
- Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку
Разветвление. Не заполнено
- Заголовок – Разветвление
- Текст – Условия оплаты не заполнены; В компании: {{Компания: Условия оплаты}}; {{Компания: Условия оплаты > select}}
- Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку

Эти логи как раз и помогут нам в заполнении значений переменной. Нам нужно определить идентификаторы значений списков полей Условия оплаты в Сделке и в Компании. Запускаем процесс в сделке, открываем вкладку Бизнес-процессы и смотрим журнал. Если запущенных процессов несколько, то определяем по названию и времени запуска.


3519fa98840a8b3a6c9ffecf5800529e — это и есть идентификатор значения “Частичная оплата” в поле “Условия оплаты” в Компании. Так нам нужно определить все идентификаторы в обоих списках.
Вот что получилось:
Компания
100% предоплата: bf86af927607e0eff8a54695236fd74f
Отсрочка 100%: bab7184d8f5d3e7c197e79c3a571396c
Частичная предоплата: 3519fa98840a8b3a6c9ffecf5800529e
Сделка
100% предоплата: ea7d6da2d9158bbb31f02f24b9c76308
Отсрочка 100%: 0908d72fe7fcf676e656b36ce9468eb8
Частичная предоплата: 929f4e57547c4ef1e99f8f252a5e420b
Теперь возвращаемся к нашей переменной и заполняем значения списка в таком виде:
[Идентификатор Компании]Идентификатор Сделки
Например, значение “100% предоплата” будет выглядеть так:
[bf86af927607e0eff8a54695236fd74f] ea7d6da2d9158bbb31f02f24b9c76308
Итого:
[bf86af927607e0eff8a54695236fd74f] ea7d6da2d9158bbb31f02f24b9c76308 [bab7184d8f5d3e7c197e79c3a571396c] 0908d72fe7fcf676e656b36ce9468eb8 [3519fa98840a8b3a6c9ffecf5800529e] 929f4e57547c4ef1e99f8f252a5e420b
Вставляем эти варианты значений в переменную.


Изменение переменных
Присвоим переменной список значение аналогичного поля из Компании. Возьмем действие “Изменение переменных”.
- Заголовок – Изменение переменных
- Переменная – Условия оплаты
- Значение – {{Компания: Условия оплаты > select}}
Параметр select указывает на идентификатор.
Переменная
- Заголовок – Переменная
- Текст – {=Variable:UslOpl}; {=Variable:UslOpl_printable}
- Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку
Посмотрим обновилась ли переменная и что в ней записано.


Внесение условий оплаты
- Заголовок – Внесение условий оплаты
- Поле документа – Условия оплаты
- Значение – {=Variable:UslOpl_printable}
- Изменять от имени – устанавливаем администратора или конкретного сотрудника
В значении указываем переменную с параметром printable.
Наш процесс готов! И поле типа Список теперь заполняется, главное не напутать с идентификаторами и их порядком 🙂
господи, какая дичь. А если значений у списка не 3, а 30? Не зря это одна и та же контора с 1с…