Домой / Заработок / Записать период в регистр сведений 1с. Внесение изменений в регистры

Записать период в регистр сведений 1с. Внесение изменений в регистры

Осуществляется в образе массива записываемых функций. Они должны соответствовать принятым в платформе параметрам (видам измерений). Где и как происходит их хранение, а также как добавить или удалить запись в регистре сведений 1С?

Что собой представляют сведения

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

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

К стандартным объектам конфигурации относится и регистр (register, англ.) сведений. Функция его состоит в хранении любых произвольных данных в разрезе измерений.

Например, курсы валют - в разрезе валют, цены - в разрезе видов цен или в соответствии с номенклатурной, пр.

Структура

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

Например, регистр «Цены товаров» может включать в себя измерения (разрезы) «Товар» и «Вид Цен», а ресурсы включают в себя значение «Цена». Таким образом, складывается его структура:

А сами записи Цены товаров будут иметь вид:

Для хранения дополнительной информации о каждой registration служат «Реквизиты».

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

Чтобы изменение статических данных можно было отслеживать во времени, registration обладает полем «Период». Это является и дополнительным разрезом для анализа. Значение периодичности можно выбирать:

Выбор значения Периодичности

Запись в регистр сведений в 1С (их изменения) можно вносить вручную. Также они изменяются автоматически при создании документов.

В последнем случае каждая registration обновляется спецполем для фиксации такого формирующего документа.

Существует возможность выбора режима. Например, режим «Подчинение регистратору» вызовет жёсткую привязку к формирующим документам.

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

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

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

Для его создания берётся три значения - значение регистратора (подчинённый или не подчиненный), значение периода (периодический или непериодический) и значение измерения.

Редактирование

Имеются встроенные формы (по умолчанию) для представления данных (хотя разработчик может создавать и свои). Например, форма списка:

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

Для входа и работы с отдельной записью существует форма и для её представления:

Редактирование курса валюты в 1С

Возможности, делегируемые разработчику этими формами:

  • Удалить, изменить, добавить запись в регистр в 1С;
  • Многосторонняя разноплановая сортировка по измерениям во временных интервалах и по регистраторам.

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

Существует несколько видов регистров в 1С:

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

На последних мы остановимся поподробнее, поскольку они позволяют компилировать данные из БД по разрезам измерений. Например, в «Ценыноменклатуры» хранятся данные для конкретной номенклатуры и характеристики по определенному виду цен.

Рис.1 Регистр «Ценыноменклатуры»

Характеристики

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


Рис.2 Периодичность и режим записи

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

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


Рис.3 Режимы записи

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

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

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

Чтобы добавить запись в регистр используются или менеджер записей, или набор записей. Если у записей в регистре имеется общий ключ, то необходимо использовать НаборЗаписей. А для записи одной единственной записи, если в регистре все записи уникальны, необходимо использовать МенеджерЗаписи.

Пример записи при использовании объекта РегистрСведенийНаборЗаписей.

Использование менеджера записи:

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

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

Если записать без отбора данные в подчиненны регистр, возникнет ошибка.

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

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

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

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

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

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

ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.Цена ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ГДЕ ЦеныНоменклатуры.Регистратор = &Регистратор

Изменение и удаление записей

Чтобы удалить запись регистра сведений, например, все курсы валюты EUR, воспользуйтесь следующим кодом:

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

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

НоваяЗапись = РегистрыСведений.ТестовыйРегистр.СоздатьНаборЗаписей(); НоваяЗапись.Записать();

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

Документы – суть ведения учета в 1С. Каждый документ имеет результат, например пришло товаров +10 шт.

Отчеты – позволяют смотреть результаты. Суммируют эти результаты и показывают пользователю.

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

Документы записывают свои результаты (называют «движения») в специальные таблицы – регистры 1с, которые сами суммируют результаты, чтобы отчет просто отобразил заранее посчитанные итоги.

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

Регистр 1с – это таблица, такая же как и в Excel, каждый документ пишет в регистр 1с одну или несколько строк своих движений (результатов) с каким-либо знаком – плюс или минус. Это значит, что итого регистра 1С изменилось на соответствующую цифру.

Документ, который записал движения в регистр 1С, называют Регистратор. Дата и время движения равны (в 99% случаев) дате документа. Дату движения называют Период.

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

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

Как документ проводится по регистрам?

Движения документа по регистрам 1С

Посмотрим как работают регистры 1С. Вот у нас есть документ поступления товаров, в котором мы видим, что поступил товар Масло на склад Главный.

С точки зрения логики и математики этот документ имеет результат:

Масло кремлевское, Главный склад +10 (шт)

Проверим – так ли это?

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

Как же это выглядит в регистре 1С? Откроем регистр 1С через меню Операции.

Открылся регистр 1С. Данных в нем много. Сделаем отбор только по нашему документу.

В результате мы видим движение нашего документа по регистру 1С. Оно ровно совпадает с тем, что мы рассчитали вручную:

  • Плюс – вид движения (приход/расход)
  • Регистратор – наш документ
  • Активность – эта строка движения действительна (то есть не отключена)
  • Номенклатура, основное измерение
  • Склад, дополнительное измерение
  • Количество, ресурс (то есть цифра, которую мы считаем).

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

Регистры 1С бывают разные (ниже мы обсудим это). Проводки по разным регистрам 1С выглядят тоже по разному. Мы сейчас смотрели проводки по регистру накопления 1С. Вот так выглядят проводки нашего этого же документа по бухгалтерскому регистру 1С, который работает на основании бухгалтерского (налогового) плана счетов 1С.

Зачем нужны регистры 1С

Регистры 1С бывают разных видов. Цель использования регистра 1С зависит от его вида.

  • Регистры сведений 1С
    Это обычная таблица, как в Excel. Она не имеет никаких движений (приходов/расходов). Регистр сведений 1С обычно используется для хранения дополнительных данных справочников. С помощью регистра сведений 1С можно организовать
  • Регистры бухгалтерии 1С
    С точки зрения пользователя учет ведется на бухгалтерском плане счетов. На самом деле учет ведется в таблице регистров бухгалтерии 1С, которые сделаны в разрезе плана счетов 1С.
  • Регистры накопления 1С (регистр остатков 1С)
    Таблица движения документов + и –, которая автоматически вычисляет итого на начало периода и итого на конец периода. Например движения товара Лопата было +10, а потом -8. Значит остаток на начало был 0, а остаток на конец стал 2.

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

    Регистр остатков 1С используют в том случае, когда у справочника логически может быть остаток. Например, когда мы учитываем движения товаров, то мы будем использовать регистр остатков 1С – ведь мы можем сказать, что товара Лопата осталось 3 штуки.

  • Регистры накопления 1С (регистр оборотов 1С)
    Таблица движения документов + и -, которая не считает итого.

    Регистр оборотов 1С ничем не отличается от регистра остатков, за исключением того, что у него не рассчитываются автоматически остатки.

    Регистр оборотов 1С используют в том случае, когда у справочника логически не может быть остатка. Если нам надо учитывать продажи товаров, то мы будем использовать регистр оборотов.

    Например, продажи товаров были +10 (мы продали) а потом -2 (нам вернули). Мы не можем сказать что остаток продаж стал 8, потому что логически понятия остатка продаж не существует, мы скажем что итого оборота (сумма каждой строки оборота) стала 8.

  • Регистры расчетов 1С

    Таблица движений в разрезе видов расчета и периодов. Используется в начислении заработной платы (называют Сложные периодические расчеты).

Где находятся регистры 1С

Проведение документа в коде (в программе) прописывается программистом. Для этого откройте . Найдите строку вида «Процедура ОбработкаПроведения(». Раскройте крестик и Вы видите программу проведения этого документа.

Настройка и разработка Регистров 1С

Основные особенности Регистров 1С, по закладкам:

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

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

  • Наименование
  • Производитель
  • Упаковка
  • Цена закупки

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

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

Настройка в 1С 8.3 регистров сведений

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

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

Как в 1С 8.3 сделать запись в регистр сведений

Записи в регистрах являются следствием проведения операций в различных частях программы. Но есть возможность сделать непосредственные изменения. Для этого предусмотрена возможность записи в регистр сведений 1С 8.3 программно (пусть примером служит аналитика колебаний валютных курсов):

  • Воспользуемся Менеджером Записи чтобы выполнить одно действие:

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

НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«UA»);

НоваяЗапись.Период = Дата(30,07,2018);

НоваяЗапись.Курс = 50;

НоваяЗапись.Кратность = 1;

НоваяЗапись.Записать();

  • Возьмем Набор Записей для нескольких введений:

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

//Внимание! Здесь важно указать критерии отбора. В противном случае все сделанные прежде записи исчезнут.

НовыйНаборЗаписей.Отбор.Валюта.Установить(Гривна, Истина);

НовыйНаборЗаписей.Отбор.Период.Установить(Дата(30,07,2018), Истина);

//Теперь можно приступить к записыванию самого набора

НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить();

НоваяЗаписьНабора.Валюта = Справочники.Валюты.НайтиПоНаименованию(«UA»);

НоваяЗаписьНабора.Период = Дата(30,07,2018);

НоваяЗаписьНабора.Курс = 50;

НоваяЗаписьНабора.Кратность = 1;

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

Как удалить регистр сведений в 1с 8.3

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

Выполняем такие действия:

  • Код 1C v 8.х
  • НаборЗаписей = РегистрыСведений.ОбъектыСтроительстваОрганизаций.СоздатьНаборЗаписей();
  • НаборЗаписей.Отбор.Организация.Установить(УдаляемаяОрганизация);
  • НаборЗаписей.Записать();

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

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