Доработанная типовая 1С: обновление без потери своих изменений

· 9 мин

Содержание

Измененную конфигурацию 1С обновляют в Конфигураторе через Конфигурация → Поддержка → Обновить конфигурацию. Платформа сравнивает три версии: вашу текущую, старую версию поставщика и новую. Объекты, которые вы не трогали, обновляются сами. Где правили и вы, и фирма 1С, решение о слиянии принимаете вы.

Главная боль тут одна: после кнопки «Выполнить» пропадает доработанная печатная форма или перестаёт проводиться документ. Ниже порядок, при котором ваши изменения переживают обновление, а рабочая база не простаивает. Инструкция общая для платформы 8.3 и подходит для БП 3.0, ЗУП 3.1, УТ 11 и других типовых решений на поддержке.

1. Подготовка к обновлению доработанной конфигурации

Начните с проверки, что конфигурация вообще стоит на поддержке. Откройте Конфигурация → Поддержка → Настройка поддержки. В окне видно имя поставщика, версию и режим.

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

У каждого объекта свой режим. Объект поставщика не редактируется обновится полностью. Редактируется с сохранением поддержки попадёт в сравнение. Снят с поддержки обновляться не будет вообще: ваша версия останется как есть, а новшества поставщика в этот объект не придут.

Что подготовить заранее

  • 💾 Выгрузку базы в .dt. Администрирование → Выгрузить информационную базу в Конфигураторе. Для этого нужен монопольный доступ, поэтому выгрузку делают, когда пользователи вышли.
  • 📄 Копию текущей конфигурации. Конфигурация → Сохранить конфигурацию в файл. Этот .cf пригодится, если придётся откатить только конфигурацию без данных.
  • 🧾 Список своих доработок. Через Конфигурация → Сравнить конфигурации сравните основную конфигурацию с конфигурацией поставщика. Получится перечень всех изменённых объектов. Сохраните отчёт: по нему потом проверяют, что ничего не потерялось.
  • 🧪 Копию базы для пробного прогона. Разверните .dt в отдельную пустую базу. Всё дальнейшее сначала делается там.

Первое обновление делайте только на копии. Рабочую базу трогают, когда на копии всё прошло и проверено.

2. Где взять новую версию и как сравнить её с текущей

Обновления распространяются в двух форматах:

  • .cfu — файл обновления. Подходит только для перехода с определённых версий. Список версий, с которых он ставится, указан в описании релиза.
  • .cf — полный дистрибутив конфигурации. Ставится с любой версии, но для доработанных баз сравнение будет крупнее.

Файлы берут на сайте поддержки с вашим логином ИТС или скачивают прямо из Конфигуратора через поиск доступных обновлений. После установки шаблона ищите их в каталоге шаблонов, обычно это %APPDATA%\1C\1cv8\tmplts\1c\<имя конфигурации>\<версия>.

Нельзя ли перепрыгнуть через релизы

Технически с полным .cf платформа обновит конфигурацию с любой версии. Но обработчики обновления данных в типовых конфигурациях часто требуют минимальную исходную версию. Это написано в описании релиза: «обновление возможно с версии…».

Если ваша версия ниже, ставьте цепочку. Для каждого промежуточного релиза выполняйте весь цикл, включая запуск в режиме 1С:Предприятие: только тогда отработают обработчики обновления данных.

💡 Чем дольше база не обновлялась, тем больше конфликтов в сравнении. Доработанную конфигурацию выгоднее обновлять каждый месяц или квартал, а не раз в год.

3. Как разрешать конфликты при слиянии изменений

Запустите Конфигурация → Поддержка → Обновить конфигурацию, выберите файл обновления. Откроется окно сравнения в три колонки: основная конфигурация, старая конфигурация поставщика и новая конфигурация поставщика.

Сразу включите фильтр показа только дважды изменённых свойств. Это и есть настоящие конфликты: объект менял и разработчик, и фирма 1С. Остальное программа объединит без вас.

Режимы объединения

РежимКогда выбиратьРиск
Взять из новой конфигурации поставщикаВаша правка устарела или 1С сделала то же самоеВаша доработка в объекте пропадёт
Объединить с приоритетом основной конфигурацииМодуль или реквизиты, где ваша логика важнееМожно не получить исправление ошибки от 1С
Объединить с приоритетом новой конфигурации поставщикаВаши правки точечные, остальное лучше взять новоеПри пересечении строк победит поставщик
Не объединять (оставить своё)Объект полностью переписан вамиНовшества поставщика не придут, возможны ошибки ссылок

Модули: объединяйте по процедурам

Для общих модулей и модулей объектов откройте настройку объединения модуля. В ней можно выбрать, откуда брать каждую процедуру: из вашей версии или из новой. Это точнее, чем объединять весь модуль одной галочкой.

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

Формы и макеты

Управляемые формы сливаются хуже модулей. Практичный путь: взять форму поставщика и заново добавить свои элементы. Если правок в форме мало, это 10–15 минут работы, зато без скрытых поломок.

Макеты печатных форм объединять бессмысленно. Берите новый макет поставщика и вносите свои изменения поверх. Сохранённый на шаге 1 отчёт сравнения подскажет, что именно вы меняли.

Каждый объект, где пришлось выбрать «оставить своё» или вручную переносить правки, запишите. Это кандидаты на перенос в расширение, о котором ниже.

4. Обновление измененной конфигурации по шагам

Сам процесс на пробной копии выглядит так:

  1. Выгоните пользователей из копии и откройте её в Конфигураторе.
  2. Конфигурация → Поддержка → Обновить конфигурацию, выберите поиск обновлений или файл .cf/.cfu.
  3. Дождитесь окна сравнения. На крупных конфигурациях вроде ERP это может занять десятки минут.
  4. Разберите дважды изменённые объекты, как описано выше.
  5. Нажмите «Выполнить». Если появится окно с новыми объектами поставщика и правилами поддержки, оставьте предложенное, если нет причин менять.
  6. Запустите Конфигурация → Проверка конфигурации и исправьте синтаксические ошибки в своих модулях.
  7. Выполните Конфигурация → Обновить конфигурацию базы данных (F7). Здесь нужен монопольный доступ. Платформа покажет список изменений структуры: просмотрите его и примите.
  8. Запустите базу в режиме 1С:Предприятие под администратором. Подтвердите легальность получения обновления и дождитесь, пока отработают обработчики обновления данных.

Перенос результата в рабочую базу

Когда копия проверена, повторять всё сравнение в рабочей базе не нужно. В копии сохраните готовую конфигурацию в .cf через Конфигурация → Сохранить конфигурацию в файл.

В рабочей базе после выгрузки .dt выполните Конфигурация → Загрузить конфигурацию из файла, затем обновление конфигурации базы данных и первый запуск в пользовательском режиме. Настройки поддержки хранятся в .cf, поэтому следующее обновление пройдёт так же штатно.

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

5. Что проверить после обновления в первую очередь

Сразу после первого запуска проверьте то, что сломается заметнее всего:

  • 🖨 Свои печатные формы и отчёты. Откройте каждый из списка доработок и выведите на тестовом документе.
  • 📑 Проведение ключевых документов. Перепроведите несколько документов за текущий месяц в копии и сравните движения с рабочей базой.
  • 🔄 Обмены. Запустите обмен с сайтом, кассой, другой базой. Новый релиз мог поменять формат или правила.
  • 👥 Права. Зайдите под обычным пользователем: новые объекты могут не попасть в ваши профили доступа.
  • 📊 Регламентированные отчёты. Сформируйте последний сданный отчёт и сравните цифры.
  • 🧩 Журнал регистрации. Отфильтруйте ошибки за время обновления.
Проверка после обновления доработанной базы
Выполнено: 0 / 7

Если что-то сломалось, сравните объект в Конфигураторе с отчётом доработок из шага 1. Часто причина в том, что при слиянии взяли версию поставщика и ваша правка просто исчезла.

6. Расширения и внешние обработки при обновлении

Расширения конфигурации (появились в платформе 8.3.6) не участвуют в трёхстороннем сравнении. Они лежат поверх основной конфигурации и после обновления применяются заново.

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

Что проверить в расширениях

  • 🔗 Заимствованные объекты. Если поставщик переименовал или удалил реквизит, на который ссылается расширение, при запуске появится ошибка применения расширения.
  • 🧷 Перехваты процедур. Аннотации &Перед, &После, &Вместо, &ИзменениеИКонтроль привязаны к имени процедуры. Переименовали процедуру в новом релизе — перехват перестанет работать.
  • ⚙️ Активность расширений. После обновления проверьте, что расширения подключены: список в Администрирование → Печатные формы, отчеты и обработки → Расширения в БП 3.0 или в Конфигураторе через Конфигурация → Расширения конфигурации.

Внешние обработки и отчёты

Внешние обработки и печатные формы из справочника дополнительных отчётов и обработок обновлением не затрагиваются. Но код в них обращается к объектам конфигурации по именам.

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

7. Как ускорить и автоматизировать обновление

Ручной цикл на одной базе занимает час-два. Если доработанных баз несколько, имеет смысл сделать процесс воспроизводимым.

Пакетный режим Конфигуратора

Выгрузку и обновление базы данных можно запускать из командной строки:

"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F"D:\Bases\Copy" /N"Admin" /P"pass" /DumpIB "D:\Backup\base.dt" /Out "D:\Logs\dump.log"

"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F"D:\Bases\Copy" /N"Admin" /P"pass" /LoadCfg "D:\Update\ready.cf" /UpdateDBCfg /Out "D:\Logs\update.log"

Номер платформы в пути замените на свой. Второй вариант загружает уже подготовленный .cf, как в способе переноса из раздела 4. Само трёхстороннее сравнение с ручным выбором режимов в пакетном режиме не воспроизвести. Для объединения по файлу настроек есть параметр /MergeCfg, подробности смотрите в справке платформы по параметрам командной строки.

Что ещё помогает

  • 🗂 Хранилище конфигурации. Если доработки ведут несколько программистов, обновление делают в хранилище один раз, остальные получают изменения.
  • 🧰 1С:EDT и Git. Позволяют видеть историю каждой правки и находить, кто и зачем менял объект.
  • 🤖 Автотесты. Сценарии в Vanessa Automation прогоняют проверки из раздела 5 без ручного кликанья.
  • 🏷 Комментарии в коде. Помечайте свои правки в типовых модулях, например // Доработка 2024-03 Иванов >> и // <<. В окне сравнения такие куски видно сразу.

8. Ошибки, из-за которых обновление идёт не так

Диагностика: выберите симптом

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

Частые вопросы

Сколько времени занимает обновление доработанной конфигурации?
На БП 3.0 с десятком доработок — около часа на копии и 15–30 минут в рабочей базе. Для ERP с большим числом правок сравнение может занять день работы программиста.
Можно ли обновлять доработанную базу самостоятельно, без программиста?
Если в окне сравнения нет дважды изменённых объектов — да. Если конфликты есть, нужен человек, который понимает, что делает ваш код.
Слетят ли пользовательские настройки и данные?
Нет. Обновление меняет конфигурацию и структуру таблиц, данные остаются. Настройки отчётов иногда сбрасываются, если поставщик переделал отчёт.
Нужно ли обновлять платформу вместе с конфигурацией?
Часто да. В описании релиза указан минимальный номер платформы. Если ваш номер ниже, база после обновления не запустится, пока не поставите нужную версию.
Что делать, если обновление прошло неудачно в рабочей базе?
Загрузите .dt, выгруженную перед обновлением, через Администрирование → Загрузить информационную базу. Данные, введённые после выгрузки, придётся внести заново, поэтому обновляют в нерабочее время.