Имя: Пароль:
1C
1C 7.7
v7: Не могу присвоить значение элементам справочника
0 Samir
 
27.03.13
10:16
Задача элементарна, но уже с утра не могу справиться, наверно 7-ку подзабыл. Необходимо присвоить элементам справочника значения. Код элементарный:


Процедура Сформировать()
   Док=СоздатьОбъект("Документ.ПоступлениеМатериалов");
   Док.ВыбратьДокументы(НачДата,КонДата);
   Спр=СоздатьОбъект("Справочник.Материалы");
   Пока Док.ПолучитьДокумент()=1 Цикл
       Если Док.Проведен()=0 Тогда
           Продолжить;
       КонецЕсли;    
       Если Док.ПометкаУдаления()=1 Тогда
           Продолжить;
       КонецЕсли;            
       Док.ВыбратьСтроки();
       Пока Док.ПолучитьСтроку()=1 Цикл
           Если Спр.НайтиПоКоду(Док.Материал.Код,0)=1 Тогда
               Спр.СчетФактура=""+СокрЛП(Док.НомерСчетаФактуры)+" от "+Док.ДатаСчетаФактуры;
               Спр.СтавкаНДС=Док.ВариантРасчетаНалогов.СтавкаНДС.Ставка;
               Спр.Записать();
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
КонецПроцедуры



Смотрю в отладчике, значения правильные. Почему не записывает?
1 Wobland
 
27.03.13
10:18
ТекущийЭлемент?
2 Ёпрст
 
27.03.13
10:19
(0)

//Если Спр.НайтиПоКоду(Док.Материал.Код,0)=1 Тогда  Спр.НайтиЭлемент(Док.Материал)
3 Ёпрст
 
27.03.13
10:19
(0)

//Если Спр.НайтиПоКоду(Док.Материал.Код,0)=1 Тогда

Спр.НайтиЭлемент(Док.Материал);
4 Хряк
 
27.03.13
10:20
рекв. исторические?
5 Ёпрст
 
27.03.13
10:21
(0)

Процедура Сформировать()
   Спр=СоздатьОбъект("Справочник.Материалы");
   Док=СоздатьОбъект("Документ.ПоступлениеМатериалов");
   Док.УстановитьФильтр(1,0);
   Док.ВыбратьДокументы(НачДата,КонДата);
   Пока Док.ПолучитьДокумент()=1 Цикл
       //Если Док.Проведен()=0 Тогда
       //    Продолжить;
       //КонецЕсли;    
       //Если Док.ПометкаУдаления()=1 Тогда
       //    Продолжить;
       //КонецЕсли;            
       Док.ВыбратьСтроки();
       Пока Док.ПолучитьСтроку()=1 Цикл
   //        Если Спр.НайтиПоКоду(Док.Материал.Код,0)=1 Тогда
               Спр.НайтиЭлемент(Док.Материал);
               Спр.СчетФактура=""+СокрЛП(Док.НомерСчетаФактуры)+" от "+Док.ДатаСчетаФактуры;
               Спр.СтавкаНДС=Док.ВариантРасчетаНалогов.СтавкаНДС.Ставка;
               Спр.Записать();
   //        КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   //на самом деле, всё в топку - нужно материал выбирать запросом, а не перезаписывать в цикле каждый раз одинаковые элементы справочников.
КонецПроцедуры
6 wise
 
27.03.13
10:22
ссылку пишешь.
7 Samir
 
27.03.13
10:35
Всем спасибо. Разобрался.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой