При работе в конфигурации «1С:Управление производственным предприятием 1.3» пользователи часто сталкиваются с критической ошибкой при попытке обновить адресные сведения. Проблема проявляется в виде системного сообщения: Ошибка при вызове конструктора (ЧтениеZipФайла) по причине Некорректный формат файла. Это происходит в тот момент, когда программа пытается программно распаковать скачанный из интернета архив с данными КЛАДР или ФИАС.
Рассмотрим подробно причины возникновения этой ситуации и разберем пошаговые инструкции по её устранению, основываясь на практическом опыте специалистов и особенностях платформы 1С.
Проанализируем ситуацию: когда 1С обращается к веб-сервису для скачивания классификатора, она ожидает получить полноценный .zip архив. Однако, если на пути следования пакета данных возникают препятствия (например, настройки прокси-сервера, ограничения брандмауэра или технические работы на стороне портала ИТС), вместо архива в папку временных файлов сохраняется текстовый файл с ошибкой или пустой документ. Конструктор ЧтениеZipФайла, пытаясь открыть такой файл как архив, закономерно выдает ошибку формата.
Основные факторы, провоцирующие сбой:
Temp скопилось более 65 000 файлов, создание нового файла может пройти некорректно.Agent 1C:Enterprise (обычно это USR1CV8), могут отсутствовать права на запись или чтение в системных временных каталогах.Если автоматическая загрузка через интернет выдает ошибку, самым надежным способом будет загрузка данных из локальной папки. Проблема в том, что в УПП форма загрузки иногда «ломится» в интернет автоматически, не давая пользователю выбора. Рассмотрим, как это обойти.
Вариант А: Отключение интернета. Проанализируем простой административный метод. Если временно запретить процессу 1С доступ к внешней сети (через брандмауэр или физическое отключение сети на сервере), программа не сможет достучаться до серверов обновлений и после таймаута предложит выбрать альтернативный способ загрузки — из файлов на диске.
Вариант Б: Использование отладки (для программистов). Если нужно точечно изменить поведение формы, воспользуемся конфигуратором. Найдем объект РегистрСведений.АдресныеОбъекты, форма ЗагрузкаАдресногоКлассификатора. Посмотрим на процедуру ПриСозданииНаСервере. Мы можем установить точку останова и в момент выполнения изменить значение переменной, отвечающей за доступность интернет-сервисов.
Найдите строку кода, где определяется переменная:
ДоступнаЗагрузкаАдресныхСведенийИзИнтернет = Истина; // Измените на Ложь в режиме отладки
После присвоения значения Ложь, форма откроется в режиме выбора файлов с диска.
В некоторых случаях ошибка связана с тем, что платформа некорректно обрабатывает пути к временным файлам в сеансе сервера. Разберем пример программной правки в общем модуле ПолученияФайловИзИнтернетаКлиентСервер. Рассмотрим функцию ПодготовитьПолучениеФайла. Один из участников предложил жестко прописать путь к временному файлу для исключения конфликтов прав доступа:
Функция ПодготовитьПолучениеФайла(Параметры)
#Если НЕ ВебКлиент Тогда
// Стандартный код: ПутьДляСохранения = ПолучитьИмяВременногоФайла;
// Предлагаемое исправление:
ПутьДляСохранения = "C:\Temp\v8_manual_load.tmp";
#КонецЕсли
КонецФункции
Важно: Перед применением такого решения убедитесь, что папка C:\Temp существует и доступна для записи пользователю USR1CV8.
Иногда проблема кроется в «зависании» сеансовых данных или некорректном состоянии службы агента сервера. Выясним, как это лечится административными мерами:
C:\Program Files\1cv8\srvinfo).reg_1541), предварительно создав резервную копию.C:\Windows\Temp.Как показывает практика (сообщение 19), простая перезагрузка службы агента сервера часто восстанавливает работоспособность механизмов работы с архивами.
Проанализируем вопрос выбора между КЛАДР и ФИАС. В современных релизах УПП (начиная с 1.3.150+) реализована поддержка формата ФИАС. Государство прекратило поддержку КЛАДР в виде актуальных баз данных, поэтому при ручной загрузке необходимо:
Address.zip, Houses.zip).Посмотрим на ситуацию с точки зрения прав доступа. Если вы используете клиент-серверный вариант, помните, что распаковка архива происходит на сервере приложений. Следовательно, файлы классификатора должны быть доступны именно серверу (по локальному пути или через сетевую папку с правами для учетной записи службы 1С).
Подводя итог, отметим, что ошибка Некорректный формат файла — это симптом «битого» скачивания. Переход к ручной загрузке ФИАС с предварительной очисткой временных каталогов является наиболее стабильным решением задачи.