Имя: Пароль:
1C
1С v8
Создать договор контрагента
0 matizov
 
20.12.12
12:38
Здравствуйте.
Мне нужно создать у всех контрагентов по одному договору "основной договор". Как мне заполнить значение Владелец?

НовыйЭлемент = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
   НовыйЭлемент.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоКоду("643");
   НовыйЭлемент.ВестиПоДокументамРасчетовСКонтрагентом = Истина;
   НовыйЭлемент.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
   НовыйЭлемент.Владелец =
   НовыйЭлемент.Наименование = "Основной договор с поставщиком";
   НовыйЭлемент.Организация = Справочники.Организации.НайтиПоКоду("000000001");
   НовыйЭлемент.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
   НовыйЭлемент.Записать();
1 CTmuB
 
20.12.12
12:38
НовыйЭлемент.Владелец = КонтрагентСсылка;
2 Oleg_Kag
 
20.12.12
12:39
Выбрать в запросе все элементы справочника контергенты, которые не группа.
3 Starhan
 
20.12.12
12:39
обоход по контрагентам
в цикле твой код
владелец = текКонтрагент
4 Eugene_life
 
20.12.12
12:40
(0) У тебя же ведь есть внешний цикл по контрагентам?
5 matizov
 
20.12.12
12:44
Выборка = Справочники.Контрагенты.Выбрать();
   Пока Выборка.Следующий() Цикл
       Объект = Выборка.ПолучитьОбъект();
       Если Объект.ЭтоГруппа = Ложь Тогда
           НовыйЭлемент = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
           НовыйЭлемент.Наименование = "Основной договор с поставщиком";
           НовыйЭлемент.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоКоду(СокрЛП("643"));
           НовыйЭлемент.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
           НовыйЭлемент.ВестиПоДокументамРасчетовСКонтрагентом = Истина;
           НовыйЭлемент.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
           НовыйЭлемент.Владелец = Выборка.Ссылка;
           НовыйЭлемент.Организация = Справочники.Организации.НайтиПоКоду(СокрЛП("000000001"));
           НовыйЭлемент.Записать();            
       КонецЕсли;
   КонецЦикла;

Почему ругается на влюту и на организацию?
6 ДенисЧ
 
20.12.12
12:45
Если Справочники.Валюты.НайтиПоКоду(СокрЛП("643")) = Неопределено Тогда
Сообщить("овощ тебе, а не валюта");
7 Галахад
 
гуру
20.12.12
12:46
Галку поставить в конфигураторе - "Останавливаться по ошибке"
8 matizov
 
20.12.12
12:48
все. разобрался, спасибо.
9 zladenuw
 
20.12.12
12:50
так же в типовой есть.
Процедура ПроверитьОсновнойДоговорКонтрагента(пОбъект)
10 kolanych
 
20.12.12
12:52
СокрЛП("643") - перестраховщик!
11 cw014
 
20.12.12
12:53
(10) Вообще здорово, надо будет запомнить
12 CTmuB
 
20.12.12
12:53
(10) :-)
13 cw014
 
20.12.12
12:53
(5)
        Объект = Выборка.ПолучитьОбъект();
       Если Объект.ЭтоГруппа = Ложь Тогда

накуя:
14 hhhh
 
20.12.12
13:04
(13) думаешь, что Выборка.ЭтоГруппа не то же самое? Не будет получать объект?
15 cw014
 
20.12.12
13:07
(14) Три раза твои вопросы перечитал, неосилил
16 hhhh
 
20.12.12
13:09
(15) ну что ты предлагаешь взамен Выборка.ПолучитьОбъект() ?
17 cw014
 
20.12.12
13:20
(16) Если Не Выборка.ЭтоГруппа Тогда
18 cw014
 
20.12.12
13:21
(16) Ибо объект тут не нужен впринципе
19 Галахад
 
гуру
20.12.12
13:22
(17) Гм. А какая разница?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший