Имя: Пароль:
1C
 
Конвертация: объект найден по УИН, его надо заменить
,
0 Stim
 
12.10.22
11:09
РС Соответствие объектов для обмена не работает.

Вместе с объектом передаю параметр. Хочу после загрузки переопределить объект, чтобы он встал в документы как надо:

//ПКО Контрагенты, Процедура ПослеЗагрузки

     КодДляПоиска = ПараметрыОбъекта.Получить("Код");
     Сообщить(Строка(КодДляПоиска));
     Если КодДляПоиска  <> неопределено и ЗначениеЗаполнено(КодДляПоиска) Тогда
         Сообщить("+"+Строка(КодДляПоиска));
         Ссылка = Справочники.Контрагенты.НайтиПоКоду(КодДляПоиска);
         Объект = Ссылка.ПолучитьОбъект();
     КонецЕсли;

Всё сообщает, но контрагент в документе остается старый(найденный по УИН). Почему не переопределяется?
1 mikecool
 
12.10.22
11:23
задать в полях поиска пробовал?
2 Stim
 
12.10.22
11:50
(1) пробовал. но поиск по реквизитам не работает, если объект уже найден по УИН
3 mistеr
 
12.10.22
12:05
Я так и не понял, что надо-то?
Заменить ссылку в документе? Так это нужно делать в ПКО документа.
4 Stim
 
12.10.22
12:08
(3) заменить нужно везде, в идеале. Что-то зарегистрировалось по контрагенту - надо, чтобы это все выгрузилось на другого контрагента.
Даже если по документу - мне нужно где-то хранить и передавать параметры переопределения контрагента
5 mistеr
 
12.10.22
12:13
(4) Сделай отдельное ПКО контрагента с поиском по коду, а не по уиду. В документах подставляй это ПКО, где нужно.
6 Stim
 
12.10.22
12:21
(5) да вот не работает. Контрагент ищется по коду только тогда, когда не нашелся по УИН. А тут он нашелся и дальше не идет
7 Йохохо
 
12.10.22
12:24
(4) а как определяется этот другой?
8 Йохохо
 
12.10.22
12:24
(6) Вы понимаете что в совете (5) ПКО а не "ПослеЗагрузки"??
9 Stim
 
12.10.22
13:34
(7) у контрагента в источнике есть реквизит "КодПриемника". Если он заполнен, то в приемнике должен переопределиться контрагент - найтись по этому коду.
10 Naumov
 
12.10.22
13:42
очистить РС соответствий, раз он косячный?
11 Stim
 
12.10.22
14:00
(10) Да, очищал. И хотелось бы вообще обойтись без него. нужно сделать пользовательскую настройку
12 Йохохо
 
12.10.22
14:14
(9) еслизначениезаполненокодприемникатогда ИмяПКО = "СправочникКонтрагентыСнятаГалкаПоУИДПолеПосикаКод"
13 Naumov
 
12.10.22
14:20
(11) ТАк отключи, раз он не нужен
14 Stim
 
12.10.22
17:27
создал новое ПКО Контрагенты-Контрагенты. Отключил поиск по УИН и полям поиска. Установил это пко для конвертации контрагента в документе.
в ПКО после загрузки написал:

Ссылка = Справочники.Контрагенты.НайтиПоКоду("0000001");
Объект = Ссылка.ПолучитьОбъект();

такой контрагент точно есть. Документ загрузился с пустым контрагентом
15 Stim
 
12.10.22
17:30
+ а способа установить синхронизацию по полям поиска без поиска по УИН я не нашел. Подозреваю, это невозможно
16 mistеr
 
12.10.22
20:29
(14) Зачем поиск-то отключил? У тебя есть код, включи поиск по нему.
17 Stim
 
12.10.22
23:01
(16) да ёпт.. поиск по полям отдельно не включается без поиска по уин. а поиск по уин мне находит не того контрагента
18 welwel
 
12.10.22
23:27
(17) если поиск по уин отключен, то предполагается просто поиск по полям. В обработчике ПоискПоПолям можно отказаться от стандартного поиска и указать свой алгоритм, в котором заполнить ссылку. В этот же обработчик  кроме полей поиска можно передать нужные параметры поиска (со включенным поиском).
19 welwel
 
12.10.22
23:34
(14) в ПКО после загрузки Объект может использоваться для переопределения его свойств.
Если захотелось переопределить объект, то переопределять нужно свойство в вышестоящем пко (после загрузки), где контрагент является свойством: Объект.Контрагент = МояСсылка