Задача [CRM3]: пользовательские компоненты конфигурации

Формулировка проблемы: необходимо реализовать кейс системы управления взаимоотношениями с клиентами.

Решение: для реализации кейса CRM необходимо реализовать следующие пользовательские компоненты:

Модифицированный компонент выбора записи реестра

Необходимо реализовать новый пользовательский компонент на основе компонента "Ссылка на реестр". Список доступных действий:

Общее

  • пользовательский компонент должен иметь возможность сопоставления (в качестве источника и приемника).

Проигрыватель формы в режиме редактирования

Выбор существующей записи реестра:

  • Выбор записи осуществляется по нажатию на лейбл "Выбрать из реестра".

    • Лейбл "Выбрать из реестра" доступен всегда.

    • По нажатию на лейбл откроется диалоговое окно, которое содержит таблицу со всеми записями данного реестра.

    • Столбцы таблицы представляют собой отображаемые поля реестра.

  • Возможность ручного ввода и подбор результатов среди имеющихся записей реестра.

    • Поиск производится по всем отображаемым полям реестра.

    • Значения в выпадающем списке составлены из полей диалога (т.е. отображаемых полей реестра), разделенных тире.

Создание новой записи реестра из текущей формы:

  • Создание новой записи доступно по нажатию на лейбл "+ Создать".

    • Лейбл "+ Создать" доступен всегда.

    • По нажатию на лейбл "+ Создать" откроется диалоговое окно проигрывателя формы в режиме редактирования.

Удаление текущего выбранного значения компонента:

  • Удаление текущего значения компонента доступно по нажатию на лейбл "х Удалить".

    • Лейбл "х Удалить" доступен только в случае, когда в компоненте выбрано какое-либо значение.

    • По нажатию на лейбл "х Удалить" компонент принимает вид пустого поля ввода.

Проигрыватель формы в режиме чтения

  • Выбранная запись реестра отображается в виде подчеркнутого лейбла, составленного из значащего содержимого этого реестра.

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

Примечание

Пример реализации данного компонента: UC5.

Используется:

  • Лид:

    • Контакт

    • Аккаунт

    • Активность

  • Сделка

    • Активность

Сопоставление полей реестров

Лиды

  • При сохранении изменений связанные поля заполнятся ссылкой на текущую запись в следующих реестрах:

  • При выборе существующей записи реестра Аккаунт в динамической таблице (crm_form_account_lead) этой записи добавится строка, которая будет содержать ссылку на текущую запись реестра Лид в поле crm_form_account_lead_lead.

  • При удалении или замене ссылки на запись реестра Аккаунт в динамической таблице (crm_form_account_lead) этой записи будет удалена строка с ссылкой на текущую запись реестра Лид.

  • При выборе существующей записи реестра Контакт в динамической таблице (crm_form_contact_lead) этой записи добавится строка, которая будет содержать ссылку на текущую запись реестра Лид в поле crm_form_contact_lead_lead.

  • При удалении или замене ссылки на запись реестра Контакт в динамической таблице (crm_form_contact_lead) этой записи будет удалена строка с ссылкой на текущую запись реестра Лид.

Сделки

  • При сохранении изменений связанные поля заполнятся ссылкой на текущую запись в следующих реестрах:

  • Активность - crm_form_dealActivity_main_deal

Аккаунты

  • При сохранении изменений связанные поля заполнятся ссылкой на текущую запись в следующих реестрах:

    • Лид - crm_form_lead_main_account

    • Аккаунт, который указан в поле "Материнский аккаунт" текущей записи - crm_form_account_childAccount_account

    • Аккаунт, который указан в поле "Дочерний аккаунт" текущей записи - crm_form_account_parentAccount_parentAccount

Контакты

  • При сохранении изменений связанные поля заполнятся ссылкой на текущую запись в следующих реестрах:

    • Лид - crm_form_lead_main_contact

Активности лидов

  • При сохранении изменений связанные поля заполнятся ссылкой на текущую запись в следующих реестрах:

    • Лид - crm_form_lead_activity_activity

Активности сделок

  • При сохранении изменений связанные поля заполнятся ссылкой на текущую запись в следующих реестрах:

Кнопка создания новой записи реестра "Сделка"

Необходимо реализовать новый пользовательский компонент в виде кнопки. Список доступных действий:

  • Названием кнопки является значение поля "crm_dict_leadStatus_buttonName" записи справочника crm_dict_leadStatus со значением параметра crm_dict_leadStatus_end=1.

  • Кнопка в проигрывателе формы активна в режиме чтения и редактирования.

  • По нажатию на кнопку:

    • Выпадающий список "Статус" примет значение записи справочника crm_dict_leadStatus со значением параметра crm_dict_leadStatus_end=1 и становится неактивным.

    • Документ пересохранится с новым значением выпадающего списка "Статус".

    • Будет создана новая запись реестра Сделка, в которой сопоставлены поля:

      • crm_form_deal_main1_lead заполнится ссылкой на данную запись Лида;

      • crm_form_deal_main2_theme заполнится значением из crm_form_lead_deals_theme.

    • Поле crm_form_lead_main_deal текущей записи лида заполнится ссылкой на новую запись реестра Сделка.

Выпадающий список "Статус":

  • При выборе пункта со значением параметра crm_dict_leadStatus_end=1 в справочнике crm_dict_leadStatus будут совершены те же действия, что и по нажатию на кнопку.