История одного проекта обновления 1С: переход с БСП 2 на БСП 3 в самописной конфигурации

26.06.24

База данных - Обновление 1С

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

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

 

Что же могло измениться за 8 лет?

Разница между версиями существенная — за 8 лет в библиотеке серьезно изменился функционал. Расскажем, как мы делали этот проект.

В начале — анализ. Смотрим на количество и сложность доработанных объектов, использующих функции БСП, какие из них измененные, какие добавленные (в данном случае было 60 добавленных и 10 измененных объектов).

Ищем наиболее проблемные места. Такими местами оказались:

  • Использование частичного обновления — требовалось найти, из каких версий БСП оно было взято. 
  • Второй момент — в конфигурации использовались доработанные функции, которых просто не стало в актуальной редакции, им необходимо найти замену из новой библиотеки.
  • Момент третий — в справочник «Договоры контрагентов» добавлена табличная часть «Файлы», реализованная без использования функционала БСП.

 

Ищем функции, готовим промежуточные конфигурации

Для поиска используемых функций БСП обращаем внимание на измененные объекты. В нашем случае задействованы механизмы библиотеки Контактная информация, Дополнительные сведения, Версионирование.

Выяснилось, что за основу рабочей конфигурации из поставки БСП версии 2.1.9.1 была взята демобаза, так как в ней присутствовали объекты, не входящие непосредственно в конфигурацию БСП, например, Справочник.Контрагенты, Справочник.ДоговорыКонтрагентов. Эта особенность облегчила задачу по обновлению — данные объекты можно взять из демонстрационной базы актуальной библиотеки.

Читаем описание перехода с предыдущих версий, которое имеется в дистрибутивах поставки: переход на БСП 3 минимально возможен с редакции 2.3.

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

В выбранных конфигурациях есть серьезные изменения в структуре, поэтому были обозначили следующие релизы:

  • 2.2.5.36;
  • 2.3.5.81;
  • 3.1.1.151 — возможно, не обязательный, но взяли для подстраховки;
  • 3.1.9.277.

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

Чтобы корректно обновить базу на актуальную версию БСП необходимо вынести текущую конфигурацию в свою собственную подсистему.

Для этого необходимо внести доработки в общий модуль «ПодсистемыКонфигурацииПереопределяемый» и добавить общий модуль «ОбновлениеИнформационнойБазы*ИмяКонфигурации*».

Для корректного использования БСП 3.1.9.277 необходимо провести первое внедрение согласно инструкции на сайте ИТС (для 2.1.9.1 этого не требуется). Мы предположили, что при обновлении базы через промежуточные версии БСП этого делать не нужно, но пока не проверим — будем держать в уме это требование.

 

Адаптируем, ищем замены, убираем лишнее

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

Но, так как в рабочей конфигурации использовались объекты из демоконфигурации, которых не было в типовой 2.1.9.1, решили в обновленную конфигурацию перенести эти же объекты из демоконфигурации 3.1.9.277. Это привнесло функционал, связанный с использованием свежих объектов конфигурации демобазы: на формах появились новые реквизиты и элементы. Нам эти вещи не нужны, поэтому их просто «вырезаем». В итоге получилась упрощенная демоконфигурация, в которую будут переноситься реальные доработки рабочей конфигурации.

В новых версиях БСП изменилась архитектура подсистемы присоединенных файлов — были добавлены определяемые типы, их и стали использовать в объектах этой подсистемы. Учитываем эти моменты при подготовке промежуточных конфигураций.

 

Тестируем и обновляем, обновляем и тестируем

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

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

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

Обновление тестовой базы провели на платформе 8.3.21 — всё прошло успешно. Но заказчик уже обновил у себя платформу до 23 версии…и на ней база стала «падать» в процессе реструктуризации после загрузки первой промежуточной конфигурации. Падение происходило, когда реструктуризация доходит до справочников, добавившихся в промежуточной БСП 2.2.5.36.

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

Напоследок, база ещё решила зависнуть на отложенных обработчиках обновленной конфигурации. Причиной оказался типовой обработчик справочника «Файлы», который бесконечно работал с одними и теми же данными. Скорректировали его код, и обновление базы завершилось.

***

Итого, заказчик в срок получил готовые файлы для обновления: промежуточные и обновленную конфигурацию, а также инструкцию. Мы же пополнили свою копилку опытом обновления между редакциями БСП, надеемся, что и вам эта информация будет полезной.

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

БСП обновление разработка нетиповая конфигурация самописная конфигурация

См. также

Обновление 1С Программист 1С v8.3 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

Обработка, загружающая по расписанию пакет правил обмена в случае их изменения из установленного в настройках каталога.

2 стартмани

27.10.2025    394    2    cheiser1982    2    

1

Нейросети Рефакторинг и качество кода Обновление 1С Программист Бесплатно (free)

С ростом качества работы нейросетей и упрощением их интеграции мы решили попробовать внедрить их в процессы обновления 1С. За последний год через сервис обновлений нетиповых конфигураций 1С нашей компании прошло порядка пяти тысяч проектов, четверть из которых включала расширения. Автоматизацию обновления расширений — в частности, методов модулей расширений — мы выбрали в качестве первого шага. В этой статье расскажем про настройку модели и промпта исходя из поставленной задачи и как нейросеть помогла сократить затраты на реальных проектах.

24.10.2025    1676    1c-izh    6    

6

Обновление 1С Рефакторинг и качество кода 1С v8.3 Абонемент ($m)

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

10 стартмани

17.10.2025    4404    20    Suker86    12    

19

Обновление 1С Программист 1С v8.3 Бесплатно (free)

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

13.10.2025    3760    VetalDV    7    

8

Обновление 1С Программист 1С v8.3 Бесплатно (free)

При обновлении конфигураций ЕРП/КА/УТ типовыми обновлениями можно получить ошибку  Превышен максимальный расход памяти сервера за один вызов". С чем это связано? Рассмотрим исправление этой ошибки.

18.08.2025    4090    iolko    10    

20

Обновление 1С Системный администратор Программист 1С v8.3 Россия Абонемент ($m)

Внешняя обработка "Запуск процедур обновления" предназначена для запуска процедур обновления в типовых конфигурациях, а также в конфигурациях, где поддерживается типовой механизм обновления по подсистемам. Это может быть полезно тем, кто разрабатывает и поддерживает свои подсистемы на базе типового механизма. Тестировщики, разработчики.

1 стартмани

16.07.2025    1475    9    lastpioneer    0    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. baracuda 2 27.06.24 10:49 Сейчас в теме
Молодцы конечно, в таких проектах самое сложное колосальный объем по анализу конфигурации провести, что да как устроено.
2. kalyaka 1137 27.06.24 21:51 Сейчас в теме
Использовали ли механизм обновления через поставку? Если нет, то рассматривали ли и почему отказались?
3. 1c-izh 90 28.06.24 10:35 Сейчас в теме
(2) Промежуточные и финальную конфигурации обновляли, в том числе, и через поставку, чтобы сохранить внутренние идентификаторы объектов метаданных. Но в данном случае выбор механизма не важен — всё-равно надо анализировать все изменения.
4. kalyaka 1137 28.06.24 11:22 Сейчас в теме
(3) Механизм поставки эффективно использовать при анализе изменений. При трехстороннем анализе можно отделить изменения в конфигурации поставщика от изменений самого поставщика. В случае, когда сама конфигурация поставщика представляет собой франкейнштейна из разных поставок, можно собрать "виртуальную" конфигурацию поставщика и выделить изменения относительно нее.
Для отправки сообщения требуется регистрация/авторизация