Ошибка в типовой обработке "Универсальный обмен данными в формате XML"

29.08.23

База данных - Обновление 1С

Исправление ошибки в типовой обработке "Универсальный обмен данными в формате XML".

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Ошибка в типовой обработке "Универсальный обмен данными в формате XML":
.cfe 26,33Kb
40 Скачать бесплатно

При обновлении на актуальный релиз типовой конфигурации "Зарплата и управление персоналом (3.1.27.51)" от 16.08.2023 была обнаружена ошибка в обработке  "Универсальный обмен данными в формате XML"

"errors": 
["{Обработка.УниверсальныйОбменДаннымиXML.Форма.УправляемаяФорма.Форма(1539)}: Ошибка при вызове конструктора (ДвоичныеДанные)",

"Файл не обнаружен 'C:\Users\USR1CV8\AppData\Local\Temp\v8_3F23_19e.xml'"]

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

АдресФайлаДанных = "";
АдресФайлаДанных = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ОбъектДляСервера.ИмяФайлаОбмена), УникальныйИдентификатор);
УдалитьФайлы(ОбъектДляСервера.ИмяФайлаОбмена);
УдалитьФайлы(ОбъектДляСервера.ИмяФайлаПравилОбмена);
			
ОбъектДляСервера.Параметры.Очистить();
ЗначениеВРеквизитФормы(ОбъектДляСервера, "Объект");

А таким он был до изменений:

Если ЭтоКлиент И Не ПрямаяВыгрузка Тогда		
    АдресФайлаДанных = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Объект.ИмяФайлаОбмена), УникальныйИдентификатор);
    УдалитьФайлы(Объект.ИмяФайлаОбмена);		
Иначе		
    АдресФайлаДанных = "";		
КонецЕсли;
	
Если ЭтоКлиент Тогда		
    УдалитьФайлы(ОбъектДляСервера.ИмяФайлаПравилОбмена);		
КонецЕсли;

Как видно в старой обработке установлены проверки по двум реквизитам:

1) ЭтоКлиент - Реквизит формы, Булевое значение, определяется дерективой компилятора веб-клиент это или нет. В обновленной форме этот реквизит вообще убрали.

2) ПрямаяВыгрузка - Так же реквизит формы. Показывает какой тип выгрузки мы используем, через файл обмена (Значение - "0") или через прямое подключение (Значение - "1").

Т.к. убрали данные проверки то любая выгрузка, обрабатывается как через файл обмена, со всеми вытекающими ошибками.

Мой пример кода с исправлениями:

Если ПрямаяВыгрузка Тогда
    АдресФайлаДанных = "";
Иначе  
    АдресФайлаДанных = "";
    АдресФайлаДанных = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ОбъектДляСервера.ИмяФайлаОбмена), УникальныйИдентификатор);
    УдалитьФайлы(ОбъектДляСервера.ИмяФайлаОбмена);
    УдалитьФайлы(ОбъектДляСервера.ИмяФайлаПравилОбмена);
			
    ОбъектДляСервера.Параметры.Очистить();
    ЗначениеВРеквизитФормы(ОбъектДляСервера, "Объект");
КонецЕсли;

Надеюсь, кому-то поможет.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Обновление 1С Перенос данных 1C Программист 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 Бесплатно (free)

Однажды к нам на проект сложного обновления пришла конфигурация «1С: Документооборот КОРП», которую требовалось обновить в технологическое окно 1 час. И мы обновили базу так, как это делают в подобных случаях с ERP — используя механизм «Обновление через копию».

вчера в 16:30    146    1c-izh    0    

0

Обновление 1С Программист Бесплатно (free)

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

01.04.2026    630    vladimir-89    0    

5

Нейросети Обновление 1С Программист 1С 8.3 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

Внешняя обработка для автоматизации обновления расширений конфигураций 1С с помощью нейросетей.

1 стартмани

30.03.2026    561    5    erni    3    

4

Обновление 1С Программист 1С 8.3 Россия Бесплатно (free)

При разработке тиражного прикладного решения или при использовании автоматизации сборки вам потребуется механизм создания файлов поставки. В статье приведена шпаргалка по работе с ним.

11.02.2026    1373    AntonovaElena    9    

18

Разработка внешних компонент Администрирование СУБД Linux Обновление 1С Системный администратор Программист Россия Абонемент ($m)

Cценарий python предназначен для автоматизации процессов установки СУБД PostgreSQL, клиентского приложения и сервера 1С, службы RAS а также  и деинсталляции последних в cреде операционной системы Astra Linux. Полный режим работы выполняет деинсталляцию предшествующей версии 1С и установку последующей.  Возможны также только деинсталляция или только установка. Сценарий тестирован в среде ОС Astra Linux SE v.1.7.x,v.1.8.x  

2 стартмани

03.02.2026    800    4    Магнат    1    

2

Инструменты администратора БД Обновление 1С Системный администратор Программист 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)

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

2 стартмани

02.02.2026    666    4    burmsergey    0    

3

Обновление 1С Программист 1С 8.3 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Вы когда-нибудь обновляли старую доработанную типовую конфигурацию, доработанную на коленке? Или может вы сами хотите обновить у себя типовую, но боитесь грядущих сложностей? Рассказываю, как я типовую Бухгалтерию с самописной, сделанной "бизнесом" подсистемой обновлял. Надеюсь, мой опыт вам поможет.

27.01.2026    880    dobrotank    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SergMuravev 882 05.02.25 12:17 Сейчас в теме
Нужно еще добавить проверку на существование файла, иначе при ошибке выгрузки выдаст сообщение, что файл не найден

Если ПрямаяВыгрузка Тогда
		АдресФайлаДанных = "";
	Иначе  
		АдресФайлаДанных = "";
		Файл = Новый Файл(ОбъектДляСервера.ИмяФайлаОбмена);  // проверка
		Если Файл.Существует() Тогда                           // проверка 
			АдресФайлаДанных = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ОбъектДляСервера.ИмяФайлаОбмена), УникальныйИдентификатор);
		КонецЕсли;
		
		УдалитьФайлы(ОбъектДляСервера.ИмяФайлаОбмена);
		УдалитьФайлы(ОбъектДляСервера.ИмяФайлаПравилОбмена);
			
		ОбъектДляСервера.Параметры.Очистить();
		ЗначениеВРеквизитФормы(ОбъектДляСервера, "Объект");
	КонецЕсли;
Показать
2. SergMuravev 882 06.02.25 06:49 Сейчас в теме
УдалитьФайлы(ОбъектДляСервера.ИмяФайлаОбмена); - если установлен Режим работы (на сервере), и клиент и сервер на одно компьютере, то это приведет к удалению только что выгруженного файла обмена

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