На следующей схеме изображено взаимодействие объектов встроенного языка для работы с регистрами накопления.
РегистрНакопленияЗапись.<имя>. Используется для доступат к записи регистра накопления. Объект не создается непосредственно, а предоставляется другими объектами, отвечающими за регистр накопления. Например, данный объект представляет записи регистра в наборе записей.
РегистрНакопленияКлючЗаписи.<имя>. Представляет собой набор значений, однозначно идентифицирующих запись регистра. Объект используется в тех случаях, когда необходимо сослаться на определенную запись. Например, он выступает в качестве значения свойства ТекущаяСтрока табличного поля, отображающего список записей регистра. Ниже приведены примеры использования объектов встроенного языка для работы с регистрами накопления.
// 1. Глобальный контекст
// РегистрыНакопления
// Пример: выполнить полный пересчет итогов регистра "ОстаткиМатериалов".
РегистрыНакопления.ОстаткиМатериалов.ПересчитатьИтоги();
// 2. объект РегистрыНакопленияМенеджер
// .<имя регистра накопления>
// [<имя регистра накопления>]
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: рассчитать итоги регистра "ОстаткиМатериалов" на указанную дату.
ИмяРегистра = ОстаткиМатериалов;
РегистрыНакопления[ИмяРегистра].УстановитьПериодРассчитанныхИтогов(УказаннаяДата);
// 3. объект РегистрНакопленияМенеджер.<имя>
// СоздатьКлючЗаписи()
// Пример: активизировать требуемую строку списка регистра накопления.
СтруктураКлючевыхПолей = Новый Структура;
СтруктураКлючевыхПолей.Вставить("Регистратор", Документы.ПриходнаяНакладная.НайтиПоНомеру("0000002"));
СтруктураКлючевыхПолей.Вставить("НомерСтроки", 2);
Элементы.Материалы.ТекущаяСтрока = РегистрыНакопления.ОстаткиМатериалов.СоздатьКлючЗаписи(СтруктураКлючевыхПолей);
// 4. объект РегистрНакопленияМенеджер.<имя>
// СоздатьНаборЗаписей()
// Пример: получить движения документа.
НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);
Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Значение = НужныйДокумент;
Движения.Прочитать();
// 5. объект РегистрНакопленияМенеджер.<имя>
// Выбрать()
// ВыбратьПоРегистратору()
// Пример: выбрать все записи регистра "ОстаткиМатериалов" за текущий месяц.
Выборка = РегистрыНакопления.ОстаткиМатериалов.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
// 6. объект РегистрНакопленияНаборЗаписей.<имя>
// [<индекс элемента коллекции>]
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: получить движения документа.
НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);
Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Значение = НужныйДокумент;
Движения.Прочитать();
Для Каждого ОчередноеДвижение Из Движения Цикл
// Алгоритм обработки движений
…
КонецЦикла;
// РегистрыНакопления
// Пример: выполнить полный пересчет итогов регистра "ОстаткиМатериалов".
РегистрыНакопления.ОстаткиМатериалов.ПересчитатьИтоги();
// 2. объект РегистрыНакопленияМенеджер
// .<имя регистра накопления>
// [<имя регистра накопления>]
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: рассчитать итоги регистра "ОстаткиМатериалов" на указанную дату.
ИмяРегистра = ОстаткиМатериалов;
РегистрыНакопления[ИмяРегистра].УстановитьПериодРассчитанныхИтогов(УказаннаяДата);
// 3. объект РегистрНакопленияМенеджер.<имя>
// СоздатьКлючЗаписи()
// Пример: активизировать требуемую строку списка регистра накопления.
СтруктураКлючевыхПолей = Новый Структура;
СтруктураКлючевыхПолей.Вставить("Регистратор", Документы.ПриходнаяНакладная.НайтиПоНомеру("0000002"));
СтруктураКлючевыхПолей.Вставить("НомерСтроки", 2);
Элементы.Материалы.ТекущаяСтрока = РегистрыНакопления.ОстаткиМатериалов.СоздатьКлючЗаписи(СтруктураКлючевыхПолей);
// 4. объект РегистрНакопленияМенеджер.<имя>
// СоздатьНаборЗаписей()
// Пример: получить движения документа.
НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);
Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Значение = НужныйДокумент;
Движения.Прочитать();
// 5. объект РегистрНакопленияМенеджер.<имя>
// Выбрать()
// ВыбратьПоРегистратору()
// Пример: выбрать все записи регистра "ОстаткиМатериалов" за текущий месяц.
Выборка = РегистрыНакопления.ОстаткиМатериалов.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
// 6. объект РегистрНакопленияНаборЗаписей.<имя>
// [<индекс элемента коллекции>]
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: получить движения документа.
НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);
Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Значение = НужныйДокумент;
Движения.Прочитать();
Для Каждого ОчередноеДвижение Из Движения Цикл
// Алгоритм обработки движений
…
КонецЦикла;
ПРИМЕЧАНИЕ. Заливкой выделены события, выполняющиеся в транзакции записи.
Добрый день смогли бы разрабтать модуль в 1с для оптовых заказов для вот такого сайта https://rx.ua/ ?
ОтветитьУдалить
ОтветитьУдалитьДобрый день смогли бы разрабтать модуль в 1с для оптовых заказов для вот такого сайта https://rx.ua/ вот ссылка.