Содержание
Задача любой учетной системы — хранение и оперативное отображение информации для пользователя, т.е. цель проектирования любой системы — оперативно предоставить пользователю отчет. С помощью полученных данных, как правило, принимаются управленческие решения на предприятиях.
Предположим, что у нас есть 1000 разных документов: поступление товаров, списание, возврат, продажа и т.д. И каждый из документов изменяет количество определенного товара на складе. Чтобы получить информацию о текущем количестве на складе, необходимо перебрать все документы: какие-то увеличивают количество товара, какие-то уменьшают, какие-то могут и увеличивать, и уменьшать. А если необходимо учитывать еще и склад, организацию. Такая система очень ресурсоёмкая.
Для упрощения данного процесса разработчики 1С придумали особые объекты конфигурации. Используются они для удобства хранения и получения информации, в 1С 8.3 и 8.2 используются всевозможные регистры, в данной статье речь пойдет именно про Регистры накопления.
Что же такое регистр накопления в 1С 8?
Сам регистр накопления представляет собой таблицу с информацией, в которой собраны все движения (поступления/списания или обороты) определенных документов. Рассмотрим, как выглядит таблица движения, на примере типового регистра накопления «Товары на складах» в конфигурации «Управление торговлей 10.3»:
Здесь мы видим, что документы 1C «Реализации» уменьшают количество определенного товара в определенном месте хранения, а документы поступления, наоборот, увеличивают количество. В итоге мы получаем общую картину, в которой отчетливо видно, что, когда и в каком количестве поступило (было списано) по учету. По такой таблице уже гораздо удобнее строить отчет.
Регистр накопления в конфигураторе
Что же такое регистр накопления с точки зрения разработки конфигурации? Начнем, пожалуй, с рассмотрения полей регистра накопления в конфигураторе:
Получите 267 видеоуроков по 1С бесплатно:
У регистра накопления есть Измерения, Ресурсы, Реквизиты и Стандартные реквизиты.
Рассмотрим сначала стандартные реквизиты регистра накопления:
- период — дата движения, не обязательно должна совпадать с датой документа;
- регистратор — документ, который производит запись в регистре;
- номер строки — порядковый номер строки в наборе записи, уникален в пределах регистратора;
- активность — отвечает за попадание записи в виртуальные таблицы (о них ниже);
- виддвижения — приход или расход.
Измерения регистра накопления
Измерение — это разрез, в котором ведется учёт. На вышеприведенном примере разрезом учета являются: склад, номенклатура, характеристика номенклатуры, серия номенклатуры, качество. Т.е задав интересующие нас измерения, мы можем в любой момент получить количество — ресурс. В разрезе разных измерений в дальнейшем, например, можно получать остатки на определенную дату.
Ресурс регистра накопления
Ресурс — это числовое поле, в котором хранится информация в разрезе измерений, о которых писали выше.
Иначе взаимодействия измерений/ресурсов можно схематично изобразить как систему координат:
Два измерения — абсцисса и ордината системы координат, т.е. на данном примере измерения это склад и номенклатура. На пересечении измерений мы можем получить количество — ресурс. Например, на «основном» складе товара «карандаш» в наличии 1 штука.
Реквизиты регистра накопления 1C
Реквизиты регистры накопления несут в себе роль «комментария» или дополнительной информации, в разрезе измерений нельзя получить остатки/обороты. Используются достаточно редко.
Виды регистра накопления
Существует два вида регистра накопления — обороты и остатки.
Если целью регистра накопления не является получение остатков, обязательно нужно использовать вид регистра накопления — обороты. Типичный пример использования оборотного регистра — регистрация объема продаж. В данном случае нам нужно знать только, какие продажи были за определенный период времени, остатки в данном случае не имеют смысла.
Если же среди целей использования регистра накопления — получение остатков на определенный период, нам необходим регистр с видом остатки. Такой тип позволяет получать как остатки, так и обороты. Для такого регистра система автоматически рассчитывает остатки. Пример «остаточного» регистра — товары на складах, деньги в кассе.
Использование вида регистра остатки, где можно обойтись оборотами, считается грубой ошибкой при проектировании регистра накопления с точки зрения производительности системы.
В зависимости от вида регистра система будет создавать разные виртуальные таблицы для регистра накопления. Виртуальная таблица – быстрый способ получения профильной информации из регистров.
Для регистра накопления это:
Для разработчика решения данные берутся из одной (виртуальной) таблицы, но на самом деле платформа 1С берёт из множества таблиц, преобразовывая их в нужных вид.
Правильное проектирование регистров накопления
Регистры накопления необходимо проектировать из необходимых отчетов. Самое трудное в системе 1С 8.3 — правильно хранить информацию, чтобы её в любой момент было легко получить.
Среди особенностей проектирования регистра следует отметить необходимость правильно расставлять по порядку измерения в регистре. Выше всего необходимо ставить измерения, которые будут чаще запрашиваться в системе.
Индексация измерений регистра накопления
У измерений регистра накопления имеется свойство — «индексировать». Это свойство необходимо устанавливать на измерения в тех случаях, когда по измерению планируется часто накладывать отборы при получении данных и данное измерение может иметь большое количество вариантов значения.
Например, регистр «ТоварыНаСкладах», измерения — «Склад, Номенклатура», ресурс — «Количество».
Правильнее проиндексировать «Номенклатуру», а поле»Склад» индексировать не стоит, потому как количество складов в системе, как правило, не существенное.
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Как я и обещал в предыдущей статье продолжаем создавать полноценный регистр накопления. В котором будут отображаться как приход, так и расход. Для того чтобы продолжить чтение и понять смысл этой статьи необходимо прочитать предыдущею статью, в которой мы создали регистр накопления.
И так немного вспомним что мы делали раньше. Мы создали регистр накопления и прописали в документе Приход товара движение на него. В итоге он у нас стал накапливать информация о поступаемом товаре (наименование и количество).
Но если мыслить логически, то он должен иметь не только приход товара, но и его расход. Мы с вами определились что с его помощью мы будем узнавать наличие остатков на складе. Да кстати наша учебная база немного разрослась поэтому пришло время дать ей название. Это будет небольшой склад, в который поступает какой-то материал и выдается из него. Материалом у нас будут комплектующие к компьютерам (Материнские платы, жесткие диски, оперативная память и т.д)
Приход мы сделали это документ Приход товара. Для того чтобы сделать расход необходимо создать новый документ назовем его Отпуск Товара. В этом документе необходимо будет прописать движение в наш регистр накопления и указать тип движения расход. Теперь перейдем к действиям.
Расход в регистре накоплений
И так первым делом создаем новый документ и пишем название Отпуск Товара
Добавляем его в подсистему Склад.
На вкладке данные добавляем реквизиты Организация (т.е кому мы отпускаем товар) а в табличную часть наименование, количество, цена и сумма все точно так же как и у документа Приход товара. Не забудьте написать процедуры для расчёта суммы в табличной части. Если не знаете или забыли, как это делается читаем здесь. Так же указываем что наименование — это справочник.
Теперь переходим на вкладку Движения и отмечаем наш регистр накопления после чего кликаем на Конструктор движений.
В открывшемся окне на пункте Тип движения регистра ставим Расход. Далее выбираем табличную часть Материалы. Ниже напротив наименование пишем ТекСтрокаМатериалы.Наименованеи а на против количество ТекСтрокаМатериалы.Количество и кликаем ОК.
Для того чтобы просмотреть движение в регистре его нужно сделать видимым. Делается это просто так же как и в предыдущей статья заходим на форму документа переходим в командный интерфейс и отмечаем наш регистр как видимый.
Теперь нам необходимо проверить правильно ли он будет работать. Для этого запускаем 1С открываем документ Отпуск Товара и заполняем его проводим далее справа переходим в регистр и смотрим что туда попало.
Если у вас все поля заполнены и в поле Период стоит минус значить вы все сделали правильно.
Наверно у вас возник вопрос, а как узнать остатки в этом регистре. Приход есть расход тоже сделали. Для того чтобы можно было посмотреть остатки нужно создать отчет по этому регистру этим займемся в следующей статье.
Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.
Регистр накопления 1С это структурированный набор данных, в котором находится информация о всех движения (приход / расход или обороты) выбранных документов.
Оглавление
Виды регистра накопления
В 1С бывает только два вида регистра накопления:
- Обороты
Если планируется получать по регистру только обороты, обязательно устанавливайте вид обороты.
Например, при регистрации продаж нам важно количество продаж и остатки здесь абсолютно не нужны. Следовательно, вид регистра нужно установить «Обороты».
- Остатки
Если планируется получать по регистру остатки и обороты, устанавливайте вид остатки. Например возьмем регистр накопления «ТоварыНаСкладах» в нем важной информацией будет как остатки, так и обороты. Следовательно, вид регистра нужно установить «Остатки».
Внимание: не правильный выбор вида регистра накопления повлечет низкую производительность информационной базы.
Измерения, Ресурсы, Реквизиты и Стандартные реквизиты
В любом регистре накопления присутствуют измерения, ресурсы, реквизиты и стандартные реквизиты.
Измерения нужны для формирования ключевых данных записи, по которым в будущем можно получить остатки или посмотреть оборот по интересующим Вас измерениям.
Так же в свойствах измерения можно установить проверку заполнения измерения (при пустом значении будет вызвана ошибка)
Ресурсы нужны для хранения суммовых данных в регистре: количество, сумма и т.д. Ресурсы в будущем будем получать по измерениям.
Реквизиты в основном нужны для хранения сопутствующей информации и редко используются.
Стандартные реквизиты бывают следующими:
- период — дата, когда выполнилось движение по регистру
- регистратор — документ, при помощи которого была выполнена запись в регистре
- вид движения — приход или расход (приход увеличивает количество ресурсов, а расход уменьшает)
Регистраторы
Регистраторы это документы, которые могут делать движения в регистре накопления. Движения в регистр накопления 1С можно делать только по средство документов (регистраторов). Большинство алгоритмов, создания движения в регистре накопления, формируются при проведении документа в модуле объекта, процедура «ОбработкаПроведения».
Индексация измерений
Индексация требуется для увеличения производительности информационной базы.
Свойство «Индексировать» требуется указать у измерений, по которым планируется выполнять многократно отбор и у которых большое количество элементов.
Для примера: регистр накопления «ПартииТоваровНаСкладах». Есть измерение «Номенклатура» и «СтутусПартии». Целесообразней установить признак индексации у измерения «Номенклатура», чем у «СтутусПартии», так как количество вариантов номенклатуры гораздо выше, чем у статуса партии.
Уникальность записей
1С Предприятие контролирует уникальность записей в регистре накопления, и по этому, вы не встретите двух одинаковых записей.
Возможности регистра накопления
- выборка записей за определенный период по заданным измерениям
- выборка записей по регистратору
- получение остатков и оборотов на выбранную дату с заданными измерениями
- вычисление итогов на указанную дату
Примеры работы с регистром накопления
Пример получения остатков на текущую дату
Процедура ПолучитьОстатокНаДату()
НовЗапрос = Новый Запрос;
НовЗапрос.Текст =
"ВЫБРАТЬ
| ТовОстатки.Номенклатура,
| ТовОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&ТекДата, ) КАК ТовОстатки";
НовЗапрос.УстановитьПараметр("ТекДата", ТекущаяДата());
ВыборкаЗапроса = НовЗапрос.Выполнить().Выбрать();
Пока ВыборкаЗапроса.Следующий() Цикл
КонецЦикла;
КонецПроцедуры
Пример получения оборотов за текущий год
НовЗапрос = Новый Запрос;
НовЗапрос.Текст =
"ВЫБРАТЬ
| ТовОбороты.Номенклатура,
| ТовОбороты.КоличествоОборот
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Обороты(&НачПериода, &КонПериода, , ) КАК ТовОбороты";
НовЗапрос.УстановитьПараметр(«НачПериода», НачалоГода(ТекущаяДата()));
НовЗапрос.УстановитьПараметр(«КонПериода», ТекущаяДата());
Пока ВыборкаЗапроса.Следующий() Цикл
КонецЦикла;
Пример как выбрать движения в регистре накопления
НовЗапрос = Новый Запрос;
НовЗапрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладах.Период,
| ТоварыНаСкладах.Регистратор,
| ТоварыНаСкладах.ВидДвижения,
| ТоварыНаСкладах.Номенклатура,
| ТоварыНаСкладах.Количество
|ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах";
Пока ВыборкаЗапроса.Следующий() Цикл
КонецЦикла;
Формы списка регистра накопления
Формы используются для визуального просмотра всех движений выбранного регистра. В ней можно посмотреть какие документы делают расход или приход, а также посмотреть по каким измерениям. Также там можно отсортировать движения или сделать отбор.
Система автоматически сможет сформировать форму списка или Вы сами можете настроить ее.