Имя: Пароль:
1C
1С v8
Добавление записей в документ корректировка записей регистра
0 wiseserg
 
17.01.12
11:02
Добрый день!Помогите новичку, подскажите , что я делаю не так
вопрос по документу корректировка записей регистров.
1. была задача программно сформировать документ Корректировка записей регистров вот ее решение
//ВыбТипЦен, ВыбДок,ТипЦен - выбираются из формы
//ТаблицаНоменклатуры - таблица значний с кодом номенклатуры и значением цены

ТипЦен = ВыбТипЦен;
Валюта = Справочники.Валюты.НайтиПоКоду("643");
ЕдИзм = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
Для Каждого Текстрока Из ТаблицаНоменклатуры Цикл    
Товар = Справочники.Номенклатура.НайтиПоКоду(ТекСтрока.Код);
НаборЗаписей =РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ВыбДок);
НаборЗаписей.Добавить();
Для Каждого Запись Из НаборЗаписей Цикл
Запись.Период = ВыбДок.Дата;
Запись.Номенклатура = Товар.Ссылка;
Запись.ТипЦен = ТипЦен.Ссылка;
Запись.ХарактеристикаНоменклатуры ="";
Запись.Валюта = Валюта.Ссылка;
Запись.ЕдиницаИзмерения = ЕдИзм.Ссылка;
Запись.Цена = ТекСтрока.Цена;
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла
Если выполняю код с одним элементом, т.е. без перебора Таблицы значений . то все нормально. запись добавляется,
а если пытаюсь загрузить номенклатуру из таблицы значений, то ничего не происходит
подскажите как правильно работать с набором записей
1 Wobland
 
17.01.12
11:04
навскидку: после установки отбора прочитать ещё надо
2 Господин ПЖ
 
17.01.12
11:07
в (0) какое-то ацкое шапито с циклами...
3 luckyluke
 
17.01.12
11:08
вот так, думаю заработает:

ТипЦен = ВыбТипЦен;
Валюта = Справочники.Валюты.НайтиПоКоду("643");
ЕдИзм = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");

НаборЗаписей =РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ВыбДок);

Для Каждого Текстрока Из ТаблицаНоменклатуры Цикл    
Товар = Справочники.Номенклатура.НайтиПоКоду(ТекСтрока.Код);

Запись = НаборЗаписей.Добавить();

Запись.Период = ВыбДок.Дата;
Запись.Номенклатура = Товар.Ссылка;
Запись.ТипЦен = ТипЦен.Ссылка;
Запись.ХарактеристикаНоменклатуры ="";
Запись.Валюта = Валюта.Ссылка;
Запись.ЕдиницаИзмерения = ЕдИзм.Ссылка;
Запись.Цена = ТекСтрока.Цена;

КонецЦикла;

НаборЗаписей.Записать();
4 ssh2006
 
17.01.12
11:10
Заполнение корректировки регистров по движениям другого документа


   Если Не ВыбДокумент = Неопределено Тогда
       НаборЗаписей = РегистрыНакопления.ПартииТоваровНаСкладах.СоздатьНаборЗаписей();
       НаборЗаписей.Отбор.Регистратор.Установить(ВыбДокумент);
       НаборЗаписей.Прочитать();
       Движения.ПартииТоваровНаСкладах.Загрузить(НаборЗаписей.Выгрузить());    
       Для каждого Запись Из Движения.ПартииТоваровНаСкладах Цикл
           Запись.Период = Неопределено;
           Запись.Регистратор = Неопределено;
           //Запись.Количество = - Запись.Количество;  //сторно
           //Запись.Стоимость = - Запись.Стоимость;    //сторно
       КонецЦикла;
   КонецЕсли;
5 wiseserg
 
17.01.12
11:24
Спасибо за помощь, получилось
надо было поместить Запись = НаборЗаписей.Добавить();
в цикл перебора таблицы значений