Оборотный регистр накопления
В этой теме вы узнаете о некоторых важных принципах выбора измерений и реквизитов регистров накопления. Создадим оборотный регистр накопления и добавим в один из наших документов движения еще и по этому регистру.
Необходимость создания еще одного регистра
Продолжим рассматривать работу нашего документа ОказаниеУслуги. До сих пор мы создавали в регистрах накопления движения только для строк документа, которые содержат материалы. Услуги, содержащиеся в документе, мы никак не учитывали. Дело в том, что при учете услуг важны совершенно другие критерии, нежели при учете материалов. Прежде всего, бессмысленно говорить о том, сколько услуг было и сколько их осталось, важна только сумма и количество услуг, которые были оказаны за определенный промежуток времени. Кроме этого интересны следующие моменты: • какие именно услуги были оказаны (чтобы составить рейтинг услуг); • какому именно клиенту оказывались услуги (чтобы предоставить ему скидку от объема оплаченных ранее услуг, например); • какой мастер предоставлял услуги (чтобы начислить ему заработную плату). Очевидно, что существующие регистры накопления совершенно не подходят для решения таких задач. Поэтому создадим еще одно «хранилище» данных, которое будет использоваться в нашей программе, — оборотный регистр накопления Продажи.
Создание оборотного регистра накопления Продажи
Когда мы создавали регистры ОстаткиМатериалов и СтоимостьМатериалов, мы специально не останавливались на двух видах регистров накопления, которые существуют в системе 1С:Предприятие. Регистры накопления могут быть регистрами остатков и регистрами оборотов. Существующие в нашей конфигурации регистры ОстаткиМатериалов и СтоимостьМатериалов являются регистрами остатков. При создании отчета Материалы в конструкторе запроса мы видели, что для таких регистров система создает три виртуальные таблицы: таблица остатков, оборотов и совокупная таблица остатков и оборотов. Оборотный регистр накопления очень похож на знакомый нам регистр остатков, для которого понятие «остаток» не имеет смысла. Оборотный регистр накапливает только обороты, остатки ему безразличны. Поэтому единственной виртуальной таблицей, которую будет создавать система для такого регистра, будет таблица оборотов. В остальном оборотный регистр ничем не отличается от регистра остатков. Следует сказать об одной особенности конструирования регистров накопления, напрямую связанной с возможностью получения остатков. При создании оборотного регистра накопления нет особой сложности в определении того, какие именно параметры должны являться измерениями регистра — мы можем назначить в качестве его измерений любые нужные нам параметры. Совсем иная ситуация в случае регистра накопления, поддерживающего накопление остатков. Для него выбор измерений должен выполняться исходя из того, что движения регистра могут быть осуществлены в две стороны: приход и расход. Таким образом, в качестве измерений нужно выбирать те параметры, по которым движения точно будут осуществляться как в одну, так и в другую сторону. Например, если ведется учет материалов в разрезах номенклатуры и склада, очевидно, что и номенклатура, и склад могут быть измерениями, поскольку как приход, так и расход материалов всегда будут осуществляться с указанием конкретной номенклатуры и конкретного склада. Если же в этой ситуации появляется желание отразить учет материалов еще и в разрезе поставщика, то здесь уже нужно исходить из конкретной схемы учета, принятой на предприятии. Скорее всего, при поступлении материалов поставщик будет указан, а вот при расходе материалов, с большой долей вероятности, поставщик указываться не будет, так как в большинстве случаев это совершенно лишняя информация. Значит, поставщика следует добавить как реквизит регистра накопления. Если же при расходе материалов поставщик будет указываться наверняка, имеет смысл добавить поставщика в измерения регистра. Иными словами, по каждому из измерений регистра накопления остатков изменение ресурсов обязательно должно осуществляться в обе стороны: приход и расход. Для реквизитов регистра этот принцип не важен. По реквизитам регистра ресурсы могут только приходоваться или только расходоваться. Нарушение этого принципа построения регистров накопления будет вести к непроизводительному использованию ресурсов системы и как следствие замедлению работы и падению производительности. Теперь, когда мы знаем «практически все» о регистрах накопления, откроем конфигуратор и создадим новый объект конфигурации Регистр накопления. Назовем его Продажи и определим вид регистра — Обороты. (рис.1) Рис. 1 Создание Регистра накопления — Продажи На закладке Данные создадим измерения регистра: • Номенклатура, тип СправочникСсылка.Номенклатура; • Клиент, тип СправочникСсылка.Клиенты; • Мастер, тип СправочникСсылка.Сотрудники. У регистра будет три ресурса: • Количество, тип Число, длина 15, точность 3; • Выручка, тип Число, длина 15, точность 2; • Стоимость, тип Число, длина 15, точность 2.
Рис. 2. Измерения и Ресурсы Откроем окно редактирования объекта конфигурации Документ ОказаниеУслуги и на закладке Движения укажем, что этот документ будет создавать движения по регистру Продажи. (рис. 3)
Рис. 3. Создание движения по регистру Запустим 1С:Предприятие в режиме отладки и откроем формы списка регистров накопления Продажи и Остатки материалов. Обратите внимание, что формы практически одинаковы, за исключением состава измерений и ресурсов. (рис.4)
Рис.4. Формы списка регистров накопления Продажи и Остатки материалов
Ответы на вопросы по практической работе №11
Регистры накопления бывают двух видов: регистры остатков и регистры оборотов.
В чем отличие между регистром накопления остатков и оборотным регистром накопления?
При создании регистра накопления создаются три виртуальные таблицы: таблица остатков, оборотов, таблица остатков и оборотов.
Для оборотного регистра – нет таблицы остаток, только виртуальная таблица оборотов.
Как выбирать реквизиты и измерение при создании регистров накопления?
При создании оборотного регистра в качестве измерения можно поставить любые нужные данные; В случае регистра остатков – необходимо выбирать те данные в качестве измерений, исходя из того, что движения могут идти в две стороны – приход и расход;
Не должно существовать измерений, по которым осуществляется только приход или только расход.
Как создать оборотный регистр накопления?
По регистрам правый клик, команда «добавить», выбрать «регистр накопления». Вид регистра – «обороты»
Как выбирать реквизиты и измерения при создании регистров накопления
Лабораторная работа № 12
Оборотные регистры накопления.
Ориентировочная продолжительность занятия — 40 минут.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Что такое оборотный регистр накопления
Регистры накопления могут быть регистрами остатков и регистрами оборотов.
Существующие в нашей конфигурации регистры ОстаткиМатериалов и СтоимостьМатериалов являются регистрами остатков.
Если вы помните, при создании отчета Материалы в конструкторе запроса мы видели, что для таких регистров система создает три виртуальные таблицы: таблица остатков, оборотов и совокупная таблица остатков и оборотов.
Оборотный регистр накапливает только обороты, остатки ему безразличны. Поэтому единственной виртуальной таблицей, которую будет создавать система для такого регистра, будет таблица оборотов. В остальном оборотный регистр ничем не отличается от регистра остатков.
Следует сказать об одной особенности конструирования регистров накопления, напрямую связанной с возможностью получения остатков. При создании оборотного регистра накопления нет особой сложности в определении того, какие именно данные должны являться измерениями регистра — мы можем назначить в качестве его измерений любые нужные нам данные.
Совсем иная ситуация в случае регистра накопления, поддерживающего накопление остатков. Для него выбор измерений должен выполняться исходя из того, что движения регистра могут быть осуществлены в две стороны: приход и расход. Таким образом, в качестве измерений нужно выбирать те данные, по которым движения точно будут осуществляться как в одну, так и в другую сторону.
Скорее всего, при поступлении материалов поставщик будет указан, а вот при расходовании материалов, с большой долей вероятности, поставщик указываться не будет. В большинстве случаев это совершенно лишняя информация.
Значит, поставщика следует добавить не как измерение, а как реквизит регистра накопления.
Если же при расходе материалов поставщик будет указываться наверняка, имеет смысл добавить поставщика в измерения регистра.
Иными словами, по каждому из измерений регистра накопления остатков ресурсы обязательно должны изменяться в обе стороны: приход и расход. Не должно существовать таких измерений, по которым осуществляется только приход или только расход.
Нарушение этого принципа построения регистров накопления будет вести к непроизводительному использованию ресурсов системы и как следствие к замедлению работы и падению производительности.
Для реквизитов же регистра этот принцип не важен. По реквизитам регистра ресурсы могут только приходоваться или только расходоваться.
ПРАКТИЧЕСКАЯ ЧАСТЬ
Добавление оборотного регистра накопления
Откроем конфигуратор и создадим новый объект конфигурации Регистр накопления.
— На закладке Основные: имя — Продажи; вид регистра – Обороты; расширенное представление списка – Движения документа по регистру Продажи.
— На закладке Подсистемы: отметим, что этот регистр будет отображаться в подсистемах Бухгалтерия, Учет материалов и Оказание услуг.
— На закладке Данные: создадим измерения регистра:
- Номенклатура, тип СправочникСсылка.Номенклатура;
- Клиент, тип СправочникСсылка.Клиенты;
- Мастер, тип СправочникСсылка.Сотрудники.
Создадим три ресурса
- Количество, тип Число, длина 15, точность 3;
- Выручка, тип Число, длина 15, точность 2;
- Стоимость, тип Число, длина 15, точность 2.

Рис. 12.1. Создание регистров
— В дереве объектов конфигурации выделим ветвь Подсистемы, вызовем Все подсистемы: В открывшемся окне выделим подсистему Бухгалтерия; в группе Панель навигации.Обычное включим видимость у команды Продажи и мышью перетащим ее в группу Панель навигации.См.также.
Аналогично, выделив подсистемы ОказаниеУслуг и УчетМатериалов, в панели навигации включим видимость у команды Продажи и перенесем ее в группу См.также.
Проведение документа «Оказание услуги» по трем регистрам
Изменим процедуру проведения документа ОказаниеУслуги, а затем в режиме 1С:Предприятие перепроведем все эти документы.
Откроем окно редактирования объекта конфигурации Документ ОказаниеУслуги .
— На закладке Движения: укажем, что этот документ будет создавать движения еще и по регистру Продажи.
— На закладке Прочее: нажмем кнопку Модуль объекта, затем откроем процедуру обработчика события ОбработкаПроведения и изменим код следующим образом (см. Листинг 12.1):
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда//регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Склад=Склад;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;//регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Стоимость=ТекСтрокаПереченьНоменклатуры.Количество
*ТекСтрокаПереченьНоменклатуры.Стоимость;
КонецЕсли;
//РегистрПродажи
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Клиент = Клиент;
Движение.Мастер – Мастер;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
Движение.Выручка = ТекСтрокаПереченьНоменклатуры.Сумма;
Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость
*ТекСтрокаПереченьНоменклатуры.Количество;
КонецЦикла;
КонецПроцедуры
Отредактируем командный интерфейс формы документа, чтобы в панели навигации формы иметь возможность переходить к списку записей регистра Продажи, связанному с документом:
— Откроем форму документа ОказаниеУслуги:перейдем на закладку Командный интерфейс, раскроем группу Перейти и увидим команду для открытия регистра накопления Продажи. Установим свойство Видимость для этой команды.
- В режиме 1С: Предприятие
В режиме 1С: Предприятие перепроведем все документы для этого запустим 1С: Предприятие в режиме отладки и откроем по очереди каждый документ Оказание услуги.
Контрольные вопросы
- Что такое оборотный регистр накопления.
- В чем отличие между регистром накопления остатков и оборотным регистром накопления.
- Как выбирать реквизиты и измерения при создании регистров накопления.
- Как создать оборотный регистр накопления.
— Перейти на страницу контрольного тестового задания
Вирус скуки
Правый клик по нужному документы, команда «Изменить», далее вкладка «Движения», и выбрать нужный регистр.
Как создать движения документа без использования конструктора движений?
Изменить процедуру «Обработчик проведения» в модуле документа;
Как средствами встроенного языка сформировать и записывать движения в регистр накопления?
Сформировать движение:
Движение.Имя_Регистра.Записывать = Истина;
Движение = Движение.Имя_Регистра.Добавить();
Движение.ВидДвижения //указать, если нужно
Движение.Период //указать, если нужно
Движение.Данные;
Как добавить в форму документа новый реквизит?
Правый клик по нужному документу, выбрать команду «Изменить» — потом «Добавить реквизит» .
Потом открыть форму документа, в выделенном окне найти появившийся реквизит и перетащить его в дерево документа.
12 занятие.
Что такое оборотный регистр накопления?
Регистры накопления бывают двух видов: регистры остатков и регистры оборотов.
В чем отличие между регистром накопления остатков и оборотным регистром накопления?
При создании регистра накопления создаются три виртуальные таблицы: таблица остатков, оборотов, таблица остатков и оборотов.
Для оборотного регистра – нет таблицы остаток, только виртуальная таблица оборотов.
Как выбирать реквизиты и измерение при создании регистров накопления?
При создании оборотного регистра в качестве измерения можно поставить любые нужные данные; В случае регистра остатков – необходимо выбирать те данные в качестве измерений, исходя из того, что движения могут идти в две стороны – приход и расход;
Не должно существовать измерений, по которым осуществляется только приход или только расход.
Как создать оборотный регистр накопления?
По регистрам правый клик, команда «добавить», выбрать «регистр накопления». Вид регистра – «обороты»
4 комментария:
Что такое оборотный регистр накопления?
Регистры накопления бывают двух видов: регистры остатков и регистры оборотов.
На многие вопросы отвечена ересь Ответить Удалить
Это прямое определение из книги. Удалить
Существует два вида регистров накопления: регистры накопления остатков и регистры накопления оборотов. Регистр накопления остатков позволяет хранить как итоговые значения ресурсов — остатки, так и изменения этих ресурсов — обороты. Регистр накопления оборотов является более «специализированным» видом регистра накопления и позволяет хранить только изменения ресурсов — обороты. Удалить
