Имя: Пароль:
 
1C
1С v8
КА 1.1 программно выбрать поле Контрагент
0 dmtrpv
 
22.08.18
10:15
КА 1.1
Документ ПоступлениеТоваровУслуг

На форме документа есть в том числе поля Контрагент и Договор Контрагента.

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

Код:
ЭтотОбъект.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Основной", Истина, ,Справочники.Контрагенты.НайтиПоНаименованию("бла бла"));

работает и поле ДоговорКонтрагента заполняется корректно.

а вот код ЭтотОбъект.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("бла бла");
не работает и поле контрагент НЕ заполняется, хотя по отладчику видно, что контрагент найден.
1 Михаил Козлов
 
22.08.18
10:21
ЭтотОбъект при программном создании ПТиУ что из себя представляет?
2 dmtrpv
 
22.08.18
10:22
(1) ЭтотОбъект это документ ПоступлениеТоваровУслуг
3 shadow_sw
 
22.08.18
10:34
покажи как ты создаешь документ
4 Михаил Козлов
 
22.08.18
10:35
(2) Неудачное имя переменной.
Если в отладчике перед записью созданного документа Контрагент заполнен, может быть у него не взведен флаг Поставщик, хотя вряд ли из-за этого.
5 dmtrpv
 
22.08.18
10:42
(4) Какой переменной?
ЭтотОбъект.Контрагент
ЭтотОбъект это док ПоступлениеТоваровУслуг
Контрагент это реквизит этого документа.
6 hhhh
 
22.08.18
10:47
(5) программно где создаете документ? Если Обработка, то ЭтотОбъект - это как раз ваша обработка.
7 Михаил Козлов
 
22.08.18
10:47
(5) Вы создаете новый документ или используете существующий?
8 dmtrpv
 
22.08.18
10:53
(7) Корректнее будет все таки уже существующий, но пустой.
9 shadow_sw
 
22.08.18
10:57
НовДок  = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
НовДок.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("бла бла");

вот так правильнее...с вас 500 руб в копилку мисты
10 dmtrpv
 
22.08.18
11:03
(9) Я ж не совсем тупой.
НовДок.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("бла бла");

это тож не работает.
поле Контрагент остается пустым, хотя по отладчику видно, что Контрагент найден.
11 Михаил Козлов
 
22.08.18
11:06
(10) "...хотя по отладчику видно, что Контрагент найден." - что смотрите в отладчике: НовДок.Контрагент или Справочники.Контрагенты.НайтиПоНаименованию("бла бла")?
12 dmtrpv
 
22.08.18
11:07
(11) НовДок.Контрагент

Проблема в том, что визуально в доке поле Контрагент остается пустым. Ну то есть не происходит выбор и заполнение этого поля.
13 shadow_sw
 
22.08.18
11:19
(12) т.е. реквизит заполнен, а поле нет?
14 Михаил Козлов
 
22.08.18
11:21
(13)+ Реквизит Контрагент какого документа-объекта заполнен? Для которого открыта форма или другого?
15 dmtrpv
 
22.08.18
11:43
(13) да

в доке на форме есть поля Контрагент и ДоговорКонтрагента. Это ссылки на справочники соответствующие.

ЭтотОбъект.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("бла бла"); - этот код заполняет поле ДоговорКонтрагента, в поле появляется, например, договор "Основной"

а вот этот код
ЭтотОбъект.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("бла бла"); - этот код НЕ заполняет поле Контрагент, то есть в поле красное подчеркивание остается, как и было.
16 dmtrpv
 
22.08.18
11:44
(15) поправлю, ошибся в 15

ЭтотОбъект.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Основной", Истина, ,Справочники.Контрагенты.НайтиПоНаименованию("бла бла")); - этот код заполняет поле ДоговорКонтрагента, в поле появляется, например, договор "Основной"
17 shadow_sw
 
22.08.18
12:29
(16) ну понятно, там в обратном порядке - заполняешь контрагента, выполняется процедура "ПриИзменении", подставляется договор, а тут ты в обратном порядке делаешь, соотв. контрагент и не заполняется
18 dmtrpv
 
23.08.18
08:30
(17) Да нет.

Сначала заполняю Контрагента, договор потом.
19 hhhh
 
23.08.18
08:33
(18) давай процедуру полнстью, где и чего заполняешь. Ты постоянно нас путаешь
20 dmtrpv
 
23.08.18
11:25
вот выложил

https://pastebin.com/43diN9rF
21 hhhh
 
23.08.18
12:11
(20) ну значит заполняется, а потом очищается дальше. чудес не бывает