История одного проекта обновления 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С:ERP. Управление холдингом Абонемент ($m)

Описан практический пример обновления через копию конфигурации 1С:ERP. Управление холдингом с версии 3.2.6.6 на версию 3.2.6.7, который можно применять на других конфигурациях и версиях.

10 стартмани

18.02.2025    323    PetrovAnton    2    

2

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

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

10 стартмани

18.02.2025    402    1    kalyaka    0    

5

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

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

1 стартмани

17.02.2025    188    0    slavik27    0    

3

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

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

2 стартмани

06.02.2025    1542    8    XilDen    24    

34

Групповая разработка (Git, хранилище) Обновление 1С Программист Платформа 1С v8.3 Россия Бесплатно (free)

Внедряем проверку новых версий прямо в расширение. Оповещайте о новых версиях и показывайте пользователям список изменений. Для разработчиков, которые хотят сэкономить время и повысить лояльность клиентов!

05.02.2025    1219    Nonik    10    

17

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

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

5 стартмани

31.01.2025    1876    30    karpik666    28    

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