Простая реализация отчета по балансу в УТ 11.4
Набросал клиенту простенький отчет по балансу:
Простенький, потому что программирования было мало, отчет собирал из данных других отчетов:
Опции = Новый Структура("ОбработатьТекстЗапроса", "ОбработатьТекстЗапросаСебестоимостьПартий"); ПолучитьДанныеОтчета(Контекст, "ВедомостьПоПартиямТоваров", "Запасы для Баланса", "ТЗЗапасы", Опции); ПолучитьДанныеОтчета(Контекст, "ВедомостьПоПартиямТоваров", "Внеоборотные активы для Баланса", "ТЗВнеоборотные", Опции); Опции = Новый Структура("ИмяПериода", "ПериодОтчета"); ПолучитьДанныеОтчета(Контекст, "ВедомостьПоДенежнымСредствам", "Денежные средства для Баланса", "ТЗДеньги", Опции); Опции = Новый Структура("ОбработатьТекстЗапроса", "ОбработатьТекстЗапросаПоКлиентам"); ПолучитьДанныеОтчета(Контекст, "ВедомостьРасчетовСКлиентами", "Дебиторская задолженность для Баланса", "ТЗДебиторка", Опции); Опции = Новый Структура("ОбработатьТекстЗапроса", "ОбработатьТекстЗапросаПоПоставщикам"); ПолучитьДанныеОтчета(Контекст, "ВедомостьРасчетовСПоставщиками", "Кредиторская задолженность для Баланса", "ТЗКредиторка", Опции);
Сами показатели брал уже из сформированных в этих отчетах данных:
Коэффициент = 1/1000; //Считаем внеоборотные активы Сумма = (Контекст.ТЗВнеоборотные.Итог("СебестоимостьНачальныйОстаток") + Контекст.ТЗВнеоборотные.Итог("СебестоимостьКонечныйОстаток")) /2 ; НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Внеоборотные активы"; НСтр.Значение = Сумма * Коэффициент;; НСтр.Раздел = "Активы"; НСтр.Знак = 1; //Считаем запасы Сумма = (Контекст.ТЗЗапасы.Итог("СебестоимостьНачальныйОстаток") + Контекст.ТЗЗапасы.Итог("СебестоимостьКонечныйОстаток")) /2 ; НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Запасы"; НСтр.Значение = Сумма * Коэффициент;; НСтр.Раздел = "Активы"; НСтр.Знак = 1; Сумма = Контекст.ТЗДеньги.Итог("СуммаКонечныйОстаток"); НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Денежные средства"; НСтр.Значение = Сумма * Коэффициент;; НСтр.Раздел = "Активы"; НСтр.Знак = 1; Сумма = Контекст.ТЗДебиторка.Итог("ДолгКлиентаКонечныйОстаток") + Контекст.ТЗКредиторка.Итог("ДолгПоставщикаКонечныйОстаток"); НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Дебиторская задолженность"; НСтр.Значение = Сумма * Коэффициент;; НСтр.Раздел = "Активы"; НСтр.Знак = 1; Сумма = Контекст.ТЗДебиторка.Итог("НашДолгКонечныйОстаток") + Контекст.ТЗКредиторка.Итог("НашДолгКонечныйОстаток"); НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Кредиторская задолженность"; НСтр.Значение = Сумма * Коэффициент;; НСтр.Раздел = "Пассивы"; НСтр.Знак = -1;
Правда, чтобы отчеты формировались, понадобилось повторить код из модулей отчета по формированию текстов запросов, иногда творчески. Возможно, запросы к регистрам были бы проще. Но настройки отчетов пользователь может корректировать сам, исключая ненужные склады, например.
Изначально я видел пример отчета по балансу на СКД с инфостарта, выглядит так:
Но решил пойти своим путем.
Среда: 11.4.13.46 Объем: 3 час
Свежие комментарии