Решение задач 1С:Предприятие 8 на примерах

Обновление конфигурации 1С: типовой, платформы и сервера

АлгоритмыОпубликовано

Обновление конфигурации — одна из самых частых регулярных операций администратора 1С. Для типовой конфигурации на поддержке это набор шагов: резервная копия, загрузка файла обновления, объединение с доработками, обновление базы данных и проверка. В статье разобраны файлы .cfu и .cf, режимы поддержки, обновление через расширения, а также отдельные операции — обновление платформы и сервера 1С.

Что такое поддержка и как обновляется типовая конфигурация

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

  • Объект поставщика не редактируется — менять его нельзя, при обновлении он заменяется поставкой.
  • Редактируется с сохранением поддержки — вы можете вносить изменения, а при обновлении они сравниваются с изменениями поставщика.
  • Снят с поддержки — объект становится вашим, поставщик его больше не обновляет. Это односторонний шаг, который усложняет все дальнейшие обновления.

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

Подготовка: резервная копия

Перед любым обновлением сделайте копию. Минимум — выгрузка в файл .dt: «Администрирование → Выгрузить информационную базу». Для файловой базы дополнительно скопируйте каталог при закрытых сеансах, для клиент-серверной — сделайте резервную копию средствами СУБД. Сохраните также текущую конфигурацию в файл: «Конфигурация → Сохранить конфигурацию в файл». Проверьте, что сеансов пользователей нет: для обновления конфигурации базы данных нужен монопольный доступ, а блокировку начала сеансов удобно включить заранее.

Обновление типовой конфигурации через Конфигуратор

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

То же самое можно выполнить из командной строки, например в сценарии планового обновления: ключ /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. Прочитайте требования вашей конфигурации: минимальный релиз платформы, поддерживаемый режим совместимости.
  2. Сделайте копию базы и проверьте работу на тестовой копии новой платформой.
  3. Установите платформу на компьютеры пользователей и на сервер приложений. Клиент и сервер в клиент-серверной схеме должны соответствовать друг другу по версии.
  4. Задайте версию в свойствах базы или оставьте автоматический выбор.

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

Обновление сервера 1С

Сервер обновляется по тому же принципу: новый релиз устанавливается рядом со старым, затем служба «Агент сервера 1С:Предприятия» переключается на новый ragent (меняется путь запуска в параметрах службы или служба переустанавливается). Каталог кластера с настройками сохраняется, но перед переключением сделайте его копию. Обновляйте сервер в нерабочее время: сеансы будут прерваны. Затем обновите клиентов до нужной версии и проверьте подключение. Основной подход тот же: сначала тестовый стенд, затем рабочий кластер.

Типичные ошибки

  • Обновление без резервной копии.
  • Загрузка файла обновления, не рассчитанного на текущую версию конфигурации: платформа покажет несовпадение версий, нужно поставить промежуточные обновления по порядку.
  • Снятие с поддержки «на всякий случай».
  • Повышение режима совместимости одновременно с обновлением конфигурации и платформы: так невозможно понять, что сломало работу.
  • Запуск обновления базы при работающих пользователях.
  • Игнорирование сообщений обработчиков обновления: часть данных остаётся незаполненной.
ФайлЧто содержитДля чего
.cfuОбновление между версиямиОбновление типовой на поддержке
.cfПолная конфигурацияПоставка, сравнение, загрузка в базу
.cfeРасширение конфигурацииДоработки без изменения типовой
.dtКонфигурация вместе с даннымиРезервная копия, перенос базы

Актуальность для новых версий

Порядок обновления через пункт «Конфигурация → Поддержка → Обновить конфигурацию» остаётся прежним во всех релизах 8.3. В современных типовых решениях основной способ доставки доработок — расширения (.cfe), а обновление самой конфигурации выполняется без объединения. Режим совместимости задаёт набор поддерживаемых поведений платформы; перед повышением совместимости и обновлением платформы изучите требования вашей конфигурации к минимальному релизу платформы. Ключи командной строки /UpdateCfg и /UpdateDBCfg доступны во всех актуальных релизах.

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

Чем отличаются файлы cfu и cf?

Файл .cfu — это обновление, которое переводит конфигурацию с определённых предыдущих версий на новую. Файл .cf — полная конфигурация (поставка или выгрузка из базы), которую можно загрузить целиком или использовать как источник для сравнения и объединения.

Что делать, если конфигурация доработана и обновление выдаёт конфликты?

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

Нужна ли резервная копия перед обновлением?

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

Можно ли открыть базу более новой платформой, а потом вернуться на старую?

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

Отладка в 1С: точки останова и отладка на сервере

Алгоритмы

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

Штрихкод в 1С: контрольная цифра EAN-13, генерация, поиск и печать

Алгоритмы

Практический разбор штрихкодов в 1С: расчёт контрольной цифры EAN-13 и EAN-8, внутренние уникальные коды, поиск товара по штрихкоду, вывод картинки в печатную форму и работа со сканером.

Процедуры и функции в 1С: синтаксис, параметры, экспорт и общие модули

Алгоритмы

Разбор процедур и функций встроенного языка 1С: отличия, параметры, возврат нескольких значений, экспортные методы, флаги общих модулей, рекурсия и динамическое выполнение кода.

Конфигуратор 1С для программиста: как зайти, полезные функции и горячие клавиши

Алгоритмы

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