Опубликовано: 14.06.2022

Работа с бухгалтерскими итогами

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

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

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

Контекст работы с бухгалтерскими итогами

Обращение к бухгалтерским итогам выполняется посредством агрегатного объекта типа "БухгалтерскиеИтоги". Объект такого типа предварительно должен быть создан при помощи системной функции СоздатьОбъект(), которой в качестве параметра передаётся ключевое слово «БухгалтерскиеИтоги» (англоязычный синоним — «BookkeepingTotals»).

БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");

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

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

Хранение итогов поддерживается системой с детализацией до месяца. Кроме того, хранятся не все возможные итоги, а те, обращение к которым выполняется наиболее часто — это остатки и обороты по счетам с детализацией по объектам аналитики (субконто), а также обороты между счетами (без учёта аналитики).

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

Режимы работы объекта

Объект "БухгалтерскиеИтоги" может работать в трёх различных режимах:

  • работа с основными итогами;
  • работа с временными итогами;
  • работа в режиме запроса.

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

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

Общие особенности режимов работы

Работа объекта "БухгалтерскиеИтоги" во всех режимах имеет некоторые общие особенности.

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

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

В-третьих, при ведении учёта по нескольким планам счетов или с использованием разделителя учёта на получение итогов в различных режимах запроса влияют установки методов ИспользоватьПланСчетов() и ИспользоватьРазделительУчета().

Метод ИспользоватьПланСчетов() (англоязычный синоним — UseChartOfAccounts()) задаёт план счетов для методов получения итогов и выполнения запроса в тех случаях, когда конкретный счёт не указан или задаётся строкой символов. Возвращаемым значением метода ИспользоватьПланСчетов() является значение данной установки до вызова метода.

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

Синтаксис метода:

ИспользоватьПланСчетов(<ПланСчетов>)

где <ПланСчетов> — значение типа "ПланСчетов". Параметр является необязательным. Если параметр не задан, прежняя установка не меняется.

Пример записи метода:

БухИтоги.ИспользоватьПланСчетов(ПланыСчетов.Рабочий);

Метод ИспользоватьРазделительУчета() (англоязычный синоним — UseAccountingDivision()) задаёт значения разделителя учёта для методов получения итогов и выполнения запроса. Возвращаемым значением метода ИспользоватьРазделительУчета() является значение данной установки до его вызова.

Примечание: Применение данного метода имеет смысл только если используется разделитель учёта.

Синтаксис метода:

ИспользоватьРазделительУчета(<РазделительУчета>)

где <РазделительУчета> — значение разделителя учёта. Параметр является необязательным. Если параметр не задан, прежняя установка не меняется.

Пример записи метода:

БухИтоги.ИспользоватьРазделительУчета(Константа.ОснФирма);

Работа с основными итогами

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

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

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

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

Окно настройки параметров системы

Остатки и обороты по счетам

Для расчёта остатков и оборотов по счетам существует группа функций со сходным синтаксисом и набором параметров:

  • СНД() (англ. IDB()) — возвращает дебетовое сальдо по счёту на начало периода;
  • СНК() (англ. ICB()) — возвращает кредитовое сальдо по счёту на начало периода;
  • СКД() (англ. FDB()) — возвращает дебетовое сальдо по счёту на конец периода;
  • СКК() (англ. FCB()) — возвращает кредитовое сальдо по счёту на конец периода;
  • ДО() (англ. TD()) — возвращает дебетовый оборот по счёту за период;
  • КО() (англ. TC()) — возвращает кредитовый оборот по счёту за период.

Синтаксис:

СНД(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1> ... )
СНК(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1> ... )
СКД(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1> ... )
СКК(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1> ... )
ДО(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1> ... )
КО(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1> ... )

где

  • <Счет> — значение типа "Счет" — счёт расчёта итогов. Может использоваться строка — код счёта;
  • <ТипСуммы> — число или строка — тип возвращаемой суммы. Параметр является необязательным. Может принимать одно из следующих значений:
    • 1 ("С", "S") — сумма (значение по умолчанию);
    • 2 ("В", "С") — валютная сумма;
    • 3 ("К", "А") — количество;
  • <Валюта> — значение типа "Справочник.Валюты". Параметр является необязательным. Если указана валюта, то данные выдаются по конкретной валюте. Если параметр не указан итоги выдаются без учёта валюты;
  • <Субконто1> … — значения субконто. Их количество зависит от настройки субконто для данного счёта. Параметры являются необязательными. Если указаны значения субконто, то данные выдаются по конкретным объектам аналитики. Если параметры не указаны, итоги выдаются без учёта аналитики.

Пример использования:

// Вычисляются остатки на счёте 51 на начало
// и конец периода бухгалтерских итогов.
// Рассчитанные остатки присваиваются переменным
БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");
// Вычислим остаток на расчётном счёте (счёт 51)
// на начало периода
П2623 = БухИтоги.СНД("51");
// Вычислим остаток на расчётном счёте (счёт 51)
// на конец периода
П2624 = БухИтоги.СКД("51");

Обороты между счетами

Функция ОБ() (англоязычный синоним — TO()) предназначена для выдачи перекрёстных оборотов между счетами. Возвращаемым значением функции является число — оборот с дебета счёта <СчетДеб> в кредит счёта <СчетКред>.

Синтаксис:

ОБ(<СчетДеб>, <СчетКред>, <ТипСуммы>, <Валюта>)

где

  • <СчетДеб>, <СчетКред> — значения типа "Счет" — счета дебета и кредита, для которых необходимо выдать перекрестные обороты. Может использоваться строка — код счёта;
  • <ТипСуммы> — число или строка — тип возвращаемой суммы. Параметр является необязательным. Может принимать одно из следующих значений:
    • 1 ("С", "S") — сумма (значение по умолчанию);
    • 2 ("В", "С") — валютная сумма;
    • 3 ("К", "А") — количество;
  • <Валюта> — значение типа "Справочник.Валюты". Параметр является необязательным. Если указана валюта, то данные выдаются по конкретной валюте. Если параметр не указан итоги выдаются без учёта валюты;

Пример записи функции:

КассаБанк = БухИтоги.ОБ("50", "51");

Развёрнутое сальдо по субсчетам

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

  • СНДР() (англ. IDBR()) — возвращает дебетовое развёрнутое сальдо по субсчетам на начало периода;
  • СНКР() (англ. ICBR()) — возвращает кредитовое развёрнутое сальдо по субсчетам на начало периода;
  • СКДР() (англ. FDBR()) — возвращает дебетовое развёрнутое сальдо по субсчетам на конец периода;
  • СККР() (англ. FCBR()) — возвращает кредитовое развёрнутое сальдо по субсчетам на конец периода.

Синтаксис:

СНДР(<Счет>, <ТипСуммы>, <Валюта>)
СНКР(<Счет>, <ТипСуммы>, <Валюта>)
СКДР(<Счет>, <ТипСуммы>, <Валюта>)
СККР(<Счет>, <ТипСуммы>, <Валюта>)

где

  • <Счет> — значение типа "Счет" — счёт, для которого необходимо рассчитать развёрнутое сальдо. Может использоваться строка — код счёта;
  • <ТипСуммы> — число или строка — тип возвращаемой суммы. Параметр является необязательным. Может принимать одно из следующих значений:
    • 1 ("С", "S") — сумма (значение по умолчанию);
    • 2 ("В", "С") — валютная сумма;
    • 3 ("К", "А") — количество;
  • <Валюта> — значение типа "Справочник.Валюты". Параметр является необязательным. Если указана валюта, то данные выдаются по конкретной валюте. Если параметр не указан итоги выдаются без учёта валюты;

Пример использования:

// Для помещения в бухгалтерский баланс вычисляется
// развернутое сальдо по 68 счету,
// учет на котором ведется на субсчетах.
// Дебетовая составляющая должна попасть в актив баланса,
// кредитовая составляющая — в пассив
БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");
// Вычислим дебетовое сальдо на 68 счете
// на начало периода
П2463 = БухИтоги.СНДР("68");
// Вычислим дебетовое сальдо на 68 счете
// на конец периода
П2464 = БухИтоги.СКДР("68");
// Вычислим кредитовое сальдо на 68 счете
// на начало периода
П6263 = БухИтоги.СНКР("68");
// Вычислим кредитовое сальдо на 68 счете
// на конец периода
П6264 = БухИтоги.СККР("68");

Развёрнутое сальдо по субконто

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

  • СНДРС() (англ. IDBRS()) — возвращает дебетовое развёрнутое сальдо по субконто на начало периода;
  • СНКРС() (англ. ICBRS()) — возвращает кредитовое развёрнутое сальдо по субконто на начало периода;
  • СКДРС() (англ. FDBRS()) — возвращает дебетовое развёрнутое сальдо по субконто на конец периода;
  • СККРС() (англ. FCBRS()) — возвращает кредитовое развёрнутое сальдо по субконто на конец периода.

Синтаксис:

СНДРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>,
      <ТипФильтра1>, <Субконто2>, <ТипФильтра2>, ... )

СНКРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>,
      <ТипФильтра1>, <Субконто2>, <ТипФильтра2>, ... )

СКДРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>,
      <ТипФильтра1>, <Субконто2>, <ТипФильтра2>, ... )

СККРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>,
      <ТипФильтра1>, <Субконто2>, <ТипФильтра2>, ... )

где

  • <Счет> — значение типа "Счет" — счёт, для которого необходимо рассчитать развернутое сальдо Может использоваться строка — код счёта;
  • <ТипСуммы> — число или строка — тип возвращаемой суммы. Параметр является необязательным. Может принимать одно из следующих значений:
    • 1 ("С", "S") — сумма (значение по умолчанию);
    • 2 ("В", "С") — валютная сумма;
    • 3 ("К", "А") — количество;
  • <Валюта> — значение типа "Справочник.Валюты". Параметр является необязательным. Если указана валюта, то данные выдаются по конкретной валюте. Если параметр не указан итоги выдаются без учёта валюты;
  • <Субконто1>, <Субконто2> … — значения субконто. Их количество зависит от настройки субконто для данного счёта. Параметры являются необязательными. Если указаны значения субконто, то данные выдаются по конкретным объектам аналитики. Если параметры не указаны, итоги выдаются без учёта аналитики.
  • <ТипФильтра1>, <ТипФильтра2> … — число или строка, определяющие режим использования субконто. Параметр является необязательным. Возможные значения:
    • 1 или "*" — разворачивать по данному субконто (значение по умолчанию для 1-ого субконто);
    • 2 или "!" — отбирать по данному субконто;
    • 3 или " " — не учитывать данное субконто (значение по умолчанию для 2-ого и последующих субконто).

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

Пример:

// Получим развернутое сальдо дебетовое
// на начало периода по счету 60.
// Учет ведется по субконто "Организации"
СР60 = БухИтоги.СНДРС("60");

// Получим развернутое сальдо дебетовое
// на начало периода по счету 10
// конкретному складу в разрезе материалов.
// Учет ведется по субконто "Материалы" и "Склады"
СР10 = БухИтоги.СНДРС("10", 1, , , "*", ВыбСклад, "!");

Методы для установки и получения периода итогов

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

Пример записи метода:

БухИтоги.ОсновныеИтоги();

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

Синтаксис метода:

ПериодД(<ДатаНачалаПериода>, <ДатаКонцаПериода>)

где

  • <ДатаНачалаПериода> — начальная дата периода выдачи итогов;
  • <ДатаКонцаПериода> — конечная дата периода выдачи итогов.

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

Пример записи метода:

БухИтоги.ПериодД('07.01.98', '17.01.98');

Установить квартал в качестве периода расчёта итогов для функций режима основных итогов позволяет метод ПериодКВ() (англоязычный синоним — PeriodQ()). Период, установленный методом, действует до вызова другого метода установки периода.

Синтаксис метода:

ПериодКВ(<ДатаИлиНомерКвартала>, <Год>)

где

  • <ДатаИлиНомерКвартала> — любая дата из квартала, устанавливаемого в качестве периода расчёта итогов, либо порядковый номер квартала — число от 1 до 4;
  • <Год> — год заданный четырёхзначным числом. Параметр является необязательным и используется только, если в первом параметре указан номер квартала.

Пример записи метода:

БухИтоги.ПериодКВ('07.01.98');

Установить в качестве периода расчёта итогов для функций режима основных итогов период с начала года до конца квартала, задаваемого параметрами, позволяет метод ПериодКВН() (англоязычный синоним — PeriodQAccumY()). Период, установленный методом, действует до вызова другого метода установки периода.

Синтаксис метода:

ПериодКВН(<ДатаИлиНомерКвартала>, <Год>)

где

  • <ДатаИлиНомерКвартала> — любая дата из квартала, завершающего период расчёта итогов, либо порядковый номер этого квартала — число от 1 до 4;
  • <Год> — год заданный четырёхзначным числом. Параметр является необязательным и используется только, если в первом параметре указан номер квартала.

Пример записи метода:

БухИтоги.ПериодКВН('07.01.98');

Установить в качестве периода расчёта итогов месяц для функций режима основных итогов позволяет метод ПериодМ() (англоязычный синоним — PeriodM()). Период, установленный методом, действует до вызова другого метода установки периода.

Синтаксис метода:

ПериодМ(<ДатаИлиНомерМесяца>, <Год>)

где

  • <ДатаИлиНомерМесяца> — любая дата из месяца, устанавливаемого в качестве периода расчёта итогов, либо порядковый номер месяца, то есть число от 1 до 12;
  • <Год> — год заданный четырёхзначным числом. Параметр является необязательным и используется только, если в первом параметре указан номер месяца.

Пример записи метода:

БухИтоги.ПериодМ('07.01.98');

Установить период расчёта итогов с начала квартала до конца месяца, задаваемого параметрами, позволяет метод ПериодМНК() (англоязычный синоним — PeriodMAccumQ()). Период, установленный методом, действует до вызова другой функции установки периода.

Синтаксис метода:

ПериодМНК(<ДатаИлиНомерМесяца>, <Год>)

где

  • <ДатаИлиНомерМесяца> — любая дата из месяца, завершающего период расчёта итогов, либо порядковый номер этого месяца, то есть число от 1 до 12;
  • <Год> — год заданный четырёхзначным числом. Параметр является необязательным и используется только, если в первом параметре указан номер месяца.

Пример записи метода:

БухИтоги.ПериодМНК('07.08.98');

Установить в качестве период расчёта итогов период с начала года до конца месяца, задаваемого параметрами, позволяет метод ПериодМНГ() (англоязычный синоним — PeriodMAccumY()). Период, установленный функцией, действует до вызова другой функции установки периода.

Синтаксис метода:

ПериодМНГ(<ДатаИлиНомерМесяца>, <Год>)

где

  • <ДатаИлиНомерМесяца> — любая дата из месяца, завершающего период расчёта итогов, либо порядковый номер этого месяца, то есть число от 1 до 12;
  • <Год> — год заданный четырёхзначным числом. Параметр является необязательным и используется только, если в первом параметре указан номер месяца.

Пример записи метода:

БухИтоги.ПериодМНГ('07.08.98');

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

Пример использования:

Сообщить(ПериодСтр(БухИтоги.НачПериода(), БухИтоги.КонПериода());

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

Пример использования:

Сообщить(ПериодСтр(БухИтоги.НачПериода(), БухИтоги.КонПериода());

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

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

Метод Рассчитать() (англоязычный синоним — Calculate()) выполняет расчёт итогов за период, заданный параметрами. Если из двух параметров периода задан только параметр начала периода, метод вычислит начальные остатки без оборотов. И наоборот, если задан только параметр конца периода, будут вычисленные только конечные остатки. Возвращаемым значением метода является число 1, если расчёт выполнен, или 0, если расчёт не выполнен.

Синтаксис метода:

Рассчитать(<НачалоПериода>, <КонецПериода>, <ФильтрПоСчетам>,
           <ТолькоСинтетика>, <ПланСчетов>, <РазделительУчета>)

где

  • <НачалоПериода> — выражение типа "Дата", документ или позиция документа начала периода расчёта временных итогов. Параметр является необязательным. Если этот параметр не указан, будут вычисляться только конечные сальдо на момент, указанный в параметре <КонецПериода>;
  • <КонецПериода> — выражение типа "Дата", документ или позиция документа конца периода расчёта временных итогов. Параметр является необязательным. Если этот параметр не указан, будут вычисляться только начальные сальдо на момент, указанный в параметре <НачалоПериода>;
  • <ФильтрПоСчетам> — счета, для которых будет выполняться временный расчёт итогов. Задаётся значением типа "Счет" или объектом типа "СписокЗначений", содержащим значения типа "Счет", либо строкой содержащей список кодов счетов, разделённых символом запятая или точкой с запятой. Параметр является необязательным. Если параметр отсутствует, то расчёт выполняется по всем счетам;
  • <ТолькоСинтетика> — число, характеризующее тип расчёта. Возможные значения: 1 — рассчитывать сальдо только по счетам; 0 или отсутствие параметра – рассчитывать сальдо по счетам и по субконто. Параметр является необязательным;
  • <ПланСчетов> — значение типа "ПланСчетов". Ограничивает расчёт одним планом счетов. Параметр является необязательным;
  • <РазделительУчета> — значение разделителя учёта. Ограничивает расчёт одним значением разделителя учёта. Параметр является необязательным;

Пример записи метода:

БухИтоги.Рассчитать(ДатаНач, ДатаКон);

Организовать поддержку временного расчёта итогов в актуальном состоянии позволяет метод Актуальность() (англоязычный синоним — Actual()). При установке объекту "БухгалтерскиеИтоги" признака поддержки в актуальном состоянии, в нём будут отражаться все изменения в итогах, выполняемые операциями. При этом данный актуальный объект "БухгалтерскиеИтоги" смогут автоматически использовать временные расчёты и запросы других объектов "БухгалтерскиеИтоги" с аналогичными фильтрами, что позволяет оптимизировать время расчёта.

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

Синтаксис метода:

Актуальность(<Флаг>)

где <Флаг> — признак актуальности временного расчёта итогов. Параметр является необязательным. Если параметр не задан, то значение не меняется. Возможные значения:

  • 1 — поддерживать временный расчёт в актуальном состоянии;
  • 0 — не поддерживать временный расчёт в актуальном состоянии.

Пример записи метода:

БухИтоги.Актуальность(1);

Организация запроса

Для получения большого количества итогов в различных разрезах объект "БухгалтерскиеИтоги" переключается в режим работы с запросом. Для переключения в этот режим вызывается метод ВыполнитьЗапрос() в параметрах которого, а также дополнительными методами устанавливается состав итогов, которые будут получены запросом. Выполнение данного метода осуществляет выборку данных и их предварительную обработку.

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

Метод ВыполнитьЗапрос() (англоязычный синоним — DoQuery()) выполняет отбор и расчёт итогов за период, задаваемый параметрами. В зависимости от переданных параметров итоги могут быть подготовлены в различных разрезах. Кроме того, на результат запроса влияют дополнительные установки, которые выполняются вызовами специальных методов объекта "БухгалтерскиеИтоги". Возвращаемым значением метода ВыполнитьЗапрос() является число 1, если запрос выполнен, или 0, если запрос не выполнен.

Синтаксис метода:

ВыполнитьЗапрос(<НачПериода>, <КонПериода>, <ФильтрПоСчетам>,
                <ФильтрПоКоррСчет>, <Валюта>, <ТипИтогов>,
                <Периодичность>, <ТипСуммы>)

где

  • <НачПериода> — выражение типа "Дата", документ или позиция документа начала периода запроса. Параметр является необязательным. Если этот параметр не указан, будут вычисляться только конечные сальдо на момент, указанный в параметре <КонПериода>;
  • <КонПериода> — выражение типа "Дата", документ или позиция документа конца периода запроса. Параметр является необязательным. Если этот параметр не указан, будут вычисляться только начальные сальдо на момент, указанный в параметре <НачПериода>;
  • <ФильтрПоСчетам> — счета, для которых будут отбираться итоги в запросе. Задаётся значением типа "Счет" или объектом типа "СписокЗначений", содержащим значения типа "Счет", либо строкой содержащей список кодов счетов, разделённых символом запятая или точка с запятой. Параметр является необязательным. Если параметр отсутствует, то расчёт выполняется по всем счетам;
  • <ФильтрПоКоррСчет> — значение типа "Счет" — корреспондирующий счёт, в корреспонденции с которым будут отбираться итоги счёта, указанного в параметре <ФильтрПоСчетам>. Задаётся значением типа "Счет" или объектом типа "СписокЗначений", содержащим значения типа "Счет", либо строкой содержащей список кодов счетов, разделённых символом запятая или точка с запятой. Параметр является необязательным. Если параметр не указан, будут отбираться итоги в корреспонденции со всеми счетами;
  • <Валюта> — значение типа "Справочник.Валюты". Параметр является необязательным. Если параметр не указан итоги выдаются без учёта валюты;
  • <ТипИтогов> — число, характеризующее тип отбираемых итогов. Параметр является необязательным. Может принимать следующие значения:
    • 1 — остатки и обороты по счёту в целом (значение по умолчанию);
    • 2 — обороты между счетами;
    • 3 — первое и второе вместе.
  • <Периодичность> — необязательный параметр, позволяющий получить дополнительный разрез итогов по периодам. Значением может быть число или строка:
    • 1 ("Период", "Period") — промежуточные итоги не рассчитываются (значение по умолчанию);
    • 2 ("Операция", "Operation") — промежуточные итоги рассчитываются по операциям;
    • 3 ("Проводка", "Entry") — промежуточные итоги рассчитываются по проводкам;
    • 4 ("День", "Day") — промежуточные итоги рассчитываются по дням;
    • 5 ("Неделя", "Week") — промежуточные итоги рассчитываются по неделям;
    • 6 ("Декада", "Decade") — промежуточные итоги рассчитываются по декадам;
    • 7 ("Месяц", "Month") — промежуточные итоги рассчитываются по месяцам;
    • 8 ("Квартал", "Quorter") — промежуточные итоги рассчитываются по кварталам;
    • 9 ("Год", "Year") — промежуточные итоги рассчитываются по годам;
  • <ТипСуммы> — число или строка — тип рассчитываемых итогов. Параметр является необязательным. Может принимать следующие значения:
    • 1 ("С", "S") — рассчитывать суммы;
    • 2 ("В", "С") — рассчитывать валютные суммы;
    • 4 ("К", "А") — рассчитывать количество.

Примечание 1: Если требуется одновременно рассчитывать разные типы сумм, значение параметра <ТипСуммы> следует получить путём сложения допустимых значений, например: 5 — рассчитывать суммы и количество. При указании параметра строкой в ней указываются все символы, которые обозначают типы сумм, которые нужно рассчитывать. По умолчанию рассчитываются все типы сумм.

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

Пример записи метода:

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "60", , 3);

Пример использования предварительно выполненного временного расчёта:

// модуль обработки (запускается в монопольном режиме)
ИтРасчет.Актуальность(1);
 . . .
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Цикл
   ИтРасчет.Рассчитать(, Док.ТекущийДокумент());
    . . .
   Док.Провести();
КонецЦикла;
 . . .

// модуль документа
 . . .
ИтЗапрос.ВыполнитьЗапрос(, Док.ТекущийДокумент(), СчетПоКоду("41"));
 . . .

В данном примере ИтЗапрос.ВыполнитьЗапрос() воспользуется результатами временного расчёта ИтРасчет. Данная возможность может использоваться при групповом перепроведении документов.

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

Установить режим, при котором итоги отбираемые запросом будут разворачиваться по субсчетам соответственно основных и корреспондирующих счетов, позволяет метод ВключатьСубсчета() (англоязычный синоним — IncludeSubAccounts()). Метод должен вызываться до выполнения метода ВыполнитьЗапрос(). Если метод ВключатьСубсчета() не вызвался, разворот итогов по субсчетам не производится.

Синтаксис метода:

ВключатьСубсчета(<ФлагСчета>, <ФлагКоррСчета>)

где

  • <ФлагСчета> — признак развёртывания сальдо по субсчетам основного счёта. Параметр является необязательным. Возможные значения:
    • 0 — не разворачивать по субсчетам (значение по умолчанию);
    • 1 — разворачивать по субсчетам;
    • -1 (минус единица) — не выдавать итоги по счетам-группам.
  • <ФлагКоррСчета> — признак развертывания сальдо по субсчетам корреспондирующего счета. Параметр является необязательным. Возможные значения:
    • 0 — не разворачивать по субсчетам (значение по умолчанию);
    • 1 — разворачивать по субсчетам;
    • -1 (минус единица) — не выдавать итоги по корреспондирующим счетам-группам.

Пример записи метода:

БухИтоги.ВключатьСубсчета(1, 1);

Установить режимы включения в итоги сумм по забалансовым счетам и оборотным субконто позволяет метод Опции() (англоязычный синоним — Options()). Метод должен вызываться до выполнения метода ВыполнитьЗапрос(). Если метод Опции() не вызвался, суммы по забалансовым счетам и оборотным субконто не включаются в запрос.

Синтаксис метода:

Опции(<ВключатьЗабалансовыеСуммы>, <ВключатьОборотныеСубконтоСуммы>)

где

  • <ВключатьЗабалансовыеСуммы> — признак включения в итоги сумм по забалансовым счетам. Возможные значения:
    • 0 — не включаются суммы по забалансовым счетам;
    • 1 — включаются суммы по забалансовым счетам.
  • <ВключатьОборотныеСубконтоСуммы> — признак включения в итоги сумм по оборотным субконто. Возможные значения:
    • 0 — не включаются суммы по оборотным субконто;
    • 1 — включаются суммы по оборотным субконто.

Пример записи метода:

БухИтоги.Опции(1, 1);

Установить режим отбора итогов по субконто позволяет метод ИспользоватьСубконто() (англоязычный синоним — UseSubconto()). Метод следует вызывать до вызова метода ВыполнитьЗапрос(). После выполнения метода ВыполнитьЗапрос() установки метода ИспользоватьСубконто() сбрасываются и перед следующим запросом их нужно устанавливать заново.

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

Синтаксис метода:

ИспользоватьСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)

где

  • <ВидСубконто> — значение типа "ВидСубконто" — расчёт временных итогов будет выполнен только для субконто указанного вида. Задаётся значением типа "ВидСубконто" или строкой содержащей имя идентификатора вида субконто, как он назван в Конфигураторе;
  • <Субконто> — необязательный параметр. Здесь может быть задано или одно конкретное значение субконто, по которому будут отобраны итоги по аналитике или объект типа "СписокЗначений", где можно задать несколько значений субконто. Если параметр не задан, то считается пустым значением субконто;
  • <ТипФильтра> — тип фильтра по субконто. Параметр является необязательным. Может принимать следующие значения:
    • 1 — разворачивать по данному субконто (значение по умолчанию);
    • 2 — отбирать по данному субконто;
    • 3 — не учитывать это субконто вообще.
  • <ПоГруппам> — признак группировки итогов по субконто. Параметр является необязательным и имеет смысл, если параметр <ТипФильтра> равен 1, а вид субконто, заданный параметром <ВидСубконто>, имеет тип значения "Справочник". Параметр может принимать следующие значения:
    • 0 — не показывать итоги по группам справочника (значение по умолчанию);
    • 1 — показывать итоги по группам справочника.

Примечание: Использование параметра <ТипФильтра> со значением 1 (разворачивать) в сочетании с выбранной группой справочника в параметре <Субконто> позволяет получить итоги по всем элементам данной группы.

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

// Данный запрос формирует итоги по счету 10
// в разрезе материалов по одному складу
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы, , 1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Склады, ВыбСклад, 2);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");

Установить режим получения итогов в разрезе корреспондирующих субконто позволяет метод ИспользоватьКорСубконто() (англоязычный синоним — UseCorSubconto()). Данный метод применяется для расчёта перекрестных оборотов между объектами аналитического учёта. Метод следует вызывать до вызова метода ВыполнитьЗапрос(). После выполнения метода ВыполнитьЗапрос() установки метода ИспользоватьКорСубконто() сбрасываются и перед следующим запросом их нужно устанавливать заново.

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

Синтаксис метода:

ИспользоватьКорСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)

где

  • <ВидСубконто> — значение типа "ВидСубконто" — расчёт временных итогов будет выполнен только для субконто указанного вида;
  • <Субконто> — необязательный параметр. Здесь может быть задано или одно конкретное значение субконто, по которому будут отобраны итоги по аналитике или объект типа "СписокЗначений", где можно задать несколько значений субконто. Если параметр не задан, то считается пустым значением субконто;
  • <ТипФильтра> — тип фильтра по субконто. Параметр является необязательным. Может принимать следующие значения:
    • 1 — разворачивать по данному субконто (значение по умолчанию);
    • 2 — отбирать по данному субконто;
    • 3 — не учитывать это субконто вообще.
  • <ПоГруппам> — признак группировки итогов по субконто. Параметр является необязательным и имеет смысл, если параметр <ТипФильтра> равен 1, а вид субконто, заданный параметром <ВидСубконто>, имеет тип значения "Справочник". Параметр может принимать следующие значения:
    • 0 — не показывать итоги по группам справочника (значение по умолчанию);
    • 1 — показывать итоги по группам справочника.

Примечание: Использование параметра <ТипФильтра> со значением 1 (разворачивать) в сочетании с выбранной группой справочника в параметре <Субконто> позволяет получить итоги по всем элементам данной группы.

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

// Данный запрос формирует итоги
// по корреспонденции субконто Товары и Клиенты
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);
БухИтоги.ИспользоватьКорСубконто(ВидыСубконто.Клиенты, , 1);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

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

Открыть выборку счетов, вошедших в запрос, позволяет метод ВыбратьСчета() (англоязычный синоним — SelеctAccounts()). Метод должен использоваться после получения итогов методом ВыполнитьЗапрос(). Возвращаемым значением метода является число 1, если действие выполнено и в выборке есть хотя бы один счёт, или 0, если действие не выполнено или в выборке нет ни одного счёта. Непосредственное извлечение счетов из выборки осуществляется при помощи метода ПолучитьСчет(). Счета извлекаются в порядке возрастания кода счёта.

Синтаксис метода:

ВыбратьСчета(<ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>)

где

  • <ФлагВсе> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включить в выборку все счета, которые имели итоги в данном запросе;
    • 0 — отбирать те счета, которые имели итоги на этом уровне обхода итогов запроса (значение по умолчанию);
    • -1, -2, … -n — включить в выборку счета, которые имели итоги в группировке n-го вышестоящего уровня.
  • <ФлагДК> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включать в выборку счета только с дебетовыми оборотами;
    • 2 — включать в выборку счета только с кредитовыми оборотами;
    • 0 — включать в выборку счета вне зависимости от дебетовых/кредитовых оборотов (значение по умолчанию).
  • <Номер> — положительное целое число – номер выборки. Если параметр не указан, выборке присваивается номер 0 (см. примечание ниже);
  • <РазвСальдо> — признак необходимости рассчитывать развёрнутое сальдо по субконто. Используется только если в запросе участвуют субконто. Возможные значения параметра:
    • 1 — рассчитывать развёрнутое сальдо;
    • 0 — не рассчитать развёрнутое сальдо (значение по умолчанию).

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

Параметр <РазвСальдо> может указываться только, если в запросе установлено участие субконто. Параметр позволяет указать, рассчитывать ли развёрнутое сальдо для субконто выборки. Результаты расчёта могут быть получены при помощи методов СНДРС(), СНКРС(), СКДРС(), СККРС().

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   Сообщить(БухИтоги.Счет.Код + " ДО = " + БухИтоги.ДО());
КонецЦикла;

Выбрать очередной счёт из выборки, предварительно открытой методом ВыбратьСчета(), позволяет метод ПолучитьСчет() (англоязычный синоним — GetAccount()). Счета извлекаются в порядке возрастания кода счёта. Возвращаемым значением метода ПолучитьСчет() является число 1, если следующий счёт выбран успешно, или 0, если следующий счёт не выбран (достигнут конец выборки).

Синтаксис метода:

ПолучитьСчет(<Номер>, <Счет>)

где

  • <Номер> — положительное целое число — номер выборки. Метод позволяет обращаться к результатам выборки по номеру выборки, если предварительно было открыто несколько выборок.;
  • <Счет> — конкретное значение счёта, которое нужно получить из выборки.

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   Сообщить(БухИтоги.Счет.Код + " ДО = " + БухИтоги.ДО());
КонецЦикла;

Открыть выборку корреспондирующих счетов, вошедших в запрос, позволяет метод ВыбратьКорСчета() (англоязычный синоним — SelectCorAccounts()). Метод должен использоваться после получения итогов методом ВыполнитьЗапрос(). Возвращаемым значением метода является число 1, если действие выполнено и в выборке есть хотя бы один счёт, или 0, если действие не выполнено или в выборке нет ни одного счёта. Непосредственное извлечение счетов из выборки осуществляется при помощи метода ПолучитьКорСчет(). Счета извлекаются в порядке возрастания кода счёта.

Синтаксис метода:

ВыбратьКорСчета(<ФлагВсе>, <ФлагДК>, <Номер>)

где

  • <ФлагВсе> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включить в выборку все счета, которые имели итоги в данном запросе;
    • 0 — отбирать те счета, которые имели итоги на этом уровне обхода итогов запроса (значение по умолчанию);
    • -1, -2, … -n — включить в выборку счета, которые имели итоги в группировке n-го вышестоящего уровня.
  • <ФлагДК> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включать в выборку счета только с дебетовыми оборотами;
    • 2 — включать в выборку счета только с кредитовыми оборотами;
    • 0 — включать в выборку счета вне зависимости от дебетовых/кредитовых оборотов (значение по умолчанию).
  • <Номер> — положительное целое число – номер выборки. Если параметр не указан, выборке присваивается номер 0 (см. примечание ниже).

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

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьКорСчета();
   Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
      Сообщить(БухИтоги.КорСчет.Код + " ДО = " + БухИтоги.КорДО());
   КонецЦикла;
КонецЦикла;

Выбрать очередной корреспондирующий счёт из выборки, предварительно открытой при помощи метода ВыбратьКорСчета(), позволяет метод ПолучитьКорСчет() (англоязычный синоним — GetCorAccount()). Возвращаемым значением метода является число 1, если следующий счёт выбран успешно, или 0, если следующий счёт не выбран (достигнут конец выборки).

Синтаксис метода:

ПолучитьКорСчет(<Номер>, <Счет>)

где

  • <Номер> — положительное целое число — номер выборки. Метод позволяет обращаться к результатам выборки по номеру выборки, если предварительно было открыто несколько выборок.;
  • <Счет> — конкретное значение корсчёта, которое нужно получить из выборки.

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьКорСчета();
   Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
      Сообщить(БухИтоги.КорСчет.Код + " ДО = " + БухИтоги.КорДО());
   КонецЦикла;
КонецЦикла;

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

Синтаксис метода:

ВыбратьВалюты(<ФлагВсе>, <ФлагДК>, <Номер>,
              <РазвСальдо>, <Сортировка>)

где

  • <ФлагВсе> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включить в выборку все валюты, которые имели итоги в данном запросе;
    • 0 — отбирать те валюты, которые имели итоги на этом уровне обхода итогов запроса (значение по умолчанию);
    • -1, -2 … -n — включить в выборку валюты, которые имели итоги в группировке n-го вышестоящего уровня.
  • <ФлагДК> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включать в выборку валюты только с дебетовыми оборотами;
    • 2 — включать в выборку валюты только с кредитовыми оборотами;
    • 0 — включать в выборку валюты вне зависимости от дебетовых/кредитовых оборотов (значение по умолчанию).
  • <Номер> — положительное целое число — номер выборки. Параметр является необязательным. Если параметр не указан, выборке присваивается номер 0 (см. примечание ниже);
  • <РазвСальдо> — признак необходимости рассчитывать развёрнутое сальдо по субконто. Используется только если в запросе участвуют субконто. Возможные значения параметра:
    • 1 — рассчитывать развёрнутое сальдо;
    • 0 — не рассчитать развёрнутое сальдо (значение по умолчанию).
  • <Сортировка> — идентификатор реквизита справочника валют, который будет использован для упорядочивания последующего обхода валют методом ПолучитьВалюту(). Параметр является необязательным. Если значение пустое — используется представление справочника.

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

Параметр <РазвСальдо> может указываться только, если в запросе установлено участие субконто. Параметр позволяет указать, рассчитывать ли развёрнутое сальдо для субконто выборки. Результаты расчёта могут быть получены при помощи методов СНДРС(), СНКРС(), СКДРС(), СККРС().

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьВалюты();
   Пока БухИтоги.ПолучитьВалюту() = 1 Цикл
      ДебВ = БухИтоги.ДО(2);
      КредВ = БухИтоги.КО(2);
       . . .
   КонецЦикла;
КонецЦикла;

Выбрать очередную валюту из выборки, открытой при помощи метода ВыбратьВалюты(), позволяет метод ПолучитьВалюту() (англоязычный синоним — GetCurrency()). Возвращаемым значением метода является число 1, если следующая валюта выбрана успешно, или 0, если следующая валюта не выбрана (достигнут конец выборки). Параметры метода являются необязательными.

Синтаксис метода:

ПолучитьВалюту(<Номер>, <Валюта>)

где

  • <Номер> — положительное целое число — номер выборки. Метод позволяет обращаться к результатам выборки по её номеру, если предварительно было открыто несколько выборок;
  • <Счет> — конкретное значение валюты, которое нужно получить из выборки.

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьВалюты();
   Пока БухИтоги.ПолучитьВалюту() = 1 Цикл
      ДебВ = БухИтоги.ДО(2);
      КредВ = БухИтоги.КО(2);
       . . .
   КонецЦикла;
КонецЦикла;

Открыть выборку, содержащую периоды итогов, позволяет метод ВыбратьПериоды() (англоязычный синоним — SelectPeriods()). Метод используется после вызова метода ВыполнитьЗапрос(). Возвращаемым значением метода ВыбратьПериоды() является число: 1 — если действие выполнено и в выборке есть хотя бы один период; 0 — если действие не выполнено или в выборке нет ни одного периода. Непосредственно извлечение периодов из выборки осуществляется при помощи метода ПолучитьПериод().

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

Синтаксис метода:

ВыбратьПериоды(<ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>)

где

  • <ФлагВсе> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включить в выборку все периоды, которые имели итоги в данном запросе;
    • 0 — отбирать те периоды, которые имели итоги на этом уровне обхода итогов запроса (значение по умолчанию);
    • -1, -2, … -n — включить в выборку периоды, которые имели итоги в группировке n-го вышестоящего уровня.
  • <ФлагДК> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включать в выборку периоды только с дебетовыми оборотами;
    • 2 — включать в выборку периоды только с кредитовыми оборотами;
    • 0 — включать в выборку периоды вне зависимости от дебетовых/кредитовых оборотов (значение по умолчанию).
  • <Номер> — положительное целое число — номер выборки. Параметр является необязательным. Если параметр не указан, выборке присваивается номер 0 (см. примечание ниже);
  • <РазвСальдо> — признак необходимости рассчитывать развёрнутое сальдо по субконто. Параметр является необязательным. Он используется, только если в запросе участвуют субконто. Возможные значения параметра:
    • 1 — рассчитывать развёрнутое сальдо;
    • 0 — не рассчитать развёрнутое сальдо (значение по умолчанию).

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

Параметр <РазвСальдо> может указываться только, если в запросе установлено участие субконто. Параметр позволяет указать, рассчитывать ли развёрнутое сальдо для субконто выборки. Результаты расчёта могут быть получены при помощи методов СНДРС(), СНКРС(), СКДРС(), СККРС().

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьПериоды();
   Пока БухИтоги.ПолучитьПериод() = 1 Цикл
      Деб = БухИтоги.ДО();
      Кред = БухИтоги.КО();
       . . .
   КонецЦикла;
КонецЦикла;

Получить очередной период из выборки, открытой при помощи метода ВыбратьПериоды(), позволяет метод ПолучитьПериод() (англоязычный синоним — GetPeriod()). Возвращаемым значением метода является число 1, если следующий период выбран успешно, или 0, если следующий период не выбран (достигнут конец выборки).

Синтаксис метода:

ПолучитьПериод(<Номер>, <ДатаНачалаПериода>)

где

  • <Номер> — положительное целое число — номер выборки. Метод позволяет обращаться к результатам конкретной выборки по её номеру. Параметр является необязательным;
  • <ДатаНачалаПериода> — конкретное значение периода, который нужно получить из выборки. Параметр является необязательным.

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьПериоды();
   Пока БухИтоги.ПолучитьПериод() = 1 Цикл
      Деб = БухИтоги.ДО();
      Кред = БухИтоги.КО();
       . . .
   КонецЦикла;
КонецЦикла;

Открыть выборку субконто, вошедших в запрос, позволяет метод ВыбратьСубконто() (англоязычный синоним — SelectSubconto()). Он используется после вызова метода ВыполнитьЗапрос(). Возвращаемым значением метода ВыбратьСубконто() является число 1, если действие выполнено и в выборке есть хотя бы одно субконто, или 0, если действие не выполнено или в выборке нет ни одного субконто. Непосредственно извлечение субконто из выборки осуществляется при помощи метода ПолучитьСубконто().

Синтаксис метода:

ВыбратьСубконто(<Индекс>, <ФлагВсе>, <ФлагДК>, <Номер>,
                <РазвСальдо>, <Сортировка>, <РежОбхода>)

где

  • <Индекс> — порядковый номер вызова метода ИспользоватьСубконто(). Данный параметр позволяет сослаться на субконто конкретного вида, когда обработка по субконто задаётся путём нескольких вызовов метода ИспользоватьСубконто();
  • <ФлагВсе> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включить в выборку все субконто, которые имели итоги в данном запросе;
    • 0 — отбирать те субконто, которые имели итоги на этом уровне обхода итогов запроса (значение по умолчанию);
    • -1, -2, … -n — включить в выборку субконто, которые имели итоги в группировке n-го вышестоящего уровня.
  • <ФлагДК> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включать в выборку субконто только с дебетовыми оборотами;
    • 2 — включать в выборку субконто только с кредитовыми оборотами;
    • 0 — включать в выборку субконто вне зависимости от дебетовых/кредитовых оборотов (значение по умолчанию).
  • <Номер> — положительное целое число — номер выборки. Параметр является необязательным. Если параметр не указан, выборке присваивается номер 0 (см. примечание ниже);
  • <РазвСальдо> — признак необходимости рассчитывать развёрнутое сальдо. Параметр является необязательным. Возможные значения параметра:
    • 1 — рассчитывать развёрнутое сальдо;
    • 0 — не рассчитать развёрнутое сальдо (значение по умолчанию).
  • <Сортировка> — идентификатор реквизита субконто (если субконто — справочник или документ или счёт), который будет использован для упорядочивания обхода субконто методом ПолучитьСубконто(). Параметр является необязательным. Если значение пустое — используется стандартное представление;
  • <РежОбхода> — число, определяющее порядок выборки результатов. Параметр является необязательным. Возможные значения:
    • 0 — выборка в прямом порядке (значение по умолчанию);
    • 1 — выборка в обратном порядке.

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

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы, , 1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Склады, , 1);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");
БухИтоги.ВыбратьСубконто(1);
Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл
   БухИтоги.ВыбратьСубконто(2);
   Пока БухИтоги.ПолучитьСубконто(2) = 1 Цикл
      Деб = БухИтоги.ДО();
      Кред = БухИтоги.КО();
       . . .
   КонецЦикла;
КонецЦикла;

Получить очередное субконто из выборки, открытой при помощи метода ВыбратьСубконто(), позволяет метод ПолучитьСубконто() (англоязычный синоним — GetSubconto()). Возвращаемым значением метода является число 1, если следующее субконто выбрано успешно, или 0, если следующее субконто не выбрано (отсутствует или достигнут конец выборки). Параметры метода являются необязательными.

Синтаксис метода:

ПолучитьСубконто(<Индекс>, <Номер>, <Субконто>)

где

  • <Индекс> — порядковый номер вызова метода ИспользоватьСубконто();
  • <Номер> — положительное целое число — номер выборки. Метод позволяет обращаться к результатам выборки по номеру выборки;
  • <Субконто> – конкретное значение субконто, которое нужно получить из выборки.

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы, , 1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Склады, , 1);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");
БухИтоги.ВыбратьСубконто(1);
Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл
   БухИтоги.ВыбратьСубконто(2);
   Пока БухИтоги.ПолучитьСубконто(2) = 1 Цикл
      Деб = БухИтоги.ДО();
      Кред = БухИтоги.КО();
       . . .
   КонецЦикла;
КонецЦикла;

Открыть выборку по корреспондирующим субконто, вошедшим в запрос, позволяет метод ВыбратьКорСубконто() (англоязычный синоним — SelectCorSubconto()). Он должен использоваться после вызова метода ВыполнитьЗапрос(). Возвращаемым значением метода является число 1, если действие выполнено и в выборке есть хотя бы одно субконто, или 0, если действие не выполнено или в выборке нет ни одного субконто. Непосредственное извлечение субконто из выборки осуществляется при помощи метода ПолучитьКорСубконто().

Синтаксис метода:

ВыбратьКорСубконто(<Индекс>, <ФлагВсе>, <ФлагДК>,
                   <Номер>, <Сортировка>, <РежимОбхода>)

где

  • <Индекс> — порядковый номер вызова метода ИспользоватьКорСубконто(). Данный параметр позволяет сослаться на субконто конкретного вида, когда обработка по субконто задаётся путём нескольких вызовов метода ИспользоватьКорСубконто();
  • <ФлагВсе> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включить в выборку все субконто, которые имели итоги в данном запросе;
    • 0 — отбирать те субконто, которые имели итоги на этом уровне обхода итогов запроса (значение по умолчанию);
    • -1, -2, … -n — включить в выборку субконто, которые имели итоги в группировке n-го вышестоящего уровня.
  • <ФлагДК> — необязательный параметр, накладывающий дополнительные условия на содержание выборки. Возможные значения параметра:
    • 1 — включать в выборку субконто только с дебетовыми оборотами;
    • 2 — включать в выборку субконто только с кредитовыми оборотами;
    • 0 — включать в выборку субконто вне зависимости от дебетовых/кредитовых оборотов (значение по умолчанию).
  • <Номер> — положительное целое число — номер выборки. Параметр является необязательным. Если параметр не указан, выборке присваивается номер 0 (см. примечание ниже);
  • <Сортировка> — идентификатор реквизита субконто (если субконто — справочник или документ или счёт), который будет использован для упорядочивания обхода субконто методом ПолучитьКорСубконто(). Параметр является необязательным. Если значение пустое — используется стандартное представление;
  • <РежимОбхода> — число, определяющее порядок выборки результатов. Параметр является необязательным. Возможные значения:
    • 0 — выборка в прямом порядке (значение по умолчанию);
    • 1 — выборка в обратном порядке.

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

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Клиенты, , 1);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
   БухИтоги.ВыбратьКорСубконто();
   Пока БухИтоги.ПолучитьКорСубконто() = 1 Цикл
      Деб = БухИтоги.КорДО();
      Кред = БухИтоги.КорКО();
       . . .
   КонецЦикла;
КонецЦикла;

Получить очередное корреспондирующее субконто из выборки, открытой при помощи метода ВыбратьКорСубконто(), позволяет метод ПолучитьКорСубконто() (англоязычный синоним — GetCorSubconto()). Возвращаемым значением метода является число 1, если следующее субконто выбрано успешно, или 0, если следующее субконто не выбрано (отсутствует или достигнут конец выборки). Параметры метода являются необязательными.

Синтаксис метода:

ПолучитьКорСубконто(<Индекс>, <Номер>, <КорСубконто>)

где

  • <Индекс> — порядковый номер вызова метода ИспользоватьКорСубконто();
  • <Номер> — положительное целое число — номер выборки. Метод позволяет обращаться к результатам выборки по номеру выборки;
  • <КорСубконто> — конкретное значение корсубконто, которое нужно получить из выборки.

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Клиенты, , 1);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
   БухИтоги.ВыбратьКорСубконто();
   Пока БухИтоги.ПолучитьКорСубконто() = 1 Цикл
      Деб = БухИтоги.КорДО();
      Кред = БухИтоги.КорКО();
       . . .
   КонецЦикла;
КонецЦикла;

Атрибуты для обращения к результатам запроса

Получить значение текущего счёта, выбранного методом ПолучитьСчет(), позволяет атрибут Счет (англоязычный синоним — Account). Атрибут содержит значение типа "Счет".

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   Сообщить(БухИтоги.Счет.Код + " ДО = " + БухИтоги.ДО());
КонецЦикла;

Получить значение текущего корсчёта, выбранного методом ПолучитьКорСчет(), позволяет атрибут КорСчет (англоязычный синоним — CorAccount). Атрибут содержит значение типа "Счет".

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьКорСчета();
   Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
      Сообщить(БухИтоги.КорСчет.Код + " ДО = " + БухИтоги.КорДО());
   КонецЦикла;
КонецЦикла;

Получить текущую валюту, выбранную методом ПолучитьВалюту(), позволяет атрибут Валюта (англоязычный синоним — Currency). Атрибут содержит значение типа "Справочник.Валюты".

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьВалюты();
      Пока БухИтоги.ПолучитьВалюту() = 1 Цикл
         Сообщить(БухИтоги.Счет.Код + "/" + БухИтоги.Валюта + " ДО = " + БухИтоги.ДО());
   КонецЦикла;
КонецЦикла;

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

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьПериоды();
   Пока БухИтоги.ПолучитьПериод() = 1 Цикл
      Сообщить("С " + БухИтоги.НачДата + " по " + БухИтоги.КонДата + 
               " ДО = " + БухИтоги.ДО());
   КонецЦикла;
КонецЦикла;

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

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьПериоды();
   Пока БухИтоги.ПолучитьПериод() = 1 Цикл
      Сообщить("С " + БухИтоги.НачДата + " по " + БухИтоги.КонДата + 
               " ДО = " + БухИтоги.ДО());
   КонецЦикла;
КонецЦикла;

Обратиться к текущей операции, если запрос получен с детализацией итогов по периоду "Операция" или "Проводка", позволяет атрибут Операция (англоязычный синоним — Operation).

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Проводка");
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьПериоды();
   Пока БухИтоги.ПолучитьПериод() = 1 Цикл
      Сообщить("Проводка " + БухИтоги.Операция.ПредставлениеПроводки());
   КонецЦикла;
КонецЦикла;

Методы для обращения к результатам запроса

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

Синтаксис метода:

Субконто(<НомерИлиВидСубконто>)

где <НомерИлиВидСубконто> — номер выборки субконто (то есть целое положительное число), либо значение типа "ВидСубконто". Параметр является необязательным.

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);
БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
   Сообщить(БухИтоги.Субконто());
КонецЦикла;

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

Синтаксис метода:

КорСубконто(<НомерИлиВидСубконто>)

где <НомерИлиВидСубконто> — номер выборки субконто (то есть целое положительное число), либо значение типа "ВидСубконто". Параметр является необязательным.

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);
БухИтоги.ИспользоватьКорСубконто(ВидыСубконто.Клиенты, , 1);
БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
   БухИтоги.ВыбратьКорСубконто();
   Пока БухИтоги.ПолучитьКорСубконто() = 1 Цикл
      Сообщить(БухИтоги.Субконто() + "-" + БухИтоги.КорСубконто());
   КонецЦикла;
КонецЦикла;

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

Представление может быть задано только для видов субконто типа "Справочник" или "Документ". Формат представления определяется в Конфигураторе при редактировании свойств вида субконто.

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

Синтаксис метода:

ПредставлениеСубконто(<НомерИлиВидСубконто> , <Краткое>)

где

  • <НомерИлиВидСубконто> — номер выборки субконто (то есть целое положительное число), либо значение типа "ВидСубконто". Параметр является необязательным;
  • <Краткое> — числовое значение: 0 — полное представление субконто (значение по умолчанию); 1 — краткое представление субконто.

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);
БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
   Сообщить(БухИтоги.ПредставлениеСубконто());
КонецЦикла;

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

Представление может быть задано только для видов субконто типа "Справочник" или "Документ". Формат представления определяется в Конфигураторе при редактировании свойств вида субконто.

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

Синтаксис метода:

ПредставлениеКорСубконто(<НомерИлиВидСубконто> , <Краткое>)

где

  • <НомерИлиВидСубконто> — номер выборки субконто (то есть целое положительное число), либо значение типа "ВидСубконто". Параметр является необязательным;
  • <Краткое> — числовое значение: 0 — полное представление субконто (значение по умолчанию); 1 — краткое представление субконто.

Пример использования:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);
БухИтоги.ИспользоватьКорСубконто(ВидыСубконто.Клиенты, , 1);
БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
   БухИтоги.ВыбратьКорСубконто();
   Пока БухИтоги.ПолучитьКорСубконто() = 1 Цикл
      Сообщить(БухИтоги.ПредставлениеСубконто() + "-" + БухИтоги.ПредставлениеКорСубконто());
   КонецЦикла;
КонецЦикла;

Определить, является ли текущее значение группировки запроса по субконто группой или нет, позволяет метод ЭтоГруппа() (англоязычный синоним — IsGroup()). Параметры у метода отсутствуют. Возвращаемым значением метода является число 1, если значение группировки по субконто является группой, или 0, если значение группировки по субконто не является группой. Метод можно применять независимо от типа данных вида субконто, однако он имеет смысл только для субконто типа «Справочник», а для остальных выдаёт 0.

Пример использования:

БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
   Если БухИтоги.ЭтоГруппа() = 1 Тогда
      Таб.ВывестиСекцию("Группа");
   Иначе
      Таб.ВывестиСекцию("Строка");
   КонецЕсли;
КонецЦикла;

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

  • СНД() (англ. IDB()) — возвращает дебетовое сальдо по счёту на начало периода;
  • СНК() (англ. ICB()) — возвращает кредитовое сальдо по счёту на начало периода;
  • СКД() (англ. FDB()) — возвращает дебетовое сальдо по счёту на конец периода;
  • СКК() (англ. FCB()) — возвращает кредитовое сальдо по счёту на конец периода;
  • ДО() (англ. TD()) — возвращает дебетовый оборот по счету за период;
  • КО() (англ. TC()) — возвращает кредитовый оборот по счету за период.

Синтаксис:

СНД(<ТипСуммы>)
СНК(<ТипСуммы>)
СКД(<ТипСуммы>)
СКК(<ТипСуммы>)
ДО(<ТипСуммы>)
КО(<ТипСуммы>)

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

  • 1 ("С", "S") — сумма (значение по умолчанию);
  • 2 ("В", "С") — валютная сумма;
  • 3 ("К", "А") — количество.

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   ОстНачД = БухИтоги.СНД();
   ОстНачК = БухИтоги.СНК();
   ОборотД = БухИтоги.ДО();
   ОборотК = БухИтоги.КО();
   ОстКонД = БухИтоги.СКД();
   ОстКонК = БухИтоги.СКК();
    . . .

КонецЦикла;

Для получения доступа к развёрнутым сальдо используется группа методов со сходным синтаксисом:

  • СНДРС() (англ. IDBRS()) — возвращает дебетовое развёрнутое сальдо по счёту на начало периода;
  • СНКРС() (англ. ICBRS()) — возвращает кредитовое развёрнутое сальдо по счёту на начало периода;
  • СКДРС() (англ. FDBRS()) — возвращает дебетовое развёрнутое сальдо по счёту на конец периода;
  • СККРС() (англ. FCBRS()) — возвращает кредитовое развёрнутое сальдо по счёту на конец периода.

Синтаксис:

СНДРС(<ТипСуммы>)
СНКРС(<ТипСуммы>)
СКДРС(<ТипСуммы>)
СККРС(<ТипСуммы>)

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

  • 1 ("С", "S") — сумма (значение по умолчанию);
  • 2 ("В", "С") — валютная сумма;
  • 3 ("К", "А") — количество.

Пример использования:

// В данном примере по каждой организации
// определяется развернутое сальдо по счетам,
// к которым относится вид субконто "Организации"
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Организации, , 1);
БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);
БухИтоги.ВыбратьСубконто(1);
Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл
   ОстНачД = БухИтоги.СНДРС();
   ОстНачК = БухИтоги.СНКРС();
   ОстКонД = БухИтоги.СКДРС();
   ОстКонК = БухИтоги.СККРС();
    . . .

КонецЦикла;

Получить корреспондирующие обороты между счетами или между субконто позволяют методы КорДО() и КорКО() (англоязычные синонимы — CorTD() и CorТС()). Данные методы доступны только при работе с итогами, полученными методом ВыполнитьЗапрос(). Для их использования должны быть организованы выборки методами ВыбратьСчета(), ПолучитьСчет(), ВыбратьКорСчета(), ПолучитьКорСчет() или ВыбратьСубконто(), ПолучитьСубконто(), ВыбратьКорСубконто(), ПолучитьКорСубконто().

Синтаксис:

КорДО(<ТипСуммы>)
КорКО(<ТипСуммы>)

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

  • 1 ("С", "S") — сумма (значение по умолчанию);
  • 2 ("В", "С") — валютная сумма;
  • 3 ("К", "А") — количество.

Пример использования:

// В данном примере в переменных ОбДТ и ОбКТ
// образуются обороты с дебета основного счета
// в кредит корреспондирующего и наоборот 
БухИтоги.ВыполнитьЗапрос(Дата1, Дата2);
БухИтоги.ВыбратьСчета();
Пока БухИтоги.ПолучитьСчет() = 1 Цикл
   БухИтоги.ВыбратьКорСчета();
   Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
      ОбДТ = БухИтоги.КорДО();
      ОбКТ = БухИтоги.КорКО();
       . . .
   КонецЦикла;
КонецЦикла;

Проверить текущую операцию (проводку) на предмет попадания её в запрос по дебетовой или кредитовой корреспонденции позволяют методы ВыбранаПоДт() и ВыбранаПоКт() соответственно (англоязычные синонимы — SelectedByDt() и SelectedByKt()). Методы используются при обходе результатов запроса с детализацией периода по операциям и проводкам. Возвращаемым значением этих методов является число 0, если данный итог по дебету/кредиту не выбран, или 1, если данный итог по дебету/кредиту выбран. Параметры у методов отсутствуют.

Пример использования:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, "50", , , , "Проводка");
БухИтоги.ВыбратьСчета();
БухИтоги.ВыбратьПериоды();
КолПрих = 0;
КолРасх = 0;
Пока БухИтоги.ПолучитьПериод() = 1 Цикл
   Если БухИтоги.ВыбранаПоДт() = 1 Тогда
      КолПрих = КолПрих + 1;
   КонецЕсли;
   Если БухИтоги.ВыбранаПоКт() = 1 Тогда
      КолРасх = КолРасх + 1;
   КонецЕсли;
КонецЦикла;
 . . .

Другие статьи по схожей тематике