Домой Проценты по кредитам 1с запись в регистр накопления с регистратором. Документы, регистры накопления, скд

1с запись в регистр накопления с регистратором. Документы, регистры накопления, скд

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

Предположим, что у нас есть 1000 разных документов: поступление товаров, списание, возврат, продажа и т.д. И каждый из документов изменяет количество определенного товара на складе. Чтобы получить информацию о текущем количестве на складе, необходимо перебрать все : какие-то увеличивают количество товара, какие-то уменьшают, какие-то могут и увеличивать, и уменьшать. А если необходимо учитывать еще и склад, организацию?.. Такая система очень ресурсоёмкая.

Для упрощения данного процесса разработчики 1С придумали особые объекты конфигурации. Используются они для удобства хранения и получения информации, в 1С 8.3 и 8.2 используются всевозможные регистры, в данной статье речь пойдет именно про Регистры накопления .

Сам регистр накопления представляет собой таблицу с информацией, в которой собраны все движения (поступления/списания или обороты) определенных документов. Рассмотрим, как выглядит таблица движения, на примере типового регистра накопления «Товары на складах» в конфигурации «Управление торговлей 10.3»:

Здесь мы видим, что документы 1C «Реализации» уменьшают количество определенного товара в определенном месте хранения, а документы поступления, наоборот, увеличивают количество. В итоге мы получаем общую картину, в которой отчетливо видно, что, когда и в каком количестве поступило (было списано) по учету. По такой таблице уже гораздо удобнее строить отчет.

Регистр накопления в конфигураторе

Что же такое регистр накопления с точки зрения разработки конфигурации? Начнем, пожалуй, с рассмотрения полей регистра накопления в :

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

У регистра накопления есть Измерения, Ресурсы, Реквизиты и Стандартные реквизиты.

Рассмотрим сначала стандартные реквизиты регистра накопления:

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

Измерения регистра накопления

Измерение — это разрез, в котором ведется учёт. На вышеприведенном примере разрезом учета являются: склад, номенклатура, характеристика номенклатуры, серия номенклатуры, качество . Т.е задав интересующие нас измерения, мы можем в любой момент получить количество — ресурс. В разрезе разных измерений в дальнейшем, например, можно получать остатки на определенную дату.

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

Ресурс — это числовое поле, в котором хранится информация в разрезе измерений, о которых писали выше.

Иначе взаимодействия измерений/ресурсов можно схематично изобразить как систему координат:

Два измерения — абсцисса и ордината системы координат, т.е. на данном примере измерения это склад и номенклатура. На пересечении измерений мы можем получить количество — ресурс. Например, на «основном» складе товара «карандаш» в наличии 1 штука.

Реквизиты регистра накопления 1C

Реквизиты регистры накопления несут в себе роль «комментария» или дополнительной информации, в разрезе измерений нельзя получить остатки/обороты. Используются достаточно редко.

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

Существует два вида регистра накопления — обороты и остатки .

Если целью регистра накопления не является получение остатков, обязательно нужно использовать вид регистра накопления — обороты . Типичный пример использования оборотного регистра — регистрация объема продаж. В данном случае нам нужно знать только, какие продажи были за определенный период времени, остатки в данном случае не имеют смысла.

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

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

В зависимости от вида регистра система будет создавать разные виртуальные таблицы для регистра накопления. Виртуальная таблица – быстрый способ получения профильной информации из регистров.

Для регистра накопления это:

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

Для разработчика решения данные берутся из одной (виртуальной) таблицы, но на самом деле платформа 1С берёт из множества таблиц, преобразовывая их в нужных вид.

Правильное проектирование регистров накопления

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

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

Индексация измерений регистра накопления

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

Например, регистр «ТоварыНаСкладах», измерения — «Склад, Номенклатура», ресурс — «Количество».

Правильнее проиндексировать «Номенклатуру», а поле»Склад» индексировать не стоит, потому как количество складов в системе, как правило, не существенное.

Регистр накопления 1С это структурированный набор данных, в котором находится информация о всех движения (приход / расход или обороты) выбранных документов.

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

В 1С бывает только два вида регистра накопления:

  • Обороты
    Если планируется получать по регистру только обороты, обязательно устанавливайте вид обороты.
    Например, при регистрации продаж нам важно количество продаж и остатки здесь абсолютно не нужны. Следовательно, вид регистра нужно установить «Обороты».
  • Остатки
    Если планируется получать по регистру остатки и обороты, устанавливайте вид остатки. Например возьмем регистр накопления «ТоварыНаСкладах» в нем важной информацией будет как остатки, так и обороты. Следовательно, вид регистра нужно установить «Остатки».

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

Измерения, Ресурсы, Реквизиты и Стандартные реквизиты

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

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

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

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

Стандартные реквизиты бывают следующими:

  • период - дата, когда выполнилось движение по регистру
  • регистратор - документ, при помощи которого была выполнена запись в регистре
  • вид движения - приход или расход (приход увеличивает количество ресурсов, а расход уменьшает)

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

Регистраторы это документы, которые могут делать движения в регистре накопления. Движения в регистр накопления 1С можно делать только по средство документов (регистраторов). Большинство алгоритмов, создания движения в регистре накопления, формируются при проведении документа в модуле объекта, процедура «ОбработкаПроведения».


Индексация измерений

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

Для примера: регистр накопления «ПартииТоваровНаСкладах». Есть измерение «Номенклатура» и «СтутусПартии». Целесообразней установить признак индексации у измерения «Номенклатура», чем у «СтутусПартии», так как количество вариантов номенклатуры гораздо выше, чем у статуса партии.

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

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

Возможности регистра накопления

  • выборка записей за определенный период по заданным измерениям
  • выборка записей по регистратору
  • получение остатков и оборотов на выбранную дату с заданными измерениями
  • вычисление итогов на указанную дату

Примеры работы с регистром накопления

Пример получения остатков на текущую дату

Процедура ПолучитьОстатокНаДату()
НовЗапрос = Новый Запрос;
НовЗапрос.Текст =
"ВЫБРАТЬ
| ТовОстатки.Номенклатура,
| ТовОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&ТекДата,) КАК ТовОстатки";
НовЗапрос.УстановитьПараметр("ТекДата", ТекущаяДата());

КонецЦикла;
КонецПроцедуры

Пример получения оборотов за текущий год

НовЗапрос = Новый Запрос;
НовЗапрос.Текст =
"ВЫБРАТЬ
| ТовОбороты.Номенклатура,
| ТовОбороты.КоличествоОборот
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Обороты(&НачПериода, &КонПериода,) КАК ТовОбороты";

НовЗапрос.УстановитьПараметр(«НачПериода», НачалоГода(ТекущаяДата()));
НовЗапрос.УстановитьПараметр(«КонПериода», ТекущаяДата());

ВыборкаЗапроса = НовЗапрос.Выполнить().Выбрать();

Пока ВыборкаЗапроса.Следующий() Цикл
КонецЦикла;

Пример как выбрать движения в регистре накопления

НовЗапрос = Новый Запрос;
НовЗапрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладах.Период,
| ТоварыНаСкладах.Регистратор,
| ТоварыНаСкладах.ВидДвижения,
| ТоварыНаСкладах.Номенклатура,
| ТоварыНаСкладах.Количество
|ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах";

ВыборкаЗапроса = НовЗапрос.Выполнить().Выбрать();

Пока ВыборкаЗапроса.Следующий() Цикл
КонецЦикла;

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

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

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

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

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

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

Итак, нам нужно хранить следующие данные:

  • Номенклатурная позиция
  • Ответственный сотрудник, на котором числится данная позиция
  • Количество номенклатуры
  • Стоимость номенклатуры
  • Данные о мастере, которому переданы материалы для использования.

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

Ресурсы регистра – это всегда числовые значения, характеризующие хранимые данные. Числовые значения – это количество и сумма, и именно они будут ресурсами нашего регистра.

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

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

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

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


Рис. 6.12.

Включим регистр накопления в состав подсистемы ОперативныйУчетМатериалов .

На вкладке Данные создадим следующие измерения, ресурсы и реквизиты:

Измерения :

Имя : Номенклатура, Тип: СправочникСсылка.Номенклатура, Запрет незаполненных значений – установлено.

Имя : ОтветственныйСотрудник, Тип: СправочникСсылка.Сотрудники, Запрет незаполненных значений – установлено.

Ресурсы

Имя : Количество, Тип: число, длина 10, точность 3

Имя : Сумма, Тип: число, длина 10, точность 2

Реквизиты :

Имя : ПолучательМатериалов, Тип: СправочникСсылка.Сотрудники

Обратите внимание на имена этих реквизитов, на их типы, а так же – на стандартные реквизиты регистра ( рис. 6.13 .) – эти данные пригодятся нам при работе над процедурой проведения документа .

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

Перейдем на вкладку Регистраторы окна редактирования объекта и выберем в качестве документов-регистраторов документы – ПоступлениеМатериалов и ОтпускМатериаловМастеру .

На данном этапе настройка регистра накопления окончена, перейдем к настройкам документов. Начнем с документа ПоступлениеМатериалов .

Откроем окно редактирования объекта для этого документа, перейдем на вкладку Движения ( рис. 6.14 .) и нажмем на кнопку


Рис. 6.14.

В конструкторе, выберем тип движения регистра – Приход , в поле Табличная часть укажем табличную часть документа Материалы , нажмем на кнопку Заполнить выражения . Автоматический механизм установления соответствия между данными документа и регистра не всегда работает правильно (в том случае, если не может однозначно определить соответствия, или тогда, когда соответствие, определенное им по его логике, отличается от желаемого), поэтому проверим правильность установленных соответствий. В итоге окно Конструктора движения регистра должно выглядеть так, как показано на рис. 6.15 .


Рис. 6.15.

После нажатия на кнопку ОК, в модуле объекта документа будет сформирована такая процедура обработки проведения (так она выглядит после удаления комментариев о том, что код построен конструктором движений):

Процедура ОбработкаПроведения(Отказ, Режим) // регистр ОстаткиМатериалов Приход Движения.ОстаткиМатериалов.Записывать = Истина; Для Каждого ТекСтрокаМатериалы Из Материалы Цикл Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаМатериалы.Номенклатура; Движение.ОтветственныйСотрудник = ОтветственныйСотрудник; Движение.Количество = ТекСтрокаМатериалы.Количество; Движение.Сумма = ТекСтрокаМатериалы.Сумма; КонецЦикла; КонецПроцедуры

Эта процедура объявлена в модуле объекта, она исполняется на

Новое на сайте

>

Самое популярное