Собственные обработчики обновления расширения

29.04.25

Разработка - БСП (Библиотека стандартных подсистем)

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

Введение

Рассмотрим ситуацию, когда в дорабатываемой конфигурации используется подсистема БСП - "Обновление версии ИБ". Эта подсистема позволяет при изменении версии основной конфигурации запускать обработчики обновления для перехода на новую версию. Например, в новой версии конфигурации изменилась структура регистра/справочника и т.п.. И после обновления базы необходимо произвести перенос из старых, ныне не используемых реквизитов, в новые. Это один из самых простых вариантов использования обработчиков обновления. На деле ситуации бывают сложнее и интереснее, но это не тема текущей статьи. Будем считать, что мы уже знакомы с этой подсистемой БСП, и нас интересует добавление собственных обработчиков обновления.

Стандартный метод

В документации БСП можно найти инструкцию - что делать, в случае если вам понадобилось добавление собственных обработчиков обновления. А именно, предлагается изменить имя основной конфигурации на собственное, и проставить собственную версию основной конфигурации. Далее необходимо создать подсистему (Добавить модуль ОбновлениеИнформационнойБазы<Постфикс>) - и дать ей недавно установленное имя основной конфигурации. И в рамках этой, вновь добавленной подсистемы и реализовывать собственные обработчики обновления. А типовую подсистему, которая прежде имела имя основной конфигурации, предлагается добавить в качестве требуемой (подчиненной, зависимой) к нашей. Таким образом мы будем изменять версию основной конфигурации, запуская процесс обновления на нашу версию, который потянул бы за собой и типовые обработчики обновления т.к. типовая подсистема объявлена требуемой.

Но такой подход не очень удобен по нескольким причинам:

1) При обновлении конфигурации требуется следить за тем, чтобы не затереть имя и версию основной конфигурации.

2) После обновления конфигурации изменится версия конфигурации поставщика, но версия основной конфигурации останется не тронутой (если мы соблюли 1 пункт). Поэтому что бы спровоцировать запуск обновления ИБ - потребуется дополнительно вручную изменить версию основной конфигурации.

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

Метод с использованием расширения

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

Создаем подсистему (Добавить модуль ОбновлениеИнформационнойБазы<Постфикс>) - и даем ей имя расширения. И в рамках этой подсистемы реализовываем собственные обработчики обновления. А для того что бы эти обработчики исполнились, мы добавляем эту нашу подсистему в качестве требуемой для подсистемы связанной с основной конфигурацией. Такимо образом при выполнении обновления ИБ у нас запустится процесс обновления основной конфигурации, которая потащит за собой по цепочке и наши обработчики. Но пока что остается не решенным вопрос с запуском самого процесса обновления. Ведь изменение версии расширения не повлечет за собой запуск обновления ИБ. Каждый раз запускать сеанс с параметром "ЗапуститьОбновлениеИнформационнойБазы"?

Для решения этой проблемы мы добавим в служебную функцию БСП, определяющую потребность в запуске обновления, условие, проверяющее изменение версии расширения.

 

 

Для большего понимания попытаемся отобразить на схеме одновременно все варианты:

1) Отсутствие собственных обработчиков обновления

2) Метод предлагаемый документацией БСП

3) Метод с использованием расширения

 

Технические детали

 

Всего потребовалось расширить три модуля:

1) Служебный модуль подсистемы "Обновление ИБ" для добавления условия при смене версии расширения

2) Переопределяемый модуль для добавления подсистемы расширения

3) Модуль подсистемы основной конфигурации для добавления нашей подсистемы в качестве требуемой для основной

 

 

Тексты модулей:

 
 ОбновлениеИнсформационнойБазыРАСШ
 
 ОбновлениеИнформационнойБазыСлужебныйПовтИсп
 
 ОбновлениеИнформационнойБазыУП
 
 ПодсистемыКонфигурацииПереопределяемый
 
 расшОбщегоНазначенияПовтИсп

 

Модуль ОбновлениеИнформационнойБазыУП является модулем подсистемы с именем основной конфигурации, то есть именно эта подсистема, описанная в данном модуле, является "основной".

Итог

Мы рассмотрели подход при котором без изменения корня основной конфигурации мы можем создавать свои обработчики обновления, которые сможем запускать изменяя версию расширения в конфигураторе. Стоит отметить, что и стандартный подход из документации к БСП и рассмотренный нами, обладают одним большим минусом - что бы выполнились наши обработчики, в любом случае требуется и выполнение типовых обработчиков, что может занимать значительное время. К сожалению подсистема БСП "Обновление ИБ" поддерживает только одну "основную" подсистему, связанную с основной конфигурацией по имени. Поэтому мы и выбираем между подходами - сделать "основной" нашу подсистема, а типовую зависимой. Или типовую оставить основной, а нашу добавить в её зависимости.

 

  • Платформа: 1С:Предприятие 8.3 (8.3.25.1546)
  • Конфигурация: 1С:ERP Управление предприятием 2 (2.5.21.104)

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    5998    28    23    

32

Обновление 1С Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1C:ERP Абонемент ($m)

Внешняя обработка для обновления расширений и дополнительных обработок 1С из GitHub. Поддерживает как публичные, так и приватные репозитории, фильтрацию релизов по версии конфигурации, скачивание .cfe, .epf, .erf.

1 стартмани

15.04.2025    1501    4    Aleksandr    0    

21

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

24.03.2025    1475    GeraltSnow    5    

28

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Добавим метки в новый документ средствами БСП.

10.02.2025    5048    John_d    24    

52

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

06.02.2025    2284    17    XilDen    26    

36

Обновление 1С Программист Бухгалтер Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Бухгалтерский учет НДС Абонемент ($m)

Обновление для конфигурации Управление торговлей 10.3.88.3 добавляет поддержку ставок НДС 5% и 7%, обеспечивает корректную печать этих ставок на актуальных моделях торгового оборудования (АТОЛ, ШТРИХ, ревизия 4004), содержит актуальные правила обмена с конфигурацией "Бухгалтерия предприятия 3.0" для передачи новых ставок. Новые ставки НДС поддерживается в печатных формах УПД, ТТН и т.д. В состав дистрибутива включены обработки для обслуживания торгового оборудования ККТ нового формата (Штрих-М и АТОЛ)

5 стартмани

31.01.2025    3546    99    karpik666    93    

24

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Расскажу, как использовать полезный функционал - инструментарий разработчика «1С:Библиотека стандартных подсистем» (БСП) в своих объектах метаданных. Статья будет полезна как шпаргалка при написании собственных объектов метаданных.

27.12.2024    5481    PROSTO-1C    16    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. milanse 40 29.04.25 20:47 Сейчас в теме
Классика жанра, функционал есть, сценарии использования не продуманы.
Оставьте свое сообщение