Регистры сведений в 1С (Примеры работы)

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

// РегистрыСведений  // Пример: Получить текущую цену из периодического регистра сведений Цены
Элемент = Справочники.Номенклатура.НайтиПоКоду(4);
Отбор = Новый Структура("Номенклатура",Элемент);
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор);  // .<имя регистра сведений>
// [<имя регистра сведений>]
// Для Каждого … Из … Цикл … КонецЦикла;  // Пример: Открыть форму списка регистра сведений Цены
ИмяРегистра = "Цены";
Форма = РегистрыСведений[ИмяРегистра].ПолучитьФормуСписка();
Форма.Открыть();  // СоздатьКлючЗаписи()  // Пример: Активизировать требуемую строку списка регистра сведений
СтруктураКлючевыхПолей = Новый Структура;
СтруктураКлючевыхПолей.Вставить("Период", Дата("20040331000000"));
СтруктураКлючевыхПолей.Вставить("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000006"));
ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока = РегистрыСведений.Цены.СоздатьКлючЗаписи(СтруктураКлючевыхПолей);  // СоздатьНаборЗаписей()  // Пример: Показать номенклатуру, цена на которую была установлена в заданную дату и время
Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей();
Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина);
Набор.Прочитать();
Для Каждого ОчереднаяЗапись Из Набор Цикл
Сообщить("Номенклатура = " + ОчереднаяЗапись.Номенклатура + ", цена = " + ОчереднаяЗапись.Цена);
КонецЦикла;  // СоздатьМенеджерЗаписи()  // Пример: Добавить новое значение цены в регистр Цены
Запись = РегистрыСведений.Цены.СоздатьМенеджерЗаписи();
Запись.Период = ТекущаяДата();
Запись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("0000005");
Запись.Цена = 568;
Запись.Записать();  // [<индекс элемента коллекции>]
// Для Каждого … Из … Цикл … КонецЦикла;  // Пример: Показать номенклатуру, цена на которую была установлена в заданную дату и время
Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей();
Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина);
Набор.Прочитать();
Для Каждого ОчереднаяЗапись Из Набор Цикл
Сообщить("Номенклатура = " + ОчереднаяЗапись.Номенклатура + ", цена = " + ОчереднаяЗапись.Цена);
КонецЦикла;  // ПолучитьМенеджерЗаписи()  // Пример: Удалить все записи регистра сведений за текущий месяц
Выборка = РегистрыСведений.Цены.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
Пока Выборка.Следующий() цикл
Выборка.ПолучитьМенеджерЗначения().Удалить();
КонецЦикла;  // Выбрать()
// ВыбратьПоРегистратору()
Продолжение статьи доступно только зарегистрированным пользователям!

Зарегистрироваться / Войти

 

Если Вы хотите больше узнать о программировании в 1С, тогда регистрируйтесь на курс: 1С 8.3 Старт >>>



Есть вопросы? пишите в группу Telegram!

Сканируйте и присоединяйтесь к сообществу!