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

Применение отбора в наборе записей регистра сведений 8.3 (8.2)
В предыдущей статье Работа с набором записей регистра сведений мы узнали, как использовать объект набор записей регистра сведений для группового создания записей. В процессе записи набора наш регистр или полностью очищается, или добавляются новые записи, сохраняя при этом старые. Причем контроль уникальности по измерениям во втором случае не ведется, и может возникнуть ошибка «Запись с такими ключевыми полями существует!»
Но очень часто возникают задачи, когда нужно отредактировать какие-то уже имеющиеся записи, например, сделав отбор по какому-то одному или нескольким измерениям. Эти задачи выполняются при помощи отборов набора записей.
Рассмотрим следующую задачу: в моей конфигурации есть независимый периодический регистр сведений «ЦеныНаТопливо», который имеет следующую структуру.
Нам нужно изменить все цены конкурентного поставщика за все периоды, умножив их на какой-то коэффициент. Для решения этой задачи нам нужно установить отбор по нужному нам поставщику, прочитать данные, обойти полученный набор записей и рекурсивно изменить цену.
В этом коде с помощью свойства Отбор объекта НаборЗаписей сделать так, чтобы в наборе были записи, соответствующие только нужному нам поставщику.
В отборе как к свойству объекта можно обращаться ко всем измерениям регистра сведений и к периоду, если имеем дело с периодическим регистром сведений. Если регистр сведений подчинен регистратору, то отбор возможен только по регистратору.
Когда мы обращаемся к свойству объекта Отбор посредством названия измерения, то мы получаем объект Элемент отбора, у данного объекта только один метод — Установить. Данный метод устанавливает значение отбора.
Можно производить отбор по одному полю, а можно и по нескольким. В случае отбора по нескольким полям логическая связь между полями будет осуществляться с помощью булевой операции «И».
Имейте в виду, что отбор в регистрах сведений можно устанавливать только на равенство!
После того, как мы установили отбор, нам необходимо извлечь данные из базы в объект Набор записей, осуществляется это с помощью метода Прочитать. Этот метод считывает записи из базы данных по установленному отбору и записывает их в объект НаборЗаписей.
Причем, с помощью отбора можно проверять наличие уже существующих записей. Например, будем записывать данные в наш регистр, но перед этим проверим, есть ли записи по нужным полям.
В этом коде мы с помощью отборов получаем определенный набор записи, который должен соответствовать установленным отборам. И если данных по установленным отборам нет, то создаем новую запись.
Имейте ввиду, что после того, как вы примените метод Прочитать к набору записей, то состав набора изменится согласно установленному отбору.
С помощью набора записей можно не только создавать новые записи, но и удалять имеющиеся. Например, решим следующую задачу: очистим все записи для определенного вида топлива.
Статья: 4 способа ускорить запись в регистры накопления и бухгалтерии – Проект Курсы 1С
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
В любой реально работающей базе 1С может возникнуть ситуация, когда документ при проведении делает большое количество движений несколько тысяч или даже несколько десятков тысяч.

1C Удалить Записи Регистра Накопления с Битым Регистратором
3. Измерения, ресурсы, реквизиты регистра сведений
Промокоды на Займер на скидки
7. Изменение значения ресурса записи регистра сведений
8. Удаление выбранных записей в регистре сведений
10. Получить значение ресурса регистра сведений на дату
Регистр сведений предназначен для хранения показателей состояния в разрезе измерений. В отличии от других регистров, ресурсы регистра сведений могут содержать не только числовые значения, в том числе может быть составным.
- Независимый регистр сведений — регистр не подчинен регистратору (документу).
- Зависимый регистр сведений — регистр подчинен регистратору (документу).
- Непериодический регистр сведений — информация в регистре храниться без привязки к дате.
- Периодический регистр сведений — информация в регистре развернута во времени, одним из измерений является дата, называемым Периодом.
Реквизиты — несут дополнительную информацию (как комментарий), которую нельзя получить из виртуальных таблиц регистра в разрезе измерений.
Если узнаем цену Тяпки на любую дату с 1 августа 2024 года до 10 августа 2024, она будет равна 175 рублям.
Если узнаем цену Тяпки на любую дату с 10 августа 2024 года по текущую дату, она будет равна 192 рублям.
Внимание! Описанный выше пример несет образный характер и периоды в примере рассматривали приблизительно. Для точного определения даты и времени для вычисления цены необходимо использовать Дату, МоментВремени или Границу зависит от решаемой задачи. Об особенностях использования периодов и моментов времени поговорим в следующей статье.
Внимание! При выборе периодичности (кроме «По позиции регистратору»), платформа будет контролировать уникальность записей в пределах заданной периодичности, в таком случаи в регистратор нельзя записать две записи с одинаковым набором Измерений и Периодом. Последовательность состоящая из Измерений и Периода называется Ключом уникальности.
При выборе периодичности «По позиции регистратору» ключ уникальности будет содержать дополнительно ссылку на регистратор (документ), в таком случаи в регистратор нельзя записать две записи с одинаковым набором Измерений, Периодом и Регистратором.
Если запись не уникальна, платформа выдает сообщение “Запись с такими ключевыми полями существует!” и не даст записать набор записей в регистр сведений.
При выборе периодичности в БД создаются виртуальные таблицы:
СрезПервых и СрезПоследних.
Что позволяет быстро получать значения ресурсов о последних (первых) установленных значений на определенную дату.
Основной отбор (для измерения) — устанавливает возможность измерения регистрировать изменения для плана обмена.
Добавление через МенеджерЗаписи, подойдет для добавления одной записи.
А вот если мы установим режим замещения в Истину, то при повторной записи никакой ошибки возникать не будет, т.к. существующие записи будут перезаписываться.
Запись в регистры 1С больших наборов записей
Если такая ситуация обнаружена, конечно, можно сделать свертку, переместить старые данные в отдельную базу и сократить объем регистра, но это даст лишь временный эффект.

Удаление записей регистра сведений
Как известно для работы с регистром сведений используется набор записей. Напишем две простейшие строчки кода для нашего регистра и запустим их на выполнение
Теперь представим, что нам надо удалить не все записи регистра, а только с конкретными значениями измерений. Алгоритм действия в этом случае такой же, только перед записью необходимо для нашего пустого набора записей установить соответствующий отбор. В статье про срез последних мы в качестве примера рассматривали этот же регистр сведений – Цена. Напомню, что там у нас были следующие записи
Период | Товар | Поставщик | Сумма |
---|---|---|---|
01.01.2017 | Карандаш | ООО «Леспром» | 10 |
25.01.2017 | Карандаш | ООО «Леспром» | 15 |
01.01.2017 | Карандаш | ПАО «Канцтовары» | 27 |
01.02.2017 | Карандаш | ПАО «Канцтовары» | 31 |
03.01.2017 | Ручка | ПАО «Канцтовары» | 137 |
01.02.2017 | Ручка | ПАО «Канцтовары» | 145 |
Допустим, что мы хотим удалить записи, где Товар – Карандаш, а Период – 01.01.2017. Напомню, что для периодических регистров сведений отбор можно устанавливать не только по измерениям, но и по периоду. В этом случае код у нас будет выглядеть вот так
Хочу также обратить внимание на метод Установить(). В том случае, когда вид сравнения в отборе – Равно этот метод позволяет установить отбор с минимальным количеством кода.
После выполнения этого кода в нашем регистре останутся следующие записи
Период | Товар | Поставщик | Сумма |
---|---|---|---|
25.01.2017 0:00:00 | Карандаш | ООО «Леспром» | 15 |
01.02.2017 0:00:00 | Карандаш | ПАО «Канцтовары» | 31 |
03.01.2017 0:00:00 | Ручка | ПАО «Канцтовары» | 137 |
01.02.2017 0:00:00 | Ручка | ПАО «Канцтовары» | 145 |
Могут быть конечно и более сложные случаи при удалении записей. Например, когда нужно удалить записи по определенным значениям ресурсов или реквизитов.
Здесь использовать отбор уже не получиться, т.к. его можно устанавливать только для измерений, регистраторов и периодов. И вот тут уже придется перебирать один или несколько наборов записей, удалять отдельные записи и перезаписывать набор.
Отбор в наборе записей регистра сведений 1С |
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы