Проблема в стандартном обмене СинхронизацияДанныхЧерезУниверсальныйФормат. Удаляются документы, элементы справочника. Как исправить?
Происходит обмен между УТ 11.4.1.248 и Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.60.60).
Обмен происходит без ошибок в журнале регистрации есть записи по удалению выгруженного объекта.
В общем нашел где проиходит удаление документов и элементов справочника. Смысл такой - когда у объекта несколько правил конвертации объектов(ПКО). Программа обходит циклом список ПКО и если ПКО не исппользуется , то происходит удаление объекта.
По идее должен быть обход по второму ПКО, но не происходит.
Не пойму как должно это работать и как мне выгрузить документы в бухгалтерскую базу.
В общем модуле ОбменДаннымиXDTOСервер есть процедура ВыгрузкаОбъектаВыборки в ней есть код:
Для Каждого ТекущееПКО Из ИспользованиеПКО Цикл
Попытка
Если Не ТекущееПКО.Значение Тогда
// Если правил конвертации несколько, и некоторые из них не используются -
// необходимо выгрузить удаление объекта на случай если ранее он был выгружен по этим правилам.
Если НесколькоПКО Тогда
ЕстьКолонкаОчисткаДанных = КомпонентыОбмена.ПравилаОбработкиДанных.Колонки.Найти("ОчисткаДанных") <> Неопределено;
Если Не ЕстьКолонкаОчисткаДанных Или ПравилоОбработки.ОчисткаДанных Тогда
ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТекущееПКО.Ключ, "ИмяПКО");
ВыгрузитьУдаление(КомпонентыОбмена, Объект.Ссылка, ПравилоКонвертации);
КонецЕсли;
КонецЕсли;
Продолжить;
КонецЕсли;
// 1. Поиск правила конвертации.
ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТекущееПКО.Ключ, "ИмяПКО");
// 2. Конвертируем Данные в Структуру по правилам конвертации.
ДанныеXDTO = ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Объект, ПравилоКонвертации, Неопределено);
И т.д.
Так вот когда выполняется ВыгрузитьУдаление(КомпонентыОбмена, Объект.Ссылка, ПравилоКонвертации); Происходит удаление объекта
Не пойму это косяк 1С?
Или я что-то не так делаю?
Кто нибудь сталкивался?
И какие есть предложения по выходу из ситуации?
Обмен происходит без ошибок в журнале регистрации есть записи по удалению выгруженного объекта.
В общем нашел где проиходит удаление документов и элементов справочника. Смысл такой - когда у объекта несколько правил конвертации объектов(ПКО). Программа обходит циклом список ПКО и если ПКО не исппользуется , то происходит удаление объекта.
По идее должен быть обход по второму ПКО, но не происходит.
Не пойму как должно это работать и как мне выгрузить документы в бухгалтерскую базу.
В общем модуле ОбменДаннымиXDTOСервер есть процедура ВыгрузкаОбъектаВыборки в ней есть код:
Для Каждого ТекущееПКО Из ИспользованиеПКО Цикл
Попытка
Если Не ТекущееПКО.Значение Тогда
// Если правил конвертации несколько, и некоторые из них не используются -
// необходимо выгрузить удаление объекта на случай если ранее он был выгружен по этим правилам.
Если НесколькоПКО Тогда
ЕстьКолонкаОчисткаДанных = КомпонентыОбмена.ПравилаОбработкиДанных.Колонки.Найти("ОчисткаДанных") <> Неопределено;
Если Не ЕстьКолонкаОчисткаДанных Или ПравилоОбработки.ОчисткаДанных Тогда
ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТекущееПКО.Ключ, "ИмяПКО");
ВыгрузитьУдаление(КомпонентыОбмена, Объект.Ссылка, ПравилоКонвертации);
КонецЕсли;
КонецЕсли;
Продолжить;
КонецЕсли;
// 1. Поиск правила конвертации.
ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТекущееПКО.Ключ, "ИмяПКО");
// 2. Конвертируем Данные в Структуру по правилам конвертации.
ДанныеXDTO = ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Объект, ПравилоКонвертации, Неопределено);
И т.д.
Так вот когда выполняется ВыгрузитьУдаление(КомпонентыОбмена, Объект.Ссылка, ПравилоКонвертации); Происходит удаление объекта
Не пойму это косяк 1С?
Или я что-то не так делаю?
Кто нибудь сталкивался?
И какие есть предложения по выходу из ситуации?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Остановитесь на строке "Для Каждого ТекущееПКО Из ИспользованиеПКО Цикл" и посмотрите сколько у вас ПКО и какие они, без отладки не разобраться.
По-моему это фоновое задание, галочку в отладке не забудьте.
// Отработка ПКО
НесколькоПКО = (ПравилоОбработки.ИспользуемыеПКО.Количество() > 1);
Для Каждого ТекущееПКО Из ИспользованиеПКО Цикл
Остановитесь на строке "Для Каждого ТекущееПКО Из ИспользованиеПКО Цикл" и посмотрите сколько у вас ПКО и какие они, без отладки не разобраться.
По-моему это фоновое задание, галочку в отладке не забудьте.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот