Имя: Пароль:
1C
 
Разделение документа на 2 в Конвертации данных 2
,
0 val245
 
12.06.24
07:29
Доброго времени суток
В базе источнике (ERP) имеется документ Установка цен номенклатуры. Здесь могут быть как товары, так и услуги. При этом они могут быть в одном документе (и товары, и услуги). В базе приемнике 2 документа: Установка цен на товары и Установка цен на работы (услуги). При конвертации справочника делю их по типу номенклатуры из справочника Номенклатура источника.
Кто может подсказать, как можно в КД2 разделить установку цен номенклатуры на 2. Где копать, какую из возможностей КД использовать?
1 Ёпрст
 
12.06.24
07:46
(0) че там копать то, 2 ПКО и привет. Единственное, нужно гуид ссылки подменять в выгрузке
2 val245
 
12.06.24
07:51
(1) да, но нужно делить. Как бы 2 запроса. Один по товарам, другой по услугам.
3 Ёпрст
 
12.06.24
08:00
(2) и ?
Дели, разрешаю.
Во втором ПКО запихать только новый УникальныйИдентификатор, слепленный из старого и заменой части его
4 Web00001
 
12.06.24
08:01
Было три миллиона лет назад, поэтому могу немного врать. Но вроде как действительно в ПКО ты собираешь таблицу значений и передаешь ее процедуру выгрузки объекта, которая и выгружает эту таблицу в документ. А сколько там будет этих ТЗ, это уже дело техники
5 Ёпрст
 
12.06.24
08:04
гуид, так, например, слепить
Гуид = MD5ХешСтрока(Источник.Номер)+Сред(XMLСтрока(Источник.ССылка),9);
6 Ёпрст
 
12.06.24
08:51
Могу твои правила поправить..чтоб заработало.
7 craxx
 
12.06.24
08:56
(0) в правила подсовывай структуры, соответственно ГУИД делай MD5 хешем от ключевых полей.
8 _Дайвер_
 
12.06.24
09:37
(5) Зачем? Чем не устраивает Новый УникальныйИдентификатор()?
9 Лирик
 
12.06.24
09:40
(5) Поправьте меня если я не так понял. При изменении номера документа в базе-источнике сформируется другая ссылка?
10 Лирик
 
12.06.24
09:55
Я бы сделал следующим образом:
Два ПКО
1. "Установка цен номенклатуры"-> "Установка цен на товары" (отбор по товарам в ТЧ)
2. "Установка цен номенклатуры"-> "Установка цен на работы" (отбор по работам в ТЧ)
Одно ПВД "Установка цен номенклатуры", например по первому правилу.
В ПКО "После выгрузки" первого поставил бы ВыгрузитьПоПравилу(Источник, "ВтороеПравило")
Выгрузку свойства "ПометкаУдаления" в обоих правилах определил бы как
Значение = Источник.ПометкаУдаления ИЛИ КоличествоСтрокВТЧ = 0
(естественно предварительно определив КоличествоСтрокВТЧ).
В обоих ПКО в обработчике "После загрузки" определил бы:
Если НЕ ОбъектНайден И Объект.ПометкаУдаления Тогда
Отказ = Истина;
КонецЕсли;
11 Ёпрст
 
12.06.24
09:59
(8) При повторной выгрузке будут дубли доков же..
12 Ёпрст
 
12.06.24
10:00
(9) да. Можно к другим реквизитам привязаться, главное, обеспечить уникальность гуида и возможность многократной выгрузки
13 Лирик
 
12.06.24
10:01
(11) При (5) и изменении номера в источнике тоже будут дубли
14 Лирик
 
12.06.24
10:10
(12) Не надо привязываться к реквизитам, единственное что уникально в объекте - его УИД. При решении как в (10) КД2 обеспечивает это "естественным" образом. Изменяемая пометка удаления и код в "После загрузки" не дает создавать документы, если после в Источнике нет данных для соответствующего приемника, либо помечает документ на удаление, если при изменении источника они (данные) пропали, например из установки цен удалили все операции, оставив только товары.
Номер вообще переносить не надо, пусть генерится по "Автоматически, если не задан". Для визуальной идентификации в базе приемника можно сделать Комментарий: Значение = "Создан по документу: "+Источник;
15 Гена
 
гуру
12.06.24
10:32
А нельзя просто по счётчику дважды прогонять исходный док со всеми позициями: первый раз оставлять в приёмнике один тип, а второй раз другой?
16 Лирик
 
12.06.24
10:39
(15) Что то не понятное вы спросили. Приемники то разные, где прогонять, где оставлять?
17 d4rkmesa
 
12.06.24
10:47
(15) Можно, я, кажется, раньше даже в типовых правилах видел ВыгрузитьПоПравилу(СчетФактура, , , , "СчетФактураВыданный"), где ПКО СчетФактураВыданный настроено из реализации, например. Т.е. создаются 2 разных документа с одинаковыми уид.
Но если обмен на типовом механизме БСП, возможно, там одинаковые уид-ы могут быть проблемой.
18 Лирик
 
12.06.24
10:56
(17) Даже если обмен на типовом механизме БСП, то это не проблема, так как в стандартных механизмах предусмотрено хранение в регистре соответствий типов источника и приемника.
+ (15) А если про счетчик, это было про правила выгрузки данных, то не забывайте, что кроме выгрузки из ПВД есть еще правила выгрузки свойств. И тогда эти счетчики нужно вставлять в ПКС.
19 ГдеСобака Зарыта
 
12.06.24
11:30
Разве документы двух разных видов не могут иметь одинаковый идентификатор? Я вроде делал так в свое время. Как раз обмен был один док в два разных видов.
Вот даже тему свою нашел Два документа разных видов с одним GUID. Так можно?
20 _Дайвер_
 
12.06.24
11:53
(19) Можно, всего то потом проблема вылезла)