Причина возникновения: Возникает при попытке сохранить на диске полученного файла.
Где расположена: Общий модуль - ВнешниеМодули Документооборота СКО В МоделиСервиса - Процедура ОбработатьВнешнийМодульДокументооборотаСКО
Что делать: Проверьте доступность временных папок для 1С, проверьте состояние накопителей на наличие свободного места.
Обратится за помощью к программисту 1С.
Для программиста: Код в данной процедуре производит попытку сохранения и дальнейшую обработку файла с полученными данными.
Текст процедуры:
Причина возникновения: Возникает при попытке сохранить на диске полученного файла.
Где расположена: Общий модуль - ВнешниеМодули Документооборота СКО В МоделиСервиса - Процедура ОбработатьВнешнийМодульДокументооборотаСКО
Что делать: Проверьте доступность временных папок для 1С, проверьте состояние накопителей на наличие свободного места.
Обратится за помощью к программисту 1С.
Для программиста: Код в данной процедуре производит попытку сохранения и дальнейшую обработку файла с полученными данными.
Текст процедуры:
Процедура ОбработатьВнешнийМодульДокументооборотаСКО(Дескриптор, ПутьКФайлу)
ИмяМетаданныхКонфигурацииМодуля = "";
ИДКонфигурацииМодуля = "";
ВерсияКонфигурацииМодуля = "";
ВерсияВнешнегоМодуля = "";
Для Каждого Характеристика Из Дескриптор.Properties.Property Цикл
Если Характеристика.Code = "ИмяМетаданныхКонфигурации" Тогда
ИмяМетаданныхКонфигурацииМодуля = Характеристика.Value;
ИначеЕсли Характеристика.Code = "ИДКонфигурации" Тогда
ИДКонфигурацииМодуля = Характеристика.Value;
ИначеЕсли Характеристика.Code = "ВерсияКонфигурации" Тогда
ВерсияКонфигурацииМодуля = Характеристика.Value;
ИначеЕсли Характеристика.Code = "ВерсияВнешнегоМодуля" Тогда
ВерсияВнешнегоМодуля = Характеристика.Value;
КонецЕсли;
КонецЦикла;
ИмяМетаданныхКонфигурацииПрограммы = СокрЛП(Метаданные.Имя);
ИДКонфигурацииПрограммы = РегламентированнаяОтчетностьПереопределяемый.ИДКонфигурации();
ВерсияКонфигурацииПрограммы = СокрЛП(Метаданные.Версия);
Если (ОнлайнСервисыРегламентированнойОтчетностиВызовСервера.ИДТекущейКонфигурацииСоответствуетШаблону(
ИмяМетаданныхКонфигурацииМодуля, ИмяМетаданныхКонфигурацииПрограммы)
ИЛИ ОнлайнСервисыРегламентированнойОтчетностиВызовСервера.ИДТекущейКонфигурацииСоответствуетШаблону(
ИДКонфигурацииМодуля, ИДКонфигурацииПрограммы))
И ВерсияКонфигурацииМодуля = ВерсияКонфигурацииПрограммы Тогда
// получение архива внешнего модуля документооборота с контролирующими органами
ФайлАрхиваВнешнегоМодуля = Неопределено;
Попытка
Если ЭтоАдресВременногоХранилища(ПутьКФайлу) Тогда
ДанныеАрхиваВнешнегоМодуля = ПолучитьИзВременногоХранилища(ПутьКФайлу);
Иначе
ДанныеАрхиваВнешнегоМодуля = Новый ДвоичныеДанные(ПутьКФайлу)
КонецЕсли;
ФайлАрхиваВнешнегоМодуля = ПолучитьИмяВременногоФайла("zip");
ДанныеАрхиваВнешнегоМодуля.Записать(ФайлАрхиваВнешнегоМодуля);
Исключение
ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ТекстОшибки = СтрШаблон(
НСтр("ru = 'Получение архива внешнего модуля документооборота с контролирующими органами.
|Описание:
|""%1""'"),
ПредставлениеОшибки);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Поставляемые данные. Загрузка внешнего модуля документооборота с контролирующими органами.'"),
УровеньЖурналаРегистрации.Ошибка,
,
,
ТекстОшибки);
ОперацииСФайламиЭДКО.УдалитьВременныйФайл(ФайлАрхиваВнешнегоМодуля);
Возврат;
КонецПопытки;
// извлечение внешнего модуля документооборота с контролирующими органами из архива
ПредставлениеОшибки = Неопределено;
Попытка
ВременныйКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ВременныйКаталог);
ЧтениеЗИП = Новый ЧтениеZipФайла(ФайлАрхиваВнешнегоМодуля);
ПервыйЭлементАрхива = ЧтениеЗИП.Элементы.Получить(0);
ЧтениеЗИП.Извлечь(ПервыйЭлементАрхива, ВременныйКаталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
ЧтениеЗИП.Закрыть();
РезультатПоиска = НайтиФайлы(ВременныйКаталог, "*.*");
Если РезультатПоиска.Количество() = 0 Тогда
ПредставлениеОшибки = НСтр("ru = 'Ошибка при извлечении файла из архива.'");
Иначе
ПервыйФайл = РезультатПоиска.Получить(0);
ДанныеВнешнегоМодуля = Новый ДвоичныеДанные(ПервыйФайл.ПолноеИмя);
ОбъектВнешнийМодуль = Новый ХранилищеЗначения(ДанныеВнешнегоМодуля);
КонецЕсли;
ОперацииСФайламиЭДКО.УдалитьВременныйФайл(ФайлАрхиваВнешнегоМодуля);
ОперацииСФайламиЭДКО.УдалитьВременныйФайл(ВременныйКаталог);
Исключение
ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Если ПредставлениеОшибки <> Неопределено Тогда
ТекстОшибки = СтрШаблон(
НСтр("ru = 'Распаковка внешнего модуля документооборота с контролирующими органами.
|Описание:
|""%1""'"),
ПредставлениеОшибки);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Поставляемые данные. Загрузка внешнего модуля документооборота с контролирующими органами.'"),
УровеньЖурналаРегистрации.Ошибка,
,
,
ТекстОшибки);
Возврат;
КонецЕсли;
// сохранение внешнего модуля в базе
УстановитьПривилегированныйРежим(Истина);
Попытка
КонстантыНабор = Константы.СоздатьНабор(
"ДокументооборотСКонтролирующимиОрганами_ИспользоватьВнешнийМодуль, "
+ "ДокументооборотСКонтролирующимиОрганами_ВерсияВнешнегоМодуля, "
+ "ДокументооборотСКонтролирующимиОрганами_ВнешнийМодуль");
КонстантыНабор.ДокументооборотСКонтролирующимиОрганами_ИспользоватьВнешнийМодуль = Истина;
КонстантыНабор.ДокументооборотСКонтролирующимиОрганами_ВерсияВнешнегоМодуля = ВерсияВнешнегоМодуля;
КонстантыНабор.ДокументооборотСКонтролирующимиОрганами_ВнешнийМодуль = ОбъектВнешнийМодуль;
КонстантыНабор.Записать();
Исключение
ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ТекстОшибки = СтрШаблон(
НСтр("ru = 'Запись внешнего модуля документооборота с контролирующими органами.
|Описание:
|""%1""'"),
ПредставлениеОшибки);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Поставляемые данные. Загрузка внешнего модуля документооборота с контролирующими органами.'"),
УровеньЖурналаРегистрации.Ошибка,
,
,
ТекстОшибки);
КонецПопытки;
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
КонецПроцедуры