Регистры сведений служат для отслеживания информации о состоянии показателя любого типа. Регистр может быть периодическим то есть состояние показателей в разный момент может быть разным, например состояние сотрудника: работает, болеет, уволен. В том случае если регистр сведений имеет периодическую структуру, можно указывать с какой периодичностью регистр будет хранить информацию(секунда, день, месяц, год). В том случае, если регистр сведений подчинен регистратору, периодичность можно указать с точностью до регистратора. Для регистра сведений существует понятие ключевого поля. Ключевыми полями у регистра сведений являются измерения, + период если регистр периодический. То есть двух записей с одним и тем же набором измерений существовать не может. Например, для работы с клиентом определяется менеджер, двух менеджеров у клиента в один момент времени быть не может. Следовательно, регистр будет иметь следующую структуру: Измерение – Клиент, Ресурс – Менеджер, периодичность день(если чаще чем раз в день менять менеджера у клиента не планируем).
Измерения у регистра сведений дополнительно к стандартным свойствам реквизитов имеют следующие свойства:
Запись в регистр может происходить как с помощью набора записей, так и с помощью Менеджера записи, который подразумевает работу с одной конкретной записью. При работе с набором подразумевается запись в регистр нескольких записей за один раз (хотя разумеется можно внести и одну запись), при таком методе работы используются отборы, по реквизитам, для которых происходит запись. Если отбор не установлен, весь регистр будет замещен добавляемым набором. Избежать подобного эффекта, возможно с помощью, отбора или установив параметр Замещать = Ложь в методе Записать(Ложь)
при записи набора в базу данных. Менеджер записи не обладает такими особенностями как набор записей, но и записывать в регистр с его помощью можно только по одной записи.
РегистрКурсыВалют = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); РегистрКурсыВалют.Период = ДатаКурса; РегистрКурсыВалют.Валюта = Валюта; РегистрКурсыВалют.Курс = 1; РегистрКурсыВалют.Кратность = 1; РегистрКурсыВалют.Записать();
РегистрНабор = РегистрыСведений.МойЛичныйРегистрСведений.СоздатьНаборЗаписей(); РегистрНабор.Отбор.Клиент.Установить(ЗначениеОтбора); //Если мы хотим добавить запись к существующему набору, то набор надо прочитать. Хотя ничего не мешает записывать с параметром Ложь РегистрНабор.Прочитать(); ЗаписьНабора = РегистрНабор.Добавить(); ЗаписьНабора.Клиент = ЗначениеОтбора; ЗаписьНабора.Период = ТекущаяДата(); ЗаписьНабора.НомерРаздела = 1; РегистрНабор.Записать();