Для чего нужен регистр сведений в 1с

Содержание
  1. Регистры сведений 1С 8.3 (8.2)
  2. Непериодический регистр сведений 1С
  3. Подчиненный регистр сведений 1С
  4. Объект 1С «Регистры сведений»
  5. Функциональные возможности регистра сведений
  6. Структура объекта 1С «Регистры сведений»
  7. Периодичность регистра сведений 1С
  8. Подчинение регистратору
  9. Свойство «Режим записи»может быть в значении:
  10. Уникальность записей регистра сведений
  11. Свойства измерения регистра сведений
  12. Программная запись в регистр сведений 1С
  13. Регистр сведений
  14. Структура
  15. Периодичность
  16. Уникальность записей
  17. Формы
  18. Форма списка
  19. Форма записи
  20. Что такое регистры 1С:Предприятие и зачем они нужны
  21. Что такое регистры 1С Бухгалтерии и зачем они нужны
  22. Виды регистров 1С Бухгалтерии
  23. Просмотр регистров 1С Бухгалтерии
  24. Внесение изменений в регистры
  25. Подведём итоги
  26. 1С:
  27. Создание периодического регистра сведений Цены
  28. Создание функции Розничная цена
  29. Автоматическое заполнение цены в документе Оказание услуги
  30. Программная работа с регистрами сведений
  31. Предназначение регистра сведений
  32. Добавление записей
  33. Изменение записей
  34. Чтение записей
  35. Удаление записей
  36. Очистка регистра сведений
  37. Регистры сведений 1С
  38. Регистраторы
  39. Измерения, ресурсы и реквизиты

Регистры сведений 1С 8.3 (8.2)

Для чего нужен регистр сведений в 1с

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

Информация в регистре сведений хранится в определенных разрезах, которые называются измерениями, а еще она может изменяться во времени.

Регистры сведений, информация которых изменяется во времени, называются Периодическими, а иначе эти регистры называют Непериодическими.

Периодичность может быть разной, может быть периодичность в секунду, минуту, час и т.д. максимум — год.

Непериодический регистр сведений 1С

Основное предназначение регистров сведений в том, что в них должны храниться показатели аналитики. Например, у нас есть задача хранить виды топлива (АИ-92, АИ-95 и т.д.), но также и цену на этот вид топлива.

Как это удобное всего организовать. Однозначно сами виды топлива необходимо хранить в каком-то справочнике. Так его и назовем – вид топлива.

Но где же хранить цену на этот вид топлива? Самое первое решение в реквизите справочника.

[attention type=yellow]

Очевидно, такое решение имеет место, если цена у нас ни когда не изменяется. Но в жизни такое редко случается, поэтому если мы так сделаем, то возникнет необходимость каждый раз изменять элемент справочника при изменении цены.  В принципе, почему бы и нет.

[/attention]

Но, если мы еще добавим новый разрез цены – поставщик топлива:  у одного и того же вида топлива может быть разная цена для разных поставщиков, то хранение цены в реквизите справочника станет принципиально не возможной: мы не будем знать,  к какому поставщику относиться эта цена.

Для решения этих задач служит специальный объект конфигурации  — регистр сведений. В этом регистре сведений можно создавать записи, в которых будет указано, что для такого-то вида топлива, для такого-то поставщика устанавливается такая-то цена.

Сейчас мы и решим эту маленькую прикладную задачу: в нашей конфигурации есть два  справочника «Виды топлива» и «Поставщики топлива»

Необходимо организовать возможность хранения цены для каждого вида топлива с учетом поставщиков. Для этого в конфигураторе 1С создадим новый регистр сведений ЦеныНаТопливо.

На закладке Основные установим имя и синоним. Все остальное оставим как есть.

Теперь на закладке данные создадим два измерения – ВидТоплива и ПоставщикТоплива, типы которых ссылки на соответствующие справочники.

У обоих измерений поставим флаг – Ведущее. Это значит, что если мы удалим элемент справочника, который указан в какой-то записи регистра сведений, то эта запись удалиться автоматически.  Так же есть одно интерфейсное следствие этого флага: если флаг установлен, то в форме элемента справочника мы сможем посмотреть на записи этого регистра для этого элемента.

Установим для каждого измерения этот флаг.

У нас непериодический регистр, и в нем два измерения ВидТоплива и ПоставщикТоплива это значит, что мы не сможем создать две записи с одинаковыми значениями полей ВидТоплива и ПоставщикТоплива.

[attention type=red]

Программа выдаст ошибку. Что и разумно – не может быть две разных цены на один и тот же вид топлива у одного и того же поставщика.

[/attention]

А если может, то это значит, что необходимо добавить еще один разрез (например, база поставщика).

Кроме измерений у регистра сведений существуют Ресурсы и Реквизиты. Ресурс должен хранить основную информацию регистра сведений, т.е. те данные, ради которых он создан, а Реквизит содержит дополнительную второстепенную информацию о записи.

Мы создадим ресурс – Цена (тип число 10,2).

И всё. Сохраним конфигурацию и откроем этот регистр сведений и заведем какую-нибудь запись.

Если мы сейчас попробуем создать запись с точно таким же набором измерений, то возникнет ошибка: «Запись с такими ключевыми полями существует».

И последний момент: поскольку мы у измерения ВидТоплива установили флаг «Ведущее», то у элемента справочника ВидыТоплива появилась команда на открытие регистра сведений «Цена на топливо»

Если мы в управляемом приложении 1С перейдем по этой команде, то увидим все цены для нашего вида топлива.

Продолжение темы регистров сведений читайте в следующих статьях:

Подчиненный регистр сведений 1С

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

: https://.com/1c_prosto
Фейсбуке: https://www..com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://.com/signum2009

Источник: https://www.1s-up.ru/registry-svedenij-1c/

Объект 1С «Регистры сведений»

Для чего нужен регистр сведений в 1с

Объект 1С «Регистры сведений» — это прикладные объекты конфигурации, которые позволяют хранить в прикладном решении произвольные данные в разрезе нескольких измерений.

Например, в регистре сведений можно хранить курсы валют в разрезе валют, или цены предприятия в разрезе номенклатуры и типа цен.

Функциональные возможности регистра сведений

Основными функциональными возможностями, которые предоставляет регистр сведений разработчику, являются:

  • создание, изменение и удаление записей;
  • выбор записей в заданном интервале по заданным критериям;
  • выбор записей по регистратору;
  • получение значений ресурсов записей, соответствующих указанному периоду и значениям измерений;
  • получение значений ресурсов наиболее ранних и наиболее поздних записей регистра, соответствующих указанному периоду и значениям измерений.

Структура объекта 1С «Регистры сведений»

Информация в регистре сведений хранится в виде записей, каждая из которых содержит:

  1. значения измерений регистра (описывают разрезы, в которых хранится информация);
  2. соответствующие им значения ресурсов (непосредственно содержат хранимую информацию).

Отсюда

Например, регистр сведений цены товаров может иметь следующую структуру:

где «Вид цен» может иметь значения «Оптовая», «Розничная», и т.д.

Вместе с каждой записью, находящейся в регистре сведений,  в его реквизитах можно хранить дополнительную произвольную информацию.

Периодичность регистра сведений 1С

Одной из возможностей регистра сведений является хранение данных не только в разрезе указанных измерений, но и в разрезе времени.

Данное свойство позволяет добавить к списку измерений регистра дополнительное измерение — «Период».

Использование периодичности регистра сведений позволяет не просто хранить статические данные, но и отслеживать их актуальность на определенную дату или изменение во времени.

Разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:

Периодичность может принимать следующие значения:

  • Непериодический;
  • В пределах секунды;
  • В пределах дня;
  • В пределах месяца;
  • В пределах квартала;
  • В пределах года.

В этом случае к каждой записи регистра будет добавляться поле «Период», хранящее дату, которой были внесены записи в регистр.

При выборе периодичности, отличной от варианта «Непериодический», система будет контролировать уникальность записей в пределах заданного промежутка времени. Если запись не уникальна, система 1C выдаст сообщение «Запись с такими ключевыми полями существует!» и не даст произвести запись в базу данных.

Например, периодический регистр сведений «Цены товаров» может не только хранить информацию о том, какова цена на определенную номенклатуру сейчас, но и о том, как она изменялась в прошлом (или будет изменяться в будущем).

Особенность периодического регистра сведений:

  • Возможность получать готовые значения «Срез первых» и «Срез последних». Эта информация позволяет очень быстро получить из базы данных информацию о последнем (первом) установленном значении на определенную дату.

Подчинение регистратору

Внесение изменений в регистр сведений может выполняться:

  1. вручную;
  2. при помощи документов.

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

Какой именно режим записи будет использоваться данным регистром сведений указывается разработчиком в процессе создания прикладного решения:

Свойство «Режим записи»может быть в значении:

  1. «Независимый» — записи можно произвести как программно, так и из формы списка регистра сведений;
  2. «Подчинение регистратору» — обязательно указание документа-регистратора записи.

Использование режима записи «Подчинение регистратору» необходимо в случае, когда логика работы прикладного решения требует того, чтобы изменения, выполняемые в регистре сведений, были жестко связаны с документами, фиксирующими факты хозяйственной деятельности.

Например, изменение цен компании может производиться только определенным кругом лиц, и каждое такое изменение должно сопровождаться «бумажным» документом. В этом случае можно использовать режим подчинения регистратору, при котором изменение цен может быть выполнено только специальным документом — «Изменение цен товаров».

Уникальность записей регистра сведений

Система обеспечивает контроль уникальности записей, хранящихся в регистре сведений. Таким образом, в регистре сведений не может находиться двух одинаковых записей (с одинаковым ключом записи). Ключ записи формируется системой автоматически, на основании значений, содержащихся в полях записи, и зависит от вида регистра сведений.

В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений.

[attention type=green]

Таким образом, например, в непериодическом регистре сведений «Цены товаров» с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти.

[/attention]

Точно так же, как в периодическом регистре сведений «Цены товаров», подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом «Изменение цен товаров».

Свойства измерения регистра сведений

Особое внимание следует обратить на флаги «Ведущее» и «Основной отбор» палитры свойств измерений регистра сведений.

  • Ведущее —  свойство измерения, указывающее на то, что без значения этого измерения запись регистра не имеет смысл. Установка флага означает что система при удалении значения из измерения удаляет еще и запись регистра с «Ведущим» измерением. Может быть установлено только одно измерение.
  • Основной отбор — если регистр независимый, то по этим измерениям будет устанавливаться регистрация изменений для плана обмена. Аналогично использование «Основной отбор» по периоду включает основной отбор для периода периодических регистров.

Программная запись в регистр сведений 1С

Добавить новые записи в регистр сведений можно двумя способами:

  1. с помощью менеджера записи (для одиночной записи);
  2. с помощью набора записей (для двух и и более записей).

Примеры отсюда:

НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»); НоваяЗапись.Период = Дата(31,12,2016); НоваяЗапись.Курс = 100; НоваяЗапись.Кратность = 1; НоваяЗапись.Записать();

НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»);НоваяЗапись.Период = Дата(31,12,2016);НоваяЗапись.Кратность = 1;

Источник: https://flagman.top/about-business/ehkzamen-1s/obekt-1s-registry-svedenij

Регистр сведений

Для чего нужен регистр сведений в 1с

Регистры сведений — это прикладные объекты конфигурации. Они позволяют хранить в прикладном решении произвольные данные в разрезе нескольких измерений. Например, в регистре сведений можно хранить курсы валют в разрезе валют, или цены предприятия в разрезе номенклатуры и типа цен.

Структура

Информация в регистре сведений хранится в виде записей, каждая из которых содержит значения измерений и соответствующие им значения ресурсов.

Измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию. Например, для регистра сведений Цены товаров, который имеет следующую структуру:

записи, хранимые в базе данных, будут выглядеть следующим образом:

Вместе с каждой записью, находящейся в регистре сведений, можно хранить дополнительную произвольную информацию. Для этого служат реквизиты регистра сведений.

Периодичность

Одной из возможностей регистра сведений является хранение данных не только в разрезе указанных измерений, но и в разрезе времени. Разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:

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

Например, периодический регистр сведений Цены товаров может не только хранить информацию о том, какова цена на определенную номенклатуру сейчас, но и о том, как она изменялась в прошлом (или будет изменяться в будущем):

Уникальность записей

Система обеспечивает контроль уникальности записей, хранящихся в регистре сведений. Таким образом, в регистре сведений не может находиться двух одинаковых записей. Одинаковыми считаются записи, у которых совпадает ключ записи. Ключ записи формируется системой автоматически, на основании значений, содержащихся в полях записи, и зависит от вида регистра сведений.

В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений.

Таким образом, например, в непериодическом регистре сведений Цены товаров с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти.

Точно так же, как в периодическом регистре сведений Цены товаров, подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом Изменение цен товаров.

Формы

Для того чтобы пользователь мог просматривать и изменять данные, содержащиеся в регистре сведений, система поддерживает несколько форм представления регистра. Система может автоматически генерировать все нужные формы регистра. Наряду с этим разработчик имеет возможность создать собственные формы, которые система будет использовать вместо форм по умолчанию:

Форма списка

Для просмотра данных, содержащихся в регистре сведений, используется форма списка. Она позволяет выполнять навигацию по регистру, добавлять, помечать на удаление и удалять записи регистра. Форма списка позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям:

Форма записи

Для просмотра и изменения отдельных записей регистра сведений используется форма записи. Как правило, она представляет данные в удобном для восприятия и редактирования виде:

Что такое регистры 1С:Предприятие и зачем они нужны

Для чего нужен регистр сведений в 1с

В своём курсе по 1С:Бухгалтерии Предприятия 8 я рассказываю пользователям и о том, как хранятся данные в конфигурации.

Конечно, особые подробности тут не нужны, но, тем не менее, необходимо знать, какие виды данных присутствуют в 1С Бухгалтерии 8 и как с ними “управляться”.

Это важно ещё и потому, что далеко не всегда можно полагаться на то, что в программе есть абсолютно всё, что вам нужно.

К примеру, вы можете захотеть исправить проводки документа вручную, подключить дополнительные внешние отчёты или обработки, ввести ручную операцию или же просто проверить, что программа всё делает правильно. Бывают и другие случаи, когда нужно посмотреть не только на справочники и документы, но и на данные другого типа.

Устройство программы, в том числе работа с регистрами, справочниками, отчётами и прочими компонентами рассматривается в нашем спецкурсе по конфигурации 1С:Бухгалтерия 8.3 (240 уроков, 42 часа на видео). Посмотрите примеры уроков, учебный план и полное описание видеокурса!

Что такое регистры 1С Бухгалтерии и зачем они нужны

Допустим, что в течение месяца мы вводим в программу различные документы. Однако, в конце концов потребуется сформировать кое-какую отчётность. Откуда тогда 1С Бухгалтерия будет брать данные для формирования отчетов?

Для примера предположим, что данные будут браться из документов. В таком случае каждый раз при формировании любого отчёта программе понадобилось бы перебрать все документы, извлечь из них данные и только потом на основании этих данных составить затребованный отчет.

Очевидно, что такой подход к формированию отчетов, был бы неэффективен. Поэтому на практике и существует такое понятие как проведение документа. При проведении документа (в отличие от его простой записи в базу 1С) на основании заполненной пользователем формы 1С Бухгалтерия формирует так называемые проводки, то есть вносит одну или более записей в один или более регистров.

Регистры 1С — это просто таблицы, содержащие колонки и строки. Принцип тот же самый, что и у таблиц Excel или обычных “бумажных” таблиц.

Движение документа по регистрам — это записи, вносимые документом в регистры при проведении, называются.

Вот из этих-то регистров и берутся данные при формировании различных отчетов. Это гораздо быстрее, чем перебирать все документы. Именно по этой причине всегда следует внимательно относиться не только к заполнению формы документа, но и при необходимости контролировать формируемые документом проводки.

Виды регистров 1С Бухгалтерии

На самом деле, регистры в 1С:Бухгалтерии используются не только для хранения проводок документов, но и для других различных целей. В связи с этим существует несколько видов регистров:

  • Регистры сведений
  • Регистры накопления
  • Регистры расчета
  • Регистры бухгалтерии

Последний тип регистра как раз и хранит бухгалтерские проводки документов. Чем отличаются все эти регистры 1С друг от друга и почему, я рассказываю в читаемом мной курсе Бухгалтерии Предприятия 8. Здесь же приведу ещё раз список существующих регистров 1С, только в виде скриншота (на примере 1С Бухгалтерии 8.2).

[attention type=yellow]

[нажмите на картинку для увеличения] Справка: как сохранять фото с сайтов

[/attention]

А вот то же самое на примере 1С:Бухгалтерии 8.3:

[attention type=yellow]

[нажмите на картинку для увеличения] Справка: как сохранять фото с сайтов

[/attention]

Просмотр регистров 1С Бухгалтерии

Никогда не помешает знать, где именно находятся в программе те или иные регистры и зачем каждый из них нужен. Ну хотя бы потому, что однажды (и очень даже запросто!) может потребоваться их просмотреть с целью поиска и исправления ошибок в учете (типичная задача при закрытии месяца).

Любой из регистров можно открыть с помощью форм, приведенных мной выше. То есть из общего списка регистров определенного типа. Для примера приведу самый известный регистр — регистр бухгалтерии. Впрочем, это название больше техническое, поскольку для пользователя он называется Журнал проводок.

[attention type=yellow]

[нажмите на картинку для увеличения] Справка: как сохранять фото с сайтов

[/attention]

При открытии любого регистра данные там отображаются “в общей куче”. Их можно отфильтровать по необходимым вам параметрам в точности также, как это можно сделать с документами.

Внесение изменений в регистры

Если вы еще раз взглянете на фрагмент содержимого регистра бухгалтерии 1С Предприятие на рисунке выше, то обратите внимание на отсутствие кнопки Добавить. Дело в том, что не во все регистры можно вносить записи напрямую, т.е. открыть его и добавить элементы (строки) вручную, как это можно сделать с документами или справочниками.

Вопрос на засыпку: знаете ли вы, что в некоторые справочники также нельзя вносить данные через всеми любимую кнопку “Добавить”. Как думаете, почему?

А вот пример простого регистра сведений, в который записи вручную вносить можно. Использовать такие регистры, конечно, проще.

[attention type=yellow]

[нажмите на картинку для увеличения] Справка: как сохранять фото с сайтов

[/attention]

Если в регистре нет кнопки Добавить, то данные в такие регистры вносятся только так называемыми регистраторами. Смысл понятия регистратор иллюстрирует всё та же картинка с формой регистра бухгалтерии.

Подведём итоги

В регистрах 1С Бухгалтерии хранятся данные, не менее важные, чем записаны в формах документов. Очень важно уметь правильно работать с различными регистрами — это помогает понимать, все ли правильно делает программа (в соответствии с вашими потребностями).

Умение обращаться с регистрами помогает исправлять ошибки в учете.

Особенности разных регистров, внесение в них данных, типы регистраторов, различие между периодическими и непериодическими регистрами, а также многое другое, я рассматриваю в онлайн курсе 1С:Бухгалтерии 8, представленному на данном сайте.

Ещё также хочу добавить, что если вы не уверены, зачем нужен тот или иной регистр и как он работает, то лучше не вносите в него изменения вручную, поскольку потом могут возникнуть ошибки, в том числе трудно отслеживаемые. Последнему у меня посвящена отдельная статья.

Уникальная метка публикации: 85C319C6-EEA2-3AE5-9F1A-D3BB6E19D613
Источник: //artemvm.info/information/uchebnye-stati/1s-predpriyatie/chto-takoe-registry-i-zachem-oni-nuzhny/

Источник: https://artemvm.info/information/uchebnye-stati/1s-predpriyatie/chto-takoe-registry-i-zachem-oni-nuzhny/

1С:

Для чего нужен регистр сведений в 1с

Для чего нужен периодический регистр сведений?
Обратите внимание, что при работе с документом Оказание услуги в режиме отладки вы выбирали услугу, а затем указывали цену.

Очевидно, что каждая услуга перечня услуг оказываемых предприятием, должна имеет определенную стоимость, т.е. стоимость услуги является неотъемлемым атрибутом самой услуги.

Поэтому цену следует добавить в качестве реквизита справочника Номенклатура.

Вместе с тем стоимость услуг может меняться во времени. Может сложиться ситуация, когда требуется внести изменения или уточнения в ранее проведенный документ. Если к этому моменту в справочнике будет новая цена, то получить правильную стоимость услуги будет невозможно. Для того, чтобы избежать таких ситуаций и предназначен объект конфигурации Регистр сведений.

Объект конфигурации Регистр сведений является прикладным. Он предназначен для описания структуры хранения данных в нескольких измерениях. Его особенностью является то, что он может хранить данные с привязкой по времени. Регистр сведений, использующий привязку ко времени, называют Периодическим регистром сведений.

Создание периодического регистра сведений Цены

Создадим периодический регистр сведений, для хранения развернутых во времени розничные цены материалов и стоимости услуг.

Для создания периодического регистра сведений выполните операции:
· в режиме конфигурации создайте новый объект конфигурации Регистр сведений;
· присвойте имя созданному объекту – Цены, установите периодичность этого регистра в пределах секунды;
· перейдите на закладку Данные и создайте измерение регистра Номенклатура с типом СправочникСсылка.Номенклатура, укажите, что это измерение будет ведущим (рис. 1). Свойство Ведущееговорит о том, что запись регистра сведений нужна только тогда, пока существует этот объект;

Рис. 1.

· создайте в объекте Регистр сведений новый ресурс Цена со свойствами: тип – Число, длина 15, точность 2, неотрицательное (рис. 2);

Рим. 2.

· запустите режим отладки и убедитесь в правильной работе периодического регистра сведений Цены (рис. 3).

Рис. 3.

Создание функции Розничная цена

Функция предназначена для того, чтобы возвращать текущую розничную цену номенклатуры. Для создания функции выполните операции:
· откройте конфигуратор, в ветке Общие> Общие модули создайте объект конфигурации Модуль и присвойте ему имя РаботаСоСправочниками;
· поместите в созданный модуль код, приведенный в листинге 1.

Листинг 1.

Параметрами функции являются:
· Актуальная дата – параметр типа Дата определяет точку на оси времени, в которой необходимо получить значение розничной цены;
ЭлементНоменклатуры – ссылка на элемент справочника Номенклатура, для которого нужно получить розничную цену.

В теле процедуры сначала создается вспомогательный объект Отбор. Посредством его будут определяться те записи регистра сведений, в которых измерение Номенклатура равно переданной в процедуру ссылке на элемент справочника.

В следующей строке кода выполняется обращение к менеджеру регистра сведений Цены (РегистрыСведений.Цены) с помощью метода ПолучитьПоследнее, который возвращает значения ресурсов наиболее поздней записи регистра, соответствующей передаваемой дате (Актуальная дата) и значениям измерений регистра (Отбор).

Остается проверить, как работает созданная функция, но для этого прежде всего нужно создать процедуру автоматического заполнения цены в документе.

Автоматическое заполнение цены в документе Оказание услуги

При создании документа ОказаниеУслуги необходимо обеспечить автоматическое заполнение поля Цена после того как будет выбрана услуга. При этом цена услуги должна определяться исходя из даты создаваемого документа. Выполните операции:

· откройте в конфигураторе форму документа

ОказаниеУслуги;
· откройте свойства поля Номенклатура;
· в списке свойств найдите событие ПриИзменении и нажмите на значок Лупа;
· в открывшейся заготовке процедуры поместите код, приведенный в листинге 2.

Листинг 2.

Выполните проверку работы документа после всех сделанных добавлений: · запустите 1С: Предприятие в режиме отладки;

· откройте регистр сведений

Цены;
· для какого либо наименования товара добавьте с новой датой новую цену (рис. 4).

Рис. 4.

· откройте документ Оказание услуги №1; · установите новую дату расхода товара;

· в колонке

Номенклатура повторите выбор товара – автоматически установится новое значение цены (рис. 5, 6).

Рис. 5.Рис. 6.

Таким образом, в документе появляется актуальная на указанный момент времени актуальная цена.

В следующей статье рассмотрим назначение и технологию работы с объектом конфигурации Перечисление.

Источник: https://zen.yandex.ru/media/id/5d4d8e658da1ce00ad5ece61/1s-predpriiatie-obekt-konfiguracii-registr-svedenii-5e92f2bb4b3ad201b9ee882b

Программная работа с регистрами сведений

Для чего нужен регистр сведений в 1с

Регистры сведений в 1С предназначены для хранения произвольных данных в разрезе нескольких измерений и, при необходимости, в разрезе времени. Рассмотрим подробнее работу с этим прикладным объектом.

Предназначение регистра сведений
Добавление записей
Изменение записей
Чтение записей
Удаление записей
Очистка регистра сведений

Предназначение регистра сведений

Регистры сведений в 1С — это прикладные объекты конфигурации для хранения данных в структурированном виде (в разрезе измерений). Например, в регистре сведений можно хранить курсы валют в разрезе валют, цены номенклатуры в разрезе номенклатур, ФИО физических лиц в разрезе физических лиц и т.д.

При проектировании разработчик указывает необходимость хранения данных в разрезе времени и минимальную периодичность, с которой записи будут храниться в регистре:

Регистры сведений, для которых указана периодичность, называются периодическими.

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

Физически регистр сведений представляет собой таблицу, в которой хранятся следующие данные:

  • измерения — описывают разрезы, в которых хранится информация;
  • период — поле, используемое для разворота данных по времени. Поле добавляется автоматически при указании свойства «Периодичность», отличного от «Непериодический»;
  • регистратор — поле, используемое для хранения документа, с которым связана запись. Поле добавляется автоматически при указании свойства «Режим записи» в значение «Подчинение регистратору»;
  • ресурсы — непосредственно хранят информацию для комбинации измерений;
  • реквизиты — дополнительная произвольная информация, относящаяся к конкретной записи регистра.

Для всех регистров сведений обеспечивается контроль уникальности записей, т.е. в регистре не может быть двух одинаковых записей. Одинаковыми считаются записи, у которых совпадают значения измерений, период (если регистр периодический) и регистратор (если регистр подчинен регистратору).

Добавление записей

Программно добавить записи в регистр сведений можно при помощи:

  • объекта НаборЗаписей;
  • объекта МенеджерЗаписи.

Объект МенеджерЗаписи можно использовать только для работы с независимыми регистрами. Причем можно обрабатывать только одну запись. Объект предназначен в основном для интерактивной работы, но программно с ним также можно работать. На системном уровне МенеджерЗаписи использует объект НаборЗаписей.

Общая схема добавления записей в регистр сведений при помощи объекта НаборЗаписей выглядит так:

  1. создание объекта НаборЗаписей;
  2. наложение отборов на измерения, период (если регистр периодический) и регистратора (если регистр подчинен регистратору);
  3. добавление и заполнение значений полей записей;
  4. запись набора записей.

// Добавление записи в независимый непериодический регистр сведений
НаборЗаписей = РегистрыСведений.ВерсииПодсистем.СоздатьНаборЗаписей(); // Этап 1
НаборЗаписей.Отбор.ИмяПодсистемы.

Установить(ИмяПодсистемы); // Этап 2
// Этап 3
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.ИмяПодсистемы = ИмяПодсистемы;
НоваяЗапись.Версия = НомерВерсии;
НаборЗаписей.

Записать(); // Этап 4

// Добавление записи в независимый периодический регистр сведений
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); // Этап 1
// Этап 2
НаборЗаписей.Отбор.Валюта.Установить(Доллар);
НаборЗаписей.Отбор.Период.

Установить(НачалоДня(ТекущаяДата()));
// Этап3
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = ТекущаяДата();
НоваяЗапись.Валюта = Доллар;
НоваяЗапись.Курс = 57.92;
НоваяЗапись.Кратность = 1;
НаборЗаписей.

Записать(); // Этап 4

Общая схема добавления записей в регистр сведений при помощи объекта МенеджерЗаписи выглядит так:

  1. создание объекта МенеджерЗаписи;
  2. заполнение значений полей записи;
  3. запись записи.

// Добавление записи в независимый непериодический регистр сведений
Запись = РегистрыСведений.ВерсииПодсистем.СоздатьМенеджерЗаписи(); // Этап 1

// Этап 2
Запись.ИмяПодсистемы = ИмяПодсистемы;
Запись.Версия = НомерВерсии;

Запись.Записать(); // Этап 3

// Добавление записи в независимый периодический регистр сведений
Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); // Этап 1

// Этап 2
Запись.Период = ТекущаяДата();
Запись.Валюта = Доллар;
Запись.Курс = 57.92;
Запись.Кратность = 1;

Запись.Записать(); // Этап 3

Изменение записей

Изменять существующие записи регистров сведений возможно при помощи объектов НаборЗаписей и МенеджерЗаписи. Ограничения объекта МенеджерЗаписи были описаны в разделе Добавление записей.

Общая схема редактирования записей регистров сведений:

  1. создание объекта НаборЗаписей или МенеджерЗаписи;
  2. наложение отборов;
  3. чтение записей базы данных, соответствующих наложенным отборам;
  4. редактирование прочитанных записей;
  5. запись отредактированных записей.

// Редактирование записей с использованием объекта НаборЗаписей
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); // Этап 1
// Этап 2
НаборЗаписей.Отбор.Период.

Установить(ДатаКурса);
НаборЗаписей.Отбор.Валюта.Установить(Доллар);
НаборЗаписей.Прочитать(); // Этап 3
Для Каждого Запись Из НаборЗаписей Цикл
     Запись.Курс = 57.

84; // Этап 4
КонецЦикла;
НаборЗаписей.Записать(); // Этап 5

// Редактирование записей с использованием объекта МенеджерЗаписи
Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); // Этап 1
// Этап 2
Запись.Период = ДатаКурса;
Запись.

Валюта = Доллар;
Запись.Прочитать(); // Этап 3
Если Запись.Выбран() Тогда // Проверка, что запись существует
     Запись.Курс = 57.92; // Этап 4
     Запись.

Записать(); // Этап 5
КонецЕсли;

Чтение записей

Чтение информации из базы данных рекомендуется выполнять при помощи запросов. Данный способ обеспечивает гибкое применение отборов и группировок, а также возможность выбора записей из нескольких таблиц.

Запрос = Новый Запрос;
Запрос.Текст =«ВЫБРАТЬ|    КурсыВалют.Период,|    КурсыВалют.Валюта,|    КурсыВалют.Курс|ИЗ

|    РегистрСведений.КурсыВалют КАК КурсыВалют»;

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
// обход результата выполнения запроса
КонецЦикла;

[attention type=red]

Для периодических регистров сведений есть возможность получить наиболее поздние записи, период которых меньше указанной даты — срез последних, и наиболее ранние записи, период которых больше указанной даты — срез первых.

[/attention]

Для получения среза первых и среза последних запросом необходимо использовать одноименные виртуальные таблицы, в параметрах которых сразу можно задать дату среза и отборы. Отборы, если они необходимы, рекомендуется накладывать именно в параметрах виртуальных таблиц, т.к.

это позволяет ускорить выполнение запроса.

// Получение записи, у которой валюта равна значению из переменной «ВыбраннаяВалюта» и период МЕНЬШЕ или равен значению из переменной «ВыбраннаяДата»
Запрос = Новый Запрос;
Запрос.

Текст =
«ВЫБРАТЬ
|    КурсыВалютСрезПоследних.Период,
|    КурсыВалютСрезПоследних.Валюта,
|    КурсыВалютСрезПоследних.Курс
|ИЗ
|    РегистрСведений.КурсыВалют.

СрезПоследних(&Период, Валюта = &Валюта) КАК КурсыВалютСрезПоследних»;

Запрос.УстановитьПараметр(«Валюта», ВыбраннаяВалюта);
Запрос.УстановитьПараметр(«Период», ВыбраннаяДата);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    // обход результата выполнения запроса
КонецЦикла;

// Получение записи, у которой валюта равна значению из переменной «ВыбраннаяВалюта» и период БОЛЬШЕ или равен значению из переменной «ВыбраннаяДата»
Запрос = Новый Запрос;
Запрос.

Текст =
«ВЫБРАТЬ
|    КурсыВалютСрезПервых.Период,
|    КурсыВалютСрезПервых.Валюта,
|    КурсыВалютСрезПервых.Курс
|ИЗ
|    РегистрСведений.КурсыВалют.

СрезПервых(&Период, Валюта = &Валюта) КАК КурсыВалютСрезПервых»;

Запрос.УстановитьПараметр(«Валюта», ВыбраннаяВалюта);
Запрос.УстановитьПараметр(«Период», ВыбраннаяДата);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
// обход результата выполнения запроса
КонецЦикла;

Кроме чтения запросом возможно использование методов объектной модели.

Для непериодических регистров сведений:

  • Выбрать(, ) — выбирает записи с указанным отбором;
  • ВыбратьПоРегистратору() — выбирает все записи указанного регистратора;
  • Получить() — получает ресурсы записи с отбором по всем измерениям.

Для периодических регистров сведений:

  • Выбрать(, , , ) — выбирает записи с указанным отбором, у которых период находится между и ;
  • ВыбратьПоРегистратору() — выбирает все записи указанного регистратора;
  • Получить(, ) — получает ресурсы записи с отбором по всем измерениям и периоду;
  • ПолучитьПервое(, ) — получает ресурсы наиболее ранней записи, соответствующей указанным периоду и отбору;
  • ПолучитьПоследнее(, ) — получает ресурсы наиболее поздней записи, соответствующей указанным периоду и отбору;
  • СрезПервых(, ) — получает таблицу наиболее ранних записей, соответствующую указанным периоду и отбору;
  • СрезПоследних(, ) — получает таблицу наиболее поздних записей, соответствующую указанным периоду и отбору.

Удаление записей

Для удаления записи(записей) в независимом регистре сведений необходимо:

  1. создать набор записей;
  2. наложить требуемые отборы на измерения и период (если регистр периодический);
  3. записать набор записей без предварительного чтения.

НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Валюта.Установить(Доллар);
НаборЗаписей.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));

НаборЗаписей.Записать();

Для удаления записей в подчиненном регистре сведений необходимо:

  1. создать набор записей;
  2. наложить отбор на регистратора;
  3. записать набор записей без предварительного чтения.

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокументРегистратор);
НаборЗаписей.Записать();

Очистка регистра сведений

Для удаления всех записей в независимом регистре сведений достаточно записать набор записей этого регистра без установки отборов:

НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
НаборЗаписей.Записать();

Запись в регистр сведений, подчиненный регистратору, возможна только при установке отбора по регистратору, поэтому для очистки таких регистров необходимо:

  1. получить перечень ссылок всех регистраторов регистра сведений;
  2. последовательно записать пустой набор записей с отбором по регистраторам из пункта 1.

Запрос = Новый Запрос(«ВЫБРАТЬ
| ЦеныНоменклатуры.Регистратор
|ИЗ
| РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры»);

Выборка = Запрос.Выполнить().Выбрать();

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
     НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
     НаборЗаписей.Записать();
КонецЦикла;

Источник: https://pro1c8.ru/programmnaya-rabota-registr-svedenij/

Регистры сведений 1С

Для чего нужен регистр сведений в 1с

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

Регистраторы

Если делать запись в регистр сведений с помощью документа, нужно установить режим записи: «Подчинение регистратору» и выбрать документ, которым будет делаться запись в регистр.

Тогда в регистре появится поле «Регистратор», где будет храниться информация, каким документом была сделана запись. Так же регистратор можно использовать как период, для этого укажите в поле «Периодичность» —  «По регистратору».

Подчинение регистратору делают, когда требуется жестко привязать регистр к документу и изменение записей в регистре в ручном режиме становится не доступным.

Документы, которые будут в роли регистраторов, может быть несколько. Для того чтобы добавить регистратор, нужно зайти в свойства нужного регистра сведений, перейти на вкладку «Регистраторы» и установить галочки напротив документов, которые будут выполнять роль регистратора.

Посмотреть движения, которые делает регистратор можно из документа. Для этого нужно зайти в интересующий Вас документ, нажать: Перейти – Движения документа по регистратору.

В свойствах регистра не забудьте добавить права, их можно назначить на вкладке «Права». Затем в списке ролей нужно выбрать роль, которой требуется добавить права на регистр и в списке прав установить права на для выбранной роли.

Измерения, ресурсы и реквизиты

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

У измерений есть галочка «Ведущее», если она установлена то запись будет храниться в базе данных, пока существует данное измерение. Ведущих измерений можно сделать несколько.

Например, в регистре сведений «Цены номенклатуры», ведущим измерением является номенклатура, если удалить номенклатуру, которая участвует в записи, тогда автоматически удалится запись в регистре сведений по этой номенклатуре.

[attention type=green]

Ресурсы предназначены для хранения суммовую информацию: количество, цена и т.д. Ресурсы в дальнейшем будем получать на определенный период времени (если регистр периодический), по измерениям.

[/attention]

Источник: http://1s-manual.ru/registry-svedenij-1s/

Все о банке
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: