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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка в 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.х
  • НаборЗаписей = РегистрыСведений.ОбъектыСтроительстваОрганизаций.СоздатьНаборЗаписей();
  • НаборЗаписей.Отбор.Организация.Установить(УдаляемаяОрганизация);
  • НаборЗаписей.Записать();

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

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

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

Формирование записей в регистрах

Одним из первых вопросов, связанных с регистрами, является вопрос: для чего?

Для чего вообще нужно создавать отдельные таблицы, зачастую дублирующие уже существующие записи?

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

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

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

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

Общее для всех регистров

Внутренняя структура любого регистра может быть продемонстрирована Рис.2

Рис.2

Рассмотрим её подробнее:

  • Измерения – свойства записи, определяющие, в каких разрезах хранится важная информация;
  • Ресурсы – они содержат информацию, которую необходимо систематизировать;
  • Реквизиты – поля записи, которые содержат дополнительную информацию;
  • Формы – свойство, которое содержит графическую информацию о внешнем виде списка, элемента и т.д. и их внутренних модулях;
  • Макеты – печатные формы регистров.

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

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

Это, наверное, самый простой и понятный тип регистров. Обычная таблица, содержащая колонки и столбцы, в которой хранится информация.

Список важных свойств регистра сведений небольшой (Рис.3), поговорим об основных:

Рис.3

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

Регистры накопления

Структуру одного из них мы видели на Рис.2. Основным свойством, сильно влияющим на внешний вид регистра, а так же на его внутреннюю структуру является «Вид регистра» (Рис.4)

В зависимости от требований к хранимой информации может принимать значения:

  • Остатки;
  • Обороты.

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

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

Если требуются данные, включающие конец периода можно:

  • Использовать таблицу ОстаткиИОбороты;
  • Сделать выборку на дату на 1 секунду большую заданной (т.е. не на 31.12.16 23:59:59, а на 01.01.17 00:00:00);
  • Воспользоваться методом Граница, который помогает настроить вариант включения момента времени в рассматриваемый период (вариант использования: Граница(ДатаКонца,Включая).

Регистры бухгалтерии

Достаточно специализированные регистры, по своей конструкции напоминают регистры накопления. Основным отличием от других типов регистров платформы 1С является присутствие в структуре свойств параметра «План счетов» (Рис.5).

Рис.5

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

  1. Бюджетирование;
  2. Международный;
  3. Налоговый;
  4. Хозрасчетный.

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

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

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

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

Определяющим отличием регистра расчета от других регистров является наличие в его свойствах параметра «План вида расчета». К тому же, регистр расчета, также как и регистр сведений – периодический.

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

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

Основное использование их в типовых конфигурациях 1С – регистрация и облегчение работы с начислениями работникам организации.

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

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

Рассмотрим подробнее свойства и настройки регистра сведений.

Два главных свойства регистра сведения — Периодичность и Режим записи .

Это уникальные свойства регистра сведений, которых больше нет ни у одного объекта метаданных. Рассмотрим их подробнее.

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

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

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

Получите 267 видеоуроков по 1С бесплатно:

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

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

Режим записи регистра сведений

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

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

Также следует обратить внимание на палитру свойств измерений регистра сведений 1С 8.3. Особенно на флаги Ведущее и Основной отбор:

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

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

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

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

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

Использование набора записей регистра сведений 1С:

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

Документы – суть ведения учета в 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С, по закладкам: