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

29.08.23

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

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

Бесплатные

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

При обновлении на актуальный релиз типовой конфигурации "Зарплата и управление персоналом (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С Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Если обновление 1С уже падало с "Записи регистра сведений стали неуникальными", вы знаете, что платформа называет только первый такой регистр, и каждый следующий всплывает новым запуском обновления. Проверьте заранее: снимите слепок регистров в базе с новой конфигурацией и нажмите "Проверить" в рабочей. Обработка покажет все регистры сведений, где записи после обновления совпадут по измерениям, и сами группы таких записей: укороченная строка, меньше знаков после запятой, укрупнённая периодичность, убранный из составного тип. Удалённое измерение называет, но записи по нему не считает. Что разобрать не может, называет с причиной и в "дублей не найдено" не записывает. Только чтение, без доступа к таблицам СУБД.

10 стартмани

09.11.2026    216    0    nedomolkov.ivan    0    

3

Архивирование (backup) Обновление 1С Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Платформа 8.3.17, MS SQL Server: обновление конфигурации падает через 15 секунд на этапе обновления предопределённых данных, и конфигуратор при каждом входе предлагает только повторить. Проверьте у себя, когда сделана последняя полная копия базы: у нас её не было почти месяц. Разбор по минутам: что не помогло (перезапуск агента сервера 1С, перезагрузка, пакетный /UpdateDBCfg, три совета со стороны) и почему. Как ibcmd достал .dt из базы, которая не открывается, и как новую базу подставили под старым именем в кластере 1С через rac, не трогая пользователей. Простой 57 минут, потерь данных нет. Отдельно ошибки ИИ-агента Claude, который работал на сервере, и порядок действий на случай, если это случилось у вас.

03.11.2026    685    nedomolkov.ivan    13    

5

Обновление 1С Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

Вторая часть серии о переходе ERP 2.5 на 2.6. Я сравнил чистые выгрузки 2.5.27.88, 2.6.1.70 и 2.6.2.59 и выписал то, чего нет в официальных описаниях версий: какие экспортные методы удалены поимённо, какие документы больше нельзя создать и при каком условии, что переименовали без предупреждения. Из двенадцати механизмов, от которых отказывается 1С, к 2.6.2 удалены только два, а большая часть удалённого к ним не относится. Отдельно разбираю, почему перехватчики &ИзменениеИКонтроль ломаются на процедурах, где поменялся только английский текст, и почему доработки выгоднее готовить сразу под 2.6.2. Будет полезно разработчикам, которые сопровождают расширения и внешние обработки на ERP 2.5.27, и тем, кто планирует сроки перехода.

20.10.2026    1053    lexatsch    8    

8

Обновление 1С Разработчик 1С 8.3 1С 8.5 Абонемент ($m)

Перед обновлением типовой конфигурации обработка читает код ваших доработок — внешних обработок, отчетов и расширений — и сверяет каждое обращение к конфигурации со старым и новым релизом. Результат — один отчет по всем доработкам: файл и строка, сам фрагмент кода и понятная причина («метод теперь принимает один параметр», «значение перечисления удалено», «перехватываемый метод не найден»). Исходники релизов и обработок можно подготовить прямо из обработки — пакетным запуском Конфигуратора.

3 стартмани

19.10.2026    347    1    InShallaH    0    

3

Обновление 1С Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

1С считает, что перейти с ERP 2.5 на 2.6 не сложнее, чем обновиться между версиями длительной поддержки, а обязательным переход станет не раньше 30 апреля 2027 года. Я решил проверить это заранее на нашей доработанной ERP 2.5.27, где есть два больших расширения и 517 внешних отчётов и обработок. Форма готовности нашла четыре механизма, которые надо перевести, а про код промолчала. Проверка применимости на чистой 2.6.1 выдала 478 проблем, и настоящих среди них меньше сотни. А сверка кода со словарём изменений нашла ещё 63 проблемы, которых проверка применимости вообще не видит. Часть из них не даст открыть модуль, остальные вылезут уже у пользователей. Рассказываю, как проверить применимость расширения к 2.6.1 без записи в базу, что ловит компилятор, что ломается чаще всего и чем это заменить.

16.10.2026    684    lexatsch    0    

3

Инструментарий разработчика Обновление 1С Разработчик 1С 8.3 Бесплатно (free)

Бесплатная внешняя обработка: до обновления типовой показывает, какие ваши внешние обработки и печатные формы после него упадут. Находит в их коде вызовы общих модулей и менеджеров типовой и сверяет каждый с текущей конфигурацией и с выгрузкой нового релиза: есть ли метод, экспортный ли, сходится ли число параметров. Обработки берёт из справочника или из папки .epf и .erf, без конфигуратора. У каждого вызова статус, строка и причина.

29.09.2026    1219    141    nedomolkov.ivan    2    

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

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

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