История одного проекта обновления 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С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147091    649    360    

235

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

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

21.10.2024    2659    mixaeel    18    

17

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

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

1 стартмани

26.09.2024    501    3    milkers    2    

7

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    859    gull22    2    

8

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

Как исправить медленное сравнение конфигурации с файлом cf, сохраненным из хранилища.

17.09.2024    4367    vatkir    15    

10

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Упрощенное обновление конфигураций 1С (предпочтительно самописных) с помощью батника и Яндекс Диска (по публичной ссылке)

1 стартмани

22.08.2024    556    0    user1694357    0    

4

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

На ИТС есть статья, в которой поверхностно описан процесс автоматического обновления тонких клиентов. В качестве примера, что логично, представлены методы конфигурации 1С. Но, в отличие от того же управления списками баз, для обновления не требуется хранить информацию, потому я решил переписать код на php, чтобы можно было отвязаться от 1С. Не работает для файловых баз, подключенных как File="ПутьКПапкеБазы"; (а жаль), для опубликованных файловых - работает.

1 стартмани

20.08.2024    681    MikeSh    10    

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