Как выполнить ручное обновление конфигурации 1С из файла и восстановить адресный классификатор

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

В процессе администрирования систем на платформе «1С:Предприятие 8» специалисты часто сталкиваются с ситуациями, когда стандартное автоматическое обновление невозможно или нецелесообразно. Например, когда у компании временно закончилась активная подписка на информационно-технологическое сопровождение (1С:КП / ИТС), но ранее были легально загружены файлы обновлений, или когда требуется перенести базу на другой сервер без потери конфигурационных изменений. Параллельно с этим могут возникать сопутствующие проблемы, такие как сбои адресного классификатора ФИАС/ГАР при миграции данных.

В этой статье мы подробно разберем, как правильно выполнять ручное обновление конфигураций 1С (на примере «1С:Управление торговлей 11.4») с помощью файлов обновлений, проанализируем юридическую сторону этого процесса, а также изучим механизм восстановления поврежденного адресного классификатора через редактирование регистра сведений РегистрСведений.АдресныеОбъекты.

Различие между файлами обновления .cf и .cfu

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

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

Как подготовить файлы обновлений без запуска стандартного установщика

Если мы не хотим запускать программу установки шаблонов setup.exe на рабочем сервере, чтобы избежать захламления диска или системных каталогов, мы можем извлечь необходимые файлы вручную. Рассмотрим этот алгоритм подробнее:

  1. Загрузим архив с обновлением конфигурации с официального портала 1С.
  2. Используем любой современный архиватор (например, 7-Zip). Нажмем правой кнопкой мыши на дистрибутив и выберем пункт «Распаковать».
  3. Внутри распакованного каталога мы найдем файлы обновления, среди которых ключевым является файл с расширением .cfu.
  4. Если нам требуется получить чистый файл .cf обновленной версии, а у нас уже развернута база этой версии, откроем ее в режиме «Конфигуратор», перейдем в меню Конфигурация — Поддержка — Настройка поддержки и нажмем кнопку «Сохранить в файл». Полученный файл можно использовать для обновления других баз.

Пошаговое руководство по ручному обновлению через Конфигуратор

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

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

Юридическая правомерность обновлений после окончания подписки ИТС

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

Согласно лицензионной политике фирмы «1С», правообладатель разрешает устанавливать и использовать только те релизы и обновления конфигураций, которые были официально выпущены в период действия вашего договора сопровождения (1С:КП / ИТС). Если обновление вышло до даты окончания вашей подписки, и вы успели его скачать — вы имеете полное юридическое право использовать его для обновления своих баз данных в любое время. Установка обновлений, выпущенных после окончания срока действия ИТС, является нарушением лицензионного соглашения.

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

Решение проблемы с пропавшим адресным классификатором (ФИАС/ГАР)

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

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

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

Способ 1. Программное восстановление записей в регистре сведений

Посмотрим, как с помощью программного кода в обработке восстановить запись о пропавшем регионе в регистре сведений АдресныеОбъекты. Нам потребуется знать уникальный идентификатор (GUID) региона согласно государственному адресному реестру (ГАР).


// Процедура для восстановления записи региона в адресном классификаторе
Процедура ВосстановитьРегиональныйОбъект(КодСубъекта, ИмяРегиона, ИдентификаторРегиона) Экспорт
    
    // Создаем менеджер записи регистра
    МенеджерЗаписи = РегистрыСведений.АдресныеОбъекты.СоздатьМенеджерЗаписи();
    
    // Задаем ключевые измерения для идентификации записи
    МенеджерЗаписи.Идентификатор = Новый УникальныйИдентификатор(ИдентификаторРегиона);
    
    // Заполняем ресурсы и дополнительные реквизиты объекта
    МенеджерЗаписи.Наименование = ИмяРегиона;
    МенеджерЗаписи.ТипОбъекта = "Регион";
    МенеджерЗаписи.КодСубъектаРФ = КодСубъекта;
    МенеджерЗаписи.ДополнительныеДанные = "Региональный узел классификатора";
    
    Попытка
        // Записываем данные с замещением существующих некорректных записей
        МенеджерЗаписи.Записать(Истина);
        Сообщить("Запись региона успешно добавлена в базу данных: " + ИмяРегиона);
    Исключение
        ЗаписьЖурналаРегистрации("АдресныйКлассификатор.Ошибка", УровеньЖурналаРегистрации.Предупреждение,,, ОписаниеОшибки());
        ВызватьИсключение "Не удалось обновить запись регистра АдресныеОбъекты!";
    КонецПопытки;
    
КонецПроцедуры

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


// Запрос для анализа заполненности регистров классификатора
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	АдресныеОбъекты.КодСубъектаРФ КАК КодРегиона,
    |	АдресныеОбъекты.Наименование КАК НазваниеРегиона,
    |	АдресныеОбъекты.Идентификатор КАК Идентификатор
    |ИЗ
    |	РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
    |ГДЕ
    |	АдресныеОбъекты.ТипОбъекта = ""Регион""";

РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
    Сообщить("Внимание: В регистре адресных объектов отсутствуют корневые записи регионов!");
КонецЕсли;

Способ 2. Восстановление классификатора через загрузку ФИАС/ГАР из папки на диске

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

  1. Скачаем актуальные архивы данных ГАР (Государственного адресного реестра) по необходимым нам регионам. Сделать это можно бесплатно на портале Федеральной налоговой службы РФ или на ресурсах поддержки 1С.
  2. Поместим скачанные архивные файлы в отдельную папку на жестком диске нашего компьютера, не распаковывая сами ZIP-архивы регионов.
  3. Запустим 1С под правами администратора и перейдем в раздел Администрирование — Интернет-поддержка и сервисы — Адресный классификатор.
  4. Нажмем кнопку «Очистить адресные сведения». Эта операция полностью очистит поврежденный локальный кэш и удалит некорректные записи из базы данных, подготовив систему к чистой установке.
  5. Нажмем кнопку «Загрузить классификатор». В открывшейся форме выберем переключатель «Из папки на диске» и укажем путь к каталогу, куда мы сохранили скачанные архивы ФИАС/ГАР.
  6. Отметим флажками нужные нам регионы и запустим процесс загрузки. Программа самостоятельно создаст правильные записи в регистре РегистрСведений.АдресныеОбъекты, и адресный ввод снова заработает корректно.

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

← На главную