На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » Бизнес-софт » 1С:Предприятие

Принципы организации регистров оперативного учета

Определенная сложность освоения механизма регистров объясняется тем, что в отличии от проводок бухгалтерского учета, регистры оперативного учета не имеют аналогов в ручном учете и являются специфической моделью учета 1С:Предприятия.

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

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

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

Регистр остатков - это объект, предназначенный для учета наличия исчисляемых ресурсов в разрезе некоторого набора измерений. Ресурсами могут являться любые исчисляемые величины, такие как: "количество товара", "долг клиента", "сумма наличных" и т.п. Измерения Регистра остатков – это оси координат, на пересечении которых Регистр остатков хранит конкретные значения ресурсов. В качестве измерений могут выступать любые значения, характеризующие конкретные значения ресурсов, например, "материал", "место хранения", "организация".

Приведем пример регистра остатков. Допустим, у нас есть Регистр "ОстаткиТоваров", измерениями этого регистра являются: "Товар", "Склад", "МОЛ". Регистр имеет один ресурс - "Количество". Содержание данного Регистра можно представить в виде следующей таблицы, где по каждому конкретному товару на конкретном складе за конкретным МОЛ числится определенное Количество товара.

На рисунке приведена логическая схема хранения текущих остатков регистра "ОстаткиТоваров".

Под термином "остаток" ресурса следует понимать числовое значение, которое содержит величину ресурса на какой-то момент времени.

Для каждого регистра в информационной базе система хранит остатки на некоторые моменты времени  и все движения по данному регистру.

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

Движения

Остатки

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

регистра "ОстаткиТоваов" позволяют ответить на вопрос: "сколько данного товара на этом конкретном складе числится за определенным материально-ответственным лицом".

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

Свертка по МОЛ.

Свертка по складу и МОЛ.

Свертка по товару и складу.

При проектировании регистра остатков следует придерживаться следующих правил:

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

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

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

Заметим, что если некоторое числовое значение является характеристикой движения регистра, и вы хотите получать по нему отчеты  с суммами данного значения по движениям, но оно не имеет физического смысла в качестве остатка, то его следует вводить в структуру регистра в качестве реквизита, а не в качестве ресурса. Например, если при расходовании товара, мы хотим отразить сумму НДС, выделенную при продаже, но эта сумма не должна храниться в регистре в качестве остатка (так как мы не планируем вести учет остатков по НДС), то ее нужно ввести в структуру регистра в качестве реквизита.

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

Пример структуры регистров для учета товаров:

Регистр "НаличиеТоваров"

Регистр "РезервыТоваров"

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

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

Чем меньше периодичность,  тем меньше будет среднее время, но больше объем хранимой информации, и, соответственно, наоборот. Периодичность хранения итогов устанавливается в режиме управления оперативными итогами в режиме запуска "1С:Предприятие" и никак не влияет на функциональность системы, за исключением времени обращения к итогам на различные моменты и необходимости выполнения открытия периодов.

                            Оборотные регистры

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

Примером оборотного регистра может служить регистр "ПродажаТоваров". Данный регистр учитывает объем продаж в разрезе товаров и клиентов.

На рисунке приведена логическая схема хранения итогов регистра  "ПродажаТоваров".

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

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

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

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

Сами итоги оборотного регистра всегда хранятся и выдаются (объектом типа "Регистр") с детализацией до того периода, который задается в метаданных. Однако при выполнении запроса можно получить итоги и с любой другой периодичностью. Для оборотных регистров хранение итогов позволяет системе достаточно быстро формировать запросы по данному регистру за длительный интервал в разрезе той же периодичности, что и период оборотного регистра. Например, если периодичность регистра в метаданных выбрана - месяц, то запрос будет достаточно эффективно формировать итоги за два, три месяца и т.д. Обращение к итогам, например, за неделю потребует обработки движений регистра. Однако хранение итогов с маленькой периодичностью потребует достаточно больших ресурсов с точки зрения используемого дискового пространства.

Хронологический порядок документов и Точка Актуальности.

Для оперативного учета очень важной особенностью системы хранения документов 1С:Предприятия является то, что все документы (документы всех видов) располагаются в едином хронологическом порядке. Фактически он отражает последовательность событий хозяйственной жизни предприятия. Позиция документа в общей последовательности определяется его датой, временем, а также некоторой дополнительной величиной, которая устанавливает порядок документов с одинаковым временем в одной дате. Эта величина не регулируется пользователем, но система гарантирует ее неизменность. То есть, гарантируется, что при любых загрузках, выгрузках, перезаписях документы будут всегда находиться в одной и той же последовательности относительно друг друга, кроме случаев, когда у них редактируется дата или время. Заметим, что время документа служит в основном для упорядочивания их внутри даты и его связь с астрономическим временем весьма условна. То есть при изменении времени документа, для логики работы системы важна на сама смена значения времени, а изменение порядка документов.

Для компоненты "Оперативный учет" принципиальным понятием является "Точка Актуальности" (далее ТА). Вкратце ТА можно определить как точку на оси последовательности документов. Она может указывать на конкретный документ, или нет (например, если документ, на который она была установлена - удален), но она всегда выступает в качестве позиции на оси документов и любой документ в системе однозначно располагается либо до ТА, либо на ТА, либо после ТА. Точка актуальности является моментом, на который регистры содержат текущие значения всех ресурсов. Другими словами, если просто запросить у регистра значение какого либо ресурса, то он выдаст его именно на момент ТА. Если нам необходимо значение ресурса на прошедший момент времени, то надо либо сдвинуть в прошлое ТА (для этого используется операция "Управления итогами"), либо при помощи средств встроенного языка запустить "временный расчет" регистра.

Для регистров остатков итоги на ТА фактически отражают взаимоотношение приходов и расходов ресурса по каждому сочетанию измерений с момента начала ведения учета до момента ТА.

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

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


Mista.Ru

Подпишитесь на рассылку
Все о WEBСтроительстве
Подписка на Subscribe.Ru
Дискуссионная рассылка
для веб-мастеров

Подписка на MailList.Ru
Подписка на Content.Mail.Ru

Другие разделы
ASP
1С:Предприятие
Финансовые программы
Управление предприятием
CRM системы
Новое в разделе
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100