При наличии в системе 1С: Предприятие компоненты «Бухгалтерский учет» система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамический пересчет бухгалтерских итогов и их извлечение средствами встроенного языка.
Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций.
Хранение итогов поддерживается системой с детализацией до месяца. В итогах хранятся остатки и обороты по счетам с детализацией по субконто и обороты между счетами (без детализации по субконто).
Обращение к бухгалтерским итогам выполняется при помощи агрегатного объекта типа «БухгалтерскиеИтоги». Объект может работать в трех режимах:
· работа с основными итогами,
· работа с временными итогами,
· работа в режиме запроса.
Объект типа «БухгалтерскиеИтоги» при создании функцией «СоздатьОбъект()» работает в первом режиме. Переключение в другие режимы производится функциями «Рассчитать()» и «ВыполнитьЗапрос()».
Функции «ИспользоватьПланСчетов()» и «ИспользоватьРазделитель Учета()» позволяют назначить план счетов и разделитель учета по которым будут выдаваться итоги.
Работа с основными итогами
В пункте меню «Управление бухгалтерскими итогами» в системе «1С: Предприятие» устанавливается последний рассчитанный период. В режиме работы с основными итогами осуществляется доступ только к итогам по рассчитанный месяц включительно.
Функции работы с итогами:
· ПериодД(< ДатаНач>, < ДатаКон>) – установка периода итогов
· СНД(< Cчет>, < ТипСуммы>, < Валюта>, < Cубконто1>, …) – сальдо начальное дебетовое;
· СНК() – сальдо начальное кредитовое;
· СКД() – сальдо конечное дебетовое;
· СКК() – сальдо конечное кредитовое;
· ДО() – дебетовый оборот по счету за период;
· КО() – кредитовый оборот по счету за период;
Параметры: < Cчет> – счет, < ТипСуммы> = 1 – сумма, 2 – валютная сумма, 3 – количество, < Валюта> – значение типа “Справочник.Валюты”, < Субконто1> – значение первого субконто счета, < Субконто2> – значение второго субконто счета и т.д.
· ОБ(< СчетДеб>, < СчетКред>, < ТипСуммы>, < Валюта>) – обороты между счетами;
Для получения остатков и оборотов по счетам, имеющим субсчета, используются аналогичные функции: СНДР(), СКДР(), СКДР(), СККР().
Работа с временными итогами
Чтобы получить итоги на любую дату нужно выполнять временный расчет (временный, потому что он хранится только во время существования переменной типа «БухгалтерскиеИтоги») с помощью функции
Рассчитать(< ДатаНач>, < ДатаКон>, < ФильтрПоСчетам>, < ТолькоСинтетика>, < ПланСчетов>, < РазделительУчета>).
В параметре < ФильтрПоСчетам> можно задать в виде строки список счетов, разделенных запятой или точкой с запятой, по которым будет делаться расчет. Если параметр < ТолькоСинтетика> = 1, то расчет будет делаться только по счетам, иначе по счетам и субконто.
Работа в режиме запроса
Для получения большего количества итогов (обороты и остатки по разным видам группировок) используется режим запроса.
Выполнение запроса
Перед выполнением запроса устанавливаются различные фильтры:
· ВключатьСубсчета() – устанавливать режим отбора по субсчетам.
· ИспользоватьСубконто(< ВидСубконто>, < Значение>, < ТипФильтра>, < ПоГруппам>) – устанавливать режим отбора итогов в разрезе субконто. Параметр < ВидСубконто> задается выражением типа “ВидСубконто” или строкой, содержащей имя идентификатора вида субконто. Параметр < Значение> задает конкретное значение субконто. Если < ТипФильтра> =1, тогда итоги будут разворачиваться по этому виду субконто. Если < ТипФильтра> =2, тогда итоги будут отбираться по значению субконто. Если < ТипФильтра> =3, тогда это субконто вообще не будет учитываться.
· Функцию ИспользоватьСубконто() можно выполнять несколько раз для задания в запросе нескольких видов субконто. Обращение к субконто производится по порядковому номеру (порядок определяется последовательностью команд «ИспользоватьСубконто()»).
· ИспользоватьКорСубконто(< ВидСубконто>, < Значение>, < ТипФильтра>, < ПоГруппам>) – устанавливать режим отбора итогов по корреспондирующим счетам в разрезе субконто.
Затем выполняется сам запрос функцией ВыполнитьЗапрос(< ДатаНач>, < ДатаКон>, < ФильтрПоСчетам>, < ФильтрПоКорСчетам>, < Валюта>, < ТипИтогов>, < Периодичность>, < ТипСуммы>),
которая возвращает 1, если запрос выполнился успешно.
Параметр < ТипИтогов> принимает следующие значения: 1 – остатки и обороты по счетам, 2 – обороты между счетами, 3 – и то и другое.
Параметр < Периодичность> может принимать следующие значения:
1 («Период») – промежуточные итоги не рассчитываются;
2 («Операция») – промежуточные итоги рассчитываются по операциям;
3 («Проводка») – по проводкам;
4 («День») – по дням;
5 («Неделя») – по неделям;
6 («Декада») – по декадам;
7 («Месяц») – по месяцам;
8 («Квартал») – по кварталам;
9 («Год») – по годам;
Обращение к результатам запроса
Для перебора группировок используются следующие функции:
· ВыбратьСчета(), ПолучитьСчет();
· ВыбратьКорСчета(), ПолучитьКорСчет();
· ВыбратьВалюты(), ПолучитьВалюту();
· ВыбратьПериоды(), ПолучитьПериод();
· ВыбратьСубконто(), ПолучитьСубконто();
· ВыбратьКорСубконто(), ПолучитьКорСубконто();
Функции получения остатков и оборотов такие же, как и при работе с основными итогами.
Пример.
БИ=СоздатьОбъект(«БухгалтерскиеИтоги»);
БИ.ИспользоватьСубконто(«Номенклатура»);
БИ.ВыполнитьЗапрос(Дата1, Дата2, «41.1»);
БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет()=1 Цикл
// выводим итоги по счету
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто()=1 Цикл
// выводим итоги по субконто
Сообщить(«Остаток на начало по счету» + БИ.Счет.Код + «товара» + БИ.Субконто(1)+Строка(БИ.СНД(3)) + «ед.»);
КонецЦикла;
КонецЦикла;
|