Обновление измененной (нетиповой) конфигурации «1С:Предприятие» — одна из наиболее частых и в то же время ответственных задач, с которой сталкивается программист или администратор баз данных. Особенно актуально это для конфигурации «Управление торговлей 11.4», где изменения законодательства (например, в части маркировки табака, обуви, одежды, интеграции с ГИС) требуют регулярной установки новых релизов поставщика.
В этой статье мы подробно разберем, как правильно обновить нетиповую конфигурацию, минимизировать риски потери кастомных доработок, использовать современные механизмы платформы и избежать классических ошибок, совершаемых новичками.
При стандартном автоматическом обновлении полностью типовой базы платформа сравнивает только две конфигурации. Однако в случае, если в вашей базе снят «замок» (разрешено изменение конфигурации поставщика), платформа «1С» задействует интеллектуальную технологию трехстороннего сравнения и объединения. Проанализируем, какие именно конфигурации участвуют в этом процессе:
.cf или .cfu), до версии которого мы планируем обновиться.Главная задача платформы на данном этапе — выявить так называемые «дважды измененные объекты». Это объекты метаданных, которые были модифицированы программистом в рабочей базе и одновременно претерпели изменения от разработчиков фирмы «1С» в новом релизе. Те объекты, которые изменялись только вами или только вендором, платформа объединит автоматически. А вот «дважды измененные» потребуют нашего ручного анализа и аккуратного слияния кода.
Рассмотрим распространенную ошибку, которую часто допускают начинающие специалисты: обновление измененной базы через меню Конфигурация — Сравнить, объединить с конфигурацией из файла. Выясним, почему этот подход губителен в долгосрочной перспективе:
cf платформа не обновляет саму конфигурацию поставщика, которая хранится внутри вашей базы данных. В результате программа «теряет» версионность.GUID), что приведет к хаосу в метаданных и невозможности автоматического сопоставления.Правильный путь: Запускайте процедуру обновления исключительно через меню Конфигурация — Поддержка — Обновить конфигурацию. Только этот метод корректно сопоставляет внутренние GUID объектов и обновляет конфигурацию поставщика в теле базы данных.
Проанализируем две ключевые стратегии, которые можно применить в зависимости от того, насколько сильно изменена ваша «1С:Управление торговлей 11.4».
Этот вариант подходит, если доработки точечные, их относительно немного, и перенос в расширения по каким-то причинам невозможен.
Разберем процесс по шагам:
.dt или сделайте копию на уровне СУБД SQL). Выполнять обновление сразу на живой базе категорически запрещено!Конфигурация — Поддержка — Обновить конфигурацию, укажите файл обновления.//+ ВызовНашегоКласса ... //- ВызовНашегоКласса), перенести их в новый типовой код будет значительно проще.Если ваши доработки устарели, не используются или вы решили полностью переписать их с использованием механизма расширений, лучшим решением будет вернуть конфигурацию к полностью типовому виду. Это позволит в дальнейшем обновлять базу в один клик.
Рассмотрим, как правильно поставить конфигурацию «под замок»:
cf-файл аналогичного (текущего) релиза поставщика через меню Конфигурация — Загрузить конфигурацию из файла (выполнять строго на копии базы!).Чтобы избежать сложностей при каждом последующем обновлении «Управление торговлей 11.4», настоятельно рекомендуется переносить все кастомные доработки в **Расширения конфигурации**. Это изолированный программный слой, который позволяет не снимать основную конфигурацию с замка.
Посмотрим на пример того, как в расширении можно перехватить выполнение процедуры перед записью документа РеализацияТоваровУслуг:
&Вместо("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, Замещение)
// Выполняем наш кастомный алгоритм проверки лимитов или заполнения реквизитов
Если Не ПроверитьЗаполнениеДополнительныхПараметров() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
// Вызываем оригинальный типовой метод конфигурации-донора
ПродолжитьВызов(Отказ, Замещение);
КонецПроцедуры
Использование расширений позволяет обновлять основную базу «1С» в полностью автоматическом режиме. Однако помните о подводных камнях: если разработчики «1С» в новом релизе изменят структуру заимствованных объектов или удалят метод, который вы перехватывали с помощью аннотации &Вместо, расширение может временно «отвалиться» до тех пор, пока вы не адаптируете его код под новые реалии типового релиза.
Обновляя «Управление торговлей 11.4» ради подсистем маркировки табачной или иной продукции, важно помнить, что эти механизмы завязаны на интеграцию с государственными информационными системами. Разработчики «1С» регулярно обновляют библиотеки БСП (Библиотека стандартных подсистем) и БЭД (Библиотека электронного документооборота).
Если ваши прошлые программисты «внедрялись» напрямую в модули проведения документов, формы подбора маркируемой продукции или механизмы обмена, простое визуальное слияние форм может не сработать. В новых релизах структура этих библиотек может измениться кардинально. В таких случаях кастомный код интеграции придется полностью переписывать с использованием новых процедур и функций интеграционного контура поставщика.
Давайте систематизируем процесс обновления и составим надежный алгоритм действий:
cf. Проходите цепочку обновлений последовательно, запуская режим «1С:Предприятие» после каждого шага для корректного выполнения отложенных обработчиков обновления данных.