Имя: Пароль:
1C
1С v8
Как получить ссылку на основной договор контрагента?
0 KRolexx
 
28.08.12
13:53
ДокП.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТекДок.Контрагент.Наименование);
       Если НЕ ЗначениеЗаполнено(ДокП.Контрагент) Тогда
           Сообщить("Не найден контрагент " + ТекДок.Контрагент.Наименование, СтатусСообщения.Важное);
       Иначе
           
           ДокП.ДоговорКонтрагента = ДокП.Контрагент.ОсновнойДоговорКонтрагента;

Не находит основной договор... Почему?
1 Нуф-Нуф
 
28.08.12
13:53
"ДокП.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТекДок.Контрагент.Наименование);" ужаснах
2 andrewks
 
28.08.12
13:54
конфа какая?
(1)+1
3 KRolexx
 
28.08.12
13:55
(1) почему ужас?
(2)БП
4 Wobland
 
28.08.12
13:55
а почему бы не Справочники.Контрагенты.НайтиПоКоду(ТекДок.Контрагент.Код) ?
5 KRolexx
 
28.08.12
13:55
Там всего 1 организация
6 vmv
 
28.08.12
13:56
ну вот испугали!

никакой не ужас - нормальный код для ларька, там етих контрагентов всего пара "ООО Сидр" и ОАО "Сивуха"
7 KRolexx
 
28.08.12
13:56
(4) Контрагент заполняет нормально а вот Основной договор не тянет
8 raykom
 
28.08.12
13:57
(0) Значит он не основной.
9 KRolexx
 
28.08.12
13:57
Подскажите по делу плиз
10 XoloD
 
28.08.12
13:57
(7) а договор у контрагента основной точно есть ?
11 KRolexx
 
28.08.12
13:57
(8) открыл справочник основной выставлен
12 andrewks
 
28.08.12
13:57
в БП у контрика есть такой реквизит "ОсновнойДоговорКонтрагента"
13 KRolexx
 
28.08.12
13:58
(10) да, точно
14 andrewks
 
28.08.12
13:59
до меня только щас дошёл смысл строчки
ДокП.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТекДок.Контрагент.Наименование);

(1) +100500
15 Wobland
 
28.08.12
13:59
(13) скрин давай
16 Wobland
 
28.08.12
13:59
(14) итого +100501
17 Шапокляк
 
28.08.12
14:00
(0) Как найти контрагента?
Контрагент=ТекДок.Контрагент;
Как найти договор этого контрагента?
Договор=Контрагент.ОсновнойДоговорКонтрагента;
Как заполнить ДокП? Если это ссылка, надо получить объект:
Об=ДокП.ПолучитьОбъект();
и потом
Об.Контрагент=Контрагент;
Об.ДоговорКонтрагента=Договор;
Если это объект, то сразу
ДокП.Контрагент=Контрагент; ДокП.ДоговорКонтрагента=Договор.
18 vmv
 
28.08.12
14:00
ДокП.ДоговорКонтрагента = ДокП.Контрагент.ОсновнойДоговорКонтрагента;


меня смущает идентфикатор ДокП и весь оператор, а ведь неспроста это, думаю от лукавого
19 mehfk
 
28.08.12
14:00
ДокП.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТекДок.Контрагент.Наименование);

ДокП.ДоговорКонтрагента = ДокП.Контрагент.ОсновнойДоговорКонтрагента;

А че так не написал?

ДокП.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(ДокП.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТекДок.Контрагент.Наименование).ОсновнойДоговорКонтрагента.Наименование,,,Справочники.Контрагенты.НайтиПоНаименованию(ТекДок.Контрагент.Наименование));
20 KRolexx
 
28.08.12
14:01
В контрагенте могут быть задвоения, спс за подсказку, буду искать по коду
21 Wobland
 
28.08.12
14:02
(20) вот ты... это тонкое издевательство было
ТекДок.Контрагент - вот твой контрагент. гарантированно уникальный
22 KRolexx
 
28.08.12
14:04
(19) Наименования разные у основных договоров
23 andrewks
 
28.08.12
14:05
(17) "Если это объект, то сразу "  не объект, а ссылка на объект
24 KRolexx
 
28.08.12
14:15
а можно как-нибудь тот код что используется в поступление товаров и услуг при изменение контрагента переделать и воткнуть в мой?
25 Шапокляк
 
28.08.12
14:16
(24) в (17) я тебе ответила
26 ICWiner
 
28.08.12
14:31
Дык у контрагента же реквизит есть основной договор...
27 ICWiner
 
28.08.12
14:33
Не находит если он не задан. В контрагента зайди и посмотри выделен ли какой-нть договор жирным шрифтом, если нет, то назначь и проверь работу кода.