Остатки и обороты. Остатки и обороты Регистр накопления 1с 8.3 остатки

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

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

Только представьте себе, что при оформлении продажи какого-либо товара бухгалтер сидит и ждет, пока программа проверит ранее внесенные документы и рассчитает, хватает ли остатка на складе для списания.

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

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

  • Оборотные регистры накопления позволяют получить только обороты за какой-то определенный промежуток времени. Получение остатков в таком случае не представляется возможным. Регистр накопления с видом «Обороты» создает в системе только одну виртуальную таблицу – оборотов.
  • Регистры накопления с видом «Остатки» дают возможность разработчику получить и остатки и обороты. В данном случае будут создаваться уже три виртуальные таблицы: остатков, оборотов, остатков и оборотов. Примером такого регистра может выступать регистр остатков ТМЦ на складах, движения денежных средств по расчетным счетам организации.

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

Данные регистров накопления

Измерения

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

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

Свойства измерений

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

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

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

Ресурсы

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

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

Реквизиты

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

Стандартные реквизиты

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

Агрегаты

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

Движения по регистрам накопления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10.3. Создание оборотного регистра накопления

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

262 . Создадим новый объект конфигурации Регистр накопления: выберите на дереве объект Регистр накопления, МП , выберите Добавить , в поле Имя введите Продажи , в поле Расширенное представление списка введите Движения по регистру Продажи, нажмите Далее .

263. На вкладке Подсистемы выберите Бухгалтерия, Учет материалов, Оказание услуг.

264. На закладке Данные создадим измерения регистра:

265. Создайте у регистра три ресурса:

Количество, тип Число, длина 22, точность 2, Выручка, тип Число, длина 22, точность 2, Стоимость, тип Число, длина 22, точность 2.

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

267. Аналогично выполните для подсистем Оказание услуг и

УчетМатериалов

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

269. Выберите вкладку Прочее, Модуль объекта.

270. Введите код создающий движения регистра Продажи, производимые документом ОказаниеУслуги, выделенный жирным:

Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Движения.ОстаткиМатериалов.Записывать = Истина; Движения.СтоимостьМатериалов.Записывать = Истина;

Движения.Продажи.Записывать = Истина;

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

ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры

= Перечисления.ВидыНоменклатуры.Материал Тогда

// регистр ОстаткиМатериалов Расход

Движение = Движения.ОстаткиМатериалов.Добавить();

Движение.Период = Дата;

Движение.Склад = Склад;

Движение = Движения.СтоимостьМатериалов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

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

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

КонецЕсли;

Движение = Движения.Продажи.Добавить(); Движение.Период = Дата;

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

Движение.Клиент = Клиент; Движение.Мастер = Мастер;

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

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

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

КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

271. Запустим 1С:Предприятие в режиме отладки, откройте документ ОказаниеУслуги от 27 июля, нажмите Провести, перейдите к списку движений по регистру Продажи.

272. Откройте документ ОказаниеУслуги от 29 июля, нажмите Провести, перейдите к списку движений по регистру Продажи.

273. Откройте документ ОказаниеУслуги от 29 июля, нажмите Провести, перейдите к списку движений по регистру Продажи.

11-й день. Отчеты 11.1. Способы доступа к данным

Система 1С:предприятие поддерживает два способа доступа к данным, хранящихся в БД:

объектный (для чтения и записи)

табличный (для чтения).

Объектный способ доступа к данным реализован посредством использования объектов встроенного языка. При этом обращаясь к како- му-либо объекту встроенного языка, мы обращаемся к некоторой совокупности данных, находящихся в БД, как к единому объекту.

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

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

11.2. Работа с запросами

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

11.3. Источники данных запросов

Исходную информацию запрос получает из набора таблиц.

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

реальные таблицы

виртуальные таблицы.

Реальные таблицы содержат данные какой-либо одной реальной таблицы, хранящейся в БД.

Например, реальной является таблица Справочник.Клиенты соответствующая справочнику Клиенты.

Виртуальные таблицы формируются в основном из данных нескольких таблиц БД. Например, виртуальной является таблица РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты, формируемая из нескольких таблиц регистра накопления Остатки материалов.

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

Виртуальны таблицы не хранятся в БД.

Реальные таблицы делятся на объектные (ссылочные) и необъектные.

В объектных таблицах представлена информация ссылочных типов данных (справочники, документы, и т.д.). А в необъектных – всех остальных типов данных (константы, регистры и т.д.).

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

11.4. Язык запросов

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

Текст запроса может состоять из частей:

1. описание запроса

2. объединение запросов

3. упорядочивание результатов

4. автоупорядочивание

5. описание итогов.

Обязательной частью является только – описание запроса.

Описание запроса – определяет источники данных, поля выборки, группировки и т.д.

Объединение запросов – определяет как будут объединены результаты выполнения нескольких запросв.

Упорядочивание результатов – определяет условия упорядочивания строк результата запроса.

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

Описание итогов – определяет, какие итоги необходимо рассчитать в запросе и каким образом группировать результат.

Система компоновки данных

Система компоновки данных предназначена для создания произвольных отчетов.

Исходные данные для компоновки отчета содержит в себе схема компоновки данных. Это наборы данных и методы работы с ними.

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

Разработчик создает схему компоновки данных и настройки по умолчанию.

На основе схемы и настроек компоновщик макета создает макет.

Процессор компоновки данных выбирает данные из ИБ согласно макету компоновки, агрегирует и оформляет эти данные.

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

11.5. Выбор данных из одной таблицы

274. Создадим отчет: выберите в дереве объектов конфигурации ветвь Отчеты, МП , выберите Добавить , в поле Имя введите

РеестрДокументовОказаниеУслуги, нажмите tab и в поле Синоним должно появится РеестрДокументовОказаниеУслуги, в поле расширенное представление введите Список оказанных услуг,

275. нажмите Открыть с хему компоновки данных

276 . Добавьте новый набор данных – запрос: нажмите кнопку Добавить , выберите .

277. Создайте текст запроса: нажмите кнопку Конструктор запро-

са.

278. ОказаниеУслуги , из этой таблицы выберим поля Склад,

279. Выберите вкладку Объединения/Псевдонимы, укажите что поле Ссылка будет иметь псевдоним Документ.

280. Выберите вкладку Порядок , укажите что результат запроса должен упорядочен по значению поля Документ .

281. Нажмите ОК.

ОказаниеУслуги.Склад,

ОказаниеУслуги.Мастер,

УПОРЯДОЧИТЬ ПО

Документ

ОказаниеУслуги.Склад,

ОказаниеУслуги.Мастер,

Документ.ОказаниеУслуги КАК ОказаниеУслуги

УПОРЯДОЧИТЬ ПО

Документ

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

После КАК псевдоним источника данных Источники данных

282 . выберите вкладку настройки , выберите Отчет, МП, Новая

группировка.

283. На вкладке Выбранные поля перенесем мышью поля.

284.

285 . В окне реадактирования объекта конфигурации Отчет РеестрДокументовОказаниеУслуг выберите вкладку Подсистемы, выберите Оказание услуг.

286 . Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Реестр документов оказания услуг, нажмите Сформировать.

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

11.6. Выбор данных из двух таблиц

286. Создадим отчет: выберите в дереве объектов конфигурации ветвь Отчеты, МП , выберите Добавить , в поле Имя введите РейтингУслуги , нажмите tab и в поле Синоним должно появится

287. нажмите Открыть с хему компоновки данных. В окне конструктора макета выберите тип макета Схема компоновки данных, нажмите Готово.

288 . Добавьте новый набор данных – запрос: нажмите кнопку Добавить , выберите Добавить набор данных – запрос .

289. Создайте текст запроса: нажмите кнопку Конструктор запро-

са.

290. В качестве источника данных для запроса выберим объектную таблицу Номенклатура и виртуальную таблицу регистра накопления ПродажиОбороты.

290 . Переименуем таблицу Номенклатура в спрНоменклатура

291 . В список полей перенесем поля СпрНоменклатура.Ссылка и ПродажиОбороты.ВыручкаОборот.

292. выберите вкладку связи. Так как в запросе участвуют несколько таблиц требуется определить связь между ними.

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

293. Снять флажок Все у у таблицы ПродажиОбороты и установить у таблицы спрНоменклатура.

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

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

294. Выберите вкладку Условия и установим отбор, чтобы группы справочника Номенклатура не попадали в отчет.

295. Выберите спрНоменклатура, выберите поле ЭтаГруппа, установите флажок Произвольное, в поле Условие введите код:

спрНоменклатура.ЭтоГруппа = ЛОЖЬ

296. Другое условие то, что выбранный элемент является услугой. Это Простое условие. Перетащите поле ВидНоменклатуры в список условий. Платформа автоматически сформирует условие, согласно которому вид номенклатуры должен быть равен значению параметра ВидНоменклатуры. Дальше перед выполнением запроса мы передадим в параметр ВидНоменклатуры значение перечисления – Услуга.

297. Выберите вкладку Объединение/Псвевдонимы, поле Ссылка будет иметь псевдоним Услуга , а поле регистра Выручка.

298. Выберите вкладку Порядок, выберите Выручка , укажите что результат запроса должен отсортирован по убыванию значения поля выручка.

299. Нажмите ОК.

ПродажиОбороты.ВыручкаОборот КАК Выручка ИЗ

Справочник.Номенклатура КАК спрНоменклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

ПО ПродажиОбороты.Номенклатура = спрНоменклатура.Ссылка

ГДЕ спрНоменклатура.ЭтоГруппа = ЛОЖЬ

И спрНоменклатура.ВидНоменклатуры = &ВидНоменклату-

УПОРЯДОЧИТЬ ПО Выручка УБЫВ

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

300. Выберите вкладку Ресурсы, выберите Выручка, выберите >>, чтобы конструктор выбрал все доступные ресурсы, по которым можно вычислять итого. У нас это ресурс Выручка.

Параметры

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

Параметры отчета задают условия отбора записей в отчет.

301. Выберите вкладку Параметры

302. Избавим пользователя от необходимости указывать время при вводе даты периода, за который формируется отчет: выберите в строке НачалоПериода поле Дата, М2, в списке Состав даты выберите Дата, нажмите ОК.

303. Для параметра КонецПериода установите флажок Ограничение доступности.

304. нажмите кнопку Добавить, в поле Имя введите ДатаОкончания, в списке Тип выберите Дата, укажите Состав даты – Дата.

305. Выберите параметр КонецПериода, в поле Выражение введите выражение

КонецПериода(&ДатаОкончания, "День")

306. Выберите строку ВидНоменклатуры, в списке столбца Значение выберите Услуга.

Настройки

307. выберите вкладку настройки, выберите Отчет, МП, Новая группировка.

В структуре отчета появится группировка детальные записи.

308. На вкладке Выбранные поля перенесем мышью поля Услуга, Выручка.

309. Выберите вкладку Другие настройки, введите заголовок отчета – Рейтинг услуг.

Быстрые пользовательские настройки

310. Выберите вкладку

311.

312. Для поля Дата начала в списке Значения выберите Начало этого месяца.

313. Для поля Дата окончания в списке Значения выберите Начало этого дня.

314. Закроем конструктор схемы компоновки данных.

315. В окне редактирования объекта конфигурации Отчет Рейтинг Услуг выберите вкладку Подсистемы, выберите Оказание услуг.

316. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Рейтинг услуг.

Условное обозначение

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

318. В поле Оформление выберите бордовый цвет текста, нажми-

319. Затем укажем Условие, при наступлении которого будет применяться оформление, выберите Новый элемент, нажмите кнопку Добавить, в графе Левое значение укажите Выручка , в графе Вид сравнения укажите Меньше, в графе Правое значение укажите 700,

нажмите ОК.

То есть когда в поле Выручка окажется значение меньше 700, чтото будет выделено красным цветом.

320 . Теперь зададим список оформляемых полей: в поле Оформляемые поля нажмите три точки, нажмите Добавить, выберите Услуга, выберите Выручка, нажмите ОК.

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

322. Теперь добавим созданное условие в пользовательские настройки: нажмите кнопку Свойства элементов пользовательских

настроек, установите флажок Включать в пользовательские настройки и установите свойство Режим редактирования в значение

Обычный.

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

323. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Рейтинг услуг, нажмите Сформировать.

Мы видим, что суммы услуг менее 700 руб. выделены красным цветом.

323. Нажмите кнопку Настройка, снимите флажок с настройки Непопулярная услуга, нажмите Завершить редактирование.

324. Нажмите сформировать, видите выделение цветом исчезло.

Пользовательские настройки

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

326. Нажмите кнопку Свойства элемента пользовательских настроек, расположенных вверху в командной панели окна настроек.

327. Установите признак использования для настроек Отбор и Условное оформление и установите для них режим редактирования в

значение Обычный, нажмите ОК.

328 . Выберите вкладку Отбор, раскройте поле Услуга, выберите поле Родитель, М2, перенесите его в список отбора в правой части окна.

Мы создали возможность отбора по группам услуг, которые пользователь может задать в режиме 1С:Предприятие.

329. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Рейтинг услуг, нажмите Настройка, там появились настройки Отбор и Условное обозначение.

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

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

330 . Зададим отбор в отчете так, чтобы в него попадали такие услуги, относящиеся у установке стиральных машин: нажмите три точки в окне пользовательских настроек в строке Отбор: в строке Отбор нажмите три точки, в строке Значение нажмите три точки, раскройте группу Услуги и выберите Стиральные машины из справочника Номенклатура, нажмите ОК, нажмите Завершить редактирование, нажмите Сформировать.

В отчет только услуги по установке стиральных машин.

331. Нажмите Настройка, в строке Отбор нажмите кнопку Очистка.

11.7. Отчет 3. Вывод данных по всем дням в выбранном перио-

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

331. Создадим отчет: выберите в дереве объектов конфигурации ветвь Отчеты, МП , выберите Добавить , в поле Имя введите ВыручкаМастеров , нажмите tab и в поле Синоним должно появится Выручка матеров , в поле расширенное представление введите Список оказанных услуг,

332 нажмите Открыть с хему компоновки данных. В окне конструктора макета выберите тип макета Схема компоновки данных, нажмите Готово.

333 . Добавьте новый набор данных – запрос: нажмите кнопку Добавить , выберите Добавить набор данных – запрос .

334. Создайте текст запроса: нажмите кнопку Конструктор запро-

са.

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

336. В поле Таблицы выберите Продажи.Обороты , нажмите кнопку Парааметры виртуальной таблицы, в списке Периодичность выберите День, нажмите ОК.

337. Выберите из таблицы поля ПродажиОбороты.Мастер, Про-

дажиОбороты.Период, ПродажиОборотыюКлиент, ПродажиОбороты.ВыручкаОборот.

338. Выберите вкладку Объединения/Псевдонимы, укажите что поле ПродажиОбороты.ВыручкаОборот будет иметь псевдоним Выручка, нажмите ОК.

ПродажиОбороты.Мастер,

ПродажиОбороты.Период,

ПродажиОбороты.Клиент, ПродажиОбороты.ВыручкаОборот КАК Выручка

РегистрНакопления.Продажи.Обороты(, День,) КАК ПродажиОбороты

339. Выберите вкладку Ресурсы, выберите выручка.

Параметры

340. Выберите вкладку Параметры, для парметра НачалоПериода введите Заголовк Дата начала, в поле Тип выберите состав даты Дата.

342. Добавьте параметр ДатаОкончания, тип Дата, состав даты –

343. Для КонецПериода задайте выражение КонецПериода(&ДатаОкончания, «День»)

и поле Ограничение доступности установите флажок. Настройки

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

345. Выберите вкладку Выбранные поля, добавьте поля Клиент, Выручка.

346. Выберите вкладку Другие настройки, в списке Расположение полей группировки выберите Отдельно и только в итогах, в списке Расположение общих тиогов по вертикали выберите Начало, в поле Заголовок введите Выручка матеров.

347. Выберите вкладку Параметры , выберите Дата начала, нажмите кнопку Свойства элемента пользовательских настроек, включите флажком Включать в пользовательские настройки, нажмите ОК.

348. Выберите вкладку Параметры, выберите Дата окончания, нажмите кнопку Свойства элемента пользовательских настроек, включите флажком Включать в пользовательские настройки, нажмите ОК.

349. В окне редактирования объекта конфигурации Отчет Выручка мастеров выберите вкладку Подсистемы, выберите Оказание услуг и Расчет зарплаты.

350. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Выручка мастеров, задайте приод с 1 июля по 30 июля, нажмите Сформировать.

Вывод всех дат в выбранном периоде

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

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

352. Выберите вкладку Поля группировки, выберите поле Период,

в списке Тип дополнения выберите день.

353. В новой строке в столбце Начальная дата периода, М2, нажмите кнопку Очистка, нажмите кнопку выбора типа данных Т, выберите Поле компоновки данных, нажмите ОК, выберите три точки, выберите параметр НачалоПериода.

354. В новой строке в столбце Конечная дата периода, М2, нажмите кнопку Очистка, нажмите кнопку выбора типа данных Т, выберите Поле компоновки данных, нажмите ОК, выберите три точки, выберите параметр ДатаОкончания.

355. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Выручка мастеров, задайте период с 1 июля по 30 июля, нажмите Сформировать.

Новый вариант отчета. Диаграмма

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

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

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

Диаграмма как объект встроенного языка емеет три области: область построения область заголовка область легенды

356. Откройте схему компоновки данных на вкладке Настройки, в списке вариантов отчета выберите Добавить, введите имя ОбъемВыручки.

357. Добавим в структуру отчета диаграмму: выберите корневой элемент Отчет, МП, Новая диаграмма.

358. Выберите ветвь Точки, МП, Новая группировка, выберите поле Мастер.

359. Выберите Выбранные поля, нажмите Отчет, выберите

360. Выберите вкаладку Другие настройки, выберите Тип диаграммы – Измерительная.

361. Выберите полосы измерительной диаграммы по рис.

362. Выберите вкладку Параметры , выберите Дата начала, нажмите кнопку Свойства элемента пользовательских настроек, включите флажком Включать в пользовательские настройки, нажмите ОК.

363. Выберите вкладку Параметры, выберите Дата окончания, нажмите кнопку Свойства элемента пользовательских настроек, включите флажком Включать в пользовательские настройки, нажмите ОК.

364. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Выручка мастеров, нажмите выбрать вариант, выберите Объем выручки, нажмите

11.8. Отчет 4. Получение актуальных значений из периодического регистра сведений

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

365. Создадим отчет: выберите в дереве объектов конфигурации ветвь Отчеты, МП , выберите Добавить , в поле Имя введите ПереченьУслуг , нажмите tab и в поле Синоним должно появится Перечень услуг , в поле расширенное представление введите Список оказанных услуг,

366 нажмите Открыть с хему компоновки данных. В окне конструктора макета выберите тип макета Схема компоновки данных, нажмите Готово.

367 . Добавьте новый набор данных – запрос: нажмите кнопку Добавить , выберите Добавить набор данных – запрос .

368. Создайте текст запроса: нажмите кнопку Конструктор запро-

са.

369. В качестве источника данных для запроса выберим объектную таблицу Номенклатура и виртуальную таблицу регистра сведений Цены.СрезПоследних.

370. Таблицу Номенклатура переименуйте в спрНоменклатура.

371. В поле Таблицы выберите Цены.СрезПоследних , нажмите кнопку Параметры виртуальной таблицы, в поле Период введите &ДатаОтчета .

372. Выберите из таблицы поля спрНоменклатура.Родитель,

373. Выберите вкладку Связи у таблицы регистра снять флажок Все, а у таблицы справочника включить флажок Все.

374. Выберите вкладку условие, выберите поле видНоменклатуры,

375. Выберите вкладку Объединение/Псевдонимы, поле Родитель заменяем на ГруппаУслуг, поле Ссылка на Услуга, нажмите ОК.

ВЫБРАТЬ спрНоменклатура.Родитель КАК ГруппаУслуг,

ИЗ Справочник.Номенклатура КАК спрНоменклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета,) КАК ЦеныСрезПоследних

ПО (ЦеныСрезПоследних.Номенклатура = спрНоменклатура.Ссылка)

ГДЕ спрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

376. Выберите вкладку Ресурсы, выберите Цена.

377. Выберите вкладку Параметры, для параметра ВидНоменлатуры в столбце Значение выберите Услуга.

378. Для параметра ДатаОтчета снимите ограничение доступности (Ог), в поле Тип выберите состав даты – Дата.

379. Для параметра Период установите ограничение доступности.

380. Выберите вкладку Настройки, выбеирет корневой эемент Отчет, МП, Новая группировка по полю ГруппаУслуг, тип группировки Иерархия.

379. Выберите группировку ГруппаУслуг, МП, Новая грууппировка без указания группового поля (Детальные записи).

380. Выберите Выбранные поля, укажите поля Услуга, Цена.

381. Выберите Другие настройки, общих итогов по вертикали выберите Нет.

382. Выберите вкладку ГруппаУслуг, в списке Рсаположение полей группировки выберите Отдельно и только в итогах, в поле Заголовок введите Перечень услуг.

383. Выберите вкладку Параметры , выберите Дата отчета, нажмите кнопку Свойства элемента пользовательских настроек, включите флажком Включать в пользовательские настройки, нажмите ОК.

384. В окне реадактирования объекта конфигурации Отчет Перечень услуг выберите вкладку Подсистемы, выберите Оказание услуг и Бухгалтерия.

385. Откройте периодический регистр Цены, добавьте новое значение для услуги Диагностики на 27 июля – 350 руб.

386. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Перечень услуг, введите дату 26 июля, нажмите Сформировать, цена диагностики должна быть 600.

387. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Перечень услуг, введите дату 27 июля, нажмите Сформировать, цена диагностики должна быть 350.

11.9. Отчет 5. использование вычисляемого поля в отчете

388. Создадим отчет: выберите в дереве объектов конфигурации ветвь Отчеты, МП , выберите Добавить , в поле Имя введите РейтинКлиентов , нажмите tab и в поле Синоним должно появится Рейтинг клиентов , в поле расширенное представление введите Список оказанных услуг,

389. Нажмите Открыть с хему компоновки данных. В окне конструктора макета выберите тип макета Схема компоновки данных, нажмите Готово.

390 . Добавьте новый набор данных – запрос: нажмите кнопку Добавить , выберите Добавить набор данных – запрос .

391. Создайте текст запроса: нажмите кнопку Конструктор запро-

са.

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

393 . Выберите из таблицы поля

ПродажиОбороты.Клиент

ПродажиОбороты.ВыручкаОборот

393. Выберите вкладку Объединение/Псевдонимы, поле ВыручкаОбороты замените на выручка, стоимостьОборот на Стоимость.

394. Нажмите ОК.

395. Выберите вкладку Вычисляемые поля, нажмите кнопку Добавить, в поле Путь к данным введите Доход, в поле Выражение введите

Выручка - Стоимость

396. Выберите вкладку Ресурсы, выберите Выручка, Доход, Стои-

397. Выберите вкаладку Настройки, выберите корневой элемент Отчет, МП, Новая диаграмма.

398. Выберите Точки, МП, Новая группировка по полю Клиент.

399. Выберите Выбранные поля, выберите Доход.

400. Выберите Другие настройки, тип диаграммы – круговая объемная, в поле заголовок введите Рейтинг клиентов.

401. В окне редактирования объекта конфигурации Отчет Перечень услуг выберите вкладку Подсистемы, выберите Оказание услуг и Бухгалтерия.

402. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Рейтинг клиентов, нажмите Сформировать.

11.10. Отчет 6. Вывод данных в таблицу

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

403. Создадим отчет: выберите в дереве объектов конфигурации ветвь Отчеты, МП , выберите Добавить , в поле Имя введите Универсальный , нажмите tab и в поле Синоним должно появится Универсальный , в поле расширенное представление введите Список оказанных услуг,

404. Нажмите Открыть с хему компоновки данных. В окне конструктора макета выберите тип макета Схема компоновки данных, нажмите Готово.

405 . Добавьте новый набор данных – запрос: нажмите кнопку Добавить , выберите Добавить набор данных – запрос .

406. Создайте текст запроса: нажмите кнопку Конструктор запро-

са.

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

408 . Выберите из таблицы поля

ПродажиОбороты.Номенклатура

ПродажиОбороты.Клиент

ПродажиОбороты.Мастер

ПродажиОбороты.КоличествоОборот

ПродажиОбороты.ВыручкаОборот

ПродажиОбороты.СтоимостьОборот

409. Нажмите ОК.

410. Выберите вкладку Ресурсы, выберите >>.

411. Выберите вкладку Настройки, выберите корневой элемент Отчет, МП, Новая таблица.

412. Выберите в структуре элемент Таблица, нажмите кнопку Свойства элемента пользовательских настроек. Выберите Выбранные поля, Группировка строк, Группировка колонок.

413. В окне редактирования объекта конфигурации Отчет Перечень услуг выберите вкладку Подсистемы, выберите Оказание услуг.

414. Запустим 1С:Предприятие в режиме отладки, в панели действий раздела Оказание услуг выберите Универсальный, нажмите Сформировать. Пусто!

415. В строке Выбранные поля нажмите три точки, выбериет выручкаОборот.

416. В строке Строки нажмите три точки, добавьте группировку по полю Номенклатура с типом Иерархия.

417. В строке Колонки добавьте группировку по полю Мастер.

418. Нажмите Сформировать.

419. В строке Выбранные поля нажмите три точки, выберите еще СтоимостьОборот.

420. В строке Строки нажмите три точки, удалите группировку по полю Номенклатура, введите группировку по полю Клиент.

421. Нажмите Сформировать.

422. В строке Выбранные поля нажмите три точки, удалите СтоимостьОборот.

423. В строке Строки нажмите три точки, удалите старую группировку, введите группировку по полю Номенклатура с типом Только Иерархия.

424. В строке Колонки добавьте группировку по полю Клиент, и поместите ее первой..

425. Нажмите Сформировать.

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

Иначе говоря, это прикладные объекты конфигурации, которые позволяют оперативно фиксировать и хранить движения каких-либо активов или пассивов предприятия.

Регистр накопления представляет собой таблицу с информацией, в которой собраны все движения определенных (поступления, списания или обороты).

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

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

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

С точки зрения табличной модели регистр накопления содержит:

  • измерения;
  • ресурсы (может быть либо числовым, либо определяемым );
  • реквизиты.

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

[свернуть]

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

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

Стандартные реквизиты регистра накопления 1С доступны на вкладке "Данные" - "Стандартные реквизиты".

  • Период - дата движения, не обязательно должна совпадать с датой документа;
  • Регистратор - документ, который производит запись в регистре;
  • НомерСтроки - порядковый номер строки в наборе записи, уникален в пределах регистратора;
  • Активность - отвечает за попадание записи в виртуальные таблицы (быстрый способ получения профильной информации из регистров); не может устанавливаться для каждой записи индивидуально в рамках документа-регистратора (может быть выставлен минимум для набора записей);
  • ВидД вижения - приход или расход.

Уникальность записей объекта 1С "Регистры накопления"

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

Уникальность записей в таблице движений регистра накопления определяется полями "Регистратор" и "Номер строки".

[свернуть]

Регистры накопления всегда подчинены документу-регистратору. Поэтому среди их стандартных реквизитов всегда есть " ".

Функциональные возможности регистра накопления 1С

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

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

Для регистров накопления может быть включен режим разделения итогов:

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

[свернуть]

Структура объекта 1С "Регистры накопления"

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

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

Разрезом учета могут являться, например, склад, номенклатура, характеристика номенклатуры, серия номенклатуры, качество.

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

В разрезе разных измерений в дальнейшем, например, можно получать остатки на определенную дату.

Особенности проектирования регистра накопления:

  1. выше всего необходимо ставить измерения, которые будут чаще запрашиваться в системе;
  2. свойство «Индексировать» измерений регистра накопления необходимо устанавливать на измерения в тех случаях, когда по измерению планируется часто накладывать отборы при получении данных и данное измерение может иметь большое количество вариантов значения. Например, имеем регистр «ТоварыНаСкладах» (измерения «Склад, Номенклатура», ресурс - «Количество»). Правильнее проиндексировать «Номенклатуру», а поле»Склад» индексировать не стоит, так как количество складов в системе, как правило, не существенное.

Набор записей регистра накопления

Это коллекция его строк (записей), существующая в памяти компьютера.

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

Максимальное число записей в наборе 999 999 999.

Набор записей регистра накопления может использоваться:

  1. для изменения записей регистра накопления по определенному регистратору;
  2. для добавления записей регистра накопления по определенному регистратору;
  3. для удаления записей регистра накопления по определенному регистратору;
  4. для считывания набора записей по определенному регистратору.

Важно! Отбор может устанавливаться только на равенство.

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

  1. движение прихода ("+") - если должно выполняться увеличение хранимых ресурсов;
  2. движение расхода ("-") - если должно выполняться уменьшение хранимых ресурсов.

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

Обязательный стандартный реквизит регистра накопления - регистратор.

[свернуть]

Регистратор - это документ, при проведении которого формируются записи регистра (т.е. это документ, который может делать движения в регистре накопления).

Записи имеют смысл только в том случае, если регистратор существует; при удалении документа-регистратора записи также будут удалены.

Перечень документов-регистраторов задается на соответствующей закладке "Регистраторы" окна редактирования объекта конфигурации "Регистр накопления".

Рисунок "Закладка "Регистраторы" окна редактирования объекта конфигурации "Регистр накопления"

[свернуть]

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

Большинство алгоритмов создания движения в регистре накопления формируются при проведении документа в (процедура «ОбработкаПроведения»).

Связь объекта 1С "Регистры накопления" с регистратором

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

[свернуть]

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

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

[свернуть]

Особенности работы с регистраторами при проведении документов:

  1. Записи в регистре накопления могут формироваться:
    • при проведении документа;
    • при записи документа;
    • при заполнении документа.
  2. Обязательное условие по отношению к Регистратору при записи данных в регистр накопления : документ-регистратор должен быть записан. Пока документ не записан, в системе нет на него ссылки, а ссылка обязательна для указания в поле "Регистраторы".
  3. Поле "Регистраторы" может содержать не пустую ссылку только на документ регистратор (тип контролируется).
  4. Тип данных поля "Регистраторы" определяется на закладке "Регистраторы" в окне редактирования объекта конфигурации.
  5. Для поля "Регистраторы" можно определить тип ДокументСсылка.<ИмяДокумента>. С писок типов регистраторов вполне конкретен (скриншот выше).
  6. Следует помнить:
    • один регистр накопления может быть связан с любым количеством типов документов;
    • один тип документа может быть связан с любым количеством регистров накопления;
    • при удалении документа-регистратора записи автоматически удаляются из базы;
    • записи могут существовать без наличия документа-регистратора, при использовании плана обмена, что может привести к нарушению ссылочной целостности информационной базы.
  7. Дата документа регистратора никак не связана с периодом регистра. Дата записи регистра определяется программно и может как совпадать с датой документа, так и быть вообще любой иной.

Конструктор движений объекта 1С "Регистры накопления"

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

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

Существует два вида регистров накопления:

  1. регистры накопления остатков (хранит итоговые значения ресурсов - остатки);
  2. регистры накопления оборотов (хранит только изменения этих ресурсов - обороты).

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

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

Агрегаты регистров накопления оборотов

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

Агрегаты - это специальный механизм, реализованный в оборотных регистрах накопления и позволяющий значительно сократить время формирования отчетов.

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

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

Для любого регистра может быть создано несколько агрегатов.

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

Конструктор агрегатов можно вызвать из окна редактирования оборотного регистра накопления (вкладка "Данные").

Форма списка и форма набора записей объекта 1С "Регистры накопления"

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

  1. форму списка регистра накопления - позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям; система может автоматически генерировать эту форму;
  2. форму набора записей регистра накопления - позволяет добавлять, изменять и удалять записи .

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

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

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

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

В-третьих, регистры имеют табличную структуру, но она отличается от структуры объектных таблиц. Так что вы не найдете таких классов, как РегистрСсылка или РегистрОбъект. Состав таблицы регистра зависит от его свойств.

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

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

Терперь поговорим об особенностях каждого вида регистров:

1. Регистры сведений

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

Имеет особое свойство, не используемое в других видах регистров — периодичность.

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

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

2. Регистры накоплений

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

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

3. Регистры бухгалтерии

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

Его основная особенность заключается в возможности учета данных методом двойной записи по принципу Дебет-Кредит. Для реализации возможности формирования проводок Регистр бухгалтерии должен быть связан со специальным объектом - План счетов.

4. Регистры расчета

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

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

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

Регистры накопления в системе 1С:Предприятие делятся на два вида: регистры накопления остатков и регистры накопления оборотов .

Вид регистра выбирается при его создании в конфигураторе

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

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

Регистр накопления оборотов

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

Со стандартной таблицей все понятно. Рассмотрим подробнее виртуальную.

Виртуальная таблица Обороты

Эта таблица позволяет получать оброты ресурсов в разрезе измерений. В нашем случае у нас два измерения: Склад и Товар . И один ресурс — Количество

Пусть в нашем регистре есть следующие записи

Вернемся в конструктор запросов и для начала просто выберем из таблицы ТоварыОбороты.Обороты все поля

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

ВЫБРАТЬ ТоварыОборотыОбороты.Склад, ТоварыОборотыОбороты.Товар, ТоварыОборотыОбороты.КоличествоОборот ИЗ РегистрНакопления.ТоварыОбороты.Обороты(,) КАК ТоварыОборотыОбороты

Результат выполнения запроса выглядить вот так:

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

Для этого исключим из запроса измерение Склад

ВЫБРАТЬ ТоварыОборотыОбороты.Товар, ТоварыОборотыОбороты.КоличествоОборот ИЗ РегистрНакопления.ТоварыОбороты.Обороты(,) КАК ТоварыОборотыОбороты

и в результате у нас останется только две строки

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

После этого наш исходный запрос примет следующий вид

ВЫБРАТЬ ТоварыОборотыОбороты.Склад, ТоварыОборотыОбороты.Товар, ТоварыОборотыОбороты.КоличествоОборот ИЗ РегистрНакопления.ТоварыОбороты.Обороты(&НачалоПериода, &КонецПериода, Склад = &Склад) КАК ТоварыОборотыОбороты

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

У тех кто только начинает работать с виртуальными таблицам зачастую возникает соблазн вместо использования параметров установить отбор привычным способом:

ИЗ РегистрНакопления.ТоварыОбороты.Обороты(,) КАК ТоварыОборотыОбороты ГДЕ ТоварыОборотыОбороты.Склад = &Склад

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

После этого наблюдаем, что в полях таблицы появилось поле Период .

Добавив и его в выбранные поля, получим вот такой текст запроса:

ВЫБРАТЬ ТоварыОборотыОбороты.Период, ТоварыОборотыОбороты.Склад, ТоварыОборотыОбороты.Товар, ТоварыОборотыОбороты.КоличествоОборот ИЗ РегистрНакопления.ТоварыОбороты.Обороты(, Месяц,) КАК ТоварыОборотыОбороты

Выполняем запрос:

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

Регистр накопления остатков

Так же как и с оборотным регистром посмотрим в конструкторе запросов какие же виртуальные таблицы доступны для регистра накопления остатков

Как видим для регистра накопления остатков доступны три виртуальные таблицы: Обороты , Остатки , ОстаткиИОбороты . Рассмотрим каждую из них в отдельности.

Виртуальная таблица Обороты

Несмотря на то, что вид регистра — Остатки , мы тем не менее можем получать по нему и обороты. Плюс у нас здесь есть два дополнительных ресурса: Приход и Расход

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

Виртуальная таблица Остатки

Эта таблица используется для получения остатков ресурсов в разрезе измерений. В параметрах таблицы мы можем указать дату на которую получаем остатки и установить отборы:

Рассмотрим небольшой пример. Имеем следующие записи регистра:

Выберем все доступные поля а в качестве даты получения остатков установим конец июня. Отбор по измерениям устанавливать не будем. Тогда текст запроса будет выглядеть следующим образом:

ВЫБРАТЬ ТоварыОстаткиОстатки.Склад, ТоварыОстаткиОстатки.Товар, ТоварыОстаткиОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыОстатки.Остатки(&ДатаОстатков,) КАК ТоварыОстаткиОстатки

А после его выполнения получим вот такой результат

Виртуальная таблица ОстаткиИОбороты

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

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