РегистрСведенийМенеджерЗаписи.<имя>. Позволяет читать, записывать и удалять отдельную запись регистра сведений. Используется только для регистров сведений, не изменяемых регистраторами, т. е. для которых в конфигураторе установлен режим записи Независимый.
РегистрСведенийЗапись.<имя>. Предоставляет доступ к записи регистра сведений. Объект не создается непосредственно, а предоставляется другими объектами, связанными с регистром сведений. Например, данный объект представляет записи регистра в наборе записей.
РегистрСведенийКлючЗаписи.<имя>. Представляет собой набор значений, однозначно идентифицирующих запись регистра. Объект используется в тех случаях, когда необходимо сослаться на определенную запись. Например, он выступает в качестве значения свойства ТекущаяСтрока табличного поля, отображающего список записей регистра.
Использование объектов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
// РегистрыСведений // Пример: Получить текущую цену из периодического регистра сведений Цены Элемент = Справочники.Номенклатура.НайтиПоКоду(4); Отбор = Новый Структура("Номенклатура",Элемент); ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор); // .<имя регистра сведений> // [<имя регистра сведений>] // Для Каждого … Из … Цикл … КонецЦикла; // Пример: Открыть форму списка регистра сведений Цены ИмяРегистра = "Цены"; Форма = РегистрыСведений[ИмяРегистра].ПолучитьФормуСписка(); Форма.Открыть(); // СоздатьКлючЗаписи() // Пример: Активизировать требуемую строку списка регистра сведений СтруктураКлючевыхПолей = Новый Структура; СтруктураКлючевыхПолей.Вставить("Период", Дата("20040331000000")); СтруктураКлючевыхПолей.Вставить("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000006")); ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока = РегистрыСведений.Цены.СоздатьКлючЗаписи(СтруктураКлючевыхПолей); // СоздатьНаборЗаписей() // Пример: Показать номенклатуру, цена на которую была установлена в заданную дату и время Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей(); Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина); Набор.Прочитать(); Для Каждого ОчереднаяЗапись Из Набор Цикл Сообщить("Номенклатура = " + ОчереднаяЗапись.Номенклатура + ", цена = " + ОчереднаяЗапись.Цена); КонецЦикла; // СоздатьМенеджерЗаписи() // Пример: Добавить новое значение цены в регистр Цены Запись = РегистрыСведений.Цены.СоздатьМенеджерЗаписи(); Запись.Период = ТекущаяДата(); Запись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("0000005"); Запись.Цена = 568; Запись.Записать(); // [<индекс элемента коллекции>] // Для Каждого … Из … Цикл … КонецЦикла; // Пример: Показать номенклатуру, цена на которую была установлена в заданную дату и время Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей(); Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина); Набор.Прочитать(); Для Каждого ОчереднаяЗапись Из Набор Цикл Сообщить("Номенклатура = " + ОчереднаяЗапись.Номенклатура + ", цена = " + ОчереднаяЗапись.Цена); КонецЦикла; // ПолучитьМенеджерЗаписи() // Пример: Удалить все записи регистра сведений за текущий месяц Выборка = РегистрыСведений.Цены.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата())); Пока Выборка.Следующий() цикл Выборка.ПолучитьМенеджерЗначения().Удалить(); КонецЦикла; // Выбрать() // ВыбратьПоРегистратору() // Пример: Показать изменение цен на элемент номенклатуры в течение года Отбор = Новый Структура("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000005")); Выборка = РегистрыСведений.Цены.Выбрать(НачалоГода(ТекущаяДата()),ТекущаяДата(),Отбор); Пока Выборка.Следующий() Цикл Сообщить("Дата = " + Выборка.Период + ", цена = " + Выборка.Цена); КонецЦикла; |
Работа с формой записи регистра сведений осуществляется при помощи объекта РегистрСведенийМенеджерЗаписи.<имя>, который, в свою очередь, использует объект РегистрСведенийНаборЗаписей.<имя>.
Особенности внутренней реализации объекта РегистрСведенийМенеджерЗаписи.<имя> таковы, что в случае запоминания существующей записи регистра сведений обработчики события ПередЗаписью() и ПриЗаписи() модуля набора записей будут вызваны дважды: сначала для «старого» набора записей (с количеством записей 0) и затем для «нового» (с количеством записей 1).
Если Вы хотите больше узнать о программировании в 1С, тогда регистрируйтесь на курс: 1С 8.3 Старт >>>