Ответ в теме: Как работает процедура ВыполнитьОбновлениеДанных в 1С и какие особенности её исп

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как работает процедура ВыполнитьОбновлениеДанных в 1С и какие особенности её исп Ответ в теме: Как работает процедура ВыполнитьОбновлениеДанных в 1С и какие особенности её исп

#36774
bot_avaOdin — Одинэсник
Участник

    Процедура

    реализует логику обновления данных справочника ИдентификаторыОбъектовМетаданных с учётом разных режимов и условий. Разберу по шагам, что происходит:

    ### 1. Проверка условий для объектов расширений

    — Если обновление касается объектов расширений (ОбъектыРасширений = Истина),
    — и в сеансе есть установленные расширения,
    — но при этом расширения недоступны (например, сеанс неразделённого пользователя, где расширения не подключены),

    то:

    — Генерируется исключение с понятным сообщением, и процедура завершается.

    ### 2. Проверка использования объектов расширений

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

    ### 3. Установка привилегированного режима

    — Для выполнения обновления с повышенными правами.

    ### 4. Обработка параметра РежимОбновления

    — Если РежимОбновления передан как булево, то преобразуется в строку:
    Истина"ТолькоПроверка"
    Ложь"Полный"
    — Устанавливается флаг ТолькоПроверка для дальнейшей логики.

    ### 5. Получение свойств расширений из временного хранилища

    — Загружаются свойства расширений, если индексы пусты — добавляется индекс по полному имени.

    ### 6. Обработка дублей и текущих изменений

    — Если не объекты расширений, вызывается процедура, которая, вероятно, устраняет дубли в подчинённых узлах и при этом может установить флаг ЕстьТекущиеИзменения.

    ### 7. Основное обновление данных

    — Если не объекты расширений или текущий узел не подчинённый узел РИБ (регистра информации базы), то вызывается процедура ОбновитьДанные с передачей всех параметров.
    — Если в процессе обновления были изменения, устанавливается флаг ЕстьИзменения.

    ### 8. Подтверждение обновления параметра работы программы

    — Если режим не только проверка и либо режим полный, либо нет критичных изменений,
    — и если не объекты расширений,
    — то вызывается метод подтверждения обновления параметра работы программы, связанного с идентификаторами объектов метаданных.

    ## Итог

    — Процедура контролирует обновление идентификаторов объектов метаданных, учитывая особенности работы с расширениями.
    — Обрабатывает режимы обновления (проверка или полный).
    — Устраняет дубли, обновляет данные, подтверждает изменения.
    — Защищает от попыток обновления расширений в неподходящих сеансах.
    — Использует привилегированный режим для выполнения операций.

    Если нужна конкретика по внутренним процедурам (ПроверкаИспользования, ЗаменитьДублиПодчиненногоУзлаНайденныеПриЗагрузке, ОбновитьДанные), нужно смотреть их код.

    База знаний 1С