Обновление конфигурации 1С: типовой, платформы и сервера
Обновление конфигурации — одна из самых частых регулярных операций администратора 1С. Для типовой конфигурации на поддержке это набор шагов: резервная копия, загрузка файла обновления, объединение с доработками, обновление базы данных и проверка. В статье разобраны файлы .cfu и .cf, режимы поддержки, обновление через расширения, а также отдельные операции — обновление платформы и сервера 1С.
Что такое поддержка и как обновляется типовая конфигурация
Типовая конфигурация поставляется «на поддержке»: платформа запоминает, какие объекты пришли от поставщика, и при обновлении сравнивает три версии — предыдущую поставку, вашу текущую конфигурацию и новую поставку. Если вы объект не меняли, он просто заменяется новым. Если меняли — возникает конфликт, и решение за вами. Поддержка настраивается для всей конфигурации и отдельных объектов. Основные режимы:
- Объект поставщика не редактируется — менять его нельзя, при обновлении он заменяется поставкой.
- Редактируется с сохранением поддержки — вы можете вносить изменения, а при обновлении они сравниваются с изменениями поставщика.
- Снят с поддержки — объект становится вашим, поставщик его больше не обновляет. Это односторонний шаг, который усложняет все дальнейшие обновления.
Чтобы разрешить изменения, откройте «Конфигурация → Поддержка → Настройка поддержки» и включите возможность изменения конфигурации; формулировки в диалоге в разных релизах слегка отличаются. Старайтесь снимать с поддержки как можно меньше объектов: чем больше «своего» в типовых модулях, тем сложнее обновление.
Подготовка: резервная копия
Перед любым обновлением сделайте копию. Минимум — выгрузка в файл .dt: «Администрирование → Выгрузить информационную базу». Для файловой базы дополнительно скопируйте каталог при закрытых сеансах, для клиент-серверной — сделайте резервную копию средствами СУБД. Сохраните также текущую конфигурацию в файл: «Конфигурация → Сохранить конфигурацию в файл». Проверьте, что сеансов пользователей нет: для обновления конфигурации базы данных нужен монопольный доступ, а блокировку начала сеансов удобно включить заранее.
Обновление типовой конфигурации через Конфигуратор
- Откройте базу в Конфигураторе и выберите «Конфигурация → Поддержка → Обновить конфигурацию».
- Укажите источник: поиск доступных обновлений в каталоге шаблонов или выбор файла обновления вручную. Файл с расширением
.cfu— обновление, файл.cf— полная поставка. - Выберите нужную версию из списка доступных переходов. Если поставка содержит несколько вариантов, платформа покажет подходящие.
- Если вы ничего не меняли, обновление пройдёт без вопросов. Если менялись типовые объекты, откроется окно сравнения и объединения с тремя версиями: основная, предыдущая поставка и новая поставка.
- Разберите конфликты. Для каждого объекта выберите: принять новое от поставщика, оставить своё или объединить изменения вручную. Особенно внимательно проверяйте модули: автоматическое объединение не гарантирует, что результат логически корректен.
- Завершите обновление и обновите конфигурацию базы данных: «Конфигурация → Конфигурация базы данных → Обновить конфигурацию базы данных» (
F7). Платформа покажет список структурных изменений, и пользователи не должны работать в этот момент. - Запустите базу в пользовательском режиме: при первом входе выполняются обработчики обновления, и вход может занять несколько минут.
То же самое можно выполнить из командной строки, например в сценарии планового обновления: ключ /UpdateCfg загружает обновление в конфигурацию, а /UpdateDBCfg обновляет структуру базы данных.
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Trade" /N "Администратор" /P "" ^ /UpdateCfg "D:\Updates\1cv8.cfu" /UpdateDBCfg /Out "D:\Logs\update.log"
Если пакетное обновление остановилось на конфликте, который требует решения человека, его придётся довыполнить в графическом окне. Полностью автоматическим обновление бывает только для конфигураций без доработок.
Доработки: сравнение, объединение и расширения
Если вы сильно изменили типовые объекты, на каждое обновление будет уходить много времени. Выбор такой:
- Объединение. Классический путь для старых доработок: обновление через сравнение с конфликтами. Подходит, если доработок немного.
- Расширения. Доработки выносятся в отдельный объект, а типовая конфигурация остаётся «нетронутой». Обновление типовой тогда проходит без объединения, а расширение проверяется на совместимость отдельно. Как подключать расширения и обновлять типовую с ними, описано в статье про расширения конфигурации.
- Снятие с поддержки. Крайняя мера: свою ветку придётся сопровождать и обновлять вручную.
Обновление конфигурации базы данных и обработчики обновления
Загрузка новой конфигурации меняет только конфигурацию. Чтобы структура базы данных совпала с ней, нужна реструктуризация — команда «Обновить конфигурацию базы данных». Она создаёт и изменяет таблицы и индексы; на больших базах операция занимает много времени. Часть изменений структуры платформа может применить динамически, без отключения пользователей, но для сложных изменений требуется монопольный режим.
В конфигурациях на БСП после структурного обновления срабатывают обработчики обновления информационной базы: они заполняют новые реквизиты, переносят данные, пересчитывают итоги. Обработчики регистрируются в процедуре подсистемы обновления версии и привязаны к версии конфигурации (свойство «Версия» в свойствах конфигурации). Пример регистрации в типовой процедуре:
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "1.2.5.10";
Обработчик.Процедура = "МойМодуль.ЗаполнитьНовыйРеквизит";
Обработчик.Комментарий = "Заполнение нового реквизита для существующих записей";
КонецПроцедуры
Отдельные обработчики, выполняющиеся долго, БСП умеет запускать отложенно: пользователи работают, а данные дообрабатываются в фоне. Подробности зависят от версии БСП, которую вы используете.
Обновление платформы 1С
Новая версия платформы устанавливается рядом со старыми, в отдельный каталог вроде C:\Program Files\1cv8\8.3.24.1548, поэтому можно держать несколько релизов и переключаться между ними в свойствах базы в окне запуска. Порядок такой:
- Прочитайте требования вашей конфигурации: минимальный релиз платформы, поддерживаемый режим совместимости.
- Сделайте копию базы и проверьте работу на тестовой копии новой платформой.
- Установите платформу на компьютеры пользователей и на сервер приложений. Клиент и сервер в клиент-серверной схеме должны соответствовать друг другу по версии.
- Задайте версию в свойствах базы или оставьте автоматический выбор.
Режим совместимости конфигурации задаётся в свойствах конфигурации («Свойства конфигурации → Совместимость → Режим совместимости»). Он нужен, чтобы после обновления платформы поведение системы не менялось: пока режим совместимости низкий, новые возможности отключены. Повышайте его осознанно и проверяйте работу после каждого шага. Не забывайте, что открытая более новой платформой база может оказаться несовместимой со старым клиентом.
Обновление сервера 1С
Сервер обновляется по тому же принципу: новый релиз устанавливается рядом со старым, затем служба «Агент сервера 1С:Предприятия» переключается на новый ragent (меняется путь запуска в параметрах службы или служба переустанавливается). Каталог кластера с настройками сохраняется, но перед переключением сделайте его копию. Обновляйте сервер в нерабочее время: сеансы будут прерваны. Затем обновите клиентов до нужной версии и проверьте подключение. Основной подход тот же: сначала тестовый стенд, затем рабочий кластер.
Типичные ошибки
- Обновление без резервной копии.
- Загрузка файла обновления, не рассчитанного на текущую версию конфигурации: платформа покажет несовпадение версий, нужно поставить промежуточные обновления по порядку.
- Снятие с поддержки «на всякий случай».
- Повышение режима совместимости одновременно с обновлением конфигурации и платформы: так невозможно понять, что сломало работу.
- Запуск обновления базы при работающих пользователях.
- Игнорирование сообщений обработчиков обновления: часть данных остаётся незаполненной.
| Файл | Что содержит | Для чего |
|---|---|---|
.cfu | Обновление между версиями | Обновление типовой на поддержке |
.cf | Полная конфигурация | Поставка, сравнение, загрузка в базу |
.cfe | Расширение конфигурации | Доработки без изменения типовой |
.dt | Конфигурация вместе с данными | Резервная копия, перенос базы |
Актуальность для новых версий
Порядок обновления через пункт «Конфигурация → Поддержка → Обновить конфигурацию» остаётся прежним во всех релизах 8.3. В современных типовых решениях основной способ доставки доработок — расширения (.cfe), а обновление самой конфигурации выполняется без объединения. Режим совместимости задаёт набор поддерживаемых поведений платформы; перед повышением совместимости и обновлением платформы изучите требования вашей конфигурации к минимальному релизу платформы. Ключи командной строки /UpdateCfg и /UpdateDBCfg доступны во всех актуальных релизах.
Частые вопросы
Чем отличаются файлы cfu и cf?
Файл .cfu — это обновление, которое переводит конфигурацию с определённых предыдущих версий на новую. Файл .cf — полная конфигурация (поставка или выгрузка из базы), которую можно загрузить целиком или использовать как источник для сравнения и объединения.
Что делать, если конфигурация доработана и обновление выдаёт конфликты?
Откройте окно сравнения и объединения: для каждого объекта решите, брать изменение поставщика, оставить своё или объединить. Чем меньше типовых объектов изменено, тем проще обновление, поэтому доработки лучше переносить в расширения.
Нужна ли резервная копия перед обновлением?
Да, обязательно. Выгрузите базу в .dt или скопируйте каталог файловой базы при закрытых сеансах. Если обновление пройдёт неудачно, вернуться можно только из копии.
Можно ли открыть базу более новой платформой, а потом вернуться на старую?
Новая платформа может изменить внутренний формат базы, и старый релиз после этого базу не откроет. Поэтому перед обновлением платформы делайте копию и сначала проверяйте работу на тестовой базе.