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

29.08.23

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

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

Бесплатные

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

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

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

При обновлении на актуальный релиз типовой конфигурации "Зарплата и управление персоналом (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").

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

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

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

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

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

См. также

Разработка внешних компонент Администрирование СУБД 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    246    2    Магнат    0    

1

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

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

2 стартмани

02.02.2026    224    2    burmsergey    0    

3

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

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

27.01.2026    458    dobrotank    0    

2

Обновление 1С НДС 22% Программист Бухгалтер Пользователь 1С 8.3 1С:Управление торговлей 10 Бухгалтерский учет НДС Абонемент ($m)

В рамках обновления конфигурации УТ 1.1 реализована поддержка новых ставок НДС — 22%, 7% и 5%, а также соответствующих расчётных ставок. Изменения внедрены в соответствии с актуальными законодательными требованиями и обеспечивают корректное применение ставок в документах и справочниках. ДЛЯ ПРАВИЛЬНОЙ РАБОТЫ ОБНОВЛЕНИЯ ТРЕБУЕТСЯ СКАЧАТЬ ОБА АРХИВА (часть 1 и часть 2)

5 стартмани

26.01.2026    305    Asyst-pro    5    

1

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

На примере рассмотрим одну из стратегий обновления проекта на новый релиз поставщика через 1С:EDT.

19.01.2026    2484    eakomarov    11    

19

Обновление 1С НДС 22% Программист Бухгалтер Пользователь 1С 8.3 1С:Управление торговлей 11 Россия НДС Абонемент ($m)

Предлагается практический мануал, позволяющий детально рассмотреть обновление УТ 11.5 для работы как с оптом, так и с розницей.

10 стартмани

15.01.2026    1765    5    aximo    0    

7

Обновление 1С Программист 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Абонемент ($m)

Позволяет получить список внешних отчетов/обработок, которые перестали работать после обновления конфигурации.

1 стартмани

17.12.2025    550    15    Efimoff    3    

5

Инструменты администратора БД Групповая разработка (Git, хранилище) Обновление 1С Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 2.х 1С:Библиотека стандартных подсистем Абонемент ($m)

Обработка, объединяющая в себе использование инструментов БСП по администрированию кластера серверов и запуска скриптов для автоматического обновления конфигурации из хранилища.

4 стартмани

17.11.2025    1733    10    KovrovtsevAS    0    

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

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

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