Исходные данные:
В конфигурацию Бухгалтерия предприятия 3.0.21.10 добавлен новый счет:
Сальдо на этом счете формируется документом ОперацияБух.
Задача:
Доработать заполнение регламентированной отчетности, чтобы счет 68.13 попадал в Бухгалтерский баланс в строку 1230 – Дебиторская задолженность, и в подчиненную ей строку "Расчеты по налогам и сборам".
Решение:
Так как новую строку в макетах регламентированной отчетности создавать не нужно, то ограничимся лишь изменением алгоритма заполнения данной строки. Непосредственно заполнение регламентированной отчетности вызывается из общего модуля «ЗаполнениеБухгалтерскойОтчетности». Интересуемая нас строка находится во втором разделе, а значит ищем процедуру «ЗаполнитьФормаОтчета2011Кв4_БалансПоГрафеРаздел2».
Мы знаем, что в этой процедуре происходит последовательное заполнение всех строк бухгалтерского баланса, а значит спускаемся ниже по тексту и находим где упоминается интересующая нас строка 1230.
НомерСтроки = "1230"; НаименованиеСтроки = "Дебиторская задолженность"; ИмяОбластиПоказателя = "П000100" + НомерСтроки + Графа; НаименованиеРасшифровки = "Строка "+ НомерСтроки + """" + НаименованиеСтроки + """, графа """ + ЗаголовокГрафы + """";
Убеждаемся, что это именно наша строка 1230 с названием "Дебиторская задолженность" и приступаем к доработке.
Данная строка формируется из значительного числа показателей, но нас интересует именно 68 счет, он находится ниже по тексту:
СчетаРазворачиваемыеПоВидамПлатежейВБюджет = Новый Массив; СчетаРазворачиваемыеПоВидамПлатежейВБюджет.Добавить(Счет("68")); СчетаРазворачиваемыеПоВидамПлатежейВБюджет.Добавить(Счет("69")); БухИтогиРС.РассчитатьИтоги("Хозрасчетный", ИтогиРС, "Сумма", "Счет, Субконто1", НачалоПериодаОтчета, КонецПериодаОтчета, , СчетаРазворачиваемыеПоВидамПлатежейВБюджет, ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ВидыПлатежейВГосБюджет, , , "Организация", Организация); СКДР_68_01_ВидыПлатежей = БухИтогиРС.ПолучитьИтог("СуммаКонечныйРазвернутыйОстатокДт", "Счет", Счет("68.01")); СКДР_68_02_ВидыПлатежей = БухИтогиРС.ПолучитьИтог("СуммаКонечныйРазвернутыйОстатокДт", "Счет", Счет("68.02")); СКДР_68_03_ВидыПлатежей = БухИтогиРС.ПолучитьИтог("СуммаКонечныйРазвернутыйОстатокДт", "Счет", Счет("68.03"));
Здесь мы видим, что формируются развернутые бухгалтерские итоги по счетам 68 и 69. Казалось бы, что нам необходимо лишь по аналогии добавить нашу новую переменную и всё.
СКДР_68_13_ВидыПлатежей = БухИтогиРС.ПолучитьИтог("СуммаКонечныйРазвернутыйОстатокДт", "Счет", Счет("68.13"));
Но есть один неочевидный нюанс. Функция «Счет» не вернет нам нужный счет, потому что в ней перечисленны только заполненные вручную предопределенные счета. А значит нам нужно добавить изменения и в эту функцию.
Ищем удобное место для вставки нашего изменения и получаем, примерно такой код:
Конечно, поиск по коду не самая желательная операция, но так как у нас элемент не предопределенный, то это самый простой вариант.
После этого изменения, наша переменная СКДР_68_13_ВидыПлатежей будет корректно рассчитана. Добавляем её в значение показателя:
И нам осталось добавить это значение в расшифровку. Делаем по аналогии с типовым механизмом и получаем вот такой код:
// 1СLancer Начало ДобавитьСтрокуРасшифровки(ТаблицаРасшифровки, ИмяОбластиПоказателя, "", "+", "Сальдо на конец периода по дебету счета 68.13, развернутое по субконто ""Виды платежей в бюджет (фонды)""", СКДР_68_13_ВидыПлатежей, ИмяРаздела, ДополнительныеПараметрыРасшифровки); // 1CLancer Окончание
На этом первая часть задачи выполнена, осталось добавить наше сальдо по счету 68.13 в дополнительную строку. Для этого находим строку «Расчеты по налогам и сборам» и добавляем полученную ранее нами переменную к Значению показателя, а также не забываем про расшифровку. В итоге получаем вот такой код:
Всё, на этом наша доработка закончена.
Результат:
Получаем корректно заполненный Бухгалтерский баланс с сальдо по добавленному счету: