Работа со справочником

Версия для печатиPDF-версия

Платформа:

Как перебрать элементы справочника основ. средства в цикле добираясь до каждого элемента?

процедура Справочник()
спр1=Справочники.основныесредства;
    Спр = Справочники.основныесредства.Выбрать();
    Пока Спр.Следующий()   Цикл 
Если спр1.НайтиПоНаименованию(сокрлп(спр.ПолучитьОбъект().ГруппаОС))<>спр1.ПустаяСсылка() тогда
попытка
Если спр1.НайтиПоНаименованию(сокрлп(спр.ПолучитьОбъект().ГруппаОС)).ЭтоГруппа тогда
спр.ПолучитьОбъект().Родитель=спр1.НайтиПоНаименованию(сокрлп(спр.ПолучитьОбъект().ГруппаОС)).ПолучитьОбъект().ссылка;
спр.ПолучитьОбъект().Записать();
сообщить(спр1.НайтиПоНаименованию(сокрлп(спр.ПолучитьОбъект().ГруппаОС)));
КонецЕсли;
исключение
   сообщить("ошибка");
КонецПопытки;
Иначе
об=спр1.СоздатьГруппу();
об.наименование=Сокрлп(спр.ГруппаОС);
об.УстановитьновыйКод();
об.Записать();
Спр.ПолучитьОбъект().Родитель=об.Ссылка;
спр.ПолучитьОбъект().Записать();
сообщить("создаем группу");
КонецЕсли;
 
    КонецЦикла;
 
 
Перебор сделала теперь почему то родителя не присваивает!
Запрос = Новый Запрос; 
Запрос.Текст = " 
|ВЫБРАТЬ 
| ХозрасчетныйОстатки.субконто1, 
| ХозрасчетныйОстатки.Организация, 
| ХозрасчетныйОстатки.СуммаОстаток, 
| ХозрасчетныйОстатки.КоличествоОстаток 
|ИЗ 
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки"; 
 
Запрос.УстановитьПараметр("Период", КонецДня(текущаяДата())); 
Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ОсновныеСредства); 
 
РезультатЗапроса = Запрос.Выполнить(); 
Выборка = РезультатЗапроса.Выбрать(); 
Пока Выборка.Следующий() Цикл 
       сообщить("суб1 "+выборка.субконто1);
   сообщить("кол-во "+выборка.количествоостаток);
   сообщить(выборка.СуммаОстаток);
КонецЦикла;
 ничего не выводит, а нужно остаток по счету.

Это из-за того, что вы об'ект 2 раза получаете. Нужно поместить полученный об'ект в переменную, изменить её, а потом записать.

Спасибо! А запрос с остатками по счету посмотрите. Мне нужно остатки по 01.1 и 02.1 по ос получить.
Написала

Запрос = Новый Запрос; 
Запрос.Текст = " 
|ВЫБРАТЬ 
| ХозрасчетныйОстатки.субконто1, 
| ХозрасчетныйОстатки.СуммаОстаток, 
| ХозрасчетныйОстатки.КоличествоОстаток 
|ИЗ 
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки"; 
 
Запрос.УстановитьПараметр("Период", КонецДня(Дата1)); 
Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("01.01"));
 
РезультатЗапроса = Запрос.Выполнить(); 
Выборка = РезультатЗапроса.Выбрать(); 
Пока Выборка.Следующий() Цикл 
       сообщить("суб1 "+выборка.субконто1);
   сообщить("кол-во "+выборка.количествоостаток);
   сообщить(выборка.СуммаОстаток);
КонецЦикла;
 
работает. Как то нужно добавить 02.01 счет.
 
 

Нужна общая сумма по 2 счетам или по каждому счету отдельно?