Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на платформе 1С Предприятие 8.3. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Контрольные вопросы
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
…
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]