Владимир Игнатов, Астро Софт

Мы продолжаем обзор основных механизмов системы 1С:Торговля. В предыдущих номерах (КИ/13,14) были рассмотрены такие объекты и механизмы, как Справочники, Документы и Расчеты, Журналы. Сегодня рассмотрим важнейший элемент системы - Регистры.


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


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

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

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

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

Физический смысл Регистра сформулировать достаточно сложно, и скорее всего, Регистр не имеет материального аналога. Можно сказать, что Регистр - это N-мерная система координат, в узлах которой хранятся совокупные данные. Проиллюстрировать это достаточно легко на следующем примере.

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


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

РИСУНОК 1. Диалог создания регистра в системе "1С:Торговля"

Можно задавать любое количество измерений и ресурсов регистра. Если нам достаточно знать, сколько товара осталось на всех складах вообще - то нужно только одно измерение - Товар, и тогда для получения остатка, указав конкретный товар, мы получим его наличие и себестоимость. Но, если кроме этого необходимо видеть его наличие на каждом из складов, нужно создать еще одно измерение - склад, в этом случае мы получим информацию как в целом по фирме, так и по любому из складов. Для организации же списания товара методом LIFO и FIFO (требующий учета товара по партиям) нужно ввести измерение Документ, в котором будет фиксироваться приходная накладная.

Разберемся, как физически хранится информация в Регистрах. Как уже говорилось выше, можно выделить два требования к хранимой информации такого рода. Необходимо быстро получать данные по остаткам на любой момент времени (при выписке накладной как в реальном режиме времени, так и задним числом пользователь должен видеть остатки и резерв товара на момент ее заполнения) и отслеживать историю изменения их значений (для получения детальных отчетов, таких, как карточка учета товара, в которой должно быть указано: по каким документам, в каком количестве и по какой цене пришел или отпущен товар). В системе 1С:Торговля это решается следующим образом: регистр представлен в виде двух таблиц, в одной из них каждая строка хранит запись одного движения регистра (с ссылкой на значения элементов измерения и документ, вызвавший это движение), во второй хранятся остатки по всевозможным комбинациям измерений на начало каждого месяца и на т.н. Точку Актуальности Итогов (установленные пользователем в рабочей системе дата и время, на момент которых будут выдаваться итоги).


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

РИСУНОК 2. Из журнала документов пользователь может увидеть - какие именно движения регистров вызвал конкретный документ


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

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

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


КОМПЬЮТЕР-ИНФОРМ