Есть типовой отчет УТ 11.3 АнализДоходовРасходов
Есть поле ПрибыльУбыток, формирую отчет и вывожу "Статья доходов / расходов" и "Сумма", там есть как положительные значения так и отрицательные. СКД в режиме предприятия все показывает ок. Сохраняю вариант отчета. И вывожу его программно в таблицу значений. При этом в таблице оказываются только строки с положительными значениями "Сумма". Вот процедура вывода.Куда копать? Заранее спасибо.
Есть поле ПрибыльУбыток, формирую отчет и вывожу "Статья доходов / расходов" и "Сумма", там есть как положительные значения так и отрицательные. СКД в режиме предприятия все показывает ок. Сохраняю вариант отчета. И вывожу его программно в таблицу значений. При этом в таблице оказываются только строки с положительными значениями "Сумма". Вот процедура вывода.Куда копать? Заранее спасибо.
Функция ПолучитьДанныеОтчета(ПараметрыОтчета, ВернутьВсеДанные = Ложь, ВернутьТаблицуРезультат = Ложь)
Ссылка = ВернутьСсылкуНаОтчет(ПараметрыОтчета.НазваниеВариантаОтчета);
Если ТипЗнч(Ссылка.Отчет)=Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
СхемаОст = Отчеты[Ссылка.Отчет.Имя].Создать().СхемаКомпоновкиДанных;
Иначе
РеквизитТипХранилище= Ссылка.Отчет.ХранилищеОбработки;
ИмяВременногоФайла = КаталогВременныхФайлов()+Ссылка.Отчет.ИмяФайла;
ДвоичныеДанные = РеквизитТипХранилище.Получить();
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ВнешнийОтчет = ВнешниеОтчеты.Создать(ИмяВременногоФайла);
СхемаОст = ВнешнийОтчет.СхемаКомпоновкиДанных;
КонецЕсли;
НастройкаОтчета= Ссылка.Настройки.Получить();
КомпоновщикНастроекНастройки = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроекНастройки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаОст));
КомпоновщикНастроекНастройки.ЗагрузитьНастройки(НастройкаОтчета);
//Обновление параметров отчета: период, отборы
Если ЗначениеЗаполнено(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериода")) Тогда //Есть переменная стандартныйпериод
КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериода"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеПериода"));
Иначе
КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеНачалаПериода"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеНачалаПериода"));
КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеОкончанияПериода"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеОкончанияПериода"));
КонецЕсли;
//Для складских отчетов по списаниям, оприходованиям
Если ЗначениеЗаполнено(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериодЦена")) Тогда //Есть переменная стандартныйпериод
КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериодЦена"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеПериодЦена"));
КонецЕсли;
//
Если ЗначениеЗаполнено(ПараметрыОтчета.ДанныеПериода.Получить("ТекущаяДата")) Тогда //Есть переменная стандартныйпериод
КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("ТекущаяДата"), ТекущаяДата());
КонецЕсли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаОст, КомпоновщикНастроекНастройки.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
//
Попытка
Если МакетКомпоновкиДанных.ЗначенияПараметров.ТекущаяДата.Значение = Новый ВыражениеКомпоновкиДанных("ТекущаяДатаСеанса()") Тогда
МакетКомпоновкиДанных.ЗначенияПараметров.ТекущаяДата.Значение = ТекущаяДата();
КонецЕсли;
Исключение
КонецПопытки;
//
Если МакетКомпоновкиДанных.ЗначенияПараметров.Найти("ВалютаУправленческогоУчета")<> Неопределено Тогда
МакетКомпоновкиДанных.ЗначенияПараметров.Найти("ВалютаУправленческогоУчета").Значение = Константы.ВалютаУправленческогоУчета.Получить();
КонецЕсли;
Если МакетКомпоновкиДанных.ЗначенияПараметров.Найти("Валюта")<> Неопределено Тогда
МакетКомпоновкиДанных.ЗначенияПараметров.Найти("Валюта").Значение = Константы.ВалютаУправленческогоУчета.Получить();
КонецЕсли;
//
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДанныеТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ДанныеТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ПоказатьПо теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот