Доработанная 1С и новый релиз: обновление через сравнение и объединение
Содержание
Нетиповую конфигурацию 1С обновляют в Конфигураторе через Конфигурация → Поддержка → Обновить конфигурацию, указав файл нового релиза (.cf или .cfu). Платформа сравнивает три версии: вашу текущую, старую конфигурацию поставщика и новую. Всё, что поставщик и вы меняли одновременно, придётся разобрать вручную. Обновлять нетиповые конфигурации 1С:Предприятия нужно на копии базы, по одному релизу за раз, с проверкой после каждого шага.
Сложность обновления зависит не от размера доработок, а от того, сохранена ли связь с поставщиком. Если конфигурация стоит на поддержке с включённой возможностью изменения, обновление занимает от часа до дня. Если поддержку когда-то сняли полностью, сначала придётся её восстановить.
Что проверить до обновления нетиповой конфигурации
Начните с диагностики. Пять минут в Конфигураторе покажут, каким путём пойдёт обновление.
Режим поддержки
Откройте Конфигурация → Поддержка → Настройка поддержки. Возможны три ситуации:
- ✅ На поддержке, изменения разрешены. Нормальный случай для доработанной базы. Обновление пойдёт штатно.
- ⚠️ На поддержке, изменения запрещены. Конфигурация типовая, доработок в основной конфигурации нет. Обновляется как обычная.
- ❌ Поддержка снята. Платформа не знает, что было у поставщика. Трёхстороннего сравнения не будет, пока вы не вернёте конфигурацию на поддержку.
В этом же окне видно правило для каждого объекта: «не редактируется», «редактируется с сохранением поддержки» или «снят с поддержки». Объекты, снятые с поддержки, при обновлении не получат изменений поставщика. Отметьте их отдельно — после обновления их придётся сверить вручную.
Номер текущего релиза
Версия поставщика видна в том же окне настройки поддержки. В пользовательском режиме её показывает Справка → О программе. Запишите номер: от него зависит, подойдёт ли файл .cfu и сколько промежуточных релизов нужно пройти.
Список ваших доработок
Выполните Конфигурация → Сравнить конфигурации и выберите для сравнения «Основная конфигурация» и «Конфигурация поставщика». В дереве останутся только объекты, которые меняли у вас. Сохраните отчёт о сравнении в файл. Это опись доработок — по ней потом проверяют, что ничего не потерялось.
Резервные копии
Сделайте две копии:
- Выгрузку базы целиком:
Администрирование → Выгрузить информационную базув Конфигураторе, файл.dt. Для выгрузки нужен монопольный доступ — попросите пользователей выйти. - Файл текущей конфигурации:
Конфигурация → Сохранить конфигурацию в файл, файл.cf. Пригодится, если объединение пойдёт не так и нужно будет откатить только конфигурацию.
Первое обновление нетиповой
базы делайте на копии, а не на рабочей базе. Разверните .dt в новую базу и пройдите весь путь там.
Какой способ обновления выбрать
Способов три. Выбор зависит от того, на поддержке ли конфигурация, и от того, какой файл обновления у вас есть.
| Способ | Когда подходит | Риски |
|---|---|---|
Обновление из файла .cfu | Конфигурация на поддержке, текущий релиз входит в список релизов, которые поддерживает этот .cfu | Если релиз не подходит, файл просто не примется |
Обновление из полного .cf | Конфигурация на поддержке, нужно перескочить через несколько релизов или .cfu не подходит | Больше дважды измененных объектов, дольше разбор |
Сравнение и объединение с файлом .cf | Поддержка снята, нужно вернуть её или влить отдельные изменения | Ручной разбор каждого объекта, высокий риск ошибки |
Файлы релизов попадают в каталог шаблонов после установки дистрибутива обновления (запуск setup.exe из архива релиза). По умолчанию это %APPDATA%\1C\1cv8\tmplts. Внутри — папки по поставщику, конфигурации и версии, а в них файлы 1cv8.cf и 1cv8.cfu.
Почему нельзя перепрыгивать через релизы
У каждой конфигурации на базе Библиотеки стандартных подсистем есть обработчики обновления. Они выполняются при первом запуске после обновления и переводят данные в новый формат. Поставщик со временем удаляет обработчики очень старых версий. Если перескочить слишком далеко, часть данных останется в старом формате.
Безопасный порядок — идти по цепочке релизов, которую публикует поставщик в описании обновления. Промежуточные релизы можно обновлять через .cfu, а последний крупный скачок делать полным .cf, если так короче.
Как вернуть конфигурацию на поддержку
Без этого шага обновление нетиповой конфигурации превращается в ручную сверку тысяч объектов.
- Найдите
.cfтого же релиза поставщика, на котором конфигурацию сняли с поддержки. Не нового, а именно того. - Выполните
Конфигурация → Сравнить, объединить с конфигурацией из файлаи укажите этот файл. - Платформа предложит поставить конфигурацию на поддержку. Согласитесь.
- В окне сравнения снимите все флажки объединения. Ваша конфигурация не должна меняться — вы только восстанавливаете связь с поставщиком.
- Нажмите «Выполнить», затем обновите конфигурацию базы данных (
F7).
После этого откройте Конфигурация → Поддержка → Настройка поддержки и включите возможность изменения. Правило для своих объектов поставьте «редактируется с сохранением поддержки».
Если релиз неизвестен, ориентируйтесь по количеству различий. При сравнении с правильным .cf в дереве останутся только ваши доработки, а не сотни системных модулей.
Расширения и Библиотека стандартных подсистем
Почти все современные конфигурации фирмы 1С собраны на БСП. Это сильно влияет на то, сколько конфликтов будет при обновлении.
Где правки переживают обновление легче всего
БСП предусматривает места для доработок: общие модули с суффиксом Переопределяемый (например, ОбщегоНазначенияПереопределяемый). Поставщик старается не менять их содержимое между релизами. Правки, вынесенные туда, почти не конфликтуют.
Тяжелее всего обновляются:
- 🔴 модули менеджеров и объектов документов, куда вписаны куски кода посреди типовых процедур;
- 🔴 формы, в которых передвинуты или удалены типовые элементы;
- 🔴 общие модули БСП без суффикса
Переопределяемый— их поставщик меняет почти в каждом релизе.
Перенос доработок в расширения
Расширения конфигурации появились в платформе 8.3.6 и с тех пор стали основным способом дорабатывать типовые решения. Расширение не меняет основную конфигурацию. Типовая часть обновляется как обычная, а расширение остаётся на месте.
Обновление — хороший повод перенести часть доработок:
- новые реквизиты, формы и отчёты — в расширение целиком;
- изменения типовых процедур — через аннотации
&Перед,&После,&Вместои, в новых версиях платформы,&ИзменениеИКонтроль; - печатные формы и обработки — во внешние файлы или в расширение.
После обновления основной конфигурации расширение нужно проверить: если поставщик переименовал реквизит или процедуру, на которую оно ссылается, платформа выдаст ошибку при подключении расширения. Именно для этого &ИзменениеИКонтроль полезнее &Вместо: он сам подсветит, что исходный фрагмент типового кода изменился.
Обновление нетиповой конфигурации 1С по шагам
Ниже порядок для конфигурации на поддержке с разрешёнными изменениями.
Шаг 1. Запуск обновления
- Откройте копию базы в Конфигураторе.
- Выберите
Конфигурация → Поддержка → Обновить конфигурацию. - Укажите «Выбор файла обновления» и выберите
1cv8.cfuили1cv8.cfиз каталога шаблонов. - Платформа покажет окно сравнения трёх конфигураций.
Шаг 2. Фильтр дважды измененных объектов
В окне сравнения включите фильтр «Показывать только дважды измененные свойства». Останутся объекты, которые меняли и вы, и поставщик. Всё прочее платформа объединит сама: ваши изменения сохранит, изменения поставщика примет.
Для каждого дважды измененного объекта есть варианты:
- взять из новой конфигурации поставщика — ваши правки в этом свойстве пропадут;
- оставить из основной конфигурации — пропадут изменения поставщика;
- объединить — для модулей; платформа попробует слить код построчно.
Шаг 3. Разбор модулей
Для модуля откройте сравнение (двойной щелчок по свойству «Модуль»). Слева код основной конфигурации, справа — новой конфигурации поставщика. Отметьте флажками процедуры, которые нужно взять у поставщика.
Удобный приём: выбрать «Объединить с приоритетом новой конфигурации поставщика», а свои вставки потом проверить по описи доработок. Код поставщика тогда будет актуальным, а свои десять строк проще вернуть, чем искать, что изменилось в чужих трёхстах.
Для больших модулей подключите внешний инструмент сравнения. В параметрах Конфигуратора (Сервис → Параметры) можно указать стороннюю программу, например KDiff3. Он показывает трёхстороннее слияние с общим предком нагляднее штатного окна.
Шаг 4. Разбор форм
Управляемые формы объединять сложнее кода. Если поставщик сильно переработал форму, проще взять её из новой конфигурации и заново внести свои элементы. Модуль формы при этом разбирайте отдельно, как обычный модуль.
Шаг 5. Выполнение и обновление базы данных
- Нажмите «Выполнить».
- Обновите конфигурацию базы данных:
Конфигурация → Обновить конфигурацию базы данных(F7). Этот шаг требует монопольного доступа, если меняется структура данных. - Изучите список изменений структуры, который покажет платформа, и подтвердите.
- Запустите базу в режиме 1С:Предприятие. Начнётся выполнение обработчиков обновления — дождитесь окончания.
Если до конца цепочки нужно пройти ещё несколько релизов, запускайте пользовательский режим после каждого. Обработчики одного релиза должны отработать до следующего обновления.
Проверка после обновления
Обновление прошло без ошибок — ещё не значит, что база работает.
Синтаксический контроль
Запустите Конфигурация → Проверка конфигурации. Включите расширенную проверку и режимы клиента и сервера, которые используются в базе. Типичная находка — вызов процедуры, которую поставщик переименовал или удалил, из вашего модуля.
Проверка по описи доработок
Ещё раз выполните сравнение основной конфигурации с конфигурацией поставщика. Сопоставьте результат с отчётом, сохранённым до обновления. Каждая доработка из старого списка должна найтись в новом — или быть сознательно удалена.
Функциональная проверка
Пройдите ключевые сценарии на копии базы:
- 📄 создание и проведение основных документов, особенно доработанных;
- 🖨️ печать доработанных печатных форм;
- 📊 формирование отчётов, в которые вносили правки;
- 🔄 обмены с другими базами и сайтом;
- 🔐 вход под пользователями с урезанными правами — новые объекты поставщика могут не попасть в ваши собственные роли.
Сравните остатки и обороты ключевых счетов или регистров до и после обновления за один и тот же период. Расхождение — сигнал, что обработчик обновления или ваш код отработал неверно.
Ошибки при обновлении нетиповых конфигураций
Отдельная ловушка — база в хранилище конфигурации. Обновлять её нужно с захватом объектов в хранилище, иначе изменения не поместятся туда. Договоритесь с разработчиками, чтобы на время обновления никто не держал объекты захваченными.
Как упростить следующие обновления
Каждое новое обновление нетиповой конфигурации дорожает, если доработки копятся бессистемно. Несколько правил снижают цену.
Правила для разработчиков
- Новый функционал — в расширения или в отдельные объекты с префиксом, например
кс_ДокументЗаявка. Свои объекты сразу видно в дереве. - Вставки в типовой код помечать комментариями с датой и автором:
// кс 2026-03 началои// кс конец. Так их легко найти при разборе модулей. - Не удалять и не переименовывать типовые объекты и элементы форм. Лучше скрыть.
- Обновляться регулярно. Разрыв в 3-4 релиза разбирается за день, в 30 релизов — за недели.
Пакетный режим
Рутинную часть можно запускать из командной строки без открытия Конфигуратора:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F "D:\Bases\Copy" /N "Admin" /P "" /UpdateCfg "D:\tmplts\1cv8.cfu" /UpdateDBCfg /Out "D:\logs\update.log"
/UpdateCfg обновляет конфигурацию на поддержке из файла, /UpdateDBCfg применяет изменения к базе данных, /Out пишет лог. Путь к платформе и базе подставьте свои. Для дважды измененных объектов пакетный режим не заменит ручной разбор: он подходит для промежуточных релизов, где ваши доработки не пересекаются с изменениями поставщика.
Перед запуском пакетом можно автоматически делать выгрузку /DumpIB "D:\backup\base.dt". После обновления сценарии проверки прогоняют инструменты автотестирования, например открытый фреймворк Vanessa Automation.
Если команда работает в 1C:EDT с хранением конфигурации в git, история доработок видна по коммитам. Это заметно упрощает поиск своих правок при трёхстороннем слиянии.