Исправление ошибки в типовом обмене данными (КА 2.5)

14.03.25

Интеграция - Перенос данных 1C

Поиск проблемы и ее решение. Проблема обнаружена на релизе КА (2.5.17.74).

Поиск виновника проблемы со стороны получателя.

Документ.ПроизводствоБезЗаказа должен уходить в односторонний обмен из КА в БП и конвертироваться в Документ.ВыпускПродукции на строне приемнике, он же БП. Но почему-то не перелетает, проблема возникла после обновления на релиз (2.5.17.74). 

В базе отправителе документ прекрасно регистрируется и даже показывает в журнале регистрации статус, что ушло в базу приемник.

 

 

Проверим БП, чтобы быть уверенными, что проблема не на стороне базы приемника. Со стороны БП идет отсечка по коду в модуле ОбщийМодуль.ОбменДаннымиXDTOСервер.ПрочитатьСообщениеОбмена, мешает признак "УдалениеОбъекта".

 
 Условие по которому осуществляется проверка

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

 

Поиск виновника проблемы со стороны отправителя.

Сразу идем смотреть наши ПКО для документа ПроизводствоБезЗаказа. Пробую отладчиком провалиться в ПКО ПриОтправкеДанных для того, чтобы посмотреть, что не так с данными которые мы передаем в БП, но отладка не отрабатывает. Что настораживает и косвенно говорит о проблемах в ПРО.

Идем в общий модуль ОбменДаннымиСобытия.ПриОтправкеДанных и видим условие по результату работы функции ДанныеСоответствуютФильтруПравилРегистрации. Именно тут начинаются проблемы. Копаем в глубь.

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

 

Получение результата функции многоуровневое и много раз проходится проваливаться для поиска конечного результата (ДанныеСоответствуютФильтруПравилРегистрации - ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена - ОпределитьПолучателейПоУсловию - ВыполнитьОбработчикПРОПередОбработкой - ДокументПроизводствоБезЗаказаПередОбработкойПРО)

И вот он. Запрос, который возвращает Отказ = Истина;

 
 ОбменДаннымиСобытияУТ.ДокументПроизводствоБезЗаказаПередОбработкойПРО
Процедура ПроизводствоБезЗаказаПередОбработкойПРО(Объект, Отказ)
	Если НЕ Объект.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоДокументу Тогда

		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	КОЛИЧЕСТВО(ПроизводствоБезЗаказаВыходныеИзделия.Номенклатура) КАК КоличествоСтрок
		|ИЗ
		|	Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ПроизводствоБезЗаказаВыходныеИзделия
		|ГДЕ
		|	ПроизводствоБезЗаказаВыходныеИзделия.Ссылка = &Ссылка
		|";

		Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);

		РезультатЗапроса = Запрос.Выполнить();
		Если РезультатЗапроса.Пустой() Тогда
			Возврат
		Иначе	
			ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();   
			Если ВыборкаДетальныеЗаписи.Следующий() Тогда
				КоличествоСтрокВнутреннейПереработки = ВыборкаДетальныеЗаписи.КоличествоСтрок;
				Если Объект.ВыходныеИзделия.Количество() = КоличествоСтрокВнутреннейПереработки Тогда
					Отказ = Истина;  
				КонецЕсли;	
			КонецЕсли;
		КонецЕсли;

	КонецЕсли;
КонецПроцедуры

 

Сто раз перечитал сей код и не нашел ему смысла, зачем ставить флаг отказа, документу ТЧ которого равна между самой собой по количеству строк. Возможно подразумевалась проверка на неравенство (<>) или какой-то другой ТЧ, но это не точно. Но в данном исполнении Отказ всегда будет Истина. В своем решении я прост закомментировал строку кода Отказ = Истина, поставил директиву ИзменениеИКонтроль и в последующих обновлениях посмотрю, что именно хотели разработчики. Обмен заработал.

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

См. также

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.267.x) и БП 3.0 (3.0.194.x). Правила подходят для версии ПРОФ и КОРП.

38000 руб.

15.12.2021    33386    250    64    

190

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    159441    953    317    

479

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16531 руб.

18.02.2016    201929    671    543    

561

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.25.x).

38000 руб.

23.07.2020    67193    313    94    

251

Перенос данных 1C Программист Бухгалтер 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ ФОМС, ЕФС Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет заработной платы 3.0», «КАМИН:Зарплата для бизнеса 4.0» и «КАМИН:Зарплата 5.0» на конфигурацию «Зарплата и управление персоналом» версии 3.1.

12200 руб.

25.09.2016    90917    412    257    

342

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

122000 руб.

19.08.2020    29116    27    3    

28

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Что же Вы получаете? 2 способа обмена объектами – с ОДИНАКОВОЙ структурой и с ОТЛИЧАЮЩЕЙСЯ! Забудьте о том, что не могли ранее перенести данные между базами, из-за того, что изменилась структура объектов в одной из них с обновлением конфигурации – теперь это в прошлом! Теперь не помеха для обмена изменение состава реквизитов объекта (измерений, ресурсов)/состава табличных частей/реквизитов табличных частей/типов реквизитов! А так же получаете быстрый алгоритм обмена, с возможностью указания уровня выгрузки объектов по ссылкам! 2 способа обмена - ФАЙЛ, HTTP: Система слежения за дублями предопределенных элементов при загрузке; Система поиска связей объектов для выгрузки; Отборы для каждого объекта конфигурации в отдельности; Динамическая замена произвольных ссылок при обмене; Выбор регистров движений для выгрузки. (Обновление от 09.04.2026, версия 9.2 - 11.1.1 (критическое), фоновая выгрузка-загрузка версия 1.4)

20740 руб.

28.08.2012    223306    336    287    

677

Перенос данных 1C Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 1С:Документооборот Платные (руб)

Расширение конфигурации, позволяющее выполнить обмен данными между двумя базами любой конфигурации с возможностью запуска обмена в фоне или по расписанию. Простой интерфейс и функция автоматического сопоставления реквизитов позволит выполнить простейший обмен даже обычному пользователю. Множество гибких инструментов дает возможность продвинутому пользователю или программисту как угодно манипулировать данными и настроить обмен любой сложности. Версия расширения 4.x.x теперь поддерживает не только обмен через com-компоненту, но и через предварительно опубликованный web-сервис. Также доступен глобальный каталог, в нем можно сохранить свои настройки обмена, или загрузить уже готовые, созданные другими пользователями. Есть возможность использовать планы обменов и регистрацию объектов к обмену.

24400 руб.

11.08.2022    11340    29    27    

21
Для отправки сообщения требуется регистрация/авторизация