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

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)

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    2269    4    0    

5

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

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

3254 руб.

21.11.2024    14346    51    30    

59

Нейросети Обновление 1С Бесплатно (free)

Когда доработанную 1С не обновляли годами, начинать приходится не с переноса кода, а с разбора того, что вообще накопилось в базе. Там могут быть десятки обработок, расширения, правки типовых объектов, а документации либо нет, либо она давно не актуальна. На примере реального обновления разбираем, как кодовые агенты, MCP-серверы и языковые модели помогают навести порядок в доработках, собрать план миграции, понять, где при переносе будут проблемы, и автоматизировать часть исправлений.

05.06.2026    8992    wonderboy    6    

29

БСП (Библиотека стандартных подсистем) Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Каждый раз, когда разработчик 1С пишет очередной цикл для свертки массива или использует конструкцию Попытка / Исключение для проверки наличия реквизита, где-то грустит один архитектор фирмы «1С». Мы привыкли изобретать велосипеды там, где в Библиотеке стандартных подсистем (БСП) уже давно лежат готовые, оптимизированные и протестированные на тысячах баз решения. Ниже — практическая подборка из 8 методов актуальных релизов БСП (3.X), которые сделают ваш код чище, быстрее и профессиональнее. Разберем на примерах «Было / Стало».

04.06.2026    13181    Kaliostr0    21    

36

БСП (Библиотека стандартных подсистем) Универсальные функции Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

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

06.02.2026    22859    manul1c    7    

28

БСП (Библиотека стандартных подсистем) Разработчик 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Уже заезженная тема с выводом в Word макетов при помощи БСП, но некоторые коллеги все равно спрашивают. Поэтому размещаю тут материал, как это сделать за три простых шага. Решение, которым я успешно пользуюсь в случаях, когда не нужна универсальность подключаемых внешних печатных форм.

16.09.2025    9540    _seerco2002    0    

36

DevOps и автоматизация разработки Обновление 1С Системный администратор Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

Продолжаем делиться опытом ICL SOFT – в этой статье рассказываем о сложном обновлении сильно доработанной конфигурации "1С:ERP Управление холдингом с версии 3.1.8.15" до актуальной версии редакции 3.2. Публикации о сложных обновлениях, которые можно найти в открытых источниках, содержат мало подробной информации об использованных инструментах и решениях. Часто в них отсутствует информация о том, что находится под капотом этих решений. Будем рады, если наша статья окажется полезной

1 стартмани

01.07.2025    7712    vladimir_iclsoft    1    

25

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

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

22.05.2025    6529    254    seperblunt    10    

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

Обработчик: СтандартныеПодсистемыПовтИсп.ОписанияПодсистем &Вместо

Если НетВерсии Тогда
        ОбновлениеИнформационнойбазыСлужебный.УстановитьВерсиюИБ("МоеРасширение", , Ложь, Ложь);

ИначеЕсли ВерсияОтличается Тогда

       ОбновлениеИнформационнойбазыСлужебный.ОтметитьРегистрациюОтложенныхОбработчиковОбновления(
      "МоеРасширение", Ложь);

КонецЕсли;

//Продолжить вызов
Показать
9. man52 10.08.26 13:41 Сейчас в теме
(8) Предыдущий способ не всегда отрабатывает. Так надежнее:

СтандартныеПодсистемыВызовСервера:

&Перед("ОбработатьПараметрыКлиентаНаСервере")
Процедура МойМодуль_ОбработатьПараметрыКлиентаНаСервере(Знач Параметры)
	
	Если ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить("ПервыйСерверныйВызовВыполнен") <> Истина Тогда
		Если МойМодуль.НеобходимоОбновлениеИнформационнойБазы()Тогда
			ОбновлениеИнформационнойБазыСлужебный.УстановитьЗапускОбновленияИнформационнойБазы(Истина);
		КонецЕсли;
	КонецЕсли;
		
КонецПроцедуры
Показать
10. Sam. 22.08.26 18:02 Сейчас в теме
Делаю такое в Альфа-Авто. Проблема еще в том, что в предлагаемом методе для обновления данных расширения запускается полное обновление, как при изменении релиза конфигурации поставщика. хотелось бы этого избежать.
Для отправки сообщения требуется регистрация/авторизация