Для чтения данных из регистра сведений необходимо создать новый отбор и воспользоваться методами СрезПервых или СрезПоследних или использовать запрос как показано в примере обработки далее. Пример кода иллюстрирует эти методы:
1 2 3 4 5 |
Отбор = Новый Структура("ТипЦен, Номенклатура"); Отбор.ТипЦен = ТипЦены; // Какой тип цены Отбор.Номенклатура = Номенклатура; // Для какой номенклатуры // Цена в регистре сведений до Рабочей даты включительно Цена = РегистрыСведений.ЦеныНоменклатуры.СрезПоследних( РабочаяДата(), Отбор); |
Для записи в подчиненный регистратору регистр сведений Цены номенклатуры 1С использует механизмы проведения, а именно процедуру Обработка Проведения, которые можно сформировать в конфигураторе, используя помощник — конструктор движений:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Процедура Обработка Проведения(Отказ, Режим) Для Каждого ТекСтрокаТовары Из Товары Цикл // регистр Цены Номенклатуры Движение = Движения.ЦеныНоменклатуры.Добавить(); Движение.Период = Дата; Движение.ТипЦен = ТекСтрокаТовары.ТипЦен; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.ХарактеристикаНоменклатуры = ТекСтрокаТовары.ХарактеристикаНоменклатуры; Движение.Валюта = ТекСтрокаТовары.Валюта; Движение.Цена = ТекСтрокаТовары.Цена; Движение.ЕдиницаИзмерения = ТекСтрокаТовары.ЕдиницаИзмерения; Движение.ПроцентСкидкиНаценки = ТекСтрокаТовары.ПроцентСкидкиНаценки; Движение.СпособРасчетаЦены = ТекСтрокаТовары.СпособРасчетаЦены; КонецЦикла; КонецПроцедуры |