Почему не обновляется адресный классификатор по Москве в 1С:Управление торговлей и как это исправить?

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

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

Анализируем причину: почему именно Москва?

Прежде всего, проанализируем специфику данных. Москва — это самый объемный регион в классификаторе. В формате ГАР (Государственный адресный реестр) количество объектов, связей и исторических записей по Москве измеряется сотнями тысяч и миллионами строк. Процесс загрузки такого массива данных требует колоссальных ресурсов от сервера 1С:Предприятия и СУБД. Когда система пишет об «аварийном завершении», это чаще всего означает, что какой-то из процессов (фоновое задание или рабочий процесс rphost) был принудительно остановлен операционной системой или самим кластером 1С из-за превышения лимитов.

Шаг 1. Настройка ресурсов сервера и таймаутов фоновых заданий

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

  1. Откроем консоль «Администрирование серверов 1С Предприятия».
  2. Перейдем в свойства нашего кластера и проанализируем параметры «Таймаут завершения процесса» и «Безопасный расход памяти за один вызов».
  3. Если для рабочего процесса rphost установлен лимит памяти (например, 2-4 ГБ), загрузка Москвы может его легко превысить. Попробуем временно увеличить эти показатели или установить их в значение «0» (не ограничено) на период загрузки.
  4. Проверим параметр «Максимальный объем памяти рабочих процессов». Если сервер нагружен другими задачами, загрузка тяжелого классификатора может вытеснять другие процессы, что приведет к их перезапуску.

Шаг 2. Проверка прав доступа и временных папок (Temp)

Выясним причину, связанную с окружением. При загрузке классификатора 1С сначала скачивает файлы во временную директорию. Проанализируем состояние дисковой подсистемы:

Часто сервер 1С работает под учетной записью USR1CV8. Нам необходимо убедиться, что у этой учетной записи есть полные права на папку временных файлов (обычно это C:\Windows\Temp или папка профиля пользователя в AppData\Local\Temp). Если на системном диске недостаточно места (Москве в распакованном виде требуется несколько гигабайт свободного пространства для временных файлов), процесс прервется без объяснения причин.

Рассмотрим также влияние антивирусного ПО. При парсинге ГАР создается огромное количество мелких файлов. Рекомендуется временно отключить сканирование папок srvinfo и Temp на сервере на время операции.

Шаг 3. Оптимизация SQL-сервера и лога транзакций

Загрузка классификатора — это не просто копирование файлов, а массовая запись в таблицы базы данных, такие как АдресныеОбъекты. Посмотрим, что происходит на стороне SQL:

Если ваша база данных использует Full Recovery Model (Полную модель восстановления), то каждая вставленная запись фиксируется в логе транзакций (файл .ldf). При загрузке Москвы этот файл может мгновенно вырасти на 20-50 ГБ. Если место на диске с логами закончится, SQL-сервер выдаст ошибку, которую 1С интерпретирует как «аварийное завершение».

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

Шаг 4. Очистка кэша и регламентные операции

Иногда проблеме способствуют накопленные ошибки в кэше или индексах. Проделаем следующие шаги:

  1. Очистим серверный кэш (папки в каталоге srvinfo).
  2. Запустим «Тестирование и исправление» в Конфигураторе. Нас интересуют пункты «Реиндексация таблиц информационной базы» и «Проверка логической целостности».
  3. Проанализируем состояние полнотекстового поиска. Попробуем обновить индекс или временно отключить полнотекстовый поиск через УправлениеПолнотекстовымПоиском, так как он может пытаться индексировать новые данные прямо в процессе их загрузки, создавая лишнюю нагрузку.

Шаг 5. Альтернативный метод: Загрузка через «Толстый клиент»

Если фоновое задание на сервере упорно не справляется, попробуем обойти механизмы кластера. Выполним загрузку «локально» на сервере:

  1. Зайдем на сервер через терминал (RDP).
  2. Запустим 1С в режиме «Толстый клиент» (это важно, так как в этом режиме часть кода может выполняться непосредственно в контексте приложения, а не фонового задания).
  3. Попробуем выполнить загрузку из заранее скачанной папки с диска (архив можно взять с сайта ИТС). Это исключит проблемы с интернет-соединением и таймаутами HTTP-запросов.

Шаг 6. Очистка существующих адресных сведений

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

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

Работа с кодом и регистрами (для программиста)

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


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

Если запрос возвращает пустой результат или ошибка возникает на определенных этапах, стоит проверить содержимое ЖурналРегистрации. Ищите события с уровнем «Ошибка» и компонентой «АдресныйКлассификатор». Часто там содержится детальное описание: например, ошибка уникальности записей или нехватка прав на конкретную таблицу.

Резюме

Проанализировав проблему, мы видим, что «аварийное завершение» — это следствие, а причина кроется в системных лимитах. Для успешной загрузки Москвы в 1С:УТ 11 мы рекомендуем:

  1. Использовать ручную загрузку из файлов, скачанных с ИТС.
  2. Увеличить лимиты памяти и таймауты в консоли кластера 1С.
  3. Убедиться в наличии свободного места на дисках С (для Temp) и диске с базами данных SQL.
  4. Выполнять процедуру в часы минимальной нагрузки на сервер.
  5. В крайнем случае — обновить платформу 1С до последнего стабильного релиза, так как ошибки в работе с ГАР часто исправляются разработчиками в новых версиях 8.3.22+.

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

← На главную