Регистры накопления 1С и их использование
Задача любой учетной системы — хранение и оперативное отображение информации для пользователя, т.е. цель проектирования любой системы — оперативно предоставить пользователю отчет. С помощью полученных данных, как правило, принимаются управленческие решения на предприятиях.
Предположим, что у нас есть 1000 разных документов: поступление товаров, списание, возврат, продажа и т.д. И каждый из документов изменяет количество определенного товара на складе. Чтобы получить информацию о текущем количестве на складе, необходимо перебрать все документы: какие-то увеличивают количество товара, какие-то уменьшают, какие-то могут и увеличивать, и уменьшать. А если необходимо учитывать еще и склад, организацию?.. Такая система очень ресурсоёмкая.
Для упрощения данного процесса разработчики 1С придумали особые объекты конфигурации. Используются они для удобства хранения и получения информации, в 1С 8.3 используются всевозможные регистры, в данной статье речь пойдет именно про Регистры накопления.
Содержание
Что же такое регистр накопления в 1С 8?
Сам регистр накопления представляет собой таблицу с информацией, в которой собраны все движения (поступления/списания или обороты) определенных документов. Рассмотрим, как выглядит таблица движения, на примере типового регистра накопления «Товары на складах» в конфигурации «Управление торговлей 10.3»:
Здесь мы видим, что документы 1C «Реализации» уменьшают количество определенного товара в определенном месте хранения, а документы поступления, наоборот, увеличивают количество. В итоге мы получаем общую картину, в которой отчетливо видно, что, когда и в каком количестве поступило (было списано) по учету. По такой таблице уже гораздо удобнее строить отчет.
Регистр накопления в конфигураторе
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Что же такое регистр накопления с точки зрения разработки конфигурации? Начнем, пожалуй, с рассмотрения полей регистра накопления в конфигураторе:
У регистра накопления есть Измерения, Ресурсы, Реквизиты и Стандартные реквизиты.
Рассмотрим сначала стандартные реквизиты регистра накопления:
- период — дата движения, не обязательно должна совпадать с датой документа;
- регистратор — документ, который производит запись в регистре;
- номер строки — порядковый номер строки в наборе записи, уникален в пределах регистратора;
- активность — отвечает за попадание записи в виртуальные таблицы (о них ниже);
- вид движения — приход или расход.
Измерения регистра накопления
Измерение — это разрез, в котором ведется учёт. На вышеприведенном примере разрезом учета являются: склад, номенклатура, характеристика номенклатуры, серия номенклатуры, качество. Т.е задав интересующие нас измерения, мы можем в любой момент получить количество — ресурс. В разрезе разных измерений в дальнейшем, например, можно получать остатки на определенную дату.
Ресурс регистра накопления
Ресурс — это числовое поле, в котором хранится информация в разрезе измерений, о которых писали выше.
Иначе взаимодействия измерений/ресурсов можно схематично изобразить как систему координат:
Два измерения — абсцисса и ордината системы координат, т.е. на данном примере измерения это склад и номенклатура. На пересечении измерений мы можем получить количество — ресурс. Например, на «основном» складе товара «карандаш» в наличии 1 штука.
Реквизиты регистра накопления 1C
Реквизиты регистры накопления несут в себе роль «комментария» или дополнительной информации, в разрезе измерений нельзя получить остатки/обороты. Используются достаточно редко.
Виды регистра накопления
Существует два вида регистра накопления — обороты и остатки.
Если целью регистра накопления не является получение остатков, обязательно нужно использовать вид регистра накопления — обороты. Типичный пример использования оборотного регистра — регистрация объема продаж. В данном случае нам нужно знать только, какие продажи были за определенный период времени, остатки в данном случае не имеют смысла.
Если же среди целей использования регистра накопления — получение остатков на определенный период, нам необходим регистр с видом остатки. Такой тип позволяет получать как остатки, так и обороты. Для такого регистра система автоматически рассчитывает остатки. Пример «остаточного» регистра — товары на складах, деньги в кассе.
Использование вида регистра остатки, где можно обойтись оборотами, считается грубой ошибкой при проектировании регистра накопления с точки зрения производительности системы.
В зависимости от вида регистра система будет создавать разные виртуальные таблицы для регистра накопления. Виртуальная таблица – быстрый способ получения профильной информации из регистров.
Для регистра накопления это:
- Остатки;
- Обороты;
- Остатки и обороты.
Для разработчика решения данные берутся из одной (виртуальной) таблицы, но на самом деле платформа 1С берёт из множества таблиц, преобразовывая их в нужных вид.
Правильное проектирование регистров накопления
Регистры накопления необходимо проектировать из необходимых отчетов. Самое трудное в системе 1С 8.3 — правильно хранить информацию, чтобы её в любой момент было легко получить.
Среди особенностей проектирования регистра следует отметить необходимость правильно расставлять по порядку измерения в регистре. Выше всего необходимо ставить измерения, которые будут чаще запрашиваться в системе.
Индексация измерений регистра накопления
У измерений регистра накопления имеется свойство — «индексировать». Это свойство необходимо устанавливать на измерения в тех случаях, когда по измерению планируется часто накладывать отборы при получении данных и данное измерение может иметь большое количество вариантов значения.
Например, регистр «ТоварыНаСкладах», измерения — «Склад, Номенклатура», ресурс — «Количество».
Правильнее проиндексировать «Номенклатуру», а поле»Склад» индексировать не стоит, потому как количество складов в системе, как правило, не существенное.
Другие статьи по 1С:
- Администрирование (обновление 1С, резервные копии и т.д);
- Программирование 1С
- Обучение 1С
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Ирина:
Очень хорошая статья, написанная доступным языком. Спасибо!
Программист 1С:
Спасибо) приятно)
Артём:
Огромное человеческое спасибо!
ktibo:
здравствуйте, хочу задать глупый вопрос: чем отличается применение «регистра накопления Обороты» от «регистра сведений«?
ktibo:
то есть в обоих случаях мы просто храним некую информацию в виде таблицы, и в случае оборотов даже не можем получить остатки (то есть некую сумму, итог). Тогда почему бы не использовать вместо РН Остатки регистр сведений?
Кирилл:
Здравствуйте!
Странное сравнение 🙂
Ну если вкратце — они различаются виртуальными таблицами. С оборотами можно получить обороты по датам, по разрезам и так далее.
С регистрами сведений такого сделать нельзя 🙂
Относитесь в регистрам сведений как к справочнику 🙂
Азамат:
Измерения регистра накопления
Измерение — это разрез, в котором ведется учёт
Каком смысле разрез?
Кирилл:
Разрез — аналитика учета.
Например:
Всего у нас есть 10 единиц товара.
Из них на «оптовом складе» — 4 штуки, а на «розничном» — 6 штук.
Из них товара «грабли» — 3 штуки, а товара «лопата» — 7 штук.
В этом случае у нас два «разреза» — склад и товар.
Bogdan:
Доброго вечера !)
У меня такой вопрос : можно ли изменить или вытянуть по частям информацию в отдельные колонки из стандартного реквизита «Регистратор» ?!
Кирилл:
Доброго!)
Честно — в любом случае это будет очень неоптимально с точки зрения скорости работы, потому что «регистратор» поле составного типа и получать данные «по-точки» не очень хорошо 🙂
Но если очень нужно — сделать можно) Для управляемых форм посмотрите как настраиваются динамические списки.
ThankYou:
Это не для работы, задание такое )
Спасибо большое .
Шурик:
Можно сделать временную таблицу с условием для основной.
Аноним:
А для изменения понадобится объект. Ссылка
Алексей:
Здравствуйте, «активность — отвечает за попадание записи в виртуальные таблицы (о виртуальных таблицах позже)» — где на сайте можно найти статью про виртуальные таблицы?
Кирилл:
Добрый день!
Есть в статье про запросы https://programmist1s.ru/zaprosyi-1s-ot-a-do-ya/
DSP:
Формирую выборку записей регистра накопления. Получается таблица с колонками, соответствующими измерениям и ресурсам регистра. Но ведь запись, как мы ее видим хотя бы в форме списка, содержит гораздо больше полей.
И как в выборке обращаться например к стандартным реквизитам? Через точку в строке выборки обращаюсь — измерения показывает, ст. реквизиты — «поле объекта не обнаружено».
Кирилл:
Скорее всего вы используете одну из виртуальных таблиц — обороты или остатки.
Реквизиты 1С показываются только если обращаться к физической таблице (то есть без окончания «остатки», «обороты» и т.д.).
Сергей:
Скажите пожалуйста, есть ли развернутая информация о смысле такого вида документа как Корректировка записей регистров? Важна развернутая инфа, где бы объяснялось действие этого документа. При его использовании, документы-регистраторы ведь не изменяются и нужно ли закрывать период, в котором эти документы. Ведь если их перепровести, то и записи в регистре опять вернутся на свои места… Вот эти моменты хотелось бы понять. Заранее спасибо.
Кирилл:
Подробной инструкции вы, наверное, не найдете. Уж проще залезть в код получается…
Если вы пишите о стандартном документе «корректировка записей регистра», то он никак не привязан к изначальному документу. То есть регистратор для его записей является сам документа «корректировки».
Из этого следует что при проведения документа-источника с корректировкой ничего не случится. Но и коллизия вроде изменения проводок документа-источника тоже не обработается.
OLAP:
«Существует два вида регистра накопления — обороты и остатки»
В регистре накопления существует несколько виртуальных таблиц, в том числе таблица «Остатки» и таблица «Обороты».
Андрей:
Имеется регистр накопления (остатки и обороты), в нем хранится начисление и оплата (измерение услуга, ресурс сумма). Можно ли получить неоплаченные услуги по периодам (помесячно) при этом не добавляя измерение период?
GresOfBase:
Период — это стандартный реквизит регистра, его добавлять при проектировании не нужно, но необходимо использовать при создании запроса к регистру.
Константин:
Есть ли какая-то методика по ведению регистра накопления с типом остатки? К примеру в измерении есть склад, участок и номенклатура, в приходе указан участок, а в расходе участок не указали, так как со стороны производства не важно с какого участка списывать, но нужен контроль откуда пришел товар. В основных отчетах данный участок не фигурирует, используется редко для некоторых отчетов. Насколько данная схема ведения регистра накопления верная?
Татьяна:
Здравствуйте, правильно ли я поняла, что остатки/обороты нельзя получить в разрезе реквизитов? Похоже, у Вас опечатка в разделе
«Реквизиты регистра накопления 1C».
муся:
Добрый день. Можно ли заполнить поле в регистре накопления, если этого поля нет в документе.
Пример есть справочники страны и города (владелец страны — или можно отдельным реквизитом сделать). Есть заявка, в ней указан только город. А в регистре требуется указать и страну и город. Задание такое….
GresOfBase:
В статье есть такой кусок:
«Реквизиты регистра накопления 1C
Реквизиты регистры накопления несут в себе роль «комментария» или дополнительной информации, в разрезе измерений нельзя получить остатки/обороты. Используются достаточно редко.»
Почему здесь написано, что в разрезе измерений нельзя получить остатки и обороты, когда измерения как раз для этого и существуют. Скорее всего, имелись ввиду реквизиты. Видимо, вкралась ошибка при написании статьи.
Никита:
Добрый день!
Я хочу создать регистр накопления, в котором бы суммировались остатки товаров к поступлению по каждой позиции. Возможно ли это сделать путем создания регистра накопления?
Анастасия:
Жаль, не показали как был создан этот регистр
Юрий:
В типовой ERP 209 регистров накопления. Регистров с реквизитами — 168. Это 80%. А автор нам говорит, что реквизиты используются редко.
Аноним:
Как использовать реквизит в регистре накопления? Как для конкретного документа прописать,какую строку(реквизит) нужно сохранить в регистре накопления?