Доработанная база 1С не обновляется автоматически: обновление через конфигуратор шаг за шагом

· 10 мин

Содержание

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

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

С чего начать: почему обновление не идёт и что именно изменено

Автоматическое обновление (Администрирование → Обслуживание → Обновление версии программы в БП 3.0, ЗУП 3.1 и УТ 11) работает только для конфигурации, которую не трогали. Как только в конфигураторе включили возможность изменений и что-то поправили, обработка сообщает, что конфигурация изменена, и отправляет обновлять базу в конфигураторе.

Прежде чем что-то делать, выясните три вещи.

  1. Режим поддержки. Откройте конфигуратор, затем Конфигурация → Поддержка → Настройка поддержки. В окне видно, на поддержке ли конфигурация и разрешены ли изменения.
  2. Правила для объектов. В том же окне у каждого объекта стоит одно из правил:
    • 🔒 «Объект поставщика не редактируется» — объект типовой, обновится сам;
    • ✏️ «Объект поставщика редактируется с сохранением поддержки» — правки есть, при обновлении будет объединение;
    • ✂️ «Объект поставщика снят с поддержки» — обновление этот объект не тронет вообще.
  3. Что поменяли по факту. Выполните Конфигурация → Сравнить конфигурации, слева выберите «Конфигурация поставщика», справа — «Основная конфигурация». В дереве останутся только отличающиеся объекты. Отчёт о сравнении можно вывести в текст и сохранить: это готовый список доработок.

Если в сравнении всего пара объектов и правки в них случайные (например, кто-то открыл модуль и поставил пробел), проще вернуть типовой вариант и снова закрыть изменения.

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

Какая у вас ситуация с конфигурацией?

Подготовка: копии, файлы релизов и порядок версий

Обновление доработанной базы — операция, после которой нельзя нажать «отменить». Сделайте выгрузку базы в .dt до первого шага и не работайте на рабочей базе, если доработок больше десятка объектов.

Что подготовить:

  • 💾 Копию базы . В конфигураторе Администрирование → Выгрузить информационную базу. Для выгрузки нужен монопольный доступ: попросите пользователей выйти. Для клиент-серверной базы дополнительно сделайте резервную копию средствами СУБД.
  • 📄 Файл текущей конфигурации. Конфигурация → Сохранить конфигурацию в файл — получите .cf со всеми вашими правками. Пригодится для повторного сравнения.
  • 📦 Дистрибутив обновления. Файл 1cv8.cfu (пакет обновления) или 1cv8.cf (полная поставка). Пакет .cfu подходит только для тех версий, с которых он рассчитан обновлять.
  • 🗺️ Цепочку релизов. В описании каждого релиза указано, с каких версий на него можно перейти. Между вашей версией и актуальной часто лежат 3-5 обязательных промежуточных релизов. Перескакивать нельзя: обработчики обновления данных рассчитаны на последовательный переход.
  • 🧩 Версию платформы. У каждого релиза есть минимальный номер платформы. Если ваша платформа ниже — обновите её первой.

Пример. Стоит БП 3.0 релиз 3.0.150, актуальный — 3.0.170. В описании 3.0.170 написано, что обновляться можно с 3.0.165 и выше. Значит, сначала нужен промежуточный релиз из диапазона, который принимает 3.0.150, потом 3.0.165, потом 3.0.170. Каждый шаг — отдельное объединение и отдельный запуск в пользовательском режиме.

Обновление изменённой типовой конфигурации с объединением

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

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

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

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

Нетиповая база: снятие с поддержки и как вернуть её обратно

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

Снимать поддержку целиком почти никогда не нужно. Если надо переписать один объект, достаточно правила «Объект поставщика снят с поддержки» только для него. Остальная конфигурация продолжит получать обновления.

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

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

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

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

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

Перед объединением сохраните доработки в виде, удобном для проверки. Тогда после обновления вы сможете убедиться, что ничего не пропало.

Что выгрузить:

  • 📑 Отчёт сравнения основной конфигурации с конфигурацией поставщика. Это перечень доработанных объектов, по нему потом проверяете результат.
  • 🗂️ Конфигурацию в файлы: Конфигурация → Выгрузить конфигурацию в файлы. Получится каталог с XML и модулями в виде текста. Его можно сравнить любым инструментом для текстовых файлов или положить в систему контроля версий.
  • 💾 Файл .cf доработанной версии — уже сделан на этапе подготовки.
  • ⚙️ Настройки объединения. Если обновляетесь регулярно, сохраните настройки объединения из окна сравнения в файл. В следующий раз режимы для тех же объектов подставятся автоматически.

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

Перенос доработок в расширение

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

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

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

Ручное сравнение и объединение конфигураций

Когда автоматическое объединение выдаёт десятки конфликтов, работают вручную по копии базы.

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

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

Автоматизация: пакетный запуск и сервисы поддержки

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

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

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

Путь к платформе и номер версии подставьте свои. Первая команда делает выгрузку, вторая ставит обновление и сразу применяет его к базе. Результат ищите в файле журнала из параметра /Out.

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

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

Что дают сервисы поддержки. С действующим договором сопровождения у вас есть доступ к дистрибутивам всех релизов и описаниям цепочки обновлений. Базы без доработок обновляются прямо из программы через интернет -поддержку. Для доработанных баз многие обслуживающие партнёры берут обновление на себя: ориентировочно от 1 500-3 000 ₽ за релиз для слабо изменённой базы и от 5 000-15 000 ₽ и выше для сильно доработанной.

Частые ошибки при обновлении доработанной базы

  • ❌ Ставят последний релиз, пропуская промежуточные. Объединение может пройти, но обработчики обновления данных сработают неверно. Итог — пустые реквизиты и неверные остатки.
  • ❌ Выбирают «Взять из новой конфигурации поставщика» для всего сразу. Доработки исчезают молча, а замечают это через неделю, когда не формируется своя печатная форма.
  • ❌ Не запускают базу в пользовательском режиме после обновления. Структура обновлена, а данные — нет. Обновление данных стартует только при входе администратора в предприятие.
  • ❌ Обновляют копию, а переносят .dt из копии в рабочую базу через день. Всё, что пользователи ввели за этот день, пропадёт. Переносить нужно .cf, а не данные.
  • ❌ Удаляют расширение «чтобы не мешало». Данные, которые хранились в реквизитах расширения, при удалении теряются.
Можно ли обновить изменённую конфигурацию из пользовательского режима?
Нет. Обработка «Обновление версии программы» работает только с конфигурацией без изменений. Доработанную базу обновляют через конфигуратор.
Сохранятся ли данные, если конфигурация была изменена?
Да. Документы, справочники и регистры остаются в базе при любом режиме объединения. Риск касается только доработок кода и форм.
Чем .cfu отличается от .cf при обновлении?
Пакет .cfu содержит только изменения и принимается лишь с определённых версий. Полный .cf подходит с любой версии, но объединение по нему идёт дольше.
Как понять, что обновление данных после релиза прошло?
При входе в предприятие не появляется окно обновления, а в Справка → О программе стоит номер нового релиза.
Что делать, если после объединения база выдаёт ошибки в модулях?
Запустите проверку конфигурации с синтаксическим контролем, найдите модуль с ошибкой и сравните его с новой поставкой. Чаще всего ваша правка ссылается на процедуру, которую поставщик переименовал.