Не удалось сформировать отчет (пустой результат)

1. Andq 03.07.23 17:04 Сейчас в теме
Добрый день! Формируются пустые отчеты серверной версии. Пытаюсь формировать простейшие остатки по складам. Отчеты стандартные, без изменений. Расширения отключал, кэш чистил, сервер перезапускал, платформу и сервер обновил, попробовал Postgre, тестирование и исправление провел, блокировок заданий нет, пробую на пустом сервере - всех выкинул.

Выгружаю в файловую версию - всё прекрасно.

В серверной по одному складу или по небольшой группе номенклатуры формируется, но в большинстве случаев - пустой отчет. "Не удалось сформировать отчет (пустой результат)"

Windows Server 2019, MsSql, оперативки 64 Гб
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Swetlana 26 03.07.23 18:14 Сейчас в теме
4. Andq 03.07.23 18:31 Сейчас в теме
(3)
(1) платформа какая?

Windows Server 2019, MsSql 2019, Postgre 15 с сайта 1с
Прикрепленные файлы:
2. karamazoff 123 03.07.23 17:45 Сейчас в теме
В файловой через другую процедуру работает, поглядите через консоль запросов
5. Andq 04.07.23 11:01 Сейчас в теме
(2)
В файловой через другую процедуру работает, поглядите через консоль запросов

Я скопировал запрос из СКД отчета, выполнил через консоль.
Через консоль запрос выполнился, о чем это говорит?
6. karamazoff 123 04.07.23 12:33 Сейчас в теме
(5)говорит о том что есть ограничения в отчете, если сложно разобраться и через консоль выводиться нужные данные, забейте и сделайте новый отчет, запрос есть
8. Andq 04.07.23 16:14 Сейчас в теме
(6)
(5)говорит о том что есть ограничения в отчете, если сложно разобраться и через консоль выводиться нужные данные, забейте и сделайте новый отчет, запрос есть

Создал новый простейший запрос, та же ситуация. С чего началось непонятно, но решение связано с фоновыми заданиями. На сколько я понял, если результат небольшой - всё работает, если данных больше - требуется запуск фонового процесса и в итоге ошибка.
7. Andq 04.07.23 16:08 Сейчас в теме
Вопрос решился добавлением пользователю, запускающему Агента (USR1CV8), прав на папку (C:\Program Files\1cv8\srvinfo\reg_1541), в которой формируются фоновые задания. Спасибо профессиональному программисту и очередное недоумение в сторону 1С.
9. Andq 13.09.24 15:26 Сейчас в теме
О, привет, Я из прошлого! Прошел год, обновил платформу, сервер и базу и снова такая проблема.
10. Wrols 90 06.11.24 12:21 Сейчас в теме
(9) Возникла аналогичная проблема.
Предположительно - возникает из-за вызванного исключения при выполнении фонового задания. При этом текст ошибки нигде не фиксируется.

Я смог увидеть ошибку при запуске 1С:Предприятия с ключом "/РежимОтладки".
11. user2113038 07.11.24 11:34 Сейчас в теме
Здравствуйте!
Возникла проблема следующего типа: создал отчёт на СКД, при попытке открыть его в 1С выдаёт следующее сообщение:

Ошибка в схеме компоновки данных
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(10, 5)}: Таблица не найдена "Документ.РеализацияТоваровУслуг"
<<?>>Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг


Сам код отчёта:

&НаКлиенте
Процедура СформироватьОтчет(ТабДок)
    // Создаем временную таблицу для хранения данных отчета
    ВременнаяТаблица = Новый ТаблицаЗначений;
    ВременнаяТаблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипа("Строка"));
    ВременнаяТаблица.Колонки.Добавить("Период", Новый ОписаниеТипа("Дата"));
    ВременнаяТаблица.Колонки.Добавить("Товар", Новый ОписаниеТипа("Строка"));
    ВременнаяТаблица.Колонки.Добавить("Характеристика", Новый ОписаниеТипа("Строка"));
    ВременнаяТаблица.Колонки.Добавить("Количество", Новый ОписаниеТипа("Число"));
    ВременнаяТаблица.Колонки.Добавить("Цена", Новый ОписаниеТипа("Число"));
    ВременнаяТаблица.Колонки.Добавить("Сумма", Новый ОписаниеТипа("Число"));

    // Запрашиваем у пользователя даты начала и конца периода
    НачалоПериода = ВыборДата("Выберите дату начала периода");
    КонецПериода = ВыборДата("Выберите дату конца периода");

    // Проверка, были ли выбраны даты
    Если НачалоПериода = Неопределено Или КонецПериода = Неопределено Тогда
        Сообщить("Выбор даты отменен.");
        // Вместо 'Вернуться' просто завершаем выполнение процедуры
        Возврат;
    КонецЕсли;

    // Проверяем порядок дат
    Если КонецПериода < НачалоПериода Тогда
        Сообщить("Дата конца периода должна быть больше или равна дате начала.");
        Возврат; // Завершение процедуры
    КонецЕсли;

    // Получаем документы (например, реализации)
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать(НачалоПериода, КонецПериода);

    // Перебираем документы и извлекаем нужные данные
    Пока Выборка.Найдена() Цикл
        Для каждого СтрокаТовара Из Выборка.Товары Цикл
            НоваяСтрока = ВременнаяТаблица.Добавить();
            НоваяСтрока.Контрагент = Выборка.Контрагент;
            НоваяСтрока.Период = Выборка.Дата;
            НоваяСтрока.Товар = СтрокаТовара.Товар;
            НоваяСтрока.Характеристика = СтрокаТовара.Характеристика;
            НоваяСтрока.Количество = СтрокаТовара.Количество;
            НоваяСтрока.Цена = СтрокаТовара.Цена;
            НоваяСтрока.Сумма = СтрокаТовара.Количество * СтрокаТовара.Цена;
        КонецЦикла;
        Выборка.Next();
    КонецЦикла;

    // Выводим итоговую информацию
    ОбщаяСумма = 0;
    Для каждого Строка Из ВременнаяТаблица Цикл
        ОбщаяСумма = ОбщаяСумма + Строка.Сумма;
    КонецЦикла;

    // Отображение отчета
    Сообщение = "Контрагент | Период | Товар | Характеристика | Количество | Цена | Сумма" + Символы.ПС;
    Для каждого Строка Из ВременнаяТаблица Цикл
        Сообщение = Сообщение + Строка.Контрагент + " | " + 
                    Формат(Строка.Период, "ДД.ММ.ГГГГ") + " | " + 
                    Строка.Товар + " | " + 
                    Строка.Характеристика + " | " + 
                    Строка.Количество + " | " + 
                    Строка.Цена + " | " + 
                    Строка.Сумма + Символы.ПС;
    КонецЦикла;

    Сообщение = Сообщение + "Общая сумма: " + ОбщаяСумма;
    Сообщить(Сообщение);
КонецПроцедуры

ЭтоОтчетУНФ = Истина;   
СтандартнаяОбработка = Ложь;
Показать


И код запроса:

ВЫБРАТЬ 
    Реализация.Контрагент КАК Контрагент,
    РеализацияТоваровУслугБРД.Дата КАК Период,
    Товары.Товар КАК Товар,
    Товары.Характеристика КАК Характеристика,
    Товары.Количество КАК Количество,
    Товары.Цена КАК Цена,
    Товары.Количество * Товары.Цена КАК Сумма
ИЗ 
    Документ.Реализация КАК Реализация
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Реализация.Товары КАК Товары
    ПО Реализация.Ссылка = Товары.Ссылка
ГДЕ                                                                        
    Реализация.Дата МЕЖДУ &НачалоПериода и &КонецПериода 
Показать



В чём может быть проблема?
13. user2107191 07.11.24 13:31 Сейчас в теме
(11) А не надо открывать внешний отчет с СКД в конфигурации, в которой нет такого документа.
14. user2113038 07.11.24 14:07 Сейчас в теме
(13) не подскажете документ, который можно использовать вместо РеализацияТоваровУслуг, чтобы отчёт отображал информацию?
15. user2107191 07.11.24 16:20 Сейчас в теме
(14) Ну, попробуй документ "НачислениеЗаработнойПлаты".
12. LeeAreHim 07.11.24 13:21 Сейчас в теме
А как код отчета связан с кодом запроса?
16. prog1c_vl 25 19.12.24 11:50 Сейчас в теме
При формировании отчета СКД выдавало сообщение:
Не удалось сформировать отчет (пустой результат)
Причиной этого было размещение картинки в отчете с размером файла более 2000 000 байт
После того как в процедуре ПриКомпоновкеРезультата был установлен блок контроля размера файла картинки отчет стал нормально формироваться.
17. user1993797 28.01.25 12:24 Сейчас в теме
(16)
блок контроля размера файла картинки


подскажите пожалуйста что именно написали в коде. Заранее спасибо!
18. prog1c_vl 25 28.01.25 17:28 Сейчас в теме
(17)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
    НастройкаКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкаКомпоновки, ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
	ЭлементыВыбранныеПоля = НастройкаКомпоновки.Выбор.Элементы;
	ВывестиИзображение = Ложь;
	Для каждого ЭлементВыбранногоПоля Из ЭлементыВыбранныеПоля Цикл
		
		Если Строка(ЭлементВыбранногоПоля.Поле) = "ФайлКартинки" И ЭлементВыбранногоПоля.Использование Тогда
			
			ВывестиИзображение = Истина;
			Прервать;
			
		КонецЕсли;
		
	КонецЦикла;
	
	Если ВывестиИзображение Тогда
		
	    КоличествоСтрок = ДокументРезультат.ВысотаТаблицы;
	    КоличествоКолонок = ДокументРезультат.ШиринаТаблицы;
    
	   Для СтрокаДокумента = 1 По КоличествоСтрок Цикл
	        
	        Для КолонкаДокумента = 1 По КоличествоКолонок Цикл
	            
	            Область = ДокументРезультат.Область(СтрокаДокумента, КолонкаДокумента);
	            Расшифровка = Область.Расшифровка;
					
	            Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
	                
	                ПоляРасшифровки = ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля();
					
	                НайденноеПоле = ПоляРасшифровки.Найти("ФайлКартинки");

					Если НайденноеПоле <> Неопределено Тогда
						
						Если ЗначениеЗаполнено(НайденноеПоле.Значение) Тогда
							
							Если ЗначениеЗаполнено(НайденноеПоле.Значение.Том) И ЗначениеЗаполнено(НайденноеПоле.Значение.ПутьКФайлу) Тогда
	
			    				ПутьККартинке = НайденноеПоле.Значение.Том.ПолныйПутьWindows + НайденноеПоле.Значение.ПутьКФайлу;
		                    
			                    Если ЗначениеЗаполнено(ПутьККартинке) Тогда
									
									Фото = Новый Файл(ПутьККартинке);
				
									Если Фото.Существует() Тогда
										
										Картинка = Новый Картинка(ПутьККартинке);
			                        
				                        Изображение = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
										
										СжатаяКартинка = ПолучитьСжатуюКартинку(Картинка, 60, );

			                        	Изображение.Картинка = СжатаяКартинка;
				                        Изображение.РазмерКартинки = РазмерКартинки.АвтоРазмер;
				                        Область.АвтоВысотаСтроки = Ложь;
										Изображение.Расположить(Область);
										
									КонецЕсли;
									
								КонецЕсли;
								
							КонецЕсли;
							
		            	КонецЕсли;
	                    
	                КонецЕсли;
	                
				КонецЕсли;
	            
	        КонецЦикла;
	        
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры

// ПолучитьСжатуюКартинку взято из УТ из общего модуля ТиС2019
Функция ПолучитьСжатуюКартинку(Крт, ВысотаКартинки, РазмерФайлаПоУмолчаниюКБ = 300) Экспорт
	
	Крт_ = Крт;
	
    Если (Крт_.РазмерФайла() > РазмерФайлаПоУмолчаниюКБ*1024) ИЛИ (Крт_.Высота() > ВысотаКартинки) Тогда // размер файла более в байтах
	
		Попытка
		    ОбрКрт = Новый ОбрабатываемаяКартинка(Крт, Истина);
		    ОбрКрт.УстановитьРазмер(, ВысотаКартинки);
			
			//===
			ОбрКрт.УстановитьПлотность(96, 96);
			ОбрКрт.УстановитьГлубинуЦвета(ГлубинаЦвета.БитНаПиксел24);
			ОбрКрт.УстановитьФормат(ФорматКартинки.PNG);
			//===
			
			Крт_ = ОбрКрт.ПолучитьКартинку();
		    Возврат Крт_;
		Исключение
		    Возврат Крт;
		КонецПопытки;
		
	Иначе
	    Возврат Крт;
	КонецЕсли;
	
КонецФункции // ПолучитьСжатуюКартинку() 

Показать
Smollsan; +1 Ответить
19. user1993797 29.01.25 07:27 Сейчас в теме
(18) Благодарю от всего сердца))
prog1c_vl; +1 Ответить
20. prog1c_vl 25 29.01.25 10:34 Сейчас в теме
22. Smollsan 30.01.25 12:41 Сейчас в теме
(18) Воткнул данный код. Теперь стало чуть лучше: как внешний файл отчет формируется и как доп обработка в "режиме отладки". А вот когда отчет в доп обработках в режиме "Используется", ошибка осталась
24. prog1c_vl 25 30.01.25 14:54 Сейчас в теме
(22) попробуйте ограничить вывод картинок по размеру файла, начините отладку 50000 байт и увеличивайте понемногу, увидите на каком файле (картинке) спотыкается, возможно и формат графического файла имеет значение, первоначально я так и сделал (по ограничению размера файла), но отчет выглядит небрежно с пропусками картинок, сжатие все решило.
21. Smollsan 30.01.25 12:04 Сейчас в теме
Аналогичная ситуация. 8.3.24.1548. УТ 11.5.17.172. Самопильный отчет с картинками номенклатуры.
При большом количестве выводимых данных падает в ошибку "Пустой результат". Если исключить картинки из отчета, то выводится все корректно. Буду курить в эту сторону
23. user1619761 30.01.25 13:54 Сейчас в теме
(21)
При большом количестве выводимых данных падает в ошибку "Пустой результат". Если исключить картинки из отчета, то выводится все корректно.
была аналогичная проблема с картинками, помогло сжатие картинок
Оставьте свое сообщение

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