Задача [CRM7]: отправка записи реестра на выбранный адрес

Формулировка проблемы: необходима возможность указания адреса в форме документа для его отправки как с помощью выбора из реестров "Аккаунты" или "Контакты", так и с помощью ручного ввода произвольного e-mail.

Решение: необходимо реализовать код скрипта для таблицы, используемой в формах "Договор поставки (единовременная оплата)", "Договор поставки (оплата частями)", "Коммерческое предложение" и "Акт приема-передачи товара". В результате будет возможно использование штатного процесса "Отправка документа по форме" с указанием кода поля, содержащего выбранный e-mail.

Компонент выбора адреса в форме

В формах "Договор поставки (единовременная оплата)", "Договор поставки (оплата частями)", "Коммерческое предложение" и "Акт приема-передачи товара" реализовать таблицу "Отправить заказчику" с полями:

№ поля Код компонента Тип компонента Состав данных, поведение

1

choice

Выпадающий список

  • "Аккаунт";

  • "Контакт";

  • "Ручной ввод"

2

account_link

Ссылка на реестр "Аккаунты"

Доступность зависит от значения поля choice (описано ниже)

2.1

contact_link

Ссылка на реестр "Контакты"

Доступность зависит от значения поля choice (описано ниже)

3

email

Однострочное поле

Почтовый адрес (описано ниже)

Поля choice и email должны быть обязательны для заполнения.

Примечание: здесь и далее для именования полей таблицы используются псевдо-названия. В коде итогового скрипта имена компонентов должны удовлетворять требованиям.

Поведение поля choice

Если в поле choice выбрано значение "Аккаунт", то должно быть доступно поле account_link, поле contact_link скрыто.

Если в поле choice выбрано значение "Контакт", то должно быть доступно поле contact_link, поле account_link скрыто.

Если в поле choice выбрано значение "Ручной ввод", то поля account_link и contact_link должны быть скрыты.

Поведение поля email

  1. Для случая, когда заполняется поле account_link, в поле email требуется отображать значение поля crm_form_contact_email.crm_form_contact_email_email. В случае, если таблица crm_form_contact_email для выбранного контакта содержит больше одного элемента, выбирать значение в зависимости от значения поля crm_form_contact_email.crm_form_contact_email_emailCombo по значение с минимальным порядковым номером записи справочника crm_dict_email.

  2. Для случая, когда заполняется поле contact_link, в поле email требуется отображать значение поля crm_form_account_email.crm_form_account_email_email. В случае, если таблица crm_form_account_email для выбранного контакта содержит больше одного элемента, выбирать значение в зависимости от значения поля crm_form_account_email.crm_form_account_email_emailCombo тем же приоритетам, что и для пункта 1.

  3. Для случая, когда в поле choice выбрано значение "Ручной ввод", в поле email должно заполняться вручную.