Глюк при выводе СКД в таблицу значений

1. janibeg 2 09.08.24 10:06 Сейчас в теме
Есть типовой отчет УТ 11.3 АнализДоходовРасходов
Есть поле ПрибыльУбыток, формирую отчет и вывожу "Статья доходов / расходов" и "Сумма", там есть как положительные значения так и отрицательные. СКД в режиме предприятия все показывает ок. Сохраняю вариант отчета. И вывожу его программно в таблицу значений. При этом в таблице оказываются только строки с положительными значениями "Сумма". Вот процедура вывода.Куда копать? Заранее спасибо.

Функция ПолучитьДанныеОтчета(ПараметрыОтчета, ВернутьВсеДанные = Ложь, ВернутьТаблицуРезультат = Ложь)
	
	Ссылка = ВернутьСсылкуНаОтчет(ПараметрыОтчета.НазваниеВариантаОтчета);
	Если ТипЗнч(Ссылка.Отчет)=Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
		СхемаОст = Отчеты[Ссылка.Отчет.Имя].Создать().СхемаКомпоновкиДанных;
	Иначе	
		РеквизитТипХранилище= Ссылка.Отчет.ХранилищеОбработки;
		ИмяВременногоФайла = КаталогВременныхФайлов()+Ссылка.Отчет.ИмяФайла;
		ДвоичныеДанные = РеквизитТипХранилище.Получить();
		ДвоичныеДанные.Записать(ИмяВременногоФайла);
		ВнешнийОтчет = ВнешниеОтчеты.Создать(ИмяВременногоФайла);
		СхемаОст = ВнешнийОтчет.СхемаКомпоновкиДанных;
	КонецЕсли;	
	
	НастройкаОтчета= Ссылка.Настройки.Получить();
	КомпоновщикНастроекНастройки = Новый КомпоновщикНастроекКомпоновкиДанных;
	КомпоновщикНастроекНастройки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаОст));
	КомпоновщикНастроекНастройки.ЗагрузитьНастройки(НастройкаОтчета); 
	//Обновление параметров отчета: период, отборы
	Если ЗначениеЗаполнено(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериода")) Тогда //Есть переменная стандартныйпериод
		КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериода"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеПериода"));
	Иначе
		КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеНачалаПериода"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеНачалаПериода"));
		КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеОкончанияПериода"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеОкончанияПериода"));
	КонецЕсли;
	
	//Для складских отчетов по списаниям, оприходованиям
	Если ЗначениеЗаполнено(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериодЦена")) Тогда //Есть переменная стандартныйпериод
		КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("НаименованиеПериодЦена"), ПараметрыОтчета.ДанныеПериода.Получить("ЗначениеПериодЦена"));
	КонецЕсли;	
	//
	Если ЗначениеЗаполнено(ПараметрыОтчета.ДанныеПериода.Получить("ТекущаяДата")) Тогда //Есть переменная стандартныйпериод
		КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрыОтчета.ДанныеПериода.Получить("ТекущаяДата"), ТекущаяДата());
	КонецЕсли;	
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаОст, КомпоновщикНастроекНастройки.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; 
	//
	Попытка
		Если МакетКомпоновкиДанных.ЗначенияПараметров.ТекущаяДата.Значение = Новый ВыражениеКомпоновкиДанных("ТекущаяДатаСеанса()") Тогда
			МакетКомпоновкиДанных.ЗначенияПараметров.ТекущаяДата.Значение = ТекущаяДата();
		КонецЕсли;	
	Исключение
	КонецПопытки;
	//
	Если МакетКомпоновкиДанных.ЗначенияПараметров.Найти("ВалютаУправленческогоУчета")<> Неопределено Тогда
		МакетКомпоновкиДанных.ЗначенияПараметров.Найти("ВалютаУправленческогоУчета").Значение = Константы.ВалютаУправленческогоУчета.Получить();
	КонецЕсли; 
	Если МакетКомпоновкиДанных.ЗначенияПараметров.Найти("Валюта")<> Неопределено Тогда
		МакетКомпоновкиДанных.ЗначенияПараметров.Найти("Валюта").Значение = Константы.ВалютаУправленческогоУчета.Получить();
	КонецЕсли; 	
    //
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	
	ДанныеТЗ = Новый ТаблицаЗначений;
	ПроцессорВывода.УстановитьОбъект(ДанныеТЗ);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Показать
По теме из базы знаний
Найденные решения
8. Sashares 35 09.08.24 14:18 Сейчас в теме
(7) Возможно что-то с параметрами СКД не так.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. janibeg 2 09.08.24 10:10 Сейчас в теме
Вот поле которое так "чудит"
Прикрепленные файлы:
3. janibeg 2 09.08.24 10:27 Сейчас в теме
4. janibeg 2 09.08.24 11:00 Сейчас в теме
Никто не сталкивался?(
5. janibeg 2 09.08.24 11:30 Сейчас в теме
6. janibeg 2 09.08.24 11:41 Сейчас в теме
Тип значений для числовой колонки норм. И положительные и отрицательные
Прикрепленные файлы:
7. janibeg 2 09.08.24 11:55 Сейчас в теме
Если в выбранные поля добавляю заведомо положительное поле, то количество строк в таблице становится правильным, но в ячейках столбца "ПрибыльУбыток" где должны быть минусовые значения выводит нули.
Какая то мистика.
Прикрепленные файлы:
8. Sashares 35 09.08.24 14:18 Сейчас в теме
(7) Возможно что-то с параметрами СКД не так.
9. janibeg 2 09.08.24 15:14 Сейчас в теме
(8) Огромное спасибо. В яблочко!!! Там были параметры, которые на выводились на форму настроек, я про них забыл. Заполнил и все завелось)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот