История одного проекта обновления 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 Бесплатно (free)

Тестовая база обновлена через все ключевые релизы, всё протестировано, остатки сведены, вы готовы обновить «боевую» базу, но…по замерам для этого потребуется целая неделя, а у вас есть всего пара выходных. Знакомая ситуация? Расскажем, как увеличить скорость отработки промежуточных конфигураций!

18.06.2025    1285    1c-izh    12    

8

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

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

04.06.2025    2877    1c-izh    6    

16

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

Добавление в Справочник "Статьи затрат" отсутствующих предопределённых элементов.

1 стартмани

23.05.2025    331    0    qrw    0    

0

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

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

29.04.2025    2124    krasnoshchekovpavel    7    

17

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

Методика, описанная в статье, выработана при переезде с 1С:ДО 2.1 на 1С:ДО 3.0. Может также применяться при переходе с 1С:УПП на 1C:ERP, 1C:ERP на 1C:ERP УХ и т. п. Учтены все необходимые доработки при переезде на новую конфигурацию и предупреждены возможные ошибки.

21.04.2025    2367    PROSTO-1C    4    

4

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

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

1 стартмани

15.04.2025    1904    7    Aleksandr    0    

21

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

Скрипт для загрузки конфигурации в 1С, обновления базы и архивации файла с логированием.

1 стартмани

02.04.2025    1022    3    DoubleT    8    

5

Обновление 1С Linux Системный администратор Программист Бесплатно (free)

Пошаговая инструкция для обновления платформы 1С на сервере Linux Debian.

28.03.2025    1836    California_Dreaming    2    

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