Основной отбор по периоду регистр сведений что это
(7) В свойствах изменения.
(8) А ты спроси всех. Если никто не ответит, я подумаю.
Крыжик включает измерение в основной отбор регистра сведений.
Для набора записей регистра сведений, в случае, если регистратор не определен, в качестве ключа используется совокупность измерений, входящих в основной отбор. А если регистр сведений является периодическим и включен основной отбор по периоду, то в ключ входит еще и период.
(10) И что это за основной отбор такой, в который входит то, что ты перечислил? Какова его функция, смысл существования?
(10) Непонятно дя чего это. Ведущиее измерение понятно, а это нет.
(11) я так понял что это важно при работе с Распределенно ИБ. в доке «Подготовка конфигурации к работе в распределенной ИБ» встречается такое:
.
Особое внимание следует уделить регистрам сведений, имеющим независимый режим записи (свойство «Режим записи» установлено в значение Независимый). Для данных регистров гранулой обмена является набор записей с отбором по измерениям, c установленным свойством «Основной отбор».
.
тока не спрашивайте подробностей с РИБ я не работал и вроде пока не собираюсь, потому копаться глубже просто лень
(13) Молодцом! Итого, результат мисты — 35 минут.
(14) спасибо. теперь ссылкой на тему буду всем хвастаться 🙂
хмм. а если бы я вылез в ветку чуть позже или чуть раньше.
лучше уж выбрать веток 20-30 в которых заданы серьезные вопросы и получены серьезные ответы и посчитать среднее время.
(15) Мы будем регулярно устраивать такие вопросы на засыпку и наберем статистику.
(16) Почему в (13) не используются измерения у которых «ведущее» стоит + период (для периодических). Какой в этом смысл, я пока недогоняю.
Может пояснишь?
(17) ведущее — это ведущее а гранула обмена для РИБ — это гранула обмена для РИБ. в частном случае они могут совпадать. но могут и быть разными. в зависимости от организации структуры базы данных.
я так понимаю.
(20) Правильно понимаешь.
(20) Типа при переносе исключить измерения нужные в одной базе и ненужные в другой?
Сорри, хочу до конца въехать. Можешь конечно послать к RTFM. 😉
(14) и что это было?
и где еще сравнения по времени?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший
Периодические регистры сведений 1С 8.3 (8.2)
Продолжаем изучать регистры сведений. В предыдущей статье мы узнали, для каких целей служит регистр сведений, как они функционируют, научились создавать регистры сведений, а также нужным образом конфигурировать регистры сведений. Все это мы сделали на примере непериодического регистра сведений.
В этой статье мы научимся работать с периодическими регистрами сведений, для этого будем использовать все тот же регистр «Цены номенклатуры», который создали в предыдущей статье.
Периодические регистры сведений
Как Вы уже должны знать, основное предназначение регистров сведений в том, что они служат для хранения показателей аналитики объектов учета. Но если раньше наши показатели были статичны, т.е. была цена топлива и все, то в случае периодических регистров сведений эти показатели могут изменяться во времени. Например, цена топлива на 01.03.2018 может быть 33 р, а на 02.03.2018 – 34. Для такого учета мы можем использовать и обычный (непериодический) регистр сведений: просто наша запись с ценой для нужного вида топлива будет каждый раз переписываться для новой цены. Но, если у нас стоит цель знать историю цен и использовать цены старых периодов, то такое решение нам не подходит.
В этом случае необходимо использовать свойство Периодичность регистра сведений. В этом свойстве можно указать несколько значений периодичности.

После того, как вы установили периодичность регистра сведений стал доступен флаг «Основной отбор по периоду».

Этот флаг необходим, в случае работы распределенной информационной базы, это значит, что при обмене данными отбор будет вестись, в том числе, по периоду.
После того, как мы в конфигураторе 1С у регистра сведений добавили периодичность, в управляемом приложении 1С у наших записей появилось новое поле период.

В этом поле необходимо указывать дату, на которую приходится соответствующая запись. Причем эта дата будет кратной той периодичности, которую мы установили в свойстве основной отбор. Например, если у нас периодичность месяц, то нельзя в поле Период установить дату 25.03.2018, платформа сама округлит её до 01.03.2018, а если будет периодичность год, то платформа округлит дату до начала года 01.01.2018.
Мы у нашего регистра сведений «Цены номенклатуры» установим периодичность «В пределах дня».

И если раньше комбинация по двум одинаковым измерениям вызывала ошибку, то теперь мы сможем это осуществить с разной периодичностью.

Но, в тоже время период, по сути, становиться измерением, поэтому нельзя сделать запись с одним и тем же набором полей и периодом. Возникнет ошибка. Поле Период это по сути то же измерение.


Использование периодических регистров сведений позволяет хранить историю данных в любых разрезах: например, мы можем узнать какая была цена конкретного вида топлива конкретного поставщика в любой день (если есть соответствующая запись).
Мы рассмотрели независимые регистры сведений, но также можно создавать подчиненные регистры сведений: записи в которых создают документы. Об подчиненных регистрах сведений читайте в этой статье:
Подчиненный регистр сведений 1С
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Регистр сведений
Регистры сведений служат для отслеживания информации о состоянии показателя любого типа. Регистр может быть периодическим то есть состояние показателей в разный момент может быть разным, например состояние сотрудника: работает, болеет, уволен. В том случае если регистр сведений имеет периодическую структуру, можно указывать с какой периодичностью регистр будет хранить информацию(секунда, день, месяц, год). В том случае, если регистр сведений подчинен регистратору, периодичность можно указать с точностью до регистратора. Для регистра сведений существует понятие ключевого поля. Ключевыми полями у регистра сведений являются измерения, + период если регистр периодический. То есть двух записей с одним и тем же набором измерений существовать не может. Например, для работы с клиентом определяется менеджер, двух менеджеров у клиента в один момент времени быть не может. Следовательно, регистр будет иметь следующую структуру: Измерение – Клиент, Ресурс – Менеджер, периодичность день(если чаще чем раз в день менять менеджера у клиента не планируем).
Измерения
Измерения у регистра сведений дополнительно к стандартным свойствам реквизитов имеют следующие свойства:
Ведущее: Это свойство обозначает, что без этого свойства запись не имеет смысла, например, в случае если регистр описывает состояние работника в разные моменты времени, то измерение «Сотрудник» будет ведущим, и при удалении сотрудника из базы данных будет удалена и целиком запись из регистра.
Основной отбор: это поле влияет на минимальный размер порции данных, при обмене в базе РИБ.
Запись в регистр сведений
Запись в регистр может происходить как с помощью набора записей, так и с помощью Менеджера записи, который подразумевает работу с одной конкретной записью. При работе с набором подразумевается запись в регистр нескольких записей за один раз (хотя разумеется можно внести и одну запись), при таком методе работы используются отборы, по реквизитам, для которых происходит запись. Если отбор не установлен, весь регистр будет замещен добавляемым набором. Избежать подобного эффекта, возможно с помощью, отбора или установив параметр Замещать = Ложь в методе Записать(Ложь) при записи набора в базу данных. Менеджер записи не обладает такими особенностями как набор записей, но и записывать в регистр с его помощью можно только по одной записи.
Пример записи с помощью менеджера записи
РегистрКурсыВалют = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); РегистрКурсыВалют.Период = ДатаКурса; РегистрКурсыВалют.Валюта = Валюта; РегистрКурсыВалют.Курс = 1; РегистрКурсыВалют.Кратность = 1; РегистрКурсыВалют.Записать();
Пример записи набора записей
РегистрНабор = РегистрыСведений.МойЛичныйРегистрСведений.СоздатьНаборЗаписей(); РегистрНабор.Отбор.Клиент.Установить(ЗначениеОтбора); //Если мы хотим добавить запись к существующему набору, то набор надо прочитать. Хотя ничего не мешает записывать с параметром Ложь РегистрНабор.Прочитать(); ЗаписьНабора = РегистрНабор.Добавить(); ЗаписьНабора.Клиент = ЗначениеОтбора; ЗаписьНабора.Период = ТекущаяДата(); ЗаписьНабора.НомерРаздела = 1; РегистрНабор.Записать();
Типы встроенного языка, порождаемые элементом проекта вида «РегистрСведений»
После того как вы добавили в проект регистр сведений и дали ему имя, создаст несколько типов встроенного языка. Например, для регистра сведений с именем Цены будут созданы следующие типы:
- Цены
- Цены.КлючЗаписи
- Цены.Запись
- Цены.НаборЗаписей
- Цены.КлючИзмерений
- Цены.КлючОсновногоФильтра
В общем случае имена этих типов выглядят следующим образом:
- имя-регистра-сведений
- имя-регистра-сведений.КлючЗаписи
- имя-регистра-сведений.Запись
- имя-регистра-сведений.НаборЗаписей
- имя-регистра-сведений.КлючИзмерений
- имя-регистра-сведений.КлючОсновногоФильтра
Тип «имя-регистра-сведений»
Тип имя-регистра-сведений содержит методы, которые позволяют, например, блокировать записи по измерениям, указанным в ключе или фильтре.
Также он позволяет пересчитать разрешения доступа: ПересчитатьРазрешенияДоступа , ПересчитатьРазрешенияДоступаДляОбъектов (подробнее).
Этот тип не имеет конструктора и имеет единственный экземпляр, обращение к которому выполняется по имени типа:
// Получить менеджера регистра «Цены» пер МенеджерРегистра = Цены // Пересчитать разрешения доступа для регистра «Цены» Цены.ПересчитатьРазрешенияДоступа()
Модуль регистра сведений
В проекте модуль, расширяющий тип имя-регистра-сведений , называется .

В этом модуле вы можете обработать события вычисления разрешений доступа: ВычислитьРазрешенияДоступа , ВычислитьРазрешенияДоступаДляОбъектов , ВычислитьКлючиДоступаДляЧтения и ВычислитьКлючиДоступаДляИзменения (подробнее).
Совет: В модуле регистра сведений может находиться реализация контракта сервиса.
Тип «имя-регистра-сведений.КлючЗаписи»
Тип имя-регистра-сведений.КлючЗаписи доступен и на клиенте, и на сервере. Он предназначен для указания на какую-то конкретную запись регистра.
Он имеет конструктор новый имя-регистра-сведений.КлючЗаписи() , который позволяет создать новый ключ записи по значениям всех измерений, и метод ЗагрузитьЗапись() , который есть только на сервере и позволяет получить запись ( имя-регистра-сведений.Запись ) из ключа ( имя-регистра-сведений.КлючЗаписи ).
Модуль ключа записи
В проекте модуль, расширяющий тип имя-регистра-сведений.КлючЗаписи , называется . Он исполняется и на клиенте, и на сервере.

Тип «имя-регистра-сведений.КлючОсновногоФильтра»
Тип имя-регистра-сведений.КлючОсновногоФильтра доступен только на сервере. Он представляет из себя структуру, описывающую ключ основного фильтра регистра сведений. В отличие от ключа регистра сведений, содержит только измерения, которые включены в основной фильтр. Для периодического регистра сведений также может содержать поле Период , если период включен в основной фильтр.
Присутствует как поле в таблице регистра сведений и таблице изменений данных регистра сведений . Это позволяет разработчику проекта удобно фильтровать изменения по данным регистра сведений.
Данный тип имеет конструктор новый имя-регистра-сведений.КлючОсновногоФильтра() , который позволяет создать новый ключ основного фильтра по значениям всех измерений, включенных в основной фильтр.
Данный тип используется в программном интерфейсе для работы с изменениями данных регистров сведений.
Тип имя-регистра-сведений.КлючОсновногоФильтра формируется по элементу проекта всегда, даже если регистр сведений не включен в состав плана обмена или нет измерений, включаемых в основной фильтр.
Тип «имя-регистра-сведений.Запись»
Тип имя-регистра-сведений.Запись доступен на сервере.
Он содержит данные одной записи и предназначен для создания, изменения или удаления одной записи.
Он имеет несколько конструкторов новый имя-регистра-сведений.Запись() , которые позволяют создать новую запись. Заполнив эту запись данными, вы можете затем сохранить ее в базе данных.
При записи данных вызываются события типа имя-регистра-сведений.НаборЗаписей , поскольку перед записью автоматически трансформирует эту запись в набор записей, содержащий одну запись и необходимый для этого фильтр.
Модуль записи
В проекте модуль, расширяющий тип имя-регистра-сведений.Запись , называется . Он исполняется на сервере.

Совет: В модуле записи может находиться реализация методов контракта типа.
Тип «имя-регистра-сведений.НаборЗаписей»
Тип имя-регистра-сведений.НаборЗаписей доступен на сервере.
Он содержит данные нескольких записей и предназначен для их создания, изменения или удаления в соответствии с некоторым фильтром.
Он имеет конструктор новый имя-регистра-сведений.НаборЗаписей() , который позволяет создать пустой набор. Заполнив этот набор записями, вы можете затем сохранить их все в базе данных. Также вы можете прочитать в пустой набор те записи из базы данных, которые соответствуют фильтру, установленному в пустом наборе записей.
Модуль набора записей
В проекте модуль, расширяющий тип имя-регистра-сведений.НаборЗаписей , называется . Он исполняется на сервере.

В нем вы можете обработать такие события как:
- ПередЗаписью
- ПослеЗаписи
Во время записи набора записей открывает в базе данных транзакцию записи, и события вызываются следующим образом:

Тип «имя-регистра-сведений.КлючИзмерений»
Тип имя-регистра-сведений.КлючИзмерений существует только у периодических регистров сведений и доступен на сервере.
Он предназначен для указания на группу записей, которые имеют одинаковые значения измерений и отличаются значением поля Период . Такие группы записей нужны в системе прав доступа для установки права Чтение на записи периодического регистра сведений.
Экземпляры этого типа передает в обработчик события ВычислитьКлючиДоступаДляЧтения (подробнее).
Тип «РегистрыСведений»
Независимо от того, есть в проекте или нет, во встроенном языке существует тип РегистрыСведений . Он предназначен для обхода всех регистров сведений и вызова пересчета разрешений доступа (подробнее), например:
для Регистр из РегистрыСведений Регистр.ПересчитатьРазрешенияДоступа() ;
Этот тип не имеет конструктора и имеет единственный экземпляр, обращение к которому выполняется по имени типа.