Остатки и обороты. Остатки и обороты 1с остатки и обороты по регистратору

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Документы – суть ведения учета в 1С. Каждый документ имеет результат, например пришло товаров +10 шт.

Отчеты – позволяют смотреть результаты. Суммируют эти результаты и показывают пользователю.

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

Документы записывают свои результаты (называют «движения») в специальные таблицы – регистры 1с, которые сами суммируют результаты, чтобы отчет просто отобразил заранее посчитанные итоги.

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

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

Документ, который записал движения в регистр 1С, называют Регистратор. Дата и время движения равны (в 99% случаев) дате документа. Дату движения называют Период.

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

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

Как документ проводится по регистрам?

Движения документа по регистрам 1С

Посмотрим как работают регистры 1С. Вот у нас есть документ поступления товаров, в котором мы видим, что поступил товар Масло на склад Главный.

С точки зрения логики и математики этот документ имеет результат:

Масло кремлевское, Главный склад +10 (шт)

Проверим – так ли это?

Этот пункт меню покажет нам все движения документа, которые он сделал по регистрам. Как мы видим, документ сделал движения по целой куче регистров 1С, в каждый из которых он записал разную информацию (в соответствии с назначением регистра 1С). По регистру 1С Товары на складах он сделал ту проводку, которую мы с Вами рассчитали.

Как же это выглядит в регистре 1С? Откроем регистр 1С через меню Операции.

Открылся регистр 1С. Данных в нем много. Сделаем отбор только по нашему документу.

В результате мы видим движение нашего документа по регистру 1С. Оно ровно совпадает с тем, что мы рассчитали вручную:

  • Плюс – вид движения (приход/расход)
  • Регистратор – наш документ
  • Активность – эта строка движения действительна (то есть не отключена)
  • Номенклатура, основное измерение
  • Склад, дополнительное измерение
  • Количество, ресурс (то есть цифра, которую мы считаем).

Если мы поставим отбор не по документу, а по номенклатуре (точно таким же образом), то мы увидим движения всех документов, которые трогали эту номенклатуру. Один документ – мы купили товар. Другой – продали. Итого естественно сам регистр 1С не показывает – для этого нужно использовать отчет или запрос.

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

Зачем нужны регистры 1С

Регистры 1С бывают разных видов. Цель использования регистра 1С зависит от его вида.

  • Регистры сведений 1С
    Это обычная таблица, как в Excel. Она не имеет никаких движений (приходов/расходов). Регистр сведений 1С обычно используется для хранения дополнительных данных справочников. С помощью регистра сведений 1С можно организовать
  • Регистры бухгалтерии 1С
    С точки зрения пользователя учет ведется на бухгалтерском плане счетов. На самом деле учет ведется в таблице регистров бухгалтерии 1С, которые сделаны в разрезе плана счетов 1С.
  • Регистры накопления 1С (регистр остатков 1С)
    Таблица движения документов + и –, которая автоматически вычисляет итого на начало периода и итого на конец периода. Например движения товара Лопата было +10, а потом -8. Значит остаток на начало был 0, а остаток на конец стал 2.

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

    Регистр остатков 1С используют в том случае, когда у справочника логически может быть остаток. Например, когда мы учитываем движения товаров, то мы будем использовать регистр остатков 1С – ведь мы можем сказать, что товара Лопата осталось 3 штуки.

  • Регистры накопления 1С (регистр оборотов 1С)
    Таблица движения документов + и -, которая не считает итого.

    Регистр оборотов 1С ничем не отличается от регистра остатков, за исключением того, что у него не рассчитываются автоматически остатки.

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

    Например, продажи товаров были +10 (мы продали) а потом -2 (нам вернули). Мы не можем сказать что остаток продаж стал 8, потому что логически понятия остатка продаж не существует, мы скажем что итого оборота (сумма каждой строки оборота) стала 8.

  • Регистры расчетов 1С

    Таблица движений в разрезе видов расчета и периодов. Используется в начислении заработной платы (называют Сложные периодические расчеты).

Где находятся регистры 1С

Проведение документа в коде (в программе) прописывается программистом. Для этого откройте . Найдите строку вида «Процедура ОбработкаПроведения(». Раскройте крестик и Вы видите программу проведения этого документа.

Настройка и разработка Регистров 1С

Основные особенности Регистров 1С, по закладкам:

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

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

Нам бы не плохо было видеть а сколько товара осталось у нас на складе и в каком количестве. Для решения этой задачи мы будем использовать регистр накопления. В примере буду использовать создание регистра накопления в 1С 8.2 но и для 1 8.3 эта инструкция так же подойдет.

Как создать регистр накопления в 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. Нажмите Сформировать.

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

Предположим, что у нас есть 1000 разных документов: поступление товаров, списание, возврат, продажа и т.д. И каждый из документов изменяет количество определенного товара на складе. Чтобы получить информацию о текущем количестве на складе, необходимо перебрать все : какие-то увеличивают количество товара, какие-то уменьшают, какие-то могут и увеличивать, и уменьшать. А если необходимо учитывать еще и склад, организацию?.. Такая система очень ресурсоёмкая.

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

Сам регистр накопления представляет собой таблицу с информацией, в которой собраны все движения (поступления/списания или обороты) определенных документов. Рассмотрим, как выглядит таблица движения, на примере типового регистра накопления «Товары на складах» в конфигурации «Управление торговлей 10.3»:

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

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

Что же такое регистр накопления с точки зрения разработки конфигурации? Начнем, пожалуй, с рассмотрения полей регистра накопления в :

Получите 267 видеоуроков по 1С бесплатно:

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

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

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

Измерения регистра накопления

Измерение — это разрез, в котором ведется учёт. На вышеприведенном примере разрезом учета являются: склад, номенклатура, характеристика номенклатуры, серия номенклатуры, качество . Т.е задав интересующие нас измерения, мы можем в любой момент получить количество — ресурс. В разрезе разных измерений в дальнейшем, например, можно получать остатки на определенную дату.

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

Ресурс — это числовое поле, в котором хранится информация в разрезе измерений, о которых писали выше.

Иначе взаимодействия измерений/ресурсов можно схематично изобразить как систему координат:

Два измерения — абсцисса и ордината системы координат, т.е. на данном примере измерения это склад и номенклатура. На пересечении измерений мы можем получить количество — ресурс. Например, на «основном» складе товара «карандаш» в наличии 1 штука.

Реквизиты регистра накопления 1C

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

Виды регистра накопления

Существует два вида регистра накопления — обороты и остатки .

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

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

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

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

Для регистра накопления это:

  • Остатки;
  • Обороты;
  • Остатки и обороты.

Для разработчика решения данные берутся из одной (виртуальной) таблицы, но на самом деле платформа 1С берёт из множества таблиц, преобразовывая их в нужных вид.

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

Регистры накопления необходимо проектировать из необходимых отчетов. Самое трудное в системе 1С 8.3 — правильно хранить информацию, чтобы её в любой момент было легко получить.

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

Индексация измерений регистра накопления

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

Например, регистр «ТоварыНаСкладах», измерения — «Склад, Номенклатура», ресурс — «Количество».

Правильнее проиндексировать «Номенклатуру», а поле»Склад» индексировать не стоит, потому как количество складов в системе, как правило, не существенное.