1с как добавить запись в регистр сведений
Перейти к содержимому

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

  • автор:

Как добавить записи в независимый регистр сведений?

Для добавления отдельной записи в регистр сведений, не подчиненный регистратору, можно использовать объект РегистрСведенийМенеджерЗаписи.<имя> .

Например, для того, чтобы в независимый регистр сведений «ЗначенияСвойствОбъектов» с измерениями «Объект», «Свойство» и ресурсом «Значение» добавить одну запись, содержащую значение некоторого свойства выбранной номенклатуры, можно использовать следующий код:

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

Если требуется добавить несколько записей в регистр сведений, можно использовать объект РегистрСведенийНаборЗаписей.<имя> .

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

В результате выполнения этого кода новые записи будут добавлены в регистр, или, если регистр уже содержит записи с указанным значением измерения «Объект» (по которому установлен отбор в наборе записей), — существующие записи будут заменены новыми.

Запись в регистр сведений в 1С

Регистр сведений — объект для хранения данных по разрезу измерений. Используется для хранения исторической и постоянной информации.

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

Независимая запись может быть сделана интерактивно(пользователем), либо программно.

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

Для записи данных создано два служебных объекта «МенеджерЗаписи» и «НаборЗаписей». Последний служит для групповой обработки по установленному отбору измерений или же по абсолютно всем записям регистра (когда отбора нет).

Пусть, у нас будет регистр вот такой структуры:

registr-svedenij

Простой код записи в регистр сведений:

Более сложный способ записи (групповой)

Теперь, запросив данные по измерению «Грабли садовые», мы будем получать значение 100.

Способы чтения записей регистра сведений:

Через менеджер записи

Через запрос:

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

Работа с периодическим регистром.

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

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

Кроме этого, у регистра появляются дополнительные «виртуальные» таблицы для запроса к данным: СрезПервых и СрезПоследних.

Периодичность регистра может быть «Год», «Месяц», «Квартал», «День», «Секунда» — до такой детальности можно хранить значения.

periodichnost-registra

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

Всё определяется индивидуально для задачи.

Нет необходимости закладывать более точную детальность, чем необходимо: это ухудшит восприятие данных.

Сущность «срезов» — получить последнее/первое значение по набору измерений. Обычно нужна текущая цена или курс, а лишь иногда ее история.

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

Через менеджер записи:

Чтение из периодического регистра

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

Через запросы

В конструкторе запроса выбирается нужная таблица

из 1 реальной и 2 виртуальных

tablitsy-periodicheskogo-registra

Задаются данные выборки и параметры виртуальной таблицы:

konstruktor-zaprosa-periodicheskogo-registra

Получается вот такой текст запроса:

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

Через команды регистра:

Обратное действие — получение первой цены, установленной на товар

Работа с документами

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

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

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

Так вы можете и прочитать и установить движение любого регистратора.

Вот и рассмотрены основные приемы работы с регистрами сведений кодом языка 1С и запросов.

Сворачивать рекламу, чтобы сберечь деньги, все равно, что останавливать часы, чтобы сберечь время.

— Э.Макензи , 14 фраз

Добавить запись в регистр сведений и НЕ УДАЛИТЬ записи в нем

Как добавить записи в регистр сведений не стирая предыдущие записи?
так сработает:
НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
НаборЗаписейЗначенияСвойств.Прочитать();
Запись = НаборЗаписейЗначенияСвойств.Добавить();
Запись.Объект = ДоговорСсылка;
Запись.Свойство = СвойствоП;
Запись.Значение = ЗначениеП;

Исключение
#Если Клиент Тогда
Предупреждение(«Не удалось записать значения свойств:» + Символы.ПС + ОписаниеОшибки());
#КонецЕсли
Возврат;
КонецПопытки;

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

Ваш адрес email не будет опубликован.