Кредитовые обороты по расчетному счету как сформировать в 1с
Большинство организаций пользуются кредитными ресурсами, который необходимо правильно отображать в программе 1С:Бухгалтерия предприятия. Так как данные средства не учитываются как прибыль, а расходы на уплату данного кредита уменьшают сумму на оплату налога. Помимо этого необходимо корректно рассчитывать процент для перечисления в банк. Для верного учета в программе, необходимо знать сумму, процент и срок погашения кредита.
Для регистрации кредитных средств используется документ “Поступление на расчетный счет”, в котором нужно указать обязательно поля:
- Тип операции - “Получение кредита в банке”
- Плательщик - наименование банка, в котором были взяты кредитные средства.
- Договор - договор можно создать за ренее или перейдя сразу с формы документа в список договоров и нажав на кнопку “Создать” сформировать новый договор.
- Счет расчет указать надо 66.01
После внесения всех реквизитов в документ, его следует провести.
После проведения документа проверим проводку используя кнопку “Показать проводки и другие движения документа”
Перейдя в пункт меню “Отчеты” и выбрав “Оборотно сальдовая ведомость по счету” сформируем отчет.
Теперь надо создать документ “Операция, введенная вручную”. Данный документ нужен для начисления процентных платежей.
Для верного расчета суммы процента нужно сумму основного долга умножить на процент и разделить на количество дней в году и умножить на количество дней в среднем в поточном месяце.
Сформировать оборотно - сальдовую ведомость по счету 66.02 видим, что сумма, которую мы указали отобразилась.
Следующим этапом является уплата процентов по кредиту. Для это воспользуемся документом “Списание с расчетного счета”. Данный документ можно формировать на основании платежного поручения так и загрузить с “Клиент - банка”.
Проверим по Оборотно сальдовой ведомости счет 66.02.
Для того чтобы в программе отразить основной долг по кредиту воспользуемся также документом “Списание с расчетного счета”. Однако есть различия между погашением процента и списанием основной суммы долга.
- Тип операции - возврат кредита банку.
- Вид платежа - погашение долга.
- Счет - 66.01
- Статья расходов - погашение кредитов и займов.
Займы в 1С:Бухгалтерия предприятия
В зависимости от того в какой роли выступает организация или предприниматель, займы делятся на два вида - займы выданные и займы полученные.
Организация может выдавать займы следующим лицам: другим организациям или предпринимателю, сотруднику организации, учредителю организации, постороннему физическому лицу.
Договор займа с организацией или физическим лицом
Для правильной формировании аналитики в программе нужно создавать договор, к примеру для контрагента, которому будут выдавать займ. Для это нужно воспользоваться пунктом меню “Справочники” - “Контрагенты”. После чего нужно зайти в карточку контрагента или создать нового и перейти по гиперссылке “Договоры“ и создать договор. Указать “Вид договора” - Прочие. Также вести наименование, для дальнейшей работы и не путаться, для чего был заведен данный договор.
Договор займа для сотрудника организации
Однако, если займ выдается сотруднику организации, то в программе создавать договор не надо, так как для этого используется счет 73.01. Также в зависимости от настройки программы учет в разбивке по договорам займа субсчете не ведется.
Начисление займа в программе
При начислении займа в программе можно использовать как банковские выписки так и расходный кассовый ордер (РКО).
Чтобы перчислить займ на расчетный счет организации или физическому лицу, сформируем документ “Списание с расчетного счета”, в котором указываем следующие реквизиты:
- Вид операции - Выдача займа контрагенту
- Договор - выбираем договор, который создавали для аналитики.
- счет расчетов - устанавливаем 58.03
- Статья расходов - Предоставление займов другим лицам.
Создадим списание с расчетного счета для сотрудника организации.
Начисление беспроцентного займа, предоставленного организации или стороннему физическому лицу
Для начисления данного займа используем 76.09, если перечисления будут проводиться физическому лицу, тогда счет используем 76.10.
Если начисление займа будет формироваться из кассы, то пользователю нужно будет создать документ “Расходной кассовый оредр” (РКО) ( пункт меню “Банк и касса”).
После формирования документов по выдаче, надо отразит в программе начисление процентов по займу. Для этого используем документ “Операции, введенные вручную” с типом “Операция”.
Для отражения процентов от организации используются счета по дебету 76.09 кредит - 91.01. От сотрудника организации проценты будут начисляться по следующим счетам: кредит - 72.01, Дебит - 91.01.
Возврат займа
Для отражение в программе возврата займа воспользуемся документом “Поступление на расчетный счет” , если процент займа будет поступать на расчетный счет организации, которая выдавала займ. Документ “Приходной кассовый орер” (ПКО) - если деньги поступают в кассу организации.
С 01.01.2019 вступил в действие Порядок применения классификации операций сектора государственного управления, утв. приказом Минфина России от 29.11.2017 № 209н. Порядком № 209н установлена детализация статей 560, 660, 730, 830 КОСГУ подстатьями по типам контрагентов - дебиторов/кредиторов в соответствии с Классификацией институциональных единиц.
Согласно пункту 69 Инструкции о порядке составления, представления годовой, квартальной бухгалтерской отчетности государственных (муниципальных) бюджетных и автономных учреждений, утв. приказом Минфина России от 25.03.2011 № 33н (в ред. приказа Минфина России от 16.05.2019 № 73н), в Сведениях по дебиторской и кредиторской задолженности учреждения (ф. 0503769) показатели расчетов отражаются по номерам счетов, содержащих в 24-26 разрядах соответствующую подстатью классификации операций сектора государственного управления (увеличение прочей дебиторской задолженности, увеличение кредиторской задолженности) (графа 1 Сведений (ф. 0503769)).
Однако порядка формирования остатков по счетам расчетов в таком виде инструкции по бухгалтерскому учету не содержали. Поэтому в Сведениях (ф. 0503769) за 2019 и 2020 год остатки по счетам расчетов отражались по номерам счетов без указания в 24-26 разрядах номера счета соответствующей подстатьи КОСГУ.
С целью формирования остатков по счетам расчетов в виде, необходимом для составления отчетности, приказами Минфина России от 28.10.2020 № 246н, от 30.10.2020 № 253н, № 256н изменен порядок формирования входящих остатков на начало очередного финансового года по счетам расчетов. Согласно сноске 6 к Плану счетов бюджетного учета (в ред. Приказа № 246н) по счетам расчетов по дебиторской (кредиторской) задолженности (020500000, 020600000, 020800000, 020900000, 021003000, 021005000, 021010000, 030200000, 030300000, 030402000, 030403000, 030406000), обороты по которым содержат в 24-26 разрядах номера счета подстатьи КОСГУ 560 "Увеличение прочей дебиторской задолженности", 730 "Увеличение прочей кредиторской задолженности", остатки формируются на начало очередного финансового года с отражением в 26 разряде номера счета третьего разряда соответствующих подстатей КОСГУ, отражающего классификацию институциональных единиц.
Аналогичные положения содержатся в Приказах №№ 253н, 256н.
Согласно порядку, действовавшему до 01.01.2021, при завершении текущего финансового года обороты по счетам, отражающим увеличение и уменьшение активов и обязательств, в регистры бухгалтерского учета очередного финансового года не переходили. Это положение было закреплено в пункте 2 Инструкции по применению плана счетов бюджетного учета (утв. приказом Минфина России от 06.12.2010 № 162н), пункте 5 Инструкции по применению Плана счетов бухгалтерского учета бюджетных учреждений (утв. приказом Минфина России от 16.12.2010 № 174н), Инструкции по применению Плана счетов бухгалтерского учета автономных учреждений (утв. приказом Минфина России от 23.12.2010 № 183н).
Приказами №№ 246н, 253н, 256н данные пункты Инструкций были дополнены абзацем:
Выдержка из документа:
"По счетам расчетов по дебиторской (кредиторской) задолженности, обороты по которым содержат в 24-26 разрядах номера счета подстатьи КОСГУ 560 "Увеличение прочей дебиторской задолженности", 730 "Увеличение прочей кредиторской задолженности", остатки формируются с отражением в 26 разряде номера счета третьего разряда соответствующих подстатей КОСГУ, отражающего классификацию институциональных единиц."
Таким образом, начиная с 2021 года обороты (остатки) по счетам, отражающим увеличение и уменьшение активов и обязательств, в конце года закрываются, за исключением оборотов по счетам расчетов по дебиторской (кредиторской) задолженности 020500000, 020600000, 020800000, 020900000, 021003000, 021005000, 021010000, 030200000, 030300000, 030402000, 030403000, 030406000, по которым должны быть сформированы остатки на начало очередного финансового года с отражением в 26 разряде номера счета третьего разряда соответствующих подстатей КОСГУ, отражающего Классификацию институциональных единиц, т. е. остатки по счетам с КОСГУ 001-009.
По общему правилу, входящие остатки на начало очередного финансового года формируются в межотчетный период.
Формирование входящих остатков в "1С:Бухгалтерии государственного учреждения 8"
После отражения в программе всех операций за год вводятся регламентные документы по закрытию года.
Для выполнения заключительных операций по балансовым счетам в конце отчетного года в редакции 2 программы "1С:Бухгалтерия государственного учреждения 8" предназначен документ Закрытие балансовых счетов в конце года (раздел Учет и отчетность - Помощник закрытия периода).
Для закрытия остатков по счетам, отражающим увеличение и уменьшение активов и обязательств, применяется регламентный документ Закрытие оборотных КЭК (раздел Учет и отчетность - Помощник закрытия периода).
Документ Закрытие оборотных КЭК вводится последним днем года - 31 декабря - и формирует проводки в межотчетном периоде с типом Технологические операции.
При проведении документа бухгалтерские записи по завершению счетов формируются в корреспонденции со служебным счетом 000 "Вспомогательный". В результате проведения документа закрываются остатки по рабочим счетам по КЭК (например, 561 и 661 и т. д.) и формируются остатки по КЭК 000.
Начиная с 2021 года документом Закрытие оборотных КЭК закрываются обороты (остатки) по счетам, отражающим увеличение и уменьшение активов и обязательств, кроме счетов расчетов по дебиторской (кредиторской) задолженности.
По счетам расчетов документом Закрытие оборотных КЭК закрываются остатки только по журналам операций.
Далее следует ввести документ Формирование остатков по счетам расчетов (раздел Учет и отчетность - Помощник закрытия периода). Документ вводится датой 31 декабря.
В документе следует указать окончившийся финансовый год. В поле Типовая операция по умолчанию установлена типовая операция Формирование остатков по счетам расчетов.
Для формирования остатков следует нажать кнопку Провести и закрыть (рис. 1).
Остатки по Классификации институциональных единиц (001-009) по счетам расчетов 205.00, 206.00, 208.00, 209.00, 210.03, 210.05, 210.10, 302.00, 303.00, 304.02, 304.03, 304.06 формируются по КЭК, указанным в бухгалтерских остатках.
Формирование КЭК (24-26 разряды номера счета) документом Формирование остатков по счетам расчетов осуществляется в следующем порядке с учетом приоритета:
- Для счетов расчетов, у которых в Плане счетов (ЕПБСУ) заданы подстатьи КОСГУ, с кодом по Классификации институциональных единиц, остатки переносятся на соответствующий код по Классификации институциональных единиц.
- кредитовые остатки по счетам 0.303.ХХ.731 будут перенесены в кредит счета 0.303.ХХ.001;
- дебетовые остатки по счетам 0.303.ХХ.831 будут перенесены в дебет счета 0.303.ХХ.001.
- Для счетов расчетов, в карточке которых не заданы детальные подстатьи КОСГУ, а указаны статьи КОСГУ (группы), новый КЭК остатка определяется по реквизиту Тип контрагента из субконто Контрагенты. Например, по счетам группы 206.30 "Расчеты по авансам по поступлению нефинансовых активов" (рис. 2).
Остатки формируются по такому же принципу, как и детальные КЭК в счетах расчетов при формировании бухгалтерских записей по счетам расчетов. Подробнее о формировании кодов счетов расчетов в 2019 году см. статьи: на сайте 1C:ИТС ; в статье "1С:Бухгалтерия государственного учреждения 8: формирование кодов счетов расчетов в 2019 году".
- Если по счету расчетов в карточке счета не указан детальный КОСГУ и детальный КОСГУ нельзя определить по типу контрагента, в этом случае код по Классификации институциональных единиц будет определяться по детальному КЭК, сформировавшемуся в бухгалтерских остатках.
- Если пункты 1-3 не дали результата, остатки по счетам расчетов формируются по КОСГУ "000".
В результате проведения документа Формирование остатков по счетам расчетов формируются прямые проводки по переносу остатков по счетам расчетов по КЭК на счета, в 26 разряде номера счета которых отражаются коды по Классификации институциональных единиц, то есть на счета с КОСГУ 001-009 (рис. 3).
Из документа можно сформировать Бухгалтерскую справку (ф. 0504833) (кнопка Печать - Справка ф. 0504833).
Таким образом, после проведения документа Формирование остатков по счетам расчетов в отчете Главная книга (ф. 0504072) остатки по счетам расчетов по дебиторской (кредиторской) задолженности на начало следующего финансового года формируются с отражением в 26 разряде номера счета кода по Классификации институциональных единиц.
Вывод остатков по остальным счетам остается прежним - по КОСГУ "000", поскольку при завершении текущего финансового года обороты по счетам, отражающим увеличение и уменьшение активов и обязательств, в регистры бухгалтерского учета очередного финансового года не переходят.
Формирование остатков по счетам расчетов по институциональным единицам впервые производится по состоянию на 01.01.2021. Далее эта операция становится регламентной операцией закрытия года.
Согласно пункту 69 Инструкции № 33н периодичность составления Справки (ф. 0503769) - по состоянию на 1 июля, 1 октября, 1 января года, следующего за отчетным. Таким образом, впервые формировать остатки по кодам Институциональных единиц предстоит в Справке (ф. 0503769) по состоянию на 01.07.2021.
Отметим, что приказом Минфина России от 30.11.2020 № 292н, который на дату подписания номера в печать находится на регистрации в Минюсте России, вносятся изменения в Инструкцию № 33н. Планируется, что согласно подпункту 2 пункта 15 Приложения к Приказу № 292н в пункте 69 абзацы двенадцатый - четырнадцатый будут изложены в следующей редакции:
"В группе граф 5-8 "изменение задолженности" отражаются показатели расчетов по номерам счетов, содержащим в 24-26 разрядах соответствующую подстатью КОСГУ:
обороты расчетов по соответствующим подстатьям КОСГУ статей КОСГУ 560 и 660 с отражением в графе 1 раздела 1 Сведений (ф. 0503769) номера счета аналитического учета счетов 020500000, 020600000, 020800000, 020900000, 021010000, 021005000 с указанием в 24-25 разрядах номера счета нулей, в 26 разряде номера счета третий разряд соответствующей подстатьи КОСГУ "Увеличения прочей дебиторской задолженности";
обороты расчетов по соответствующим подстатьям КОСГУ статей КОСГУ 730 и 830 с отражением в графе 1 раздела 1 Сведений (ф. 0503769) номера счета аналитического учета счетов 030200000, 030300000, 030402000, 030403000, 030406000 с указанием в 24-25 разрядах номера счета нулей, в 26 разряде номера счета третий разряд соответствующей подстатьи КОСГУ "Увеличения прочей кредиторской задолженности"."
Таким образом, начиная с отчета на 01.07.2021 в Сведениях (ф. 0503769) и остатки, и обороты по счетам расчетов будут отражаться в строках с указанием в графе 1 номеров счетов с кодами по Классификации институциональных единиц.
До появления компьютерной техники основной формой ведения бухгалтерского учета в СССР была журнально-ордерная, основанная на использовании журналов-ордеров и вспомогательных ведомостей в качестве учетных регистров*. В настоящее время бухгалтерский и налоговый учет в большинстве организаций ведется автоматически с помощью специальных программ, однако для многих бухгалтеров остались привычными формы журналов-ордеров и ведомостей по счету.
Примечание:
* О журнально-ордерной форме счетоводства читайте в номере 6 (июнь) "БУХ.1С" за 2004 год, стр. 42.
Традиционно журналы-ордера построены на использовании принципа регистрации в них кредитовых оборотов по каждому балансовому счету в корреспонденции с дебетуемыми счетами. Основные формы журналов-ордеров ведутся в сочетании со вспомогательными ведомостями, группирующими записи по дебету счета в корреспонденции с кредитом соответствующих счетов.
"1С:Бухгалтерия 8" позволяет сформировать журнал-ордер и ведомость по любому счету бухгалтерского учета с помощью отчета "Обороты счета" (меню "Отчеты" -> "Обороты счета"). Отчет "Обороты счета" выводит начальный и конечный остаток и обороты выбранного счета за указанный период, детализацию этих оборотов в разрезе корреспондирующих счетов. Данные выводятся с дополнительной разбивкой по периодам времени (по дням, по неделям, по месяцам и т. д.).
Для первоначального формирования отчета "Обороты счета" достаточно в форме отчета указать организацию, период и выбрать счет бухгалтерского учета. После чего нажать кнопку "Сформировать" на командной панели формы отчета. Для примера сформируем отчет "Обороты счета" по счету 60 "Расчеты с поставщиками и подрядчиками" для организации ООО "Белая акация" за I квартал 2006 года (см. рис. 1).
По умолчанию отчет в программе формируется с детализацией по субконто выбранного счета и показывает как дебетовые, так и кредитовые обороты счета, в корреспонденции с другими счетами. В приведенном примере данные в отчете детализированы по субконто счета 60: контрагенты, договоры, документы расчетов с контрагентом.
Для того, чтобы сформировать в программе журнал-ордер или ведомость по счету, нужно выполнить соответствующие настройки отчета "Обороты счета" с помощью кнопки "Настройка…" командной панели формы отчета.
В окне настройки на закладке "Общие" выберем Период - По дням, снимем флажок "Дебет" для "Оборотов со счетами". На закладке "Детализация счета" с помощью кнопки удалим из списка субконто "Контрагенты", "Договоры" и "Документы расчетов с контрагентом" (список субконто на закладке должен быть пустым). После выполнения всех настроек нажмем на кнопку "ОК" в правой нижней части окна настройки (см. рис. 2).
Сформированный отчет содержит все данные, характерные для журнала-ордера (кредитовые обороты счета 60 "Расчеты с поставщиками и подрядчиками" в корреспонденции с дебетуемыми счетами), при этом название отчета остается прежним "Обороты счета 60". Отчет детализирован по дням совершения хозяйственных операций (см. рис. 3).
В окне настройки на закладке "Общие" выберем Период - По дням, установим флажок "Дебет" и снимем флажок "Кредит" для "Оборотов со счетами", правее установим флажок "По субсчетам кор.счетов" для детализации отчета по субсчетам корреспондирующих счетов. На закладке "Детализация счета" список субконто оставим пустым. После выполнения всех настроек нажмем на кнопку "ОК" в правой нижней части окна настройки.
Сформированный отчет содержит все данные, характерные для вспомогательной ведомости к журналу-ордеру (дебетовые обороты счета 60 "Расчеты с поставщиками и подрядчиками" в корреспонденции с кредитуемыми счетами), при этом название отчета остается прежним "Обороты счета 60". Отчет детализирован по дням совершения хозяйственных операций и по субсчетам корреспондирующих счетов.
Если проводить аналогию с программой "1С:Бухгалтерия 7.7", то отчет "Обороты счета" позволяет с помощью настройки его параметров получить как "Журнал-ордер (ведомость) по счету" так и "Журнал-ордер по субконто". Для получения аналога первого отчета нужно в параметрах настройки на закладке "Общие" выбрать "Период" - "По дням", а на закладке "Детализация" удалить из списка все значения субконто, после чего нажать кнопку "ОК" в форме настройки. Чтобы получить раздельно "Журнал ордер" и "Ведомость по счету", нужно выполнить дополнительные настройки, описанные в настоящей статье. Для получения аналога "Журнала-ордера по субконто" достаточно указать в форме отчета "Обороты счета" счет бухгалтерского учета и период, за который нужно получить данные, и нажать кнопку "Сформировать" в командной панели формы отчета.
В предыдущей статье по регистрам бухгалтерии "Регистры бухгалтерии. Настройки, субконто и движения с субконто" мы подробным образом рассмотрели работу настроек этого регистра, а также внутренности виртуальных таблиц "Субконто" и "Движения с субконто". Коснулись некоторых особенностей настроек и их влияние на хранение данных регистра на стороне базы данных.
Сегодня мы продолжим анализ работы регистра, но на этот раз рассмотрим только одну виртуальную таблицу "Обороты". Такая маленькая, и такая интересная!
Все данные для публикации получены с помощью инструментов:
Начнем с простых запросов, которые генерирует платформа 1С, и закончим на особенностях и вопросах производительности.
Небольшое отступление
И так, начнем с простого. Все примеры продолжим делать на той же базе данных, что и в предыдущей статье.
Для чего нужна таблица оборотов? Правильно, для получения оборотов по счету (внезапно!). При этом можно получить оборот как общий по счету, так и в разрезе аналитики: измерений регистра (организация, валюта, подразделение и т.д.) или субконто счета. И, конечно же, можно получить обороты с учетом кор. счета и кор. аналитики по этому счету.
В общем, виртуальная таблица, часто используемая как в отчетах, так и в алгоритмах. Все, кто работает с учетными системами почти всегда сталкиваются с регистрами бухгалтерии и с таблицей оборотов, в частности. В самой знаменитой типовой конфигурации "Бухгалтерия предприятия" эта виртуальная таблица используется в таких отчетах как:
- Анализ состояния учета по налогу на прибыль
- Продажи
- Расшифровка платежей в бюджет
- И еще много-много всего.
Думаю, что необходимость использования этой виртуальной таблицы очевидна. Перейдем к первому примеру и рассмотрим, что именно делает платформа 1С с этой виртуальной таблицей.
Простой пример
Первый запрос имеет мало общего с практическими задачами (и я надеюсь Вы так не делаете на рабочем базе). Получим обороты для всех счетов по сумме и количеству.
Если Вы далаете такие запросы на рабочей базе, то стоит подумать над тем, чтобы от такого отказаться. Почему? Взгляните какой запрос мы имеем на стороне базы данных.
Как мы видим, платформа получает данные из основной таблицы регистра для получения оборотов по указанным ресурсам. Алгоритм такой:
- Получаем обороты из основной таблицы по дебету
- Получаем обороты из основной таблицы по кредиту
- Объединяем полученные данные в единую таблицу и группируем по счету
В принципе все работает логично. Но может появиться вопрос: почему платформа не использует данные итогов? Ведь оптимально было бы получить общие показатели из таблиц итогов, чем рассчитывать все заново по основной таблице. Ответ в этом случае прост - в запросе не установлен отбор по периоду. Чтобы платформа 1С начала использовать таблицы итогов нужно установить фильтр по периоду, как минимум по началу периода.
Например, если в базе установлен период рассчитанных итогов для регистра бухгалтерии с 01.01.2019 по 31.07.2020, то для начала использования итогов начало периода должно быть установлено больше или равным 01.01.2019. Есть нюанс: если поставить дату начала периода меньше даты рассчитанных итогов (но не более чем на 1 месяц), то платформа все равно будет использовать итоги, а для периода до минимальной даты рассчитанных итогов будет сделан запрос к основным таблицам регистра (точнее два запроса - для дебета и для кредита). Вот так стал выглядеть запрос с началом периода.
Чтобы пример был более полным, установим параметр "НачалоПериода" как 10.12.2018, т.е. меньше минимальной даты рассчитанных итогов, но не более чем на 1 месяц. Вот такой запрос будет сформирован к базе данных.
В чем-то этот запрос похож на предыдущий пример, но значительные отличия все же присутствуют:
- В первую очередь данные за тот период, в котором есть рассчитанные итоги, получаются именно из таблицы итогов. В нашем случаев используются итоги между счетами.
- Там, где итоги недоступны платформа 1С собирает данные из основных таблиц регистра (период до расчета итогов и после максимальной даты рассчитанных итогов).
Ранее в одной из статей мы говорили о том, почему рассчитывать итоги очень важно. И снова на примере выше было показано, что если итоги не обслуживаются, то запросы к регистру бухгалтерии будут работать менее эффективно. Давайте перейдем к более сложному примеру.
А если добавить субконто
Настало время усложнить пример и добавить в запрос субконто, отбор по счету и измерению "Организация".
Намешали сразу почти все, что можно в этой виртуальной таблице, кроме кор. счета и аналитики с ресурсами по нему, т.к. об этом позже. Вот какой запрос, а точнее серию запросов, в этом случае сформирует платформа 1С.
Запрос стал больше и сложнее, но на самом деле ничего сверхъестественного тут нет:
- Сначала платформа подготавливает информацию по счету, который используется в отборах и по виду субконто.
- Затем начинается основной запрос, в котором:
- Получаем данные оборотов из таблицы итогов по 2 субконто. Почему именно по этой таблице? Да потому что во всех отборах нашего примера устанавливался счет 51, у которого 2 субконто (банковский счет и статья ДДС). Для получаемых значений также устанавливается фильтр по счету и субконто, а также по организации. Отбор по периоду устанавливается в промежутке от 01.01.2019 (начала периода рассчитанных итогов) до 28.02.2020 включительно.
- Т.к. изначально отбор ставился с 10.12.2018, то платформа делает дополнительных два запроса (по дебету и кредиту) к основным таблицам регистра в период с 10.12.2018 по 31.12.2018, т.к. получить обороты из таблиц итогов за этот период нельзя.
- Дополнительно делаются аналогичные два запроса (по дебету и по кредиту) за 01.03.2020, т.к. именно эта дата установлена как конец периода отбора. Т.к. итоги рассчитываются в разрезе месяца, то получить данные оборотов за один день с их помощью не получится. Именно поэтому и был еще раз сгенерирован запрос к основным таблицам регистра.
- После все полученные данные группируются и возвращаются как результат.
В самом запросе дал исчерпывающие комментарии, внимательно посмотрите на него, чтобы лучше разобраться.
Данные кор. счета
Немного изменим пример, добавив кор. счет с аналитикой и обороты по количеству (т.к. это не балансовый ресурс) по нему.
Сгенерированный платформой 1С запрос очень похож на тот, что было в предыдущем примере, но логика получения данных значительно изменилась.
Т.к. у нас присутствует получение данных по корреспондентскому счету, то итоги в этом случае использовать уже невозможно. В таблице итогов просто нет заранее подготовленных данных для подобных запросов. Поэтому вся информация по оборотом "вытягивается" из основных таблиц регистров.
Будьте осторожны с получением данных оборотов по корреспондирующим счетам и их аналитике.
Особая периодичность
В качестве последнего примера рассмотрим тот же запрос, но с небольшой модификацией - установим параметр виртуальной таблицы "Периодичность" в "Неделя" и посмотрим что будет.
Сформированный SQL-запрос, который в этот раз я оставлю без комментариев, показывает, что и в этом случае таблицы итогов не были задействованы. Подобное поведение характерно и для регистра накопления, которое мы рассматривали в предыдущей статье. Заключается оно в том, что если периодичность установлена меньше месяца, то итоги никаким образом не помогут в получении данных, ведь они рассчитаны в разрезе месяца.
В примере выше уже была ситуация, когда для получения данных за один день платформа формировала SQL-запросы к основным таблицам регистра. Тут схожая ситуация.
Использовать периодичность нужно очень осторожно, т.к. некорректное ее указание может значительно снизить производительность информационной системы.
Производительность запросов
Мы рассмотрели несколько примеров работы виртуальной таблицы "Обороты" регистра бухгалтерии. В контексте производительности напрашиваются такие выводы:
- Для максимальной производительности запросов к виртуальной таблице оборотов необходимо использовать итоги регистра. То есть они должны быть рассчитаны и обслуживаться ежемесячно, сдвигая дату рассчитанных итогов. Об этом мы говорили ранее.
- Даже если итоги в базе рассчитаны и обслуживаются, необходимо придерживаться некоторых правил написания запросов к таблице оборотов, когда это возможно в контексте поставленной задачи:
- Периодичность не должна быть меньше месяца, иначе данные будут запрашиваться из основных таблиц регистра и итоги будут игнорироваться.
- Обязательно нужно указывать период, за который выполняется получение данных оборотов, иначе все данные будут получаться из основных таблиц регистра. Да, если не указать период в таблице оборотов - итоги не будут использоваться. Но Вы же так не делаете, верно?
- Использование корреспондирующих полей (кор. счет или измерения, а также ресурсы) также приводит к отключению использования итогов. Будьте осторожны.
- При работе с оборотами продумайте максимально возможные условия отборов, как минимум по периоду и основным измерениям регистра, счетам и субконто (виду и значениям). Это позволит избежать большинства проблем производительности при использовании этой виртуальной таблицы.
- Для максимальной производительности отборы должны быть максимально селективными. Если Вы получаете обороты за пару лет с указанием отбора только по счету, то потенциальный объем получаемых данных может быть очень большой. В этом случае СУБД может проигнорировать индексы, т.к. ей проще эти данные получить сканированием таблиц.
Таким образом, использовать виртуальную таблицу оборотов регистра бухгалтерии можно и нужно, но стоит учитывать ее особенности работы.
В случае же, когда производительность при получения данных оборотов критична, то необходимо рассмотреть вариант создания отдельного регистра накопления, как это часто можно увидеть в типовых конфигурациях. Регистры накопления работают значительно быстрее с оборотами, т.к. выполняют меньше функций, а структура регистра накопления значительно проще. Да и агрегаты этих регистров, если их использовать с умом, позволяют решать проблемы производительности при получении оборотов практически любого уровня.
Следующий раунд
Среди всех виртуальных таблиц регистров бухгалтерии именно таблица "Обороты" является самой "легкой" как в использовании в запросах, так и с точки зрения потребления ресурсов и производительности. Однако, даже она по производительности часто уступает таблице оборотов регистра накопления и это нормально. Ведь у этих регистров совершенно разные задачи.
Регистры бухгалтерии достаточно сложные и "тяжелые" как с точки зрения хранения данных, так и в части использования в разработке. Именно поэтому нужно использовать их для учетных задач, но никак не для оперативного учета. Представьте что было бы, если бы чеки ККМ формировали проводки при проведении :) Прощай розница! :)))
Все данные для публикации получены с помощью инструментов:
В следующих статьях мы подробнее рассмотрим остальные виртуальные таблицы регистров, а после поднимем тему неплатформенных индексов для них, влияния количества субконто на производительность, а также несколько конкретных кейсов запросов к регистру и их оптимизацию.
Читайте также: