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

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    7383    37    23    

40

Анализ учета БСП (Библиотека стандартных подсистем) 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

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

22.05.2025    2116    92    seperblunt    6    

22

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

Наткнулся на костыль по работе с ролями. Хочу поделиться, как не попасть на это странное поведение БСП.

07.05.2025    5735    dsdred    32    

87

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

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

24.03.2025    2123    GeraltSnow    6    

31

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

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

10.02.2025    5605    John_d    24    

55

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

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

2 стартмани

06.02.2025    2706    22    XilDen    26    

36

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

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

5 стартмани

31.01.2025    4389    117    karpik666    99    

25

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

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

27.12.2024    6180    PROSTO-1C    16    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. milanse 40 29.04.25 20:47 Сейчас в теме
Классика жанра, функционал есть, сценарии использования не продуманы.
2. user1832003 57 30.04.25 03:34 Сейчас в теме
(1) сценарий работает нормально если делать как описано. У меня получалось (делал по итсу). Другое дело что в расширении у меня не получилось за пустить обновление. Тупо расширение не вызывается при обнове. Если в основную конфу добавлять то все зывается
3. milanse 40 30.04.25 17:09 Сейчас в теме
(2) попытался доработать бух Корп 3 по ИТС, у них внутри все прибито гвоздями к метаданным конфигурации, причем в нескольких местах используются разные методы получения версии. В итоге методика не работает. Написал им, что реализовано не по методике бсп, был послан. На этом завершил приседания.
В своей конфе все отлично работает, потому что могу менять версию основой конфигурации, на обработчики зашито всякое - обновление нси, версии обработки диадок, приминение расширения с с исправлениями бсп из макета.
5. user1832003 57 04.05.25 17:13 Сейчас в теме
(3) видимо ты не осилил методичку. Там невозможно сделать не по методичке чтобы оно работало. там сделано нормально. Инфа сотка. У меня не получилось на расширении, потому что при обнове вызваелся безопасный режим, а расщирения были без безопасного режима. А любое заимствование функции или процедуры сразу убирает применение безопасного режима. В итоге добавил все в конфу и все работало нормально.
7. milanse 40 18.05.25 00:02 Сейчас в теме
(5) не понятно что ты там куда добавил, подсистема встроена некорректно, в инструкции бсп четко указано, что не надо обращаться к метаданным конфигурации для определения версии, но в БП работает через обращение, причём из нескольких мест, чистая лапша.
6. ixijixi 2029 05.05.25 16:59 Сейчас в теме
(2)
ОбновлениеИнформационнойБазыСлужебный.УстановитьВерсиюИБ()
4. Xershi 1533 02.05.25 18:25 Сейчас в теме
Идея интересная. Посмотри как модуль озона обновляется.
Сам не разбирался, но принцип какой. Он скачивает патч, затем перезапуск 1С. А код скорее всего в обработке, которая подключается.
Оставьте свое сообщение