понедельник, 25 мая 2015 г.

Регистры накопления

На следующей схеме изображено взаимодействие объектов встроенного языка для работы с регистрами накопления.


РегистрНакопленияЗапись.<имя>. Используется для доступат к записи регистра накопления. Объект не создается непосредственно, а предоставляется другими объектами, отвечающими за регистр накопления. Например, данный объект представляет записи регистра в наборе записей.
РегистрНакопленияКлючЗаписи.<имя>. Представляет собой набор значений, однозначно идентифицирующих запись регистра. Объект используется в тех случаях, когда необходимо сослаться на определенную запись. Например, он выступает в качестве значения свойства ТекущаяСтрока табличного поля, отображающего список записей регистра. Ниже приведены примеры использования объектов встроенного языка для работы с регистрами накопления.


// 1. Глобальный контекст
//    РегистрыНакопления

// Пример: выполнить полный пересчет итогов регистра "ОстаткиМатериалов".
РегистрыНакопления.ОстаткиМатериалов.ПересчитатьИтоги();

// 2. объект РегистрыНакопленияМенеджер
//    .<имя регистра накопления>
//    [<имя регистра накопления>]
//    Для Каждого … Из … Цикл … КонецЦикла;

// Пример: рассчитать итоги регистра "ОстаткиМатериалов" на указанную дату.
ИмяРегистра = ОстаткиМатериалов;
РегистрыНакопления[ИмяРегистра].УстановитьПериодРассчитанныхИтогов(УказаннаяДата);

// 3. объект РегистрНакопленияМенеджер.<имя>
//    СоздатьКлючЗаписи()

// Пример: активизировать требуемую строку списка регистра накопления.
СтруктураКлючевыхПолей = Новый Структура;
СтруктураКлючевыхПолей.Вставить("Регистратор", Документы.ПриходнаяНакладная.НайтиПоНомеру("0000002"));
СтруктураКлючевыхПолей.Вставить("НомерСтроки", 2);
Элементы.Материалы.ТекущаяСтрока = РегистрыНакопления.ОстаткиМатериалов.СоздатьКлючЗаписи(СтруктураКлючевыхПолей);

// 4. объект РегистрНакопленияМенеджер.<имя>
//    СоздатьНаборЗаписей()

// Пример: получить движения документа.
НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);
Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Значение = НужныйДокумент;
Движения.Прочитать();

// 5. объект РегистрНакопленияМенеджер.<имя>
//    Выбрать()
//    ВыбратьПоРегистратору()

// Пример: выбрать все записи регистра "ОстаткиМатериалов" за текущий месяц.
Выборка = РегистрыНакопления.ОстаткиМатериалов.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));

// 6. объект РегистрНакопленияНаборЗаписей.<имя>
//    [<индекс элемента коллекции>]
//    Для Каждого … Из … Цикл … КонецЦикла;

// Пример: получить движения документа.
НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);
Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Значение = НужныйДокумент;
Движения.Прочитать();
Для Каждого
ОчередноеДвижение Из Движения Цикл
// Алгоритм обработки движений
 

КонецЦикла;


ПРИМЕЧАНИЕ. Заливкой выделены события, выполняющиеся в транзакции записи.


Добавить комментарий

2 комментария :

  1. Добрый день смогли бы разрабтать модуль в 1с для оптовых заказов для вот такого сайта https://rx.ua/ ?

    ОтветитьУдалить

  2. Добрый день смогли бы разрабтать модуль в 1с для оптовых заказов для вот такого сайта https://rx.ua/ вот ссылка.

    ОтветитьУдалить