регистрбухгалтерии хозрасчетный обороты описание параметров

Регистры бухгалтерии. Виртуальная таблица оборотов

Введение

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

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

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

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

Небольшое отступление

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

Для чего нужна таблица оборотов? Правильно, для получения оборотов по счету (внезапно!). При этом можно получить оборот как общий по счету, так и в разрезе аналитики: измерений регистра (организация, валюта, подразделение и т.д.) или субконто счета. И, конечно же, можно получить обороты с учетом кор. счета и кор. аналитики по этому счету.

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

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

Простой пример

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

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

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

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

В чем-то этот запрос похож на предыдущий пример, но значительные отличия все же присутствуют:

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

А если добавить субконто

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

Намешали сразу почти все, что можно в этой виртуальной таблице, кроме кор. счета и аналитики с ресурсами по нему, т.к. об этом позже. Вот какой запрос, а точнее серию запросов, в этом случае сформирует платформа 1С.

Запрос стал больше и сложнее, но на самом деле ничего сверхъестественного тут нет:

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

Данные кор. счета

Немного изменим пример, добавив кор. счет с аналитикой и обороты по количеству (т.к. это не балансовый ресурс) по нему.

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

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

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

Особая периодичность

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

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

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

Производительность запросов

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

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

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

Следующий раунд

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

Регистры бухгалтерии достаточно сложные и «тяжелые» как с точки зрения хранения данных, так и в части использования в разработке. Именно поэтому нужно использовать их для учетных задач, но никак не для оперативного учета. Представьте что было бы, если бы чеки ККМ формировали проводки при проведении 🙂 Прощай розница! :)))

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

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

Источник

Виртуальные таблицы регистра бухгалтерии

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

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

Выборка из регистра бухгалтерии

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

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

Выборка значений субконто:

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

Виртуальные таблицы регистра бухгалтерии

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

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

ДвиженияССубконто

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

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

Данная таблица получается соединением основной таблицы и таблицы значений субконто. Из всех виртуальных таблиц только данная таблица может содержать неактивные записи (поле Активность = Ложь), но при этом в самой таблице есть поле Активность, поэтому неактивные записи можно будет исключить в запросе.

Таблица ДвиженияССубконто имеет следующие параметры:

Данный запрос выберет первые 10 записей за период между &НачДата и &КонДата, с отбором по счету дебета = &СчетДт, выборка будет отсортирована по полю Организация.

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

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

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

Отличия от виртуальной таблицы регистра накопления

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

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

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

В нашем примере в настройках плана счетов было указано максимум два субконто, поэтому в таблице есть два поля для субконто: Субконто1 и Субконто2. Если на каком-то счете присутствует только одно субконто, то в поле Субконто2 будет NULL.

Во-вторых, для каждого ресурса создается по пять полей:

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

Поля ОстатокДт и ОстатокКт рассчитываются по разному, в зависимости от вида счета:

В данном примере счете 41.01 активный, счет 60 — пассивный, а счета 76.01 и 76.02 — активно-пассивные.

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

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

Признак Балансовый у измерений и ресурсов никак не влияет на количество полей.

В-третьих, есть отличие при формировании виртуальной таблицы. Если в таблице итогов последние рассчитанные итоги были за июль 2021 года (то есть в таблице итогов есть запись с датой 01.07.2021 с остатком на конец июня и оборотом за июль), то при получении остатка на 20 июля для регистра накопления будет получен остаток из текущих итогов и по записям таблицы движений за период 20.07.2021 — 01.11.3999 будет досчитан остаток на 20 июля.

У регистра бухгалтерии в одной строке с остатком хранится оборот за текущий месяц, поэтому к остатку на конец июня будет прибавлен дебетовый оборот за июль, вычтен кредитовый оборот за июль, а потом от этого остатка по движениям за 20.07.2021 — 31.07.2021 будет досчитан остаток на 20 июля 2021.

В-четвертых, есть два новых параметра: УсловиеСчета и Субконто:

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

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

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

Источник

Регистры бухгалтерии. Еще одна таблица оборотов ДТ / КТ

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметровВведение

В предыдущей статье «Регистры бухгалтерии. Виртуальная таблица оборотов» мы рассмотрели работу таблицы оборотов регистра бухгалтерии, коснулись некоторых особенностей ее работы как в части формируемых SQL-запросов платформы, так и в части работы с параметрами этой таблицы. Сегодня мы снова вернемся к оборотам, но в этот раз это будет виртуальная таблица «Обороты Дт/Кт».

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

регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть фото регистрбухгалтерии хозрасчетный обороты описание параметров. Смотреть картинку регистрбухгалтерии хозрасчетный обороты описание параметров. Картинка про регистрбухгалтерии хозрасчетный обороты описание параметров. Фото регистрбухгалтерии хозрасчетный обороты описание параметров

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

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

Первый взгляд

Начнем со сравнения таблиц «Обороты» и «ОборотыДтКт». Если смотреть на доступные поля и параметры, то можно выделить следующие различия:

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

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

Проще показать на примере. Допустим, у нас есть вот такой запрос.

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

СчетДтКоличествоОборотДтСчетКтКоличествоОборотКтСуммаОборот
10.11.11 00010.101 0001 000 000

То есть количественный оборот как по ДТ, так и по КТ равен 1000. Оборот по сумме равен 1000000. Далее сделаем примерно такой же запрос, но к таблице «Обороты» с теми же значениями отборов:

Вот такой результат мы получили:

СчетСуммаОборотДтКоличествоОборотДтКорСчетСуммаОборотКтКоличествоОборотКтСуммаОборотКоличествоОборот
10.11.11 000 000100010.10200 00050800 0009950
10.11.120.0110 0002000-10 000-2000
10.11.1264 00025-4 000-25
10.11.144.0120 00050-20 000-50

Мы получили обороты с другими корреспондирующими счетами (44.01, 26, 20.01), но сейчас они нас не интересуют. Просто знаем, что таблица «Обороты» позволила их получить. А вот таблица «ОборотыДтКт» их не показала. Почему? Да потому что в проводках эти счета находятся на стороне ДТ, а мы явно указали отбор по ДТ и они в этот отбор не входят. Таблица же оборотов не учитывает явную сторону проводки, а лишь собирает данные по указанному счету как с дебетовой стороны, так и с кредитовой и группирует показатели в общий результат.

СчетДтСчетКт
44.0110.11.1
2610.11.1
10.11.110.10
10.1010.11.1
20.0110.11.1

Если же мы сделаем в обычной таблице оборотов отбор по счету «10.10» (с которым корреспондировал 10.11.1) и оставим результат только для корреспонденции этих двух счетов, то увидим следующее:

СчетСуммаОборотДтКоличествоОборотДтКорСчетСуммаОборотКтКоличествоОборотКтСуммаОборотКоличествоОборот
10.10200 0005010.11.11 000 0001000-800 000-950

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

Таким образом, для получения оборотов по счету самым эффективным способом является использование виртуальной таблицы «Обороты» без получения данных по кор. счету (об этом мы говорили в предыдущей статье). Если получать корр. аналитику через эту таблицу, то не будут использоваться итоги и запрос может быть тяжелее, чем ожидается. Без корр. аналитики платформа 1С попытается максимально использовать данные таблиц итогов.

Есть, конечно, еще виртуальные таблицы «Остатки» и «ОстаткиИОбороты», но о них речь пойдет в будущих публикациях. Сейчас лишь отмечу, что в некоторых случаях можно использовать и эти таблицы вместо оборотов по ДТ / КТ, но этот случай выходит за рамки публикации.

Спускаемся глубже

Настало время рассмотреть какие запросы формирует платформа 1С при работе с виртуальной таблицей оборотов ДТ / КТ.

Простой запрос

Один небольшой запрос на языке запросов 1С, но большой SQL-запрос на стороне базы данных (на самом деле еще не очень большой).

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

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

Добавим немного параметров

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

И снова один маленький запрос на языке запросов 1С, и уже несколько SQL-запросов на стороне базы данных.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *