Форма предназначена для работы со списком описаний обработчиков обновления загруженным из кода конфигурации информационной базы.

Загрузка описания обработчиков обновления

Редактирование описания обработчиков обновления

Описание элементов формы

Контроль построения очереди выполнения обработчиков обновления

Запись изменений описания обработчиков обновления

### Загрузка описания обработчиков обновления

Описание обработчиков обновление загружается из кода конфигурации текущей базы кнопкой Загрузить описания.
Описание загружается средствами БСП из всех модулей обновления встроенных библиотек (процедура ПриДобавленииОбработчиковОбновления).

### Редактирование описания обработчиков обновления

Редактирование описания каждого отдельного обработчика производится посредством формы обработчика, которая открывается кнопкой Добавить для новых обработчиков или двойным кликом по строке списка существующего обработчика.

### Описание элементов формы

Сохранять в репозиторий - поле ввода в котором необходимо указать каталог SRC git-репозитория проекта конфигурации выгруженного в формате EDT (реквизит расположен в сворачиваемой группе, которая по умолчанию всегда свернута).

> Примечание. Относительно каталога SRC вычисляется расположение каталога .settings в котором должен располагается файл настроек обработки.

Библиотека - фильтр списка обработчиков по встроенной библиотеке.
Изменяемый объект - фильтр списка обработчиков по изменяемым объектам - в списке будут отобраны все обработчики содержащие в своей табличной части Изменяемые объекты указанное имя (или часть имени) объекта метаданных.
Читаемый объект - фильтр списка обработчиков по читаемым объектам - в списке будут отобраны все обработчики содержащие в своей табличной части Читаемые объекты указанное имя (или часть имени) объекта метаданных.
Кнопка Добавить - открывает пустую форму обработчика для создания нового описания.
Кнопка Скопировать - открывает форму обработчика и копирует в нее данные текущего обработчика списка.
Кнопка Установить номер сборки - запрашивает новый номер сборки конфигурации и устанавливает его выделенным обработчикам списка.

> Примечание. При записи обработчиков в файлы
> - для версии модуля обновления будет выбрана максимальная сборка из всех обработчиков модуля.
> - для версии корня конфигурации будет выбрана максимальная сборка из списка модулей обновления конфигурации.

Быстрые отборы - динамически формируемая область быстрых отборов предназначена для отбора обработчиков по предопределенным критериям отбора.

> Примечание. Чтобы отключить текущий быстрый отбор необходимо установить быстрый отбор Все.

### Контроль построения очереди выполнения обработчиков обновления

При контроле построения очереди выполнения проверяется:

- полнота заполнения данных и корректность указанных приоритетов выполнения
- зацикленность очереди выполнения обработчиков
- автоматическая установка приориетов выполнения обработчиков

> Примечание. Перед записью в файлы репозитория все нарушения должны быть устранены.

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

1. Вводится порядок обновления типов метаданных:

10 - Константа

20 - Справочник

30 - ПланВидовХарактеристик

40 - ПланСчетов

50 - ПланВидовРасчета

60 - ПланОбмена

70 - БизнесПроцесс

80 - Задача

90 - РегистрСведений (независимый)

100 - Документ

110 - ЖурналДокументов

120 - РегистрСведений (подчиненный регистратору)

130 - РегистрНакопления

140 - РегистрРасчета

150 - РегистрБухгалтерии

Порядок типов можно переопределить в процедуре ОбновлениеИнформационнойБазыПереопределяемый.ПриЗаполненииПриоритетовТиповМетаданных или для какого-то конкретного объекта метаданных задать свой порядок отличный от порядка его типа.

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

- При конфликте чтения или записи двух обработчиков обновляющих разные типы метаданных первым выполнятеся тот, который изменяет данные с меньшим порядком обновления (сначала константы, справочники, план видов характеристик и т.д.)
- При конфликте двух обработчиков обновляющих данные одного типа:

1. первым выполняется тот, который изменяет читаемые данные
2. в случае если оба обработчика изменяют друг другу читаемые данные, то порядок любой (предполагается, что обработчики изменяют независимые друг для друга наборы данных, в противном случае это зацикливание порядка выполнения, когда первый обработчик ждет второй, а второй ждет первый)
3. в случае повторной записи порядок выполнения любой (предполагается, что пишутся или разные наборы данных или разные реквизиты в одном и том же объекте, иначе обработчики должны быть объединены в один)

### Запись изменений описания обработчиков обновления

Для записи в файлы git-репозитория необходимо:

- указать каталог SRC проекта конфигурации выгруженного в формате EDT
- в каталоге .settings проекта конфигурации выгруженного в формате EDT разместить файл настроек cut_tugs.yml. В этом файле в формате yaml перечислены модули обновления конфигурации для которых необходимо формировать процедуры ПриДобавленииОбработчиковОбновления (шаблон файла настроек можно сгенерировать соответствующей командой расположенной в подменю формы Еще).

Описание обработчиков обновления генерируются для модулей обновления указанных в файле настройки cut_tag.yml.
Изменения в файлы записываются в следующем порядке:

- сформированное описание обработчика записывается в модуль менеджера объекта обновления (рядом с процедурой обновления), в процедуру ОписаниеОбработчиковОбновления
- в файлы модуля обновления, в процедуру ПриДобавленииОбработчиковОбновления в алфавитном порядке записывается список вызовов процедур ОписаниеОбработчиковОбновления

При этом среди всех обработчиков записываемых модулей выбирается обработчик с максимальной сборкой конфигурации и эта сборка записывается в версии модулей обновления и корень конфигурации.