Как обновить доработанную конфигурацию 1С и не потерять свои изменения

· 10 мин

Содержание

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

Автоматическое обновление из пользовательского режима для такой базы не подходит: оно либо откажется работать, либо затрёт часть доработок. Ниже весь цикл: подготовка, объединение, особые случаи с CF-файлами, проверка результата и автоматизация.

Чем обновление нетиповой конфигурации отличается от типовой

Типовая конфигурация стоит «на замке»: объекты поставщика не редактируются. Обновить её можно одной командой, конфликтов не бывает.

Нетиповая — это конфигурация, в которой включена возможность изменения и программист что-то поменял: модуль, форму, реквизит, макет печатной формы. Для неё обновление превращается в объединение.

ТиповаяНетиповая
Режим поддержкиОбъекты не редактируютсяРедактируются с сохранением поддержки или сняты с поддержки
СпособИз пользовательского режима или CFU в КонфигуратореТолько Конфигуратор, сравнение и объединение
КонфликтыНетДважды изменённые объекты
Время на релизМинутыОт часа до нескольких дней
Кто делаетБухгалтер или администраторПрограммист 1С

Сложность зависит от трёх вещей:

  • 🔹 Число дважды изменённых объектов. Десяток правок в своих общих модулях — час работы. Переписанный модуль проведения реализации, который поставщик тоже поменял, — уже ручная сборка кода.
  • 🔹 Режим поддержки объектов. Объект, снятый с поддержки, обновление не трогает. Новые возможности поставщика в нём не появятся, пока вы не перенесёте их руками.
  • 🔹 Отставание по релизам. Каждый пропущенный релиз — отдельное объединение, если нет полного CF-файла нужной версии.

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

Подготовка к обновлению нетиповой 1С

Главное правило: обновление делается на копии базы, а не на рабочей. В рабочую переносится уже проверенный результат.

Что собрать заранее

  1. Дистрибутив нужного релиза. Скачайте его с портала обновлений по подписке ИТС и установите шаблон (по умолчанию он попадает в каталог шаблонов tmplts в профиле пользователя).
  2. Список допустимых переходов. В описании каждого релиза указано, с каких версий на него можно обновиться файлом 1cv8.cfu. Если ваш релиз туда не входит, придётся идти через промежуточные или брать полный 1cv8.cf.
  3. Версию платформы. Новые релизы требуют платформу с номером не ниже указанного в описании. Обновите платформу на всех рабочих местах и сервере до начала.
  4. Перечень доработок. Если программисты помечали правки комментариями, например // +++ Петров 14.03 задача 512 и // --- Петров, объединение пройдёт быстрее: сразу видно, чей код и зачем.

Резервные копии

Перед любыми действиями сделайте две копии:

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

Для клиент-серверной базы надёжнее штатный бэкап СУБД, а .dt держать как дополнительную копию.

Готовность к обновлению
Выполнено: 0 / 7

Сравнение и объединение конфигураций по шагам

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

Шаг 1. Запуск обновления

  1. Откройте тестовую копию в Конфигураторе и откройте конфигурацию.
  2. Выберите Конфигурация → Поддержка → Обновить конфигурацию.
  3. Укажите поиск доступных обновлений или выберите файл вручную: 1cv8.cfu из каталога шаблонов либо полный 1cv8.cf.
  4. Подтвердите версию, на которую идёт обновление.

Платформа построит дерево сравнения. В нём три колонки состояния: основная конфигурация, старая и новая конфигурации поставщика.

Шаг 2. Отбор конфликтов

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

Для каждого конфликта выберите режим:

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

Шаг 3. Модули — по процедурам

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

Если поставщик и вы правили одну и ту же процедуру, автоматика не поможет. Возьмите версию поставщика и перенесите свою вставку вручную, сверяясь с сохранённым .cf. Ручная сборка дольше, зато потом код читается.

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

Шаг 4. Применение

  1. Нажмите Выполнить.
  2. Если платформа сообщит, что выбранные объекты ссылаются на неотмеченные, разрешите включить их в объединение. Иначе останутся битые ссылки.
  3. Выполните Конфигурация → Обновить конфигурацию базы данных (F7).
  4. В окне «Реорганизация информации» просмотрите список изменений структуры и примите его.

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

Обновление через CF-файл: когда без него не обойтись

Файл 1cv8.cfu содержит только разницу между конкретными релизами. Полный 1cv8.cf — всю конфигурацию целиком. Он нужен в трёх ситуациях.

Большое отставание по релизам

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

Конфигурация снята с поддержки

Это самый тяжёлый случай. Базы старой версии поставщика нет, и сравнение становится двухсторонним: каждое отличие выглядит как конфликт, даже если его внёс поставщик.

Приём практиков — сначала восстановить поддержку, потом обновлять:

  1. Найдите .cf того же типового релиза, который сейчас стоит в базе (номер виден в свойствах конфигурации).
  2. Выберите Конфигурация → Сравнить, объединить с конфигурацией из файла и укажите этот файл.
  3. На вопрос о постановке на поддержку ответьте согласием.
  4. В дереве сравнения снимите все флажки, чтобы не изменить ни одного объекта, и выполните объединение.

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

Переход на другую конфигурацию или редакцию

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

Самая дешёвая стратегия на будущее — выносить доработки в расширения (.cfe, механизм появился в платформе 8.3.6). Основная конфигурация остаётся типовой и обновляется за минуты. После обновления остаётся проверить, что расширения применились: платформа выдаёт предупреждение, если расширение перестало подходить к изменённой конфигурации.

Проверка базы после обновления

Обновление в тестовой копии — половина работы. Вторая половина — убедиться, что ничего не сломалось.

Проверка конфигурации

Запустите Конфигурация → Проверка конфигурации. Отметьте синтаксический контроль модулей для всех режимов запуска (тонкий клиент, сервер, внешнее соединение) и поиск ссылок на несуществующие объекты. Каждую ошибку нужно закрыть до переноса в рабочую базу.

Первый запуск в режиме 1С:Предприятие

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

Функциональная проверка

Проверьте всё, что затрагивали доработки и что обновил поставщик:

  • 📄 Создание и проведение ключевых документов: реализация, поступление, банк, зарплата.
  • 🖨 Доработанные печатные формы и отчёты.
  • 🔄 Обмены с сайтом, складом, другими базами.
  • 👥 Права доступа : войдите под пользователем с ограниченной ролью, а не только под администратором.

Хорошая проверка учёта — сравнить оборотно-сальдовую ведомость за закрытый период до и после обновления. Суммы должны совпасть. Если расходятся — переход что-то перепровёл, и разбираться нужно до переноса.

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

Есть два варианта. Сохранить результат тестовой копии в .cf и в рабочей базе выполнить то же объединение повторно. Или, если тестовая копия свежая и в рабочей за это время ничего не меняли в конфигурации, загрузить .cf целиком через Конфигурация → Загрузить конфигурацию из файла — поддержка при этом переносится вместе с файлом.

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

Ошибки после обновления и как их разобрать

Большинство проблем после объединения — следствие неверно выбранного режима для дважды изменённого объекта.

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

Частые промахи при объединении

  • ❌ Обновление сразу в рабочей базе. Если объединение ушло не туда, откат — только из резервной копии и с потерей данных, введённых после неё.
  • ❌ Пропуск предупреждения о ссылках на неотмеченные объекты. Конфигурация соберётся с битыми ссылками, проверка покажет десятки ошибок.
  • ❌ Снятие объекта с поддержки ради «быстрой» правки. Через год этот объект станет главным тормозом обновлений.
  • ❌ Проверка только под администратором. Новые роли и права поставщика могут закрыть пользователям доступ к доработанным объектам.

Автоматизация обновления нетиповых конфигураций

Если базы много или релизы выходят часто, ручное объединение становится узким местом. Автоматизация строится в два слоя.

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

Типовые шаги — выгрузка, обновление, применение — запускаются из командной строки:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Test" /N"Администратор" /P"пароль" /DisableStartupMessages /DumpIB "D:\Backup\before.dt" /Out "D:\Logs\dump.log"

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Test" /N"Администратор" /P"пароль" /DisableStartupMessages /UpdateCfg "D:\Templates\1cv8.cfu" /UpdateDBCfg /Out "D:\Logs\update.log"

Для серверной базы вместо /F указывают /S"сервер\имябазы". Ключ /UpdateCfg обновляет конфигурацию на поддержке, /UpdateDBCfg применяет изменения к базе.

Без конфликтов это работает сразу. Для нетиповой конфигурации нужны заранее подготовленные настройки объединения: их сохраняют в XML-файл из окна сравнения и передают параметром -Settings. Полный список параметров смотрите в документации платформы для своей версии.

Конвейер CI/CD

Команды разработки со своим конвейером обычно используют такой набор:

  • 🛠 1С:EDT и Git — исходники конфигурации хранятся как файлы, доработки видны в истории коммитов, слияние делается средствами Git.
  • 🛠 vanessa-runner — обёртка над пакетным режимом: сборка, обновление, загрузка расширений одной командой.
  • 🛠 Vanessa-Automation — сценарные тесты: проводят документы и сверяют результат после каждого релиза.
  • 🛠 Сервер сборок (Jenkins, GitLab CI) — запускает цепочку «новый релиз → объединение → проверка конфигурации → тесты → отчёт».

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

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

Можно ли обновить нетиповую 1С из пользовательского режима?
Нет. Автообновление рассчитано на типовую конфигурацию. Для доработанной оно либо не запустится, либо потребует снять изменения. Используйте Конфигуратор.
Сколько релизов можно пропустить?
Ограничения нет, но CFU подходит только к релизам из его описания. При большом отставании берите полный CF целевой версии и делайте одно объединение.
Что делать, если нет CF текущего релиза для восстановления поддержки?
Скачайте его из архива релизов на портале обновлений по подписке ИТС. Без него придётся сравнивать двухсторонне и разбирать все отличия вручную.
Сколько стоит обновление нетиповой конфигурации у подрядчика?
Ориентировочно от 1–2 часов работы программиста за релиз при мелких доработках до нескольких дней при сильно переписанной базе. Точную оценку дают после сравнения конфигураций.
Почему после обновления пропала моя доработка?
Для объекта выбрали режим «Взять из новой конфигурации поставщика». Восстановите её из сохранённого перед обновлением .cf через сравнение с файлом.