Настраиваемые действия при изменении дополнительного реквизита в открытой форме (1С: Документооборот 2.1)
При использовании встроенного типового механизма дополнительных реквизитов может понадобиться возможность выполнять какие-либо расчеты и действия при изменении определенного дополнительного реквизита.
Данное расширение позволяет назначать определенному свойству объекта (реализовано пока только для внутренних документов) скрипт, без необходимости каждый раз изменять и дорабатывать конфигурацию, который может установить рассчитанное значение в другой дополнительный реквизит на форме, а также в реквизит, встроенный в конфигурацию и другие действия (на что хватит фантазии).
В конце статьи есть видео, на котором постарался детально рассказать и показать на что направлено разработанное расширение. (p.s. видео записывал впервые, немного волновался, поэтому заранее прошу прощения за недочеты)
- Описание
- Подробнее
Описание
Пример использования:
В форме документа — Приказ о направлении в командировку, при изменении дополнительного реквизита «Дата начала» необходимо заполнить следующие данные:
- Значение доп.реквизита «Дата окончания» рассчитать + 1 день, от даты начала
- Значение доп.реквизита «Длительность» рассчитать разницу между «Дата начала» и «Дата окончания» в часах
- Значение доп.реквизита «Сотрудник», установить текущего пользователя
- Значение в типовой реквизит «Содержание» любой текст.

Для этого в справочнике «Действия при изменении дополнительного реквизита на форме» нужно создать новый объект, указать наименование, в моем случае название «При изменении – Дата начала».

Далее в поле «Свойство» нужно выбрать дополнительный реквизит, при изменении которого, будет выполняться указанный в поле «Алгоритм» скрипт. Реквизит нужно выбирать тот, который есть в документе — Приказ о направлении в командировку.
При выборе в поле свойство доп.реквизита, в поле «Алгоритм» вкладки «Текст» автоматически добавиться скрипт, с помощью которого выполняется чтение выбранного значения. (Название переменной сформируется автоматически на основании имени доп.реквизита).

Для удобства написания скрипта, в части обращения к доп. реквизитам нужного объекта, в поле «Список видов объектов» можно выбрать требуемый вид документа. В нашем случае это вид документа – Приказ о направлении в командировку.

Для реализации пункта
1) Значение доп.реквизита «Дата окончания» рассчитать + 1 день, от даты начала
выполняем следующие действия:
В сформированном списке доп.реквизитов (который сформируется после выбора в поле «Список видов объектов»), ищем реквизит «Дата окончания» и нажимаем по нему два раза. Откроется окно выбора варианта действия:

- Вариант Скрипт для чтения – добавит скрипт, который будет читать значение доп.реквизита на форме
- Вариант Скрипт для заполнения – добавит скрипт, который будет заполнять нужным значение доп.реквизит на форме.
В нашем случае, нам нужно доп.реквизит «Дата окончания» заполнить, поэтому выбираем – Скрипт для заполнения.
В поле «Алгоритм» вкладки «Текст» автоматически добавится скрипт:
Теперь необходимо выполнить расчет в соответствии с заданием, в итоге получим скрипт:

Аналогично выполняются последующие пункты, в итоге общий скрипт имеет следующий вид:

Далее необходимо нажать «Записать и закрыть».
Открываем в «Виды внутренних документов (Справочники)» вид – Приказ о направлении в командировку.
Переходим на вкладку «Действия при изменении доп.реквизита» и добавляем в табличную часть ранее созданное действие – «При изменении – Дата начала»

Далее записываем изменения.
В результате в открытой форме внутреннего документа с видом Приказ о направлении в командировку при изменении «Дата начала» выполниться расчет и установка значений в доп.реквизиты и не только:

После того, как виду документу назначили какие-либо действие, в форме назначенного действия можно увидеть в каком объекте он используется.
Для этого нужно развернуть группу в нижней части экрана – Используется в следующих объектах.

Описание и характеристики тестирования:
- Вкладка «Встроенный язык» — это поле HTML представление. Редактировать текст в нем нельзя. При написании кода на вкладке "Тест", скрипт автоматически раскрашивается и помещается на вкладку "Встроенный язык". Сделано для удобства просмотра написанного скрипта. Весь код пишется на вкладке «Текст».
- Изменения форма элемента справочника «Виды внутренних документов» в части добавления новых элементов формы, выполнено на встроенном языке. Данные через конструктора форм не менялись.
- Тестирование проводилось на платформе (1С:Предприятие 8.3 (8.3.23.1782)), конфигурации — Документооборот 8 КОРП, редакция 2.1 (2.1.34.1)
- Расширение имеет следующие настройки совместимости:


