Имя: Пароль:
1C
1С v8
Создать новый элемент справочника
,
0 Samir
 
28.11.11
15:28
Чет не соображу что он из под меня хочет, что упустил?

Род=Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Счета 20"+Прав(Год(Ф.DAT),2)+" г.");
               НовДог = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
               НовДог.Организация = Приход.Организация;
               НовДог.ВалютаВзаиморасчетов = Приход.ВалютаДокумента;
               НовДог.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
               НовДог.Владелец = Контр.Ссылка;
               НовДог.Родитель = Род;
               НовДог.Наименование = СокрЛП(СокрЛП(ф.NAKL));
                 НовДог.Записать();
               Дог=НовДог.Ссылка;


Ругается на то что: значение поля "Владелец" не заполнено...
Дык вроде указал.
1 Buster007
 
28.11.11
15:29
Контр.Ссылка = пустая ссылка?
2 Samir
 
28.11.11
15:30
(0) Без строчки:
НовДог.Родитель = Род;
Все работает, но создать надо именно в папочке Счета 2011 г.
3 Defender aka LINN
 
28.11.11
15:31
(2) А группа ТОЧНО тому же владельцу принадлежит?
4 Samir
 
28.11.11
15:52
О ёма ё, ну подскажите как создать если её нет.
5 Buster007
 
28.11.11
16:01
СоздатьГруппу()?
6 Samir
 
28.11.11
16:09
Все равно ругается может больше чуток кода выложить. Происходит загрузка из DBF

           Приход=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
           ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Приход, глЗначениеПеременной("глТекущийПользователь"), Константы.ВалютаРегламентированногоУчета.Получить(),    "Покупка");
           Приход.СуммаВключаетНДС = Ложь;
             Приход.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
             Приход.УчитыватьНДС = Истина;
           Приход.НДСВключенВСтоимость = Истина;
           Приход.СуммаВключаетНДС = Истина;
           
           Приход.Дата=Ф.DAT;
           Приход.Склад = Справочники.Склады.НайтиПоКоду("000000001");
           Контр=Справочники.Контрагенты.НайтиПоНаименованию(СокрЛП(ф.PROIZ));
           Если Контр = Справочники.Контрагенты.ПустаяСсылка() Тогда
                 Сообщить("Создаю Контрагента - "+СокрЛП(ф.PROIZ));
                 НовКонтр = Справочники.Контрагенты.СоздатьЭлемент();
                 НовКонтр.Наименование = СокрЛП(ф.PROIZ);
                 НовКонтр.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
                 НовКонтр.Записать();
               Контр=НовКонтр.Ссылка;
           КонецЕсли;
           Приход.Контрагент=Контр;
           Дог=Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(СокрЛП(ф.NAKL));
           Если Дог = Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
               Род=Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Счета 20"+Прав(Год(Ф.DAT),2)+" г.");
               Если Род=Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
                   Род=Справочники.ДоговорыКонтрагентов.СоздатьГруппу();
                   Род.ВидДоговора=Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
                   Род.Владелец = Контр.Ссылка;
                   Род.Записать();
               КонецЕсли;
               НовДог = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
               НовДог.Организация = Приход.Организация;
               НовДог.ВалютаВзаиморасчетов = Приход.ВалютаДокумента;
               НовДог.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
               НовДог.Владелец = Контр.Ссылка;
               НовДог.Родитель = Род;
               НовДог.Наименование = СокрЛП(СокрЛП(ф.NAKL));
                 НовДог.Записать();
               Дог=НовДог.Ссылка;
           КонецЕсли;
           Приход.ДоговорКонтрагента=Дог;
           Входящий = Ф.VHOD;    
           КонецЕсли;
7 catena
 
28.11.11
16:18
Если Род=Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда

А где проверка на Владельца?
8 Buster007
 
28.11.11
16:19
Дог=Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(СокрЛП(ф.NAKL));
это неправильно, надо наложить отбор на владельца. (сп в помощь)
и тут Род=Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Счета 20"+Прав(Год(Ф.DAT),2)+" г.");
и если НовДог.Родитель = Род; а если Род будет создан, то в Род будет СправочникОбъект, а не СправочникСсылка и будет ругаться.
9 DrShad
 
28.11.11
16:21
вобще весь код в топку
10 Reset
 
28.11.11
16:51
Диагноз в (3).
Находит по наименованию чужую папку.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.