1с 8 периодический регистр сведений изменение документом.

Примеры, с объяснением, как можно сделать запись в регистр сведений 1С

Создание одной записи в регистр сведений 1С.

Чтобы сделать запись в регистр сведений 1С необходимо воспользоваться менеджером записи.

Пример:

// Создаем менеджер записи
СоздатьКурсыВалют = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
// Устанавливаем измерения, ресурсы и устанавливаем период записи
СоздатьКурсыВалют.Валюта = СсылкаВалюта;
СоздатьКурсыВалют.Курс = Курс;
СоздатьКурсыВалют.Кратность = 1;
СоздатьКурсыВалют.Период = ТекущаяДата();
//Записываем получившуюся запись с замещением (если уже есть такая запись с такими измерениями и периодом)
СоздатьКурсыВалют.Записать(Истина);

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

Создание нескольких записей в регистр сведений 1С.

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

Пример:

//Создаем набор записей
НаборКурсыВалют = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
//Устанавливаем отбор по измерению
//Делаем цикл по таблице с курсами и добавляем записи
Для Каждого Строка Из ТаблицаКурсов Цикл
НоваяЗаписьКурс = НаборКурсыВалют.Добавить();
НоваяЗаписьКурс.Валюта = Строка.Валюта;
НоваяЗаписьКурс.Курс = Строка.Курс;
НоваяЗаписьКурс.Кратность = 1;
КонецЦикла;
НаборКурсыВалют.Записать();

В процессе выполнения программного кода, в регистре сведений «Курсы валют», будут сделаны записи по таблице «Таблица Курсов» с замещением.

Изменение записей регистра сведений с отбором

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

Пример:

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

В результате выполнения вы установите новый курс у валюты, которая установлена в отборе.

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

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

Информация хранится в разрезе измерений и периода. Регистру сведений, можно задать периодичность:

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

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

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

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

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

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

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

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

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

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

Если периодичность задана регистратором, он так же участвует в уникальности записи.

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

Формы

Для просмотра записей используйте форму списка, в ней можно установить отбор, по интересующим Вас полям, посмотреть историю записей и изменить их через форму записи. Посмотреть записи регистра можно следующим образом: в верхнем меню нажать кнопку «Операции» - «Регистры сведений». В открывшемся окне выберете нужный Вам регистр. После этого откроется форма списка в виде таблицы, где каждая стока является уникальной записью.

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

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


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

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

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

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

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

С регистром сведений можно производить следующие действия:

  • Удаление записи в регистре сведений 1С

Особенности

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

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

Регистр сведений может быть зависимым и независимым от регистратора.

Есть возможность сделать срез первых и последних записей на нужную дату. Это реализовано виртуальными таблицами: «СрезПервых» и «СрезПоследних». Для использования этих таблиц можно воспользоваться как отбором, так и запросом (в конструкторе запросов вы уведите эти виртуальные таблицы и сможете сделать по ним запрос). Эти таблицы будут доступны, если регистр сведений периодический.

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


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

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

Регистр предназначен для хранения информации по цена номенклатуры, с измерениями "Тип цен", "Номенклатура" и "Характеристика номенклатуры". Ведущим измерениями являются все три поля измерения, по нем можно будет делать отбор при выборке.

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

Автоматическая подстановка цены в документ при выборе номенклатуры

Для этого нужно сделать две вещи:

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

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

  • В режиме Конфигуратор

Создадим функцию РозничнаяЦена(), которая будет возвращать нам актуальную розничную цену номенклатуры, и поместим ее в общий модуль конфигурации:
Откроем конфигуратор, в ветке Общие > Общие модули добавим новый объект конфигурации Модуль и назовем его РаботаСоСправочниками .
Установим флажок Вызов сервера для того, чтобы экспортные процедуры и функции этого модуля можно было вызывать с клиента:

Рис. 9.3. Свойства РаботаСоСправочниками

Затем поместим в модуль следующий текст (см. Листинг 1):



Листинг 9.1. Редактируем Общий Модуль РаботаСоСправочниками

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

  • АктуальнаяДата - параметр типа Дата, определяет точку на оси времени, в которой нас интересует значение розничной цены.
  • ЭлементНоменклатуры - ссылка на элемент справочника Номенклатура, для которого мы хотим получить розничную цену.

Теперь эту функцию нужно вызвать в некоторый момент работы документа.

Вызов функции при выборе номенклатуры и заполнение цены в документе

1 - Найдем в конфигураторе документ ОказаниеУслуги и откроем его форму ФормаДокумента .
2 - Дважды щелкнем на элементе формы ПереченьНоменклатурыНоменклатура . Прокрутим список до конца, найдем событие ПриИзменении , которое возникает после изменения значения поля.
3 - Нажмем кнопку открытия со значком лупы в поле ввода. Система создаст шаблон процедуры обработчика этого события в модуле нашей формы и откроет закладку Модуль редактора формы. Внесем в него следующий текст (см. Листинг 2):



Листинг 9.2. Модуль редактора формы

  • В режиме 1С: Предприятие

Запустим 1С:Предприятие в режиме отладки и откроем регистр сведений Цены . Для элемента таблицы добавим другим числом новую цену.
Теперь откроем документ Оказание услуги № 1 . Оставим дату документа без изменения и повторим выбор тран-зистора в колонке Номенклатура табличной части документа. Автоматически установится последнее значение цены товара.

Похожие публикации