Имя: Пароль:
1C
1С v8
вопрос по КД
,
0 novichok79
 
08.07.16
11:20
Здравствуйте, уважаемые специалисты. Моя предыдущая тема остается без ответа, поэтому создаю новую.
Собственно сабж: дорабатываю типовые правила обмена УТ 10.3 -> БП 3.0. делаю ПКО ВидыКонтактнойИнформацииОрганизацияКонтрагент, которые переносит виды КИ контрагента в виды КИ организации и наоборот.
конвертации свойств: Наименование -> Наименование, Тип -> Тип, ПометкаУдаления -> ПометкаУдаления, Родитель -> Родитель.
Поля поиска: Наименование -> Наименование и Родитель -> Родитель.
Значения в ПКС берутся из входящих данных (на случай из в УТ 10.3 Вид КИ задан строкой).

Значение "Родитель" подбирается по следующему алгоритму:

ВидОбъектаКонтактнойИнформации = ВходящиеДанные.ВидОбъектаКонтактнойИнформации;

Если ВидОбъектаКонтактнойИнформации = Перечисления.ВидыОбъектовКонтактнойИнформации.Контрагенты Тогда
    Значение = "СправочникОрганизации";
ИначеЕсли ВидОбъектаКонтактнойИнформации = Перечисления.ВидыОбъектовКонтактнойИнформации.КонтактныеЛица Тогда
    Значение = "СправочникКонтактныеЛица";
ИначеЕсли ВидОбъектаКонтактнойИнформации = Перечисления.ВидыОбъектовКонтактнойИнформации.КонтактныеЛицаКонтрагентов Тогда
    Значение = "СправочникКонтактныеЛица";
ИначеЕсли ВидОбъектаКонтактнойИнформации = Перечисления.ВидыОбъектовКонтактнойИнформации.ЛичныеКонтакты Тогда
    Пусто = Истина;
ИначеЕсли ВидОбъектаКонтактнойИнформации = Перечисления.ВидыОбъектовКонтактнойИнформации.Организации Тогда
    Значение = "СправочникКонтрагенты";
ИначеЕсли ВидОбъектаКонтактнойИнформации = Перечисления.ВидыОбъектовКонтактнойИнформации.Пользователи Тогда
    Значение = "СправочникПользователи";
ИначеЕсли ВидОбъектаКонтактнойИнформации = Перечисления.ВидыОбъектовКонтактнойИнформации.ФизическиеЛица Тогда
    Значение = "СправочникФизическиеЛица";
ИначеЕсли ВидОбъектаКонтактнойИнформации = "" Тогда Пусто = Истина;
КонецЕсли;

т. е. как мы видим при выгрузке организаций в БП из УТ загружаются виды КИ контрагента, и наоборот - при выгрузке контрагентов в БП из УТ загружаются виды КИ организаций.
далее при выгрузке из УТ свойство "Родитель" выгружается верно, как и должно.
а при загрузке в БП. в обработчик при поиске непопадает, а попадается в обработчик перед загрузкой и при загрузке.
и выдает что ссылку вида КИ алгоритм находит для контрагента, когда должен для организации.
подставляет верные значения, но не записывает объект, т. к. установлена настройка в ПКО "не замещать объекты"
вопрос - как сделать так, чтобы поиск в БП при загрузке работал верно?

Заранее благодарю за помощь.
1 VladZ
 
08.07.16
11:32
Ничего не понял... При чем здесь "Родитель"?
2 novichok79
 
08.07.16
11:32
вот, если кому-то поможет кусок протокола загрузки:

Загрузка объекта № 12
    ИмяПКО                 =  ВидыКонтактнойИнформацииОрганизацияКонтрагент
    ТипОбъекта             =  Вид контактной информации
    КодСообщения           =  
ПКО_ВидыКонтактнойИнформацииОрганизацияКонтрагент_ПередЗагрузкойОбъекта -->
Отказ = Нет
Источник = Строка
Источник =
ЗначениеЗаполнено(Источник) = Нет
ПКО_ВидыКонтактнойИнформацииОрганизацияКонтрагент_ПередЗагрузкойОбъекта <--

ПКО_ВидыКонтактнойИнформацииОрганизацияКонтрагент_ПриЗагрузкеОбъекта -->
Отказ = Нет
Ссылка.Родитель = Контактная информация справочника "Контрагенты"
Ссылка = Другое (любая другая контактная информация)
Объект = Другое
Объект.Родитель = Контактная информация справочника "Организации"
ОбъектНайден = Да
ОбъектМодифицирован = Да
НеЗамещатьОбъект = Да
ПКО_ВидыКонтактнойИнформацииОрганизацияКонтрагент_ПриЗагрузкеОбъекта <--
3 Cyberhawk
 
08.07.16
11:33
Слишком много букв
4 novichok79
 
08.07.16
11:34
(1) ПКС родитель передается в поле "Родитель" (это группа Вида КИ в БП 3.0). без нее поиск не заданных в конвертации предопределенных значений будет идти по контрагенту (когда надо по организации)
5 novichok79
 
08.07.16
11:34
(3) да, но тем не менее, по существу есть что сказать?
6 Cyberhawk
 
08.07.16
11:37
(5) Так это по существу и есть: чтоб охотнее тебе помогали, сделай описание внятнее и компактнее. Зачем эта простыня текста
7 novichok79
 
08.07.16
11:37
(6) чтобы не уточнять лишние детали.
8 Cyberhawk
 
08.07.16
11:41
Источник = Строка
Источник =
ЗначениеЗаполнено(Источник) = Нет

Это тебя не смущает?
9 novichok79
 
08.07.16
11:47
(8) честно говоря, да.
но в файле при выгрузке все правильно записывается.

<Запись><Свойство Имя="Вид" Тип="СправочникСсылка.ВидыКонтактнойИнформации" ИмяПКО="ВидыКонтактнойИнформацииОрганизацияКонтрагент"><Ссылка Нпп="12">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>411f5b28-b025-4be6-bae2-a8b95e84a62f</Значение>
</Свойство>
<Свойство Имя="Наименование" Тип="Строка">
<Значение>Другое</Значение>
</Свойство>
<Свойство Имя="Родитель" Тип="СправочникСсылка.ВидыКонтактнойИнформации">
<Значение>СправочникОрганизации</Значение>
</Свойство>
</Ссылка>
</Свойство><Свойство Имя="Представление" Тип="Строка">
<Значение>http://www.youtube.ru</Значение>;
</Свойство><Свойство Имя="Тип" Тип="ПеречислениеСсылка.ТипыКонтактнойИнформации">
<Значение>Другое</Значение>
</Свойство>
</Запись>
10 novichok79
 
08.07.16
11:52
я думаю надо отключить поиск по UID и попробовать загрузить полученные данные в БП.
11 Cyberhawk
 
08.07.16
11:54
Покажи флажки у ПКО "ВидыКонтактнойИнформацииОрганизацияКонтрагент"
12 novichok79
 
08.07.16
11:57
13 novichok79
 
08.07.16
12:11
(11) выключил загрузку по UID, виды КИ подобрались верно. сейчас еще понасилую обработку поиска значения, чтобы посмотреть по каким значениям идет поиск.
14 novichok79
 
08.07.16
14:05
еще вопрос по КД:
можно ли дать пользователю, который получит выгруженный по правилам XML файл возможность указывать например, склад и организацию в параметрах (уже в своей базе)? если да, можно ли использовать введенные значения при загрузке объектов?
15 Cyberhawk
 
08.07.16
19:24
(12) Ну у тебя уже есть в приемнике левый объект с таким ГУИДом и он подхватывается при загрузке, но не обновляется твоими новыми - прввильными - данными (из-за соответствующей галочки)
(13) Ч.т.д.
(14) Нельзя
16 Cyberhawk
 
08.07.16
19:25
+(14) Заведи настройку пользователя в базе-приемникеи где-нибудь храни ее (типа "Склад для загрузки"), а в правилах подхватывай значение настройки из того места в базе-приемнике, где оно будет храниться
17 novichok79
 
08.07.16
20:43
(16) спс, как вариант - есть основной склад и основная организация в настройках пользователя, беру оттуда.
2 + 2 = 3.9999999999999999999999999999999...