Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на платформе 1С Предприятие 8.3. Учебное пособие
.pdf
Контрольные вопросы
81
5. Как соотносится вид документов в конфигурации и документы в
информационной базе?
6. Что такое реквизиты документа?
7. Какие виды реквизитов могут быть использованы в документе?
8. Сколько табличных частей может содержать документ?
9. Какие интерфейсные предопределенные реквизиты есть у доку-
мента?
10. Какие неинтерфейсные реквизиты есть у документа?
11. Как устанавливается порядок формирования номеров документов?
12. Что такое проведение документа?
13. В каких состояниях может находиться документ?
14. Как в журнале отображаются проведенный, не проведенный и по-
меченный на удаление докуметы?
15. Для чего предназначена процедура ОбработкаПроведения?
16. Для чего предназначена процедура ОбработкаУдаленияПроведе-
ния?
17. Какие способы удаления движений используются при отмене про-
ведения документа?
18. Что позволяет режим автоматического удаления движений?
19. Что такое оперативное проведение документа?
20. Что такое неоперативное проведение документа?
21. Какие существуют варианты проведения документа относительно
оперативности?
22. Для чего нужна последовательность документа?
23. Что такое граница последовательности?
24. Какие списки содержит последовательность?
25. Что может перемещать границу последовательности?
26. Как изменяется граница последовательности в нормальной ситуа-
ции?
27. Как перемещается граница последовательности в аномальной си-
туации?
28. Какой порядок перемещения границы последовательности явля-
ется следствием аномальной ситуации?
29. Для чего нужен ввод документов на основании?
30. Как организовать ввод документов на основании?

5. Документы
82
31. Приведите пример создания документа средствами встроенного
языка.
32. Приведите пример удаления документа средствами встроенного
языка.
33. Приведите пример поиска в табличной части документа сред-
ствами встроенного языка.
34. Приведите пример перебора табличной части документа сред-
ствами встроенного языка.

6.1. Назначение регистров накопления
83
6. РЕГИСТРЫ НАКОПЛЕНИЯ
6.1. Назначение регистров накопления
Регистры накопления предназначены для реализации задачи товароматериального учета с возможностью получения информации об остатках
средств в режиме реального времени. Задача товароматериального учета
схематично изображена на рис. 6.1.
Рис. 6.1. Обобщенная схема товароматериального учета
Имеется некоторый склад, на котором хранятся товароматериальные
ценности (материалы, комплектующие и т.п.). В качестве склада может выступать торговый зал. Хранимые на складе объекты могут быть использованы как для продажи, так и для производства других объектов, которые
поступают на хранение на этот же склад.
В процессе хозяйственной деятельности предприятия на складе происходит кругооборот средств. Поставщики поставляют средства в соответствии с заключенными договорами, что приводит к пополнению остатков
средств на складе. Покупатели покупают средства, что приводит к уменьшению их остатков на складе. Производство потребляет одни средства и
создает другие. Это приводит к уменьшению остатков одних и увеличению
остатков других средств.
Также имеется потребность многократно получать данные в режиме
реального времени об остатках и оборотах средств или конкретного средства на складе.
Склад
Поставщики
Потребители
Производство
Отчеты об остатках и оборотах в реальном времени

6. Регистры накопления
84
Рассмотрим пример. Предположим, что в организацию обратился
покупатель, который хочет приобрести N единиц некоторого товара. Требуется выяснить, есть ли достаточное количество этого товара на складе,
т.е. можем ли мы удовлетворить потребности покупателя. Эту задачу
нужно решить «здесь и сейчас», т.е. в режиме реального времени. Более
того, этот товар следует зарезервировать, чтобы его не отпустили другому
покупателю. Фактически задача сводится к оперативному получению данных об остатках товаров на текущий момент.
Рассмотрим еще один пример. Некоторые оптовые фирмы часто
предоставляют программы скидок своим постоянным клиентам в зависимости от суммы покупок за некоторый период времени. Если покупатель
приобретает товар в такой фирме, нужно оперативно вычислить, на какую
сумму в прошлом клиент уже закупил товары, чтобы правильно рассчитать
размер его индивидуальной скидки. Здесь речь идет об оперативном получении суммы оборота за некоторый период времени.
Регистры накопления предназначены для решения задач подобного
рода. Они позволяют накапливать данные о движениях товаров и мгновенно получать данные об их остатках или оборотах за некоторый промежуток времени. Эти регистры относятся к компоненте Оперативный учет,
т.е. к средствам платформы 1С:Предприятие, предназначенным для выдачи
данных в реальном масштабе времени.
В общем случае, регистры накопления используются для накопления учетных данных о наличии и движении каких-либо средств – материальных, денежных или других. Вся информация о хозяйственных операциях по движению учитываемых средств, которая вводится при помощи
документов, должна быть учтена в регистрах. Тогда ее можно будет извлечь, проанализировать и представить пользователю в виде отчетов.
Регистр накопления представляет некую внутреннюю таблицу или
совокупность таблиц, доступ к которым осуществляется средствами встроенного языка. Запись движений в регистр разрешается только модулю документа. Документ записывает в регистр изменения таблицы, называемые
движениями регистра. Они отражают изменения учитываемых в регистре
средств (приход или расход).
Через интерфейс системы можно просмотреть только движения регистра. Итоги регистра могут быть просмотрены при помощи отчетов или

6.2. Описание и структура регистра накопления
85
других объектов системы, но только с использованием средств встроенного языка.
6.2. Описание и структура регистра накопления
Регистр задается тремя списками.
1. Измерения – задают разрезы данных, которые будут храниться в
регистре. Обычно в качестве измерений выступают справочники.
2. Ресурсы – задают состав хранящихся данных, это числовые данные
и для каждого набора значений измерений регистр хранит набор определенных в нем ресурсов.
3. Реквизиты – не имеют функционального назначения, их значения
используются как дополнительная информация, заносимая в движения с
целью выполнения отбора по значению реквизитов.
Эти списки задаются в окне свойств регистра, изображенном на
рис. 6.2.
Рис. 6.2. Состав данных регистра накопления

6. Регистры накопления
86
В качестве примера рассмотрим регистр Наличие Товаров, который содержит данные о запасах некоторых видов товаров на складах некоторой фирмы. В качестве измерений используем справочники Товары
и Склады. В качестве ресурсов – Количество и Сумма (суммарная стоимость товаров).
Данный регистр можно рассматривать как прямоугольную таблицу,
приведенную в табл. 6.1.
Таблица 6.1
Пример регистра остатков
Товары/ склады
Склад 1
Запад
Склад 2
Центр
Склад 3
Север
Память
100
50 000
50
25 000
200
100 000
Процессор
10
40 000
20
80 000
50
200 000
HDD
20
40 000
10
20 000
50
100 000
Строки и столбцы этой таблицы помечены товарами из справочника Товары и складами из справочника Склады. На пересечении товара
и склада находится ячейка, в которой расположены два значения – количество конкретного товара на конкретном складе и общая стоимость этих
товаров.
При поступлении некоторого товара на какой-либо склад достаточно увеличить количество и сумму в соответствующей ячейке, чтобы
таблица содержала актуальную информацию на текущий момент. Для получения данных об остатке товара достаточно будет просто извлечь значение из нужной ячейки. Так достигается оперативность получения данных из регистра.
Рассмотренный регистр ориентирован на учет остатков товаров. Такой вид регистров накопления называется регистром остатков.
Рассмотрим пример другого регистра, приведенный в табл. 6.2.

6.2. Описание и структура регистра накопления
87
Таблица 6.2
Пример регистра оборотов
Товары/ клиенты
Альфа
Бетта
Гамма
Плазменные панели
200
40 000 000
0
0
0
0
Компьютеры
500
5 000 000
10
100 000
20
200 000
Принтеры
0
0
10
50 000
5
25 000
Это регистр ЗакупкаТоваров, измерениями которого являются спра-
вочники Товары и Контрагенты, а ресурсами – значения Количество и
Сумма.
Данный регистр содержит данные о закупке товаров контрагентами.
Ячейка таблицы содержит количество закупленного товара соответствующим контрагентом и общую сумму покупки. Здесь учитывается сумма выполненных операций, т.е. оборот. Поэтому регистры подобного вида называются оборотными регистрами.
Итак, мы выяснили, что в зависимости от характера хранимой ин-
формации регистры разделяются на два вида:
регистры остатков – хранят информацию о наличии чего-либо;
оборотные регистры – хранят информацию о сумме выполненных
операций за некоторый период времени.
Все действия с остатками или оборотами регистров накопления
называются движениями регистра. Движения создаются документами при
проведении. Документ, создавший движения, называется регистратором.
С регистром остатков можно выполнить два вида движения:
приход (добавление средств);
расход (потребление и уменьшение) средств.
Остаток, по своей сути, не должен быть отрицательным, хотя си-
стема позволяет хранить отрицательные остатки, что может быть установлено в свойствах регистра.

6. Регистры накопления
88
С оборотным регистром возможна только одна операция – движение
регистра. Эта операция заключается в увеличении значения ресурса регистра. Оборот всегда увеличивается при выполнении очередной хозяйственной операции, приводящей к увеличению суммы оборота.
Фактически любой регистр можно представить как базу данных, состоящую из трех частей.
1. Начальные таблицы.
2. Движения.
3. Итоговая таблица.
Начальные таблицы содержат данные об остатках или оборотах на
начало всех предыдущих периодов, в которых использовался этот регистр.
Оперативная работа с регистром ведется в текущем периоде, который открывается в пункте меню Управление оперативными итогами.
Движения регистра – это записи обо всех изменениях ресурсов регистра, заносимые в регистр документами при их проведении.
Движения регистра и начальная таблица позволяют восстановить
значение регистра на любой заданный момент времени. Движения могут
быть просмотрены через стандартный интерфейс системы.
Итоговая таблица содержит значения ресурсов на текущий момент
времени и позволяет выбрать актуальные данные в режиме реального времени, но только данные на текущий момент.
Для обращения к данным регистра средствами встроенного языка
используются атрибуты регистра. Основными атрибутами являются заданные в конфигураторе имена измерений, ресурсов и реквизитов регистра.
У движений регистров имеются дополнительные атрибуты.
Вид Движения – содержит признак вида движения регистра остат-
ков. Может принимать одно из двух значений: Вид Движения Накопления.
Приход или Вид Движения Накопления. Расход.
Номер Строки – номер строки документа-регистратора, по которой
выполняется движение.
Период – значение даты, задающее момент времени, когда запи-
сано движение.
Регистратор – ссылка на документ-регистратор, создавший дви-
жение.

6.3. Примеры работы с регистрами накопления
89
6.3. Примеры работы с регистрами накопления
Получение доступа к менеджеру конкретного регистра
Рег Остатки = Регистры Накопления. Остатки Товаров;
Рег Продажи = Регистры Накопления. Продажи;
Выборка движений регистра
Учет Номенклатуры = Регистры Накопления. Учет Номенклатуры;
Отбор По Товару = Новый Структура ();
Отбор По Товару. Добавить ("Номенклатура", ВыбТовар);
Нач Дата = Начало Года (Текущая Дата ());
Кон Дата = Текущая Дата ();
Выборка = Учет Номенклатуры. Выбрать (Нач Дата, Кон Дата,Отбор
По Товару);
Расход = 0;
Пока Выборка. Следующий () Цикл
Если Выборка. Вид Движения = Вид Движения Накопления. Рас-
ход Тогда
Расход=Расход+Выборка.Количество;
КонецЕсли;
КонецЦикла;
Запись движений в регистр остатков
Размещается только в модуле документа в процедуре Обработка-
Проведения.
Движения. Имя Регистра. Записывать = Истина;
Для каждого ТекСтр Из ТабЧастьДок Цикл
Движ = Движения. Имя Регистра. Добавить ();
Движение. Период = Дата;
Движение. Измерение1 = ТекСтр. Значение Изм1;
Движение. Измерение2 = ТекСтр. Значение Изм2;
Если ТекСтр. Признак Прихода Тогда
Движение. Вид Движения = Вид Движения Накопления. Приход;
Движение. Ресурс = ТекСтр. Сумма Прихода
Иначе
Движение. Вид Движения = Вид Движения Накопления. Расход;
Движение. Ресурс = ТекСтр. Сумма Расхода

6. Регистры накопления
90
Конец Если
Конец Цикла;
Запись движений в оборотный регистр.
Размещается только в модуле документа в процедуре ОбработкаПроведения.
Движения. Имя Регистра. Записывать = Истина;
Для каждого ТекСтр Из ТабЧастьДок Цикл
Движ = Движения. Имя Регистра. Добавить();
Движение. Период = Дата;
Движение. Измерение1 = ТекСтр. Значение Изм1;
Движение. Измерение2 = ТекСтр. Значение Изм2;
Движение. Ресурс = ТекСтр. СуммаОборота
Конец Цикла;
Получение сводного итога из регистров остатков
Сводный итог – это итог по одному набору значений измерений с
суммированием по остальным значениям измерений.
Выполняется методом регистра накопления
Остатки (Момент Времени, Отбор, Измерения, Ресурсы)
Момент Времени – значение типа дата, на момент которого будут
выбраны остатки.
Отбор – структура, содержащая пары ключ-значение, по которым
будет выполняться отбор.
Измерения – строка со списком имен измерений, разделенных запятыми, для которых нужно получить остатки. Если перечень измерений в
отборе и этой строке совпадают, получим сводный итог по заданным значениям.
Ресурсы – строка со списком имен ресурсов, разделенных запятыми,
по которым требуется получить остатки.
Результатом метода является таблица значений, имеющая следующую структуру.
Имя
Измерения1
Имя
Измерения2
…
Имя
Ресурса1
…
Значение
Измерения1
Значение
Измерения2
…
Остаток По
Ресурсу1
…
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
