Как обновить измененную нетиповую конфигурацию 1С:Управление торговлей 11.4 типовым релизом?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Обновление измененной (нетиповой) конфигурации «1С:Предприятие» — одна из наиболее частых и в то же время ответственных задач, с которой сталкивается программист или администратор баз данных. Особенно актуально это для конфигурации «Управление торговлей 11.4», где изменения законодательства (например, в части маркировки табака, обуви, одежды, интеграции с ГИС) требуют регулярной установки новых релизов поставщика.

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

Понимаем теорию: Механизм трехстороннего сравнения и объединения

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

  1. Старая конфигурация поставщика — это чистый типовой релиз, который был взят за основу при предыдущем обновлении (базовая точка отсчета).
  2. Новая конфигурация поставщика — файл обновления (.cf или .cfu), до версии которого мы планируем обновиться.
  3. Основная конфигурация — наша текущая рабочая база со всеми уникальными доработками, справочниками, кодом и измененными формами.

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

Почему нельзя обновлять через «Сравнить, объединить с файлом...»?

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

Правильный путь: Запускайте процедуру обновления исключительно через меню Конфигурация — Поддержка — Обновить конфигурацию. Только этот метод корректно сопоставляет внутренние GUID объектов и обновляет конфигурацию поставщика в теле базы данных.

Два основных сценария обновления нетиповой базы

Проанализируем две ключевые стратегии, которые можно применить в зависимости от того, насколько сильно изменена ваша «1С:Управление торговлей 11.4».

Сценарий 1. Обновление с сохранением доработок в основной конфигурации

Этот вариант подходит, если доработки точечные, их относительно немного, и перенос в расширения по каким-то причинам невозможен.

Разберем процесс по шагам:

  1. Создание резервной копии: Выполните резервное копирование (создайте файл .dt или сделайте копию на уровне СУБД SQL). Выполнять обновление сразу на живой базе категорически запрещено!
  2. Запуск обновления поставщика: Перейдите в Конфигурация — Поддержка — Обновить конфигурацию, укажите файл обновления.
  3. Анализ окна сравнения-объединения: Платформа выведет дерево объектов. Обратите внимание на статус объектов. Снимите флажки с тех объектов, кастомный функционал которых вы хотите полностью сохранить без изменений. Для дважды измененных объектов выберите режим объединения (например, взять из новой конфигурации поставщика с сохранением ваших модулей через ручную вставку).
  4. Объединение модулей: Используйте встроенный текстовый компаратор для построчного слияния кода. Если изменения в коде были оформлены с помощью комментариев (например, //+ ВызовНашегоКласса ... //- ВызовНашегоКласса), перенести их в новый типовой код будет значительно проще.

Сценарий 2. Возврат конфигурации на «полный замок» (типовой вид)

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

Рассмотрим, как правильно поставить конфигурацию «под замок»:

  1. Убедитесь, что в рабочей базе не создавались новые уникальные объекты метаданных (справочники, документы, реквизиты), в которых хранятся важные данные. Если они есть, при возврате на замок они будут удалены вместе с данными!
  2. Загрузите чистый cf-файл аналогичного (текущего) релиза поставщика через меню Конфигурация — Загрузить конфигурацию из файла (выполнять строго на копии базы!).
  3. Установите правила поддержки: для всех объектов должен быть установлен статус «Редактируется с сохранением поддержки» или «Не редактируется» (замок).
  4. Проверьте, чтобы на корневом элементе дерева конфигурации появился значок закрытого замка.

Современный стандарт разработки: Перенос доработок в Расширения

Чтобы избежать сложностей при каждом последующем обновлении «Управление торговлей 11.4», настоятельно рекомендуется переносить все кастомные доработки в **Расширения конфигурации**. Это изолированный программный слой, который позволяет не снимать основную конфигурацию с замка.

Посмотрим на пример того, как в расширении можно перехватить выполнение процедуры перед записью документа РеализацияТоваровУслуг:


&Вместо("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, Замещение)
    // Выполняем наш кастомный алгоритм проверки лимитов или заполнения реквизитов
    Если Не ПроверитьЗаполнениеДополнительныхПараметров() Тогда
        Отказ = Истина;
        Возврат;
    КонецЕсли;

    // Вызываем оригинальный типовой метод конфигурации-донора
    ПродолжитьВызов(Отказ, Замещение);
КонецПроцедуры

Использование расширений позволяет обновлять основную базу «1С» в полностью автоматическом режиме. Однако помните о подводных камнях: если разработчики «1С» в новом релизе изменят структуру заимствованных объектов или удалят метод, который вы перехватывали с помощью аннотации &Вместо, расширение может временно «отвалиться» до тех пор, пока вы не адаптируете его код под новые реалии типового релиза.

Особенности обновлений под маркировку (Честный Знак, ЕГАИС)

Обновляя «Управление торговлей 11.4» ради подсистем маркировки табачной или иной продукции, важно помнить, что эти механизмы завязаны на интеграцию с государственными информационными системами. Разработчики «1С» регулярно обновляют библиотеки БСП (Библиотека стандартных подсистем) и БЭД (Библиотека электронного документооборота).

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

Пошаговый чек-лист для безопасного обновления

Давайте систематизируем процесс обновления и составим надежный алгоритм действий:

  1. Подготовка копии: Разверните копию рабочей базы на тестовом сервере или локальном компьютере.
  2. Проверка версии поставщика: Убедитесь, что текущая конфигурация базы данных строго соответствует активной конфигурации поставщика (базы не должны быть «рассинхронизированы»).
  3. Последовательное обновление: Если вы обновляетесь через множество релизов (например, с версии 11.4.10 на 11.4.15), не пытайтесь «перепрыгнуть» всё одним файлом cf. Проходите цепочку обновлений последовательно, запуская режим «1С:Предприятие» после каждого шага для корректного выполнения отложенных обработчиков обновления данных.
  4. Тестирование: После завершения технического обновления на копии, пригласите ключевых пользователей (бухгалтеров, логистов, менеджеров) для тестирования основных бизнес-процессов: создание документов, проведение, отправка чеков, печать форм.
  5. Перенос на рабочую базу: Только после успешного тестирования на копии запланируйте технические работы на рабочей базе (желательно в нерабочее время), предварительно сделав еще один свежий бэкап.
← На главную