Простая реализация отчета по балансу в УТ 11.4

Набросал клиенту простенький отчет по балансу:

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

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

Сами показатели брал уже из сформированных в этих отчетах данных:

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

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

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

Но решил пойти своим путем.

Среда: 11.4.13.46 Объем: 3 час

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *