Конвертация данных 2.0 Заказы не выгружаются по правилам обмена

1. DaniilI 28.09.21 18:26 Сейчас в теме
Добрый день, бьюсь уже не первые сутки.
Обмен между двумя одинаковыми конфигурациями по правилам обмена
Правила обмена созданы в конвертации данных 2.0

Есть два Алгоритма отбора документов для правил обмена
1. Отбор по Организации
Если Не Источник.Организация.Наименование = "Организация" Тогда
	  Отказ = Истина
КонецЕсли;


Этот отбор работает отлично так как прописан везде в обработчик перед выгрузкой

И есть второе правило, точнее алгоритм
2.
Если ОбъектНайден Тогда
		Если Не Объект.ОтражатьВБухгалтерскомУчете Тогда
			Объект.Проведен = Ложь;
			Объект.ПометкаУдаления = Истина;
		КонецЕсли;
	Иначе
		Если Не Объект.ОтражатьВБухгалтерскомУчете 
			Тогда
			Отказ = Истина;
		КонецЕсли;
КонецЕсли;
Показать


Эти алгоритмом производится два действия, во-перых он вписан в обработчик После загрузки, Во-вторых, он загружает исключительно документы с булевом БУ
Первая часть данного алгоритма в случае снятия булева БУ в базе источнике, удаляет данный докмуент в базе приемнике.

Однако во всех документах кроме заказов покупателей, выгрузка в источник проходит идеально.
А вот заказы покупателей, согласно условию выгружаются отлично а те которые не подходят по условия, т.е. без булева БУ тоже выгружаются но совершенно пустыми.

Как сделать чтобы заказы выгружались именно те которые мне нужны???
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
24. agata_v 29.09.21 21:32 Сейчас в теме
(1)В правилах не надо выгружать отдельно заказы, тогда выгрузятся только те, которые есть в выгружаемых реализациях (в документах основаниях)
26. DaniilI 29.09.21 23:17 Сейчас в теме
(24)ну это немного не так. Смотри если выключить пко заказы то будут выгружаться так как ты и говоришь заказы по ссылкам. Но так происходит и сейчас. Только если рту БЕз БУ то рту не выгружается а заказ выгружается но пустой.
А мне надо чтобы пустой заказ не выгружался
2. Andrekaa 28.09.21 20:25 Сейчас в теме
они явно приходят как ссылка в другом документе
3. DaniilI 28.09.21 20:28 Сейчас в теме
(2)как это исправить и понять в каком документе они приходят как ссылка?
9. DaniilI 29.09.21 00:03 Сейчас в теме
(2)кто выделил этот ответ правильным. Это далеко не так
12. RustamZz 29.09.21 09:25 Сейчас в теме
(9) Это именно так как написал (2). Заказ покупателя часто указывается в реквизитах отгрузочных документов, в оплатах и возвратах. И так как в полях поиска реквизит БУ не указан, а указывать его не стоит, то при записи объекта полученного по ссылке ваша проверка не срабатывает.
Andrekaa; +1 Ответить
14. DaniilI 29.09.21 10:15 Сейчас в теме
(12)
ученного по ссылке ваша проверка не срабатывает.


Ну а как сделать чтобы эта проверка срабатывала?
Либо этот объект не выгружался по ссылке а только по Правилам в ПКО?
15. DaniilI 29.09.21 10:33 Сейчас в теме
(2) Ну смотри он явно приходит как ссылка, н овопрос не в этом а в том как этого избежать, чтчобы не создавался пустой документ.
4. Andrekaa 28.09.21 20:33 Сейчас в теме
так поискать поиском ссылок на объект)
5. DaniilI 28.09.21 21:48 Сейчас в теме
6. Andrekaa 28.09.21 22:28 Сейчас в теме
(5)стандартная обработка "Поиск ссылок на объекты"
7. DaniilI 28.09.21 22:35 Сейчас в теме
В источнике или приемнике?
8. DaniilI 28.09.21 22:49 Сейчас в теме
10. DaniilI 29.09.21 00:05 Сейчас в теме
Как мне понять в каком документе заказы приходят как ссылки?
11. Andrekaa 29.09.21 09:00 Сейчас в теме
(10) на итс есть папка UNIREPS82\SearchAndChange\ в ней обработка ПоискИЗаменаЗначений
13. DaniilI 29.09.21 10:05 Сейчас в теме
Так ребят, немного разобрался в сути проблемы, теперь прошу помочь ее решить.
1. Пустые заказы действительно выгружаются по ссылке.
2. Ссылка на заказы идет в РТУ (Реализации товаров и услуг)
3. Пустой заказ выгружается если в источнике проводится реализация. Т.е. в РТУ есть ссылка на Заказ покупателя и обмен выгружает пустой Заказ

Теперь основной вопрос, как сделать чтобы заказ не выгружался по ссылке которая находится в ПКО РТУ???

Поиск ссылок нашел в меню операции, оказывается он есть и в 8.2
20. agata_v 29.09.21 17:04 Сейчас в теме
(13)Заказ покупателя в РТУ в реквизите - ДокументОснование?
Уберите этот реквизит из обмена.
21. DaniilI 29.09.21 17:28 Сейчас в теме
(20)вы имеете ввиду отключить пкс заказ покупателя?
Прикрепленные файлы:
22. DaniilI 29.09.21 17:30 Сейчас в теме
(20) разве если его отключить не будет ли пустое поле в документе основании?
23. agata_v 29.09.21 21:26 Сейчас в теме
(22)Будет пустое поле в документе-основании и не будет выгружаться заказы покупателя.
25. DaniilI 29.09.21 23:11 Сейчас в теме
(23)так а зачем мне это мне нужно обязательно документ основание но именно там где нужно. Т.е. в документах с БУ
27. RustamZz 30.09.21 09:46 Сейчас в теме
(25) В ПКС документ основание проверить наличие БУ у заказа и если нет: Пусто = Истина;
28. DaniilI 30.09.21 10:48 Сейчас в теме
(27) А почему пусто а не отказ???
29. RustamZz 30.09.21 11:45 Сейчас в теме
(28) Что бы очистить в приемнике.
30. DaniilI 30.09.21 12:05 Сейчас в теме
(29) Я только что отключил 8 ПКС "Сделка" в ПКО РТУ результата ноль.
Затем залез в файл данных и нашел что ссылка на заказ висит еще в ПКС ЗаказПокупателя неужели надо везде во всех ПКС прописывать эти правила.
Неужели нет унивесального алгорима
Ссылка на заказ покупателя есть минимум в десяти документах вокторых по 20 ПКС в которых разные реквизиты, ведь шансы полуичть ошибку на выходе увеличиватся в тысячу раз.
Почему е работает ПКО отказ РТУ почему выгружатся все ссылки РТУ которое не должно выгружаться.

Может зайти с другой стороны. И что-то передавать в параметр и не выгружать весь объет.

Может надо задать условие чтобы выгружалась ссылка на обект если условие не подходит.

Мне кажеться мы не туда идем товарищи.
31. RustamZz 30.09.21 12:16 Сейчас в теме
(30) На РТиУ тоже могут быть ссылки, например в счет-фактуре. Мы же не обсуждаем задачу, а пытаемся ее решить. Если бы мне озвучили такую задачу я сразу же про коллизии задал вопрос: В РТиУ есть БУ, в заказе нет. Что делаем? Все сч.ф. выгружаем, а если в РТиУ нет БУ, как поступать.
32. DaniilI 30.09.21 14:02 Сейчас в теме
(31) Рустам не злитеьс на меня просто уже сил нет вчера с одним программистом 5 часов просидели придумали костыль и пока все на этом.
Ну так если отбросить лирику в сторону что вы предлагаете найти ПКС которая ссылается на Заказ и прописать там

Если ... тогда
Пусто = истина;
КонецЕсли;

Правильно я вас понял?

И еще можно ли в ПКС засунуть алгоритмы или они не работат в ПКС???
35. RustamZz 30.09.21 14:33 Сейчас в теме
(32) Ни капли злости. Я же сам на стороне разработчиков, какие задачи зачастую ставят - знаю. Сделаешь, как просили - репу чешут, как с последствиями бороться.
Алгоритмы работают. Использую, если много кода (не помещается на экран). Если мало оставляю в ПКС. Наглядность в приоритете.
33. DaniilI 30.09.21 14:18 Сейчас в теме
(31)
В РТиУ есть БУ, в заказе нет. Что делаем? Все сч.ф. выгружаем, а если в РТиУ нет БУ, как поступать.


По поводу этих вопросов, в заказе обязательно проставлено бу, у нас допилена база на этот предмет, если оператор забыл бу в заказе а в рту БУ проставлена то при проведении БУ проставляется и заказе.

Если в РТУ нет БУ то РТУ попадает под условие и не выгружается.

Может в самой ПКО прописать чтото типа если объект создается на основании ссылки то.
34. RustamZz 30.09.21 14:26 Сейчас в теме
(33) Прописать надо то, что просит заказчик. Причем все варианты должен проговорить. Если был БУ а теперь убран, например. На форуме выяснять смысла нет.
36. DaniilI 30.09.21 14:59 Сейчас в теме
(34) Убрал Сделка, прилетел заказ по ПКС Заказ покупателя, Убрал заказ покупателя, Прилетел заказ по ПКС ЗаказСписания, убрал закаСписания прилетел по ПКС ЗаказПартии ((((

И подкидывает по одному.

И почему то везде ставлю праивло ПКО Заказ покупателя а он как нарошно не хочет работать.

Может поставить галочку в Заказе покупателя не создавать объект если по ссылке и разбираться с ошибкой которая выскакивает???(Потому что раньше выскакивала ошибка "Получение элемента по индексу для значения не определено")
37. RustamZz 30.09.21 16:33 Сейчас в теме
(36) Поиск ссылок на объект в КД быстрее сделать.
38. DaniilI 30.09.21 16:42 Сейчас в теме
(37) 2095 ссылок на объек Заказы покупателей.

Я вот сейчас продумываю такой алгоритм в ПКС Сделка прописать условия по выбору Заказов с БУ однако есть сделки где документом является СчетНаОплатуПокупателю У которого нет булево Отражать в БУ.

Какое мне условие прописать чтобы отбор по БУ действовал только если Булево БУ есть???
Прикрепленные файлы:
39. Dимыч 30.09.21 17:13 Сейчас в теме
(38)
Можно попробовать отбирать по типу документа, например так
Если ТипЗнч(Источник.Сделка) = Тип("ДокументСсылка.Заказ") Тогда
//Проверяем БУ у документа заказ, если не установлено то пусто
КонецЕсли;
40. DaniilI 04.10.21 14:39 Сейчас в теме
(39) Дело в том что есть документы у которых докмуентом основанием является счет и данное условие для них работать не будет, т.е. не будут отбираться докмуенты нужные мне.
16. DaniilI 29.09.21 11:22 Сейчас в теме
Сейчас тестирую следующее решение. Знатоки подскажиет в правильном ли я иду направлении.
Так как заказ выгружается по ссылке указанной в РТУ, то я установил в ПКО заказа "Не выгружать обект выгруженный по ссылке и в ПКО Реализация и на всякий случай возвратная накладная поставил галочку поиска ПКС "Отражать в БУ" (Потому что раньше выскакивала ошибка "Получение элемента по индексу для значения не определено")
Так как есть подозрения что в случае выгрузки объекта по ссылке точнее ссылки на Объект выгружатся поля которые обозначены для поиска, а так отбор по БУ у меня идет в правилах то обязательно его присутствие даже в ссылке.
то скажете?
Прикрепленные файлы:
17. DaniilI 29.09.21 12:02 Сейчас в теме
(16) Тест показал что в определенный момент при загрузке данных выпадает ошибка
"Ошибка при загрузке данных: {Обработка.ОбменДаннымиXML.МодульОбъекта(4376)}: Получение элемента по индексу для значения не определено"

Также удалось выяснить что данная ошибка возникает на заказах в которых кроме реализации привязан не проведенный документ возвратная накладная.

После его была установлена галочка в ПКО Возврат от покупателя "Не выгружать объекты свойств источника по ссылкам"
Но результат отрицательный не помогло.
Ошибка такая же на том же документе.
18. agata_v 29.09.21 14:17 Сейчас в теме
Если ОбъектНайден Тогда
Если Не Объект.ОтражатьВБухгалтерскомУчете Тогда
Объект.Проведен = Ложь;
Объект.ПометкаУдаления = Истина;
КонецЕсли;
Иначе
Если Не Объект.ОтражатьВБухгалтерскомУчете
Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;

Непонятно в алгоритме , ОбъектНайден и объект.ОтражатьВБухгалтерскомУчете - это один и тот же объект?
19. DaniilI 29.09.21 14:54 Сейчас в теме
(18) Да это условия для одного и того же объекта.
Т.е. логика следующая если в источнике сняли галочку БУ у объекта который уже есть в приемнике, то он должен стать на удаление.
Если такого обекта нет то выгружается только объект с признаком БУ=истина
41. al_efremov 14.10.21 14:38 Сейчас в теме
это можно указать в ПКС ПометкиУдаления
т.е.
Если Не Источник.ОтражатьВБухгалтерскомУчете Тогда
Значение = Истина;
КонецЕсли;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот