Что такое оборотный регистр накопления

Что такое оборотный регистр накопления

Регистры накопления могут быть регистрами остатков и регистрами оборотов. Для регистров остатков система создает три виртуальные таблицы: таблица остатков, оборотов и остатков и оборотов. Для оборотного регистра остаток не имеет смысла (например, Услуги), поэтому единственная таблица – оборотов.

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

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

Регистр сведений

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

Периодичность регистра сведений можно определить одним из следующих значений:

· в пределах секунды;

· в пределах регистратора (если установлен режим записи – Подчинение регистратору).

Периодический регистр содержит поле Период, которое имеет тип Дата. Например, если в регистр сведений с периодичностью в пределах месяца записать данные на 15.12.2009, то он сохранит эти данные со значением 01.12.2009.

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

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

1. Создание регистра Цены. Периодичность – сек. Данные: измерение — Номенклатура, ведущее. Ведущее говорит о том, что при удалении объекта все записи по этому объекту будут автоматически удалены, кроме того появится кнопка Перейти. Данные: ресурс – Цена. Заполнить значениями.

2. Автоматическое заполнение цены в документе.

Общие / Общие модули / новый модуль ДляСправочников.

«Вызов сервера» установить для того чтобы экспортные процедуры/функции можно было вызывать с клиента.

Функция РозничнаяЦена (АктуальнаяДата, ЭлементНоменклатуры) Экспорт

// Создать вспомогательный объект Отбор.

Отбор = Новый Структура("Ном",ЭлементНоменклатуры);

// Получить актуальные значения ресурсов регистра.

ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;

КонецФункции

В теле функции создаем вспомогательный объект «Отбор». С его помощью указываем, что нас интересуют записи регистра, в которых измерение «Номенклатура» регистра «Цены» совпадает с параметром «ЭлементНоменклатуры». Используя метод «ПолучитьПоследнее» получаем структуру содержащую значение ресурсов самой поздней записи регистра на «АктуальнаяДата» с фильтром по «Отбор». Последняя строка возвращает значение ресурса «Цена».

Открыть форму документа Оказание услуги. Номенклатура / ПриИзменении – лупа. Текст:

&НаКлиенте

Последнее изменение этой страницы: 2016-12-28; Нарушение авторского права страницы

Цель работы

1.1 Изучить принципы проведения документа по нескольким регистрам

1.2 Познакомиться с принципами учета услуг с помощью оборотного регистра накопления.

Краткие теоретические сведения

Регистры накопления могут быть регистрами остатков и регистрами оборотов.

Существующие в созданной нами учебной конфигурации регистры «ОстаткиМатериалов» и «СтоимостьМатериалов» являются регистрами остатков. Если вы помните, при создании отчета «Материалы» в конструкторе запроса мы видели, что для таких регистров система создает три виртуальные таблицы: таблица остатков, оборотов и совокупная таблица остатков и оборотов.

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

В остальном оборотный регистр ничем не отличается от регистра остатков.

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

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

Читайте также:  Хуавей мате 20 лайт золотой

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

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

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

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

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

Нарушение этого принципа построения регистров накопления будет вести к непроизводительному использованию ресурсов системы и как следствие замедлению работы и падению производительности.

Задание

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

Ход работы

Создадим регистр накопления «СтоимостьМатериалов». Этот регистр будет иметь одно измерение – «Материал» с типом «СправочникСсылка.Номенклатура» и один ресурс – «Стоимость» с длиной 15 и точностью 2, неотрицательное. В древе конфигурации установим курсор на «Регистры накопления», выберем «Действия» — «Добавить»

Рисунок 1 – Созданный регистр накопления «СтоимостьМатериалов»

4.1 Изменение процедуры проведения документа «Приходная накладная»

Откроем в конфигураторе окно редактирования объекта конфигурации Документ «ПриходнаяНакладная» и перейдем на вкладку «Движения». В списке регистров отметим, что документ будет создавать теперь движения и по регистру «СтоимостьМатериалов».

Рисунок 2 – Добавляем движения по регистру «СтоимостьМатериалов»

Запустим конструктор движений. Нажмем кнопку «Конструктор движений» и согласимся с тем, что существующая процедура ОбработкаПроведения будет замещена.

Рисунок 3 – Запрос конфигуратора на подтверждение замещения процедуры

Откроется окно конструктора движений, которое будет содержать созданные ранее движения документа по регистру «ОстаткиМатериалов». Добавим в список регистров, по которым формируются движения, еще один – «СтоимостьМатериалов». Выберем для него ту же табличную часть «Материалы» и заполним выражения.

Для ресурса «Стоимость» выберем значения реквизита табличной части «Сумма».

Рисунок 4 – Движения по регистру «СтоимостьМатериалов»

Нажмем OK и проанализируем текст, который сформировал конструктор.

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

Рисунок 5 – Обработка проведения по двум регистрам

Табличная часть всего одна, поэтому можно объединить эти два цикла в один, закомментировав следующие строки:

// Для Каждого ТекСтрокаМатериалы Из Материалы Цикл

Для того, чтобы сделать из строчки комментарий необходимо добавить перед строчкой «//».

Запустим 1С Предприятие в режиме отладки и перепроведем документы «ПриходнаяНакладная» №1 и №2.

Затем откроем «ПриходнуюНакладную» №1 и убедимся, что документ создает желаемые записи в регистрах накопления.

Рисунок 6 – Проведение документа «ПриходнаяНакладная» №1

4.2 Изменение процедуры проведения документа «Оказание услуги»

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

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

Откроем в конфигураторе окно редактирования объекта конфигурации «Документ» — «ОказаниеУслуги», перейдем на закладку «Данные» и создадим новый реквизит табличной части документа с именем «Стоимость», типом «Число», длиной 15 и точностью 2, неотрицательное.

Рисунок 7 – Добавление реквизита табличной части

После этого откроем форму «ФормаДокумента» документа «ОказаниеУслуги» и добавим в табличное поле колонку, отображающую новый реквизит «Стоимость»», расположив ее после колонки «Номенклатура». Для этого выделим табличное поле и выполним команду контекстного меню «Размещение данных». В окне «Размещение данных» отметим реквизит «Стоимость» и нажмем «ОK». После этого с помощью мыши перетащим колонку «Стоимость» после колонки «Номенклатура».

Читайте также:  Как найти человека в емайл

Рисунок 8 – Модифицированная форма документа «ОказаниеУслуги»

Теперь создадим движения документа «ОказаниеУслуги» таким же образом, как для документа «ПриходнаяНакладная».

Откроем в конфигураторе окно редактирования объекта конфигурации «Документ» «ОказаниеУслуги» и укажем, что он будет создавать движения по регистру накопления «СтоимостьМатериалов».

Запустим конструктор движений документа и добавим в список регистров регистр «СтоимостьМатериалов». Восстановим движения по регистру «ОстаткиМатериалов». Опишем движения документа по регистру «СтоимостьМатериалов» следующим образом (обратите внимание, что стоимость вычисляется как произведение стоимости и количества, указанных в табличной части):

Рисунок 9 – Движения по регистру «СтоимостьМатериалов» в документе «ОказаниеУслуги»

Нажмем OK и в тексте, сформированном конструктором, восстановим изменения, внесенные нами ранее (не записывать движения, если номенклатура – не материал). Вставим после строчки «Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл» следующий код:

Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда

Также объединим два цикла обхода табличной части документа в один, закомментировав строки, как в документе «ПриходнаяНакладная».

Запустим 1С Предприятие в режиме отладки. Теперь создадим и проведем еще два документа «ОказаниеУслуги». Эти документы понадобятся нам в дальнейшем, поэтому будьте внимательны и обратите внимание на то, что эти документы созданы другими датами

Рисунок 10 – Два новых документа «ОкзаниеУслуги»

Проверим движения по регистрам:

Рисунок 11 – Движения регистров обоих документов

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

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

— какие именно услуги были оказаны (чтобы составить рейтинг услуг);

— какому именно клиенту оказывались услуги (чтобы предоставить ему скидку от объема оплаченных ранее услуг, например);

— какой мастер предоставлял услуги (чтобы начислить ему заработную плату).

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

Откроем конфигуратор и создадим новый объект конфигурации «Регистр накопления». Назовем его «Продажи» и определим вид регистра – «Обороты».

Рисунок 12 – Установка имени и вида регистра

На вкладке «Данные» создадим измерения регистра:

— «Номенклатура», тип «СправочникСсылка.Номенклатура»,

— «Клиент», тип «СправочникСсылка.Клиенты»,

— «Мастер», тип «СправочникСсылка.Сотрудники».

У регистра будет три ресурса:

— «Количество», тип Число, длина 15, точность 3 (неотрицательное),

— «Выручка», тип Число, длина 15, точность 2,

— «Стоимость», тип Число, длина 15, точность 2 (неотрицательное).

Откроем окно редактирования объекта конфигурации «Документ» — «ОказаниеУслуги» и на закладке «Движения» укажем, что этот документ будет создавать движения по регистру «Продажи».

На этот раз не будем использовать конструктор движений документа, а внесем необходимые дополнения прямо в обработчик события «ОбработкаПроведения» документа «ОказаниеУслуги».

Откроем в конфигураторе модуль объекта конфигурации «Документ» — «ОказаниеУслуги» и найдем в нем процедуру обработчика события «ОбработкаПроведения».

Сразу после окончания первого цикла создадим еще один цикл обхода табличной части и команду записи движений регистра «Продажи». Цикл должен содержать следующий код:

Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл

Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость * ТекСтрокаПереченьНоменклатуры.Количество;

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

Запустим 1С:Предприятие в режиме отладки и перепроведем два ранее созданных документа «ОказаниеУслуги». Движения этих документов по регистру «Продажи» должны иметь следующий вид:

Рисунок 13 – Движения документов по регистру «Продажи»

5 Контрольные вопросы

5.1 Для чего может понадобиться проведение документа по нескольким регистрам?

5.2 Как с помощью конструктора создать движения документа по нескольким регистрам?

5.3 Что такое оборотный регистр накопления?

5.4 В чем отличие между регистром накопления остатков и оборотным регистром накопления?

5.5 Как создать движения документа без использования конструктора движений

Читайте также:  Энергия и мощность сигнала

Содержание отчета

6.1 Название работы

6.3 Описание хода работы со снимками экрана

6.4 Ответы на контрольные вопросы

6.5 Выводы к работе

Список литературы

7.1 Радченко М. Г. 1С:Предприятие 8.1. Практическое пособие разработчика. Примеры и типовые приемы. – СПБ.: 1С-Паблишинг, 2008. – 512 с.

7.2 1С:Предприятие 8.1. Конфигурирование и администрирование. М: Фирма «1С», 2007. – 342 с.

7.3 . Рязанцева Н.А. 1С:Предприятие. Комплексная конфигурация. Секреты работы. СПБ.: БХВ-Петербург — 2005, 623 с.

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

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

Структура

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

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

записи, производящие изменение ресурсов регистра в базе данных, будут выглядеть следующим образом:

Поскольку регистр накопления служит для накопления числовых значений, каждая запись выполняет изменение хранимых ресурсов — движение. Движения, в общем случае, могут либо добавлять некоторые приращения к хранимым ресурсам, либо отнимать их. Если должно выполняться увеличение хранимых ресурсов, — такое движение называется движением прихода («+»), если уменьшение хранимых ресурсов — движением расхода («-»).

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

Связь с регистратором

Изменение состояния регистра накопления происходит, как правило, при проведении документа. Поэтому каждая запись регистра связана с определенным документом — регистратором, номером строки этого документа, и датой — периодом:

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

Состав документов, которые могут создавать записи в регистре накопления, задается разработчиком в процессе создания прикладного решения:

Конструктор движений

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

Уникальность записей

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

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

Существует два вида регистров накопления: регистры накопления остатков и регистры накопления оборотов. Регистр накопления остатков позволяет хранить как итоговые значения ресурсов — остатки, так и изменения этих ресурсов — обороты. Регистр накопления оборотов является более «специализированным» видом регистра накопления и позволяет хранить только изменения ресурсов — обороты.

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

Поскольку регистр накопления оборотов не накапливает остатки ресурсов, для него не имеет смысла «направление» движения ресурсов (приход или расход); накапливается только величина изменения ресурсов. Поэтому все записи регистра накопления оборотов отмечены одинаковыми пиктограммами.

Агрегаты

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

Форма списка и форма набора записей

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

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

Ссылка на основную публикацию
Что такое ogg формат
Ogg — Dateiendung: .ogg, .oga, .ogv, .ogx MIME Type … Deutsch Wikipedia .ogg — Dateiendung .ogg, .oga, .ogv, .ogx MIME...
Что значит включена переадресация вызова когда звонишь
Что такое переадресация звонков? Что значит «Переадресация звонков»? Данная услуга позволяет всегда оставаться на связи, за счёт перенаправления исходящих звонков....
Что значит восьмиядерный процессор
Дизайн и эргономика важны для гаджетов, но в то же время каждый пользователь понимает, что сердцем любого электронного устройства являются...
Что такое pppoe соединение на роутере
PPPoE (англ. Point-to-point protocol over Ethernet ) — сетевой протокол канального уровня (второй уровень сетевой модели OSI) передачи кадров PPP...
Adblock detector