Настройка бухгалтерской и статистической отчетности
Получение и отображение в отчетах данных из составленных ранее отчетов
Среди многообразия отчетных форм, представленных в комплексе БУХта, есть отчеты, данные которых частично совпадают с данными других, уже составленных отчетов. См. раздел Конфигурация ''BuhtaForm''
Например, в отчете «Отчет о движении денежных средств» графа 3 включает данные за отчетный период, а графа 4 – данные за аналогичный период предыдущего года, т.е. данные для графы 4 можно взять из графы 3 «Отчета о движении денежных средств» за аналогичный период предыдущего года, если этот отчет был составлен и сохранен в архиве.

А в отчете «Сведения о финансовом состоянии организации» (форма статистического наблюдения П-3) некоторые данные совпадают с данными отчетов «Бухгалтерский баланс» и «Отчет о прибылях и убытках» за тот же период. Т.о., при составлении отдельных отчетов часть данных можно не собирать заново, а взять из составленных и сохраненных отчетов. Такой подход тем более удобен, что, как показывает практика, данные в уже составленных отчетах зачастую корректируются вручную, и желательно, чтобы эти корректировки были учтены при составлении новых отчетов.
В первых вариантах режимов составления отчетов «Отчет о движении денежных средств» и «Отчет о прибылях и убытках» предлагалось из Архива составленных отчетов выбрать отчет, в котором содержатся данные за предшествующий период. Но это оказалось неудобным, поскольку в архиве может храниться много отчетов, составленных по одному и тому же шаблону за один и тот же период, и трудно определить, какой из них – окончательный вариант отчета. Вот почему возникла необходимость в Таблице, в которой хранились бы показатели из уже составленных отчетов, причем показатели только одного из всех отчетов, составленных по одному и тому же шаблону за один и тот же период по одному юридическому лицу. Именно с этой целью в БУХте добавлена таблица [_Показатели архивных отчетов].
Данные в таблицу [_Показатели архивных отчетов] записываются при создании и изменении отчетов по шаблону второго типа MS Excel, если в шаблоне отчета есть лист «Показатели» строго определенной структуры.

Первые три строки этого листа – заголовок: первая и вторая строка содержат названия и значения общих сведений об отчете - краткое название формы, номер юридического лица, в котором создан отчет, период, за который составляется отчет, дату начала и дату конца этого периода, единицу измерения показателей отчета, название шаблона отчета. Третья строка – заголовок списка показателей, с четвертой строки начинается список показателей, в котором содержатся сведения для выгрузки данных отчета в таблицу [_Показатели архивных отчетов]: номер раздела, номер строки, номер графы, название листа, адрес ячейки (указываются название и полный адрес) и сумма – значение показателя. После создания отчета и сохранения его в Архиве отчетов на экране появляется сообщение-запрос – сохранять ли данные отчета в таблицу [_Показатели архивных отчетов].

Если подтверждение получено, то предварительно из таблицы [_Показатели архивных отчетов] удаляются все показатели, у которых:
- значение поля «Форма» совпадает с кратким названием формы, указанном на листе «Показатели»,
- поле «Дата начала» совпадает со значением в ячейке «Дата начала» и поле «Дата конца» совпадает со значением в ячейке «Дата конца» на листе «Показатели»,
- значение в поле «Шаблон» совпадает с шаблоном, указанном на листе «Показатели»,
- поле «Юр.лицо» совпадает с текущим юр.лицом.
После этого в таблицу заносятся показатели из сохраненного отчета, каждому показателю соответствует одна строка листа «Показатели», начиная с четвертой строки: поля «Форма», «Юр.лицо», «Дата начала», «Дата конца», «Шаблон», «Период» заполняются значениями, указанными в заголовке листа «Показатели» в строке 2, в поле «Ключ отчета» заносится ссылка на сохраненный в архив отчет, в поле «Единица измерения» попадает значение из 8-го столбца («Н») соответствующей строки листа «Показатели», если же ячейка пуста, то - значение из шапки листа «Показатели» (строка 2, столбец 6), в поля «Код строки», «Графа», «Раздел», «Sheet», «Range», «Cell», «Сумма» заносятся значения из ячеек соответствующей строки листа «Показатели».

Впоследствии, при изменении отчета, данные которого уже сохранены в таблице [_Показатели архивных отчетов], все старые данные будут удалены из Таблицы и добавлены заново в соответствии со значениями на листе «Показатели» (без вопроса пользователю). Можно принудительно сохранить показатели отчета в таблице – из списка отчетов в Архиве составленных отчетов по F12 вызвать форму [Стандартная. Сохранение показателей отчета]

В каждом новом шаблоне, показатели которого должны быть сохранены в таблице [_Показатели архивных отчетов], следует создать лист «Показатели» и заполнить его. Три первых строки листа «Показатели» заполняются вручную – копированием трех строк такого же листа из стандартных шаблонов и заменой значений в ячейках, определяющих Форму, Шаблон и единицу измерения на значения, соответствующие новому шаблону. Затем следует заполнить список показателей: номер раздела, номер строки и т.д. Для удобства пользователей написана процедура на VisualBasic, с помощью которой можно заполнить строки на листе «Показатели». Процедуру следует скопировать в Excel-файл нового шаблона из стандартных шаблонов, например, [Стандартный. Сведения о движении ЦБ и доходах 1-ЦБ], [Стандартный. Сведения о сост.расчетов 1-РП (срочн)], [Стандартный. Сведения о производст. и отгрузке П-1], [Стандартный. Осн.сведения о деятельности 1-предпр] или др. Теперь, чтобы добавить показатели из какой-либо таблицы нового шаблона в список на листе «Показатели», следует отметить часть таблицы так, чтобы левая верхняя ячейка совпала с ячейкой на пересечении столбца с кодами строк и строки с номерами столбцов, а правая нижняя ячейка ограничивала область показателей, потом по Alt_F8 вызвать макрос FillRegion, указать в открывшемся окне номер раздела, – и данные из отмеченного сектора таблицы попадут на лист «Показатели» начиная с первой незаполненной строки листа «Показатели».

Затем следует скорректировать лист «Показатели» - удалить строки с теми показателями, которые не выгружаются в таблицу [_Показатели архивных отчетов], для показателей, у которых единица измерения отличается от общей единицы измерения для шаблона, указанной во второй строке листа «Показатели», надо проставить единицу измерения в 8-м столбце соответствующей показателю строки.
Лист «Показатели» можно также использовать для автоматизации заполнения шаблона при создании отчета из пользовательской формы. Пример – форма [Стандартная. Сведения о движении ЦБ и доходах 1-ЦБ]. Перед заполнением шаблона открывается лист «Показатели», по нему заполняется массив с названиями показателей и их адресами в Excel-Книге (название показателя составляется по строго определенному правилу: «s»+Раздел+ «_» + Код строки + «_» + Графа, например, название s1_02_4 соответствует показателю раздела 1 на пересечении строки с кодом 02 и графы 4). Потом определяется запрос для сбора данных. Для каждого показателя из массива ищется колонка запроса, название которой совпадает с названием показателя, и если такая колонка найдена, ее значение попадает в шаблон по адресу, взятому в соответствующей строке листа «Параметры».
Проектирование запросов для составления бухгалтерской и статистической отчетности
Для составления отчетов бухгалтерской отчетности ("Бухгалтерский баланс", "Отчет о прибылях и убытках", "Отчет о движении денежных средств"), а также для статистических отчетов (формы П-1, П-3 и др.) необходимы:
- шаблон отчета;
- запросы для извлечения данных из базы данных;
- пользовательская форма, в которой производится ввод параметров для запроса, инициируется его выполнение и осуществляется расстановка полученных данных (показателей) по надлежащим местам отчета.
Как правило, данными для отчетов (т.е. результатами выполнения запросов) являются:
- сальдо по конкретным счетам бухучета на начало/конец периода;
- обороты по счетам/субсчетам (часто в корреспонденции с определенными счетами/субсчетами) за период;
- суммы (разности) этих сальдо или оборотов;
- значения тех же показателей за предыдущий период.
Таким образом, значения показателей зависят от конкретного плана счетов, в т.ч. от используемых субсчетов ("прочих" - в терминологии комплекса "БУХта").
Ранее при разработке запросов для выбора типа значения каждого показателя (дебетовое или кредитовое сальдо, обороты по дебету или кредиту) и списка счетов, по которым вычисляется сальдо или обороты, использовался универсальный инструмент "SQL-алгоритм", что делало настройку запроса на конкретный план счетов довольно сложной, а скорость выполнения запроса - низкой.
Разработана и реализована принципиально новая схема настройки запросов для печати отчетов. Запросы строятся в соответствии с настройками полей запроса, которые содержатся в специальной таблице [_Настройка форм отчетности].
Для каждого отчета разрабатывается пользовательская форма, преобразующая введенные пользователем и хранящиеся в таблице настройки в последовательность SQL-предложений запроса (секция "SQL-Before").
Форма для настройки вызывается из форм для составления отчетов по кнопке «Редактор списка».
Для одних отчетов достаточно настроить один запрос, для других – два и больше. Так, для отчета [Стандартный. Сведения о производст. и отгрузке П-1] необходимо настроить три разных запроса: [Запрос за отчетный месяц] – для заполнения графы 1, [Запрос за предыдущий месяц] – для заполнения графы 2 и [Запрос за месяц прошлого года] – для заполнения графы 3. В момент составления отчета перед вызовом запросов параметрам «Дата начала» и «Дата конца» автоматически присваиваются разные значения - для запроса за отчетный месяц это - отчетный месяц, указанный на форме, для запроса за предыдущий месяц – месяц, предшествующий отчетному, а для запроса за месяц прошлого года – соответствующий месяц прошлого года.

Для каждого поля запроса указываются:
- [Номер] – определяет название поля запроса,
- [Тип сальдо] – определяет алгоритм расчета
- [Запрос] – название запроса
- [Код формы] – код формы отчета, для печати которого составлен запрос
- [Минус] – признак проставляется, если значение поля следует сторнировать
- [Список счетов, [Свертка счета], [Список корр. счетов], [Список субсчетов], [Доп. условие] – определяют параметры расчета
[Единица измерения] – единица измерения - делитель, на который делится значение поля перед тем, как записывается в отчет
[Округление] – определяет округление результата деления на единицу измерения
Каждый настраиваемый запрос – это запрос по таблице [#Формы отчетности], он состоит из постоянной и изменяемой частей.
Постоянная часть добавляется разработчиком в секцию SQL-Before запроса, включает в себя объявление общих переменных: даты начала и конца периода, за который составляется отчет, единицу измерения и округление для показателей отчета. Этим переменным присваиваются значения, которые передаются из вызывающей пользовательской формы через глобальные переменные в VbSript запроса (примером такого запроса может служить запрос [Стандартный. Форма ПМ/1]).
В постоянную часть включается также вызов процедур для предварительного заполнения вспомогательных таблиц, например, таблицы [#Сводные обороты]. Постоянная часть должны обязательно включать в себя строки
DECLARE
-- Настройка_1_начало --
-- Настройка_1_конец --
-- Настройка_2_начало --
-- Настройка_2_конец --
Переменная часть формируется в момент сохранения запроса в форме [Настройка форм отчетности. Из режима печати отчета], при этом между строками «-- Настройка_1_начало --» и «-- Настройка_1_конец --» автоматически добавляются объявления переменных, их имена образуются добавлением к значению поля «Номер» в настройке префикса «@s». Между строками «-- Настройка_2_начало --» и «-- Настройка_2_конец --» - этим переменным присваиваются значения в зависимости от алгоритма и параметров расчета, определенных в настройке. При сохранении запроса в него также добавляются поля с названиями, соответствующими объявленным переменным, но без первого знака «@».
Рассмотрим подробнее настройку полей запроса с разными типами значений.
1. Если выбран тип «Дебетовое сальдо», «Кредитовое сальдо», «Свернутое сальдо», «Дебет» или «Кредит», следует заполнить поля [Список счетов], [Свертка счета] (и, возможно, [Список корр. счетов], [Список субсчетов], [Доп. условие]), которые определяют параметры вычисления сальдо и оборотов.

При этом в постоянную часть настройки запроса следует включить вызов процедуры для заполнения таблицы [#Сводные обороты]:
TRUNCATE TABLE [#Сводные обороты]
EXEC dbo.[Сводные обороты] @BegDate, @EndDate, @Kontora
Результат – поле запроса объявляется как SQL-число и принимает числовое значение в соответствии с настройкой – сальдо или оборот по счету.
2. Если значение Типа равно «Формула» – в поле «Формула» следует указать числовое значение, поле запроса объявляется как SQL-число и принимает это числовое значение.
3. Если значение Типа равно «Не используется» или «Вычисляется в отчете», то поле запроса объявляется как SQL-число и принимает числовое значение ноль.
4. Если значение Типа равно «Вычисляется в запросе», то поле запроса объявляется как SQL-число, но значение ему не присваивается, его должен присвоить разработчик в постоянной части настройки запроса.
5. Если для поля запроса выбран тип, равный «Показатели из отчетов», то в карточке настройки поля запроса следует отметить в Списке показателей те, которые участвуют в формировании значения поля.

В Список показателей попадают все показатели из таблицы [_Показатели архивных отчетов], сгруппированные по названию показателя, которое формируется как [ПМ рзд.2 стр.06 грф.4], где ПМ – корд формы отчетности, 2 – номер раздела, 06 – код строки, 4 – номер графы. Если в списке отмечено несколько показателей, то по умолчанию они будут переведены в числовые значения и просуммированы. Знаки между показателями в сформированном поле «Показатели» в карточке редактирования можно менять. В запросе переменная, соответствующая этому полю, приравнивается к значению функции [_Показатели из архивных отчетов. Строка] (или к сумме значений функции [_Показатели из архивных отчетов. Число], если складываются несколько показателей). Эти функции выбирают из таблицы [_Показатели архивных отчетов] значения по коду формы, датам начала и конца, номерам раздела, строки и графы по текущему юр.лицу, числовые значения при этом умножаются на единицу измерения, указанную в соответствующем поле таблицы (поскольку единица измерения для показателя, хранящегося в таблице, может не совпадать с единицей измерения в отчете, который составляется по настраиваемому запросу). В запросе вычисленное значение поля делится на единицу измерения и округляется, при этом значение делителя и округления берутся из настройки поля запроса, если же такой настройки нет (т.е. поле «Единица измерения» равно нулю, а поле «Округление» не заполнено), то делитель и округление берутся из значений, указанных напрямую в форме печати отчета для всего шаблона. Так реализована возможность вывода в текущий отчет данных другого отчета, показатели которого сохранены в таблице [_Показатели архивных отчетов]. Поле запроса объявляется как SQL-строка и принимает строковое значение, в которое переводится результат расчетов.
6. SQL-Число - в поле «SQL или значение» следует указать число или SQL-запрос, результатом которого является число. Поле запроса объявляется как SQL-число и принимает значение, соответствующее указанному числу или результату SQL-запроса.
7. SQL-Строка – в поле «SQL или значение» следует указать строку в апострофах или SQL-запрос, результатом которого является строка. Поле запроса объявляется как SQL-строка и принимает строковое значение, соответствующее результату SQL-запроса, или указанной строке.
Настройку полей запросов можно рассмотреть на примере запросов к отчету [Стандартный. Сведения о затратах на продукцию 5-З]. На экране формы перед печатью отчета следует нажать кнопку в левом нижнем углу и перейти к настройке полей запросов.

Надо отметить, что к моменту настройки полей запроса, в списке запросов должен существовать запрос, который настраивается – его должен создать разработчик, в запросе должна присутствовать обязательная часть, VBScript, заполняющий в соответствии со значениями глобальных переменных общие параметры - начало и конец периода, единицу измерения и округление. При этом для отчета [Стандартный. Сведения о затратах на продукцию 5-З] имя запроса формируется следующим образом: «Стандартный. Форма 5-З/1», где «Стандартный. Форма» - общий префикс для всех запросов, «5-З» - код формы, «1» - для запросов за отчетный период, «2» - для запросов за соответствующий период прошлого года, «3» - для запросов за предыдущий месяц.
Сначала следует настроить запрос за отчетный период – нажать соответствующую кнопку на экране. Обычно поля запросов за отчетный период настраиваются по проводкам, т.е. в соответствии с пунктом 1. После того, как поля запроса добавлены в настройку, следует сохранить запрос, нажав кнопку «Сохранить».

Затем можно перейти к настройке запроса за соответствующий период предыдущего года, обычно поля таких запросов настраиваются по таблице [_Показатели архивных отчетов], т.е. им присваивается «Тип сальдо», равный «Показатели из отчетов».

Таким образом, при составлении отчета данные за отчетный период будут браться по оборотам отчетного периода, а данные за соответствующий период прошлого года – из таблицы [_Показатели архивных отчетов], куда они были записаны после создания отчета за период прошлого года. Если же отчетов за прошлый год нет, то запрос за период прошлого год следует настроить так же, как и запрос за отчетный период – по проводкам, и тогда данные за период прошлого года будут собираться по оборотам прошлого года.
Дополнение для версии 2.118 и выше.
В соответствии с Приказом Минфина России от 02.07.2010 N 66н утверждены новые формы «Бухгалтерского баланса» и «Отчета о прибылях и убытках».
В таблицах [_Настройка форм отчетности] и [_Показатели из архивных отчетов] новая форма «Бухгалтерского баланса» имеет код Ф1_2011, новая форма «Отчета о прибылях и убытках» - код Ф2_2011.
Существенные отличия в настройке этих отчетов по сравнению с предыдущими версиями заключаются в следующем:
- добавлены настройки запросов за предыдущий период,
- добавлена возможность сохранения рассчитанных показателей в таблицу [_Показатели из архивных отчетов] и их дальнейшего использования для настройки запросов за предыдущие периоды.
Для составления «Бухгалтерского баланса» необходимо настроить два запроса:
- за отчетный период,
- за предыдущие два года.
Для составления «Отчета о прибылях и убытках» необходимо также настроить два запроса:
- за отчетный период,
- за соответствующий период предыдущего года.
Запросы за предыдущие годы можно рассчитывать по сальдо оборотам, выбрав в карточке настройки для параметра «Тип сальдо» значения «Дебетовое Сальдо», «Кредитовое сальдо», «Свернутое сальдо», для параметра «Тип оборотов» - значения «Дебет», «Кредит», а можно брать из таблицы [_Показатели из архивных отчетов] (если она содержит нужные показатели за предыдущие годы), в этом случае для параметра «Тип сальдо/оборотов» указывается значение «Показатели из отчетов». При этом для настройки «Бухгалтерского баланса» из таблицы [_Показатели из архивных отчетов] по каждой строке выбираются значения [Ф1_2011 рзд.1 стр.<номер строки> грф.1] для формы Ф1_2011, а для «Отчета о прибылях и убытках» по каждой строке выбираются значения [Ф1_2011 рзд.2 стр.<номер строки> грф.1] для формы Ф2_2011.
Дополнение для версии 2.119 и выше.
Изменен «Отчет о движении денежных средств». В таблицах [_Настройка форм отчетности] и [_Показатели из архивных отчетов] новая форма «Отчет о движении денежных средств» имеет код Ф4_2011.
По сравнению с предыдущими версиями в настройку отчета:
- добавлены настройки запросов за предыдущий период; т.о. перед составлением отчета необходимо настроить два запроса: за отчетный период, и за соответствующий период предыдущего года;
- добавлена возможность сохранения рассчитанных показателей в таблицу [_Показатели из архивных отчетов] и их дальнейшего использования для настройки запросов за предыдущие периоды.
Запросы за предыдущие годы можно рассчитывать по сальдо оборотам, выбрав в карточке настройки для параметра «Тип» значения «Дебет», «Кредит», а можно брать из таблицы [_Показатели из архивных отчетов] (если она содержит нужные показатели за предыдущие годы), в этом случае для параметра «Тип» указывается значение «Показатели из отчетов». При этом в случае настройки «Отчета о движении денежных средств» по каждой строке выбираются значения [Ф4_2011 рзд. стр.<номер строки> грф.1] для формы с кодом Ф4_2011.
- Значение «Формула» параметра «Тип» позволяет использовать для настройки одних показателей значения других показателей. Так например, если в поле «Тип» установить значение «Формула», для показателя «4100», который является суммой показателей «4110» и «4120», можно указать значение «s4110+s4120».
- Можно комбинировать типы настроек и фильтров в пределах одного показателя. Так, если требуется для строки с кодом «4121» собрать данные по Дебету счетов 60, 71, 76 и по Кредиту счета 60, заводится два показателя: один - «4121а» со значением «Дебет» в поле «Тип» и значениями «60,71,76» в поле «Список счетов», второй - «4121b» со значением «Кредит» в поле «Тип» и значением «60» в поле «Список счетов».