Имя: Пароль:
1C
1C 7.7
v7: Создание элемента подчиненного справочника
0 servp2008
 
18.05.17
09:17
Добрый день. Помогите с вопросом. Есть процедура, которая проверяет отсутствие договора у контрагента и создает его. Но при попытке создания нового элемента постоянно выскакивает ошибка - не верный владелец. Как исправить? За раннее спасибо всем ответившим.

процедура Сформировать()    

    Контрагенты=создатьОбъект("справочник.контрагенты");
    Договор=создатьОбъект("справочник.Договоры");
    ТипДоговора=СоздатьОбъект("Справочник.ВидыДоговоров");  
    контрагенты.ВыбратьЭлементы();  
    Таб=СоздатьОбъект("Таблица");
    таб.вывестиСекцию("Секция_2");  
    
    Пока контрагенты.получитьЭлемент()=1 Цикл
        Если контрагенты.текущийЭлемент().принадлежитГруппе(грКонтрагента)=1 Тогда  
            договор.ИспользоватьВладельца(контрагенты.ТекущийЭлемент());
            договор.выбратьЭлементы();
            Если договор.получитьЭлемент()=0 тогда  
            таб.вывестиСекцию("Секция_1");
            договор.новый();  
            договор.Виддоговора = типдоговора.найтипоНаименованию(сокрлп("Совместный договор"));
            договор.Статус=перечисление.статусДоговора.НеДействует;    
            договор.записать();
        КонецЕсли;
        конецЕсли;
    КонецЦикла;
таб.толькопросмотр(1);
таб.показать();  
конецПроцедуры
1 Ёпрст
 
18.05.17
09:20
>>>Если контрагенты.текущийЭлемент().принадлежитГруппе(грКонтрагента)=1 Тогда

За такие конструкции нужно стальной линейкой по пальчикам
2 Ёпрст
 
18.05.17
09:22
Ну и за попытку создания договора у группы - имеешь сабд.
3 Ёпрст
 
18.05.17
09:22
сабж
4 Дмитрий
 
18.05.17
09:23
(0) если есть вложенные группы, они тоже попадут в цикл, а группа не может быть владельцем.

ну и можно явно присвоить договор.валаделец = владелец
5 servp2008
 
18.05.17
09:33
Спасибо. Благодаря вам уважаемые Ёпрст и  Дмитрий проблему победил.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан