37. Объект конфигурации регистр накопления
Объект конфигурации Регистр накопления является прикладным объектом и предназначен для описания структуры накопления данных. На основе объекта конфигурации Регистр накоплено платформа создает в БД информационную структуру, в которой будут накапливаться данные, «поставляемые» различными объектами базы данных. Эти данные будут храниться в регистре в виде отдельных записей, каждая из которых имеет одинаковую, заданную в конфигураторе, структуру.
Виды числовой информации, накапливаемой регистром накопления, называются ресурсами и также являются подчиненными объектами и описываются в конфигураторе.
Изменение состояния регистра накопления происходит, как правило, при проведении документа, и заключается в том, что в регистр добавляется некоторое количество записей. Каждая запись содержит значения измерений, значения приращений ресурсов, ссылку на документ, который вызвал эти изменения (регистратор) и «направление» приращения (приход или расход). Такой набор записей называется движениями регистра накоплении. Каждому движению регистра накопления всегда должен соответствовать регистратор.
Кроме того, регистр накопления может хранить дополнительную информацию, описывающую каждое движение. Набор такой дополнительной информации задается разработчиком при помощи реквизитов объекта конфигурации Регистр накопления.
Виды регистра накопления
В системе 1С:Предприятие 8.0 возможно использование регистров накопления двух типов: регистры остатков и регистры оборотов.
Разница между ними понятна из их названия и заключается в характере хранимой информации: из регистров остатков можно быстро получить информацию о состоянии средств на момент времени, а из регистров оборотов — данные за период.
Если из регистра нужно быстро получать остаток чего-либо на текущий момент, тогда нужно завести регистр остатков. Если из регистра нужно быстро получать обороты чего-либо за период, тогда нужно создать оборотный регистр.
38. Объект отчет. Назначение отчетов
Объект конфигурации Отчет является прикладным объектом и предназначен для описания средств и алгоритмов, при помощи которых пользователь сможет получать необходимые ему выходные данные.
Отчеты – это не сохраняемые в базе данных объекты, предназначенные для формирования печатных форм или обработки данных в базе данных.
Назначение отчетов: отчеты предназначены для вывода информации, формирования различных печатных форм с детальными и сводными данными, например, отчеты АнализПродаж, ПрайсЛист, РеестрДокументов
Алгоритм формирования выходных данных описывается при помощи визуальных средств или с использованием встроенного языка В реальной жизни объектам конфигурации Отчет соответствуют всевозможные таблицы выходных данных, сводных данных диаграммы и пр.
Структура объекта отчет
Структура отчета и обработки одинакова:
Реквизиты отчета (обработки) содержат параметры формирования отчета (выполнения обработки). Эти реквизиты отличаются от реквизитов справочников тем, что они не сохраняются в базе данных. Например, реквизиты НачДата и КонДата у отчета АнализПродаж.
Табличные части содержат списки параметров для отчета или обработки, обычно состоящие из нескольких колонок.
Например, табличная часть условияПоСубконто у отчета «ОСВ по счету».
Экранные формы предназначены для отображения отчета/обработки на экране. Это могут быть и различные дополнительные формы, предназначенные для ввода параметров или отображения результатов. В качестве примера можно назвать формы ВыборПериода и ФормаВложеннойТаблицы обработки КонсольЗапросов.
Макеты являются шаблонами печатных форм, на основе которых формируются выходные формы. Макеты могут быть как у отчетов, так и обработок. Например, макеты РеестрДокументов, ОсновнойМакет.
Какие типы регистров накопления возможны в системе 1с предприятие 8
Регистры — это таблицы для накопления оперативных данных и получения сводной информации.
Данные в регистры добавляются только при проведении документов. Сведения из регистров используются для формирования отчетов. Классическая схема использования регистров в 1С:Предприятие выглядит следующим образом:
Документы => Регистры => Отчеты
Измерения и ресурсы
Основная проблема при проектировании регистров — это определение его структуры. Структура регистра должна быть такова, чтобы извлекать из него нужную информацию без утомительной обработки.
Измерения регистра — это то, в каких разрезах требуется хранение информации.
Ресурсы регистра — это количественные или суммовые данные, которые хранятся в регистре.
Предположим, что регистр «Остатки товаров» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара.
Регистр: Остатки товаров
Измерения: Товар, Склад
Ресурсы: Кол-во, Стоимость
С помощью методов встроенного языка мы можем легко получить ответы на вопросы:
* остаток конкретного товара на конкретном складе
* остаток конкретного товара на всех складах
* стоимость всех товаров на конкретном складе
Движения в регистрах
В табличном виде регистр ОстаткиТоваров представляется следующим образом:
Вид движения | Товар | Склад | Кол-во | Стоимость |
приход | Товар4 | Склад1 | 15 | 200 |
расход | Товар4 | Склад1 | 10 | 100 |
приход | Товар4 | Склад1 | 5 | 50 |
Одна строка из этой таблицы называется «движение». Движения в регистрах создаются только при проведении документов. В регистре, кроме измерений и ресурсов, можно задать реквизиты. Реквизиты — это дополнительные сведения, сопровождающие движение. Методами встроенного языка можно отбирать движения с заданным значением реквизита.
Виды регистров
В системе 1С:Предприятие возможно использование регистров двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: в регистрах остатков всегда хранится информация о конечном состоянии средств, а в регистрах оборотов, образно выражаясь, — как это состояние было достигнуто.
Если из регистра нужно быстро получать остаток чего-либо на текущий момент, тогда нужно сделать регистр остатков. Если из регистра нужно быстро получать приход или расход чего-либо за период, тогда нужно сделать оборотный регистр.
Регистры остатков
Рассмотрим в качестве примера отслеживание взаиморасчетов с покупателями товаров, которые производит или продает предприятие.
Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр «Взаиморасчеты», в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр «Взаиморасчеты» — это регистр остатков.
Регистры оборотов
Однако, легко получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя. Можно проанализировать все движения, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит.
В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре — назовем его «Объем закупок» — в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, неделя, месяц и так далее.
Теперь, при совершении хозяйственных операций, необходимо будет изменять не только состояние регистра «Взаиморасчеты», но и регистр «Объем закупок». В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре «Объем закупок» будет постоянно накапливаться информация об общем объеме закупок клиента.
Основы программирования
Регистры, используемые в примерах:
Оборотный регистр Доходы
Измерения: Клиент, Товар
Ресурсы: Доход
Реквизиты: нет
Периодичность: День
Хранит доходы от продаж за день в разрезе клиентов и товаров.
Регистр остатков Товары
Измерения: Товар, Склад
Ресурсы: Количество, Стоимость
Реквизиты: нет
Хранит остатки товаров на каждом складе в количественном и суммовом выражении.
Запись движений в регистр остатков
Методы ДвижениеПриходВыполнить и ДвижениеРасходВыполнить
Запись движений в оборотный регистр
(только при проведении документа)
1. Метод Движение
2. Метод ДвижениеВыполнить
Примечание: Если сумма или количество в движении будет отрицательным, то это движение будет расходом, иначе приходом.
Обращение к итогам регистра
2-й способ. Выгрузка итогов в таблицу значений
Обращение к итогам оборотного регистра
3. Метод СводныйИтог
Могут быть указаны не все измерения. Фиксируются только указанные измерения.
4. Метод СводныеИтоги
Могут быть указаны не все измерения. Фиксируются только указанные измерения.
1. Метод Остаток
2. Метод Остатки
3. Метод СводныйОстаток
Могут быть указаны не все измерения. Фиксируются только указанные измерения.
4. Метод СводныеОстатки
Пример:
Обращение к движениям регистра
Фильтрация движений и итогов
1. Метод УстановитьФильтр
2. Метод УстановитьЗначениеФильтра
3. Метод ВыбратьДвиженияДокумента
4. Метод ВыбратьДвиженияСОстатками
Применяется только для регистра остатков.
Временный расчет регистров
Временный расчет регистров требуется, если нужно выбрать итоги или движения на определенную дату. По умолчанию итоги регистров выдаются на Точку актуальности.
1. Метод РассчитатьРегистрыНа
Рассчитать все регистры с установленным флагом временного расчета на начало события.
(на начало даты или на момент до проведения документа)
2. Метод РассчитатьРегистрыПо
Рассчитать все регистры с установленным флагом временного расчета на конец события.
(на конец даты или на момент после проведения документа)
Запрос к регистру
В запросах к регистрам применяются функции НачОст, КонОст, Приход, Расход. В запросах к оборотным регистрам обязательно указывается Период.
Какие типы регистров накопления возможны в системе 1с предприятие 8
Описание:
Регистры накопления в системе 1С:Предприятие используются для накопления информации о наличии и движении средств — товарных, денежных и других. Информация о хозяйственных операциях в регистры накопления вводится с использованием документов (регистраторов) и используется, например, для получения отчетных форм.
Регистр накопления представляет собой n-мерную систему координат, в узлах которой хранятся совокупные данные. Оси такой системы координат будем называть измерениями регистра, а хранящиеся в узлах данные — ресурсами регистра. Содержимое регистра накопления можно представить в виде таблицы с количеством колонок, равным сумме измерений и ресурсов регистра накопления.
Помимо измерений и ресурсов, для регистра накопления может быть создан набор реквизитов. Реквизиты позволяют включать в движения регистров различную дополнительную информацию. Реквизиты не влияют на значения ресурсов регистра и могут использоваться для анализа движений регистра.
В системе 1С:Предприятие возможно использование регистров накопления двух типов: регистры остатков и регистры оборотов. Для регистра остатков методы встроенного языка позволяют получить остатки регистра накопления на заданный момент времени. Есть возможность фильтрации по значениям измерений, а также получения остатков в разрезе других измерений. Регистры оборотов предназначены для хранения информации, для которой понятие остатка лишено смысла, например, сумм продаж в разрезе покупателей.
В программных модулях для общих действий над регистром накопления (получение остатков и оборотов по данным регистра накопления, поиска нужных записей, формирования выборок, создания форм и макетов) служит объект РегистрНакопленияМенеджер.<Имя регистра накопления>. Для считывания и занесения набора записей в базу данных по определенному условию отбора служит объект РегистрНакопленияНаборЗаписей.<Имя регистра накопления> Для динамического обхода записей регистра служит объект РегистрНакопленияВыборка.<Имя регистра накопления>.
Объект 1С «Регистры накопления»
Объект 1С «Регистры накопления» — это прикладные объекты конфигурации, которые составляют основу механизма учета движения средств (финансов, товаров, материалов и т.д.), предназначены для хранения показателей оперативного учета и позволяют автоматизировать такие направления, как складской учет, взаиморасчеты, планирование.
Иначе говоря, это прикладные объекты конфигурации, которые позволяют оперативно фиксировать и хранить движения каких-либо активов или пассивов предприятия.
Регистр накопления представляет собой таблицу с информацией, в которой собраны все движения определенных документов (поступления, списания или обороты).
Основное назначение регистра накопления:
- накопление числовой информации в разрезе нескольких измерений, которые описываются разработчиком в соответствующем объекте конфигурации «Регистр накопления» и являются подчиненными объектами конфигурации.
Виды информации, накапливаемой регистром накопления, называются ресурсами , также являются подчиненными объектами и описываются в конфигураторе.
Т.о. регистр накопления образует многомерную систему измерений и позволяет «накапливать» числовые данные в разрезе нескольких измерений. Например, в таком регистре можно накапливать информацию об остатках товаров в разрезе номенклатуры и склада, или информацию об объемах продаж в разрезе номенклатуры и подразделения компании.
Виды регистров накопления:
- Остаточный регистр (Остатки) хранит движения, а также исходя из них, остатки после каждого движения. Остаточные регистры накопления используются, например, для учета товаров на складах.
- Оборотный регистр (Обороты) хранит движения без указания их направленности, и не предполагает отдельного хранения остатков. Пример использования оборотного регистра — запись данных о выручке предприятия.
С точки зрения табличной модели регистр накопления содержит:
- измерения (задают структурное разделение хранимой информации);
- ресурсы (вид накапливаемой информации, может быть либо числовым, либо определяемым типом);
- реквизиты (хранят дополнительную информацию, описывающую каждое движение).
При формировании структуры регистра накопления обязательно должен быть назначен регистратор, а также создан хотя бы один ресурс.
Обязательным атрибутом регистра накопления является «Период», причем периодичность регулировке не подлежит — записи хранятся с точностью до секунды. Информация, хранящаяся в регистре накопления, всегда привязана к оси времени.
При записи данных в регистр накопления «Период» не должен быть пустым. «Период» — это стандартный реквизит, который обязателен к заполнению.
Стандартные реквизиты регистра накопления 1С доступны на вкладке «Данные» — «Стандартные реквизиты».
Стандартные реквизиты регистра накопления 1С:
- Период — дата движения, не обязательно должна совпадать с датой документа;
- Регистратор — документ, который производит запись в регистре;
- НомерСтроки — порядковый номер строки в наборе записи, уникален в пределах регистратора;
- Активность — отвечает за попадание записи в виртуальные таблицы (быстрый способ получения профильной информации из регистров); не может устанавливаться для каждой записи индивидуально в рамках документа-регистратора (может быть выставлен минимум для набора записей);
- ВидДвижения — приход или расход.
Уникальность записей объекта 1С «Регистры накопления»
Система обеспечивает контроль уникальности записей, хранящихся в регистре накопления. Благодаря этому в регистре накоплений не может находиться двух записей, относящихся к одной и той же строке одного и того же документа.
Уникальность записей в таблице движений регистра накопления определяется полями «Регистратор» и «Номер строки».
Регистры накопления всегда подчинены документу-регистратору. Поэтому среди их стандартных реквизитов всегда есть «Регистратор».
Функциональные возможности регистра накопления 1С
Основными функциональными возможностями, которые предоставляет регистр накопления разработчику, являются:
- выбор записей в заданном интервале по заданным критериям;
- выбор записей по регистратору;
- получение остатков и оборотов на указанный момент времени по заданным значениям измерений;
- режим работы с разделением итогов, который обеспечивает более высокую параллельность записи в регистр;
- отключение использования текущих итогов;
- расчет итогов на указанную дату;
- чтение, изменение и запись набора записей в регистр;
- возможность записи в регистр без пересчета итогов;
- полный пересчет итогов и пересчет итогов за указанный период.
Для регистров накопления может быть включен режим разделения итогов:
Если разделение включено, то в таблицу итогов регистра будет добавлена дополнительная колонка со значением типа «Число», которая будет играть роль разделителя остатков данных в случае одновременной записи в регистр двумя документами.
Разделение данных увеличивает параллельность вычислений за счет уменьшения времени блокировки регистра на чтение, что оправданно на нагруженных системах.
Структура объекта 1С «Регистры накопления»
Информация в регистре накопления хранится в виде записей, каждая из которых содержит:
- значения измерений (описывают разрезы, в которых хранится информация);
- соответствующие им значения ресурсов (накапливают нужные числовые количественные данные).
Разрезом учета могут являться, например, склад, номенклатура, характеристика номенклатуры, серия номенклатуры, качество.
Задав интересующие нас измерения, мы можем в любой момент получить количество — ресурс.
В разрезе разных измерений в дальнейшем, например, можно получать остатки на определенную дату.
Особенности проектирования регистра накопления:
- выше всего необходимо ставить измерения, которые будут чаще запрашиваться в системе;
- свойство «Индексировать» измерений регистра накопления необходимо устанавливать на измерения в тех случаях, когда по измерению планируется часто накладывать отборы при получении данных и данное измерение может иметь большое количество вариантов значения. Например, имеем регистр «ТоварыНаСкладах» (измерения «Склад, Номенклатура», ресурс — «Количество»). Правильнее проиндексировать «Номенклатуру», а поле»Склад» индексировать не стоит, так как количество складов в системе, как правило, не существенное.
Например, для регистра «Свободные остатки», который имеет следующую структуру:
записи, производящие изменение ресурсов регистра в базе данных, будут выглядеть следующим образом:
Набор записей регистра накопления
Набор записей всегда привязан к определенному документу-регистратору (т.е. определяется документом-регистратором ), поскольку независимых регистров накопления быть не может. Оперируя набором записей, можно эти данные считывать с базы, удалять, изменять, и при определенных условиях добавлять. При записи обычно выполняется замещение всех имеющихся в базе данных записей по данному условию на записи, содержащиеся в наборе. Если записи не замещаются, то после выполнения записи набор очищается.
Максимальное число записей в наборе 999 999 999.
Набор записей регистра накопления может использоваться:
- для изменения записей регистра накопления по определенному регистратору;
- для добавления записей регистра накопления по определенному регистратору;
- для удаления записей регистра накопления по определенному регистратору;
- для считывания набора записей по определенному регистратору.
Если попытаться прочитать данные в набор записей регистра накопления с установкой отбора по регистратору и измерению, будет выдана ошибка при попытке установить отбор по измерению, т.к. отбор возможен только по регистратору.
Важно! Отбор может устанавливаться только на равенство.
- движение прихода («+») — если должно выполняться увеличение хранимых ресурсов;
- движение расхода («-«) — если должно выполняться уменьшение хранимых ресурсов.
Вместе с каждой записью, находящейся в регистре накопления, можно хранить дополнительную произвольную информацию. Для этого служат реквизиты регистра накопления.
Регистратор регистра накопления
Обязательный стандартный реквизит регистра накопления — регистратор.
Регистратор — это документ, при проведении которого формируются записи регистра (т.е. это документ, который может делать движения в регистре накопления).
Записи имеют смысл только в том случае, если регистратор существует; при удалении документа-регистратора записи также будут удалены.
Тем не менее, программно можно сделать запись и без документа-регистратора (но при этом все равно подразумевается, что регистратор есть). Также, формирование записей может происходить не только в обработке проведения, но и по каким-то иным событиям, строгих ограничений тут нет.
Большинство алгоритмов создания движения в регистре накопления формируются при проведении документа в модуле объекта (процедура «ОбработкаПроведения»).
Связь объекта 1С «Регистры накопления» с регистратором
Изменение состояния регистра накопления происходит, как правило, при проведении документа. Поэтому каждая запись регистра связана с определенным документом — регистратором, номером строки этого документа, и датой — периодом.
В общем случае значение поле «Период» может не совпадать с датой документа. Например, документ «План продаж» может внести в регистр накопления записи о предполагаемых продажах компании несколькими разными датами.
Состав документов, которые могут создавать записи в регистре накопления, задается разработчиком в процессе создания прикладного решения.
Особенности работы с регистраторами при проведении документов:
- Записи в регистре накопления могут формироваться:
- при проведении документа;
- при записи документа;
- при заполнении документа.
- Обязательное условие по отношению к Регистратору при записи данных в регистр накопления: документ-регистратор должен быть записан. Пока документ не записан, в системе нет на него ссылки, а ссылка обязательна для указания в поле «Регистраторы».
- Поле «Регистраторы» может содержать не пустую ссылку только на документ регистратор (тип контролируется).
- Тип данных поля «Регистраторы» определяется на закладке «Регистраторы» в окне редактирования объекта конфигурации.
- Для поля «Регистраторы» можно определить тип ДокументСсылка.<ИмяДокумента>. С писок типов регистраторов вполне конкретен (скриншот выше).
- Следует помнить:
- один регистр накопления может быть связан с любым количеством типов документов;
- один тип документа может быть связан с любым количеством регистров накопления;
- при удалении документа-регистратора записи автоматически удаляются из базы;
- записи могут существовать без наличия документа-регистратора, при использовании плана обмена, что может привести к нарушению ссылочной целостности информационной базы.
- Дата документа регистратора никак не связана с периодом регистра. Дата записи регистра определяется программно и может как совпадать с датой документа, так и быть вообще любой иной.
Конструктор движений объекта 1С «Регистры накопления»
Алгоритмы, по которым формируются записи в регистре, описываются средствами встроенного языка в процедурах соответствующих документов. Система содержит конструктор движений, который помогает разработчику создавать алгоритмы проведения документа.
Регистры остатков и регистры оборотов
Существует два вида регистров накопления:
- регистры накопления остатков (хранит итоговые значения ресурсов — остатки);
- регистры накопления оборотов (хранит только изменения этих ресурсов — обороты).
Существование регистра накопления оборотов связано с тем, что при автоматизации экономической деятельности существует большое количество ситуаций, когда требуется накапливать только обороты, а значения остатков не имеют смысла. Типичным примером использования регистра накопления оборотов является регистр «Выручка и себестоимость продаж», хранящий информацию об объемах продаж.
Поскольку регистр накопления оборотов не накапливает остатки ресурсов, для него не имеет смысла «направление» движения ресурсов (приход или расход); накапливается только величина изменения ресурсов. Поэтому все записи регистра накопления оборотов отмечаются одинаковыми пиктограммами.
Агрегаты регистров накопления оборотов
Для оборотных регистров накопления платформа поддерживает специальный механизм агрегатов, который позволяет значительно ускорить получение данных из регистров, содержащих большое количество записей — сотни тысяч и миллионы записей.
Агрегаты — это специальный механизм, реализованный в оборотных регистрах накопления и позволяющий значительно сократить время формирования отчетов.
Каждый агрегат — это специализированное хранилище, содержащее агрегированные данные регистра в различных разрезах, удобных для формирования отчетов в данной информационной базе. Система автоматически оценивает интенсивность работы пользователей с тем или иными разрезами информации и на основе накопленной статистики выбирает оптимальный состав поддерживаемых агрегатов.
Использование агрегатов позволяет аналитикам и менеджерам анализировать имеющуюся информацию, переключаясь между различными разрезами просмотра с небольшим временем отклика системы. При этом система использует накопленные агрегированные данные и всегда обеспечивает актуальность получаемых отчетов.
Для любого регистра может быть создано несколько агрегатов.
Платформа содержит специальный конструктор агрегатов, с помощью которого можно изменять состав агрегатов и настраивать их использование.
Конструктор агрегатов можно вызвать из окна редактирования оборотного регистра накопления (вкладка «Данные»).
Форма списка и форма набора записей объекта 1С «Регистры накопления»
Для того чтобы пользователь мог просматривать данные, содержащиеся в регистре накопления, система поддерживает следующие формы представления регистра накопления:
- форму списка регистра накопления — позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям; система может автоматически генерировать эту форму;
- форму набора записей регистра накопления — позволяет добавлять, изменять и удалять записи регистра сведений.
Наряду с этим разработчик имеет возможность создать собственные (произвольные) формы, которые система будет использовать вместо формы умолчанию.