Не удалось сформировать отчет (пустой результат)
Добрый день! Формируются пустые отчеты серверной версии. Пытаюсь формировать простейшие остатки по складам. Отчеты стандартные, без изменений. Расширения отключал, кэш чистил, сервер перезапускал, платформу и сервер обновил, попробовал Postgre, тестирование и исправление провел, блокировок заданий нет, пробую на пустом сервере - всех выкинул.
Выгружаю в файловую версию - всё прекрасно.
В серверной по одному складу или по небольшой группе номенклатуры формируется, но в большинстве случаев - пустой отчет. "Не удалось сформировать отчет (пустой результат)"
Windows Server 2019, MsSql, оперативки 64 Гб
Выгружаю в файловую версию - всё прекрасно.
В серверной по одному складу или по небольшой группе номенклатуры формируется, но в большинстве случаев - пустой отчет. "Не удалось сформировать отчет (пустой результат)"
Windows Server 2019, MsSql, оперативки 64 Гб
По теме из базы знаний
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев
- Не спеша, эффективно и правильно – путь разработки. Часть 1. Парадигма
- Отчет "Полный анализ себестоимости выпущенной продукции" для 1С:ERP (ЕРП), 1С:КА, 1С:ERP УХ
- Признаки и причины неуспешных внедрений 1С: ERP
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6)
Создал новый простейший запрос, та же ситуация. С чего началось непонятно, но решение связано с фоновыми заданиями. На сколько я понял, если результат небольшой - всё работает, если данных больше - требуется запуск фонового процесса и в итоге ошибка.
(5)говорит о том что есть ограничения в отчете, если сложно разобраться и через консоль выводиться нужные данные, забейте и сделайте новый отчет, запрос есть
Создал новый простейший запрос, та же ситуация. С чего началось непонятно, но решение связано с фоновыми заданиями. На сколько я понял, если результат небольшой - всё работает, если данных больше - требуется запуск фонового процесса и в итоге ошибка.
Вопрос решился добавлением пользователю, запускающему Агента (USR1CV8), прав на папку (C:\Program Files\1cv8\srvinfo\reg_1541), в которой формируются фоновые задания. Спасибо профессиональному программисту и очередное недоумение в сторону 1С.
(9) Возникла аналогичная проблема.
Предположительно - возникает из-за вызванного исключения при выполнении фонового задания. При этом текст ошибки нигде не фиксируется.
Я смог увидеть ошибку при запуске 1С:Предприятия с ключом "/РежимОтладки".
Предположительно - возникает из-за вызванного исключения при выполнении фонового задания. При этом текст ошибки нигде не фиксируется.
Я смог увидеть ошибку при запуске 1С:Предприятия с ключом "/РежимОтладки".
Здравствуйте!
Возникла проблема следующего типа: создал отчёт на СКД, при попытке открыть его в 1С выдаёт следующее сообщение:
Сам код отчёта:
И код запроса:
В чём может быть проблема?
Возникла проблема следующего типа: создал отчёт на СКД, при попытке открыть его в 1С выдаёт следующее сообщение:
Ошибка в схеме компоновки данных
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(10, 5)}: Таблица не найдена "Документ.РеализацияТоваровУслуг"
<<?>>Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(10, 5)}: Таблица не найдена "Документ.РеализацияТоваровУслуг"
<<?>>Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
Сам код отчёта:
&НаКлиенте
Процедура СформироватьОтчет(ТабДок)
// Создаем временную таблицу для хранения данных отчета
ВременнаяТаблица = Новый ТаблицаЗначений;
ВременнаяТаблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипа("Строка"));
ВременнаяТаблица.Колонки.Добавить("Период", Новый ОписаниеТипа("Дата"));
ВременнаяТаблица.Колонки.Добавить("Товар", Новый ОписаниеТипа("Строка"));
ВременнаяТаблица.Колонки.Добавить("Характеристика", Новый ОписаниеТипа("Строка"));
ВременнаяТаблица.Колонки.Добавить("Количество", Новый ОписаниеТипа("Число"));
ВременнаяТаблица.Колонки.Добавить("Цена", Новый ОписаниеТипа("Число"));
ВременнаяТаблица.Колонки.Добавить("Сумма", Новый ОписаниеТипа("Число"));
// Запрашиваем у пользователя даты начала и конца периода
НачалоПериода = ВыборДата("Выберите дату начала периода");
КонецПериода = ВыборДата("Выберите дату конца периода");
// Проверка, были ли выбраны даты
Если НачалоПериода = Неопределено Или КонецПериода = Неопределено Тогда
Сообщить("Выбор даты отменен.");
// Вместо 'Вернуться' просто завершаем выполнение процедуры
Возврат;
КонецЕсли;
// Проверяем порядок дат
Если КонецПериода < НачалоПериода Тогда
Сообщить("Дата конца периода должна быть больше или равна дате начала.");
Возврат; // Завершение процедуры
КонецЕсли;
// Получаем документы (например, реализации)
Выборка = Документы.РеализацияТоваровУслуг.Выбрать(НачалоПериода, КонецПериода);
// Перебираем документы и извлекаем нужные данные
Пока Выборка.Найдена() Цикл
Для каждого СтрокаТовара Из Выборка.Товары Цикл
НоваяСтрока = ВременнаяТаблица.Добавить();
НоваяСтрока.Контрагент = Выборка.Контрагент;
НоваяСтрока.Период = Выборка.Дата;
НоваяСтрока.Товар = СтрокаТовара.Товар;
НоваяСтрока.Характеристика = СтрокаТовара.Характеристика;
НоваяСтрока.Количество = СтрокаТовара.Количество;
НоваяСтрока.Цена = СтрокаТовара.Цена;
НоваяСтрока.Сумма = СтрокаТовара.Количество * СтрокаТовара.Цена;
КонецЦикла;
Выборка.Next();
КонецЦикла;
// Выводим итоговую информацию
ОбщаяСумма = 0;
Для каждого Строка Из ВременнаяТаблица Цикл
ОбщаяСумма = ОбщаяСумма + Строка.Сумма;
КонецЦикла;
// Отображение отчета
Сообщение = "Контрагент | Период | Товар | Характеристика | Количество | Цена | Сумма" + Символы.ПС;
Для каждого Строка Из ВременнаяТаблица Цикл
Сообщение = Сообщение + Строка.Контрагент + " | " +
Формат(Строка.Период, "ДД.ММ.ГГГГ") + " | " +
Строка.Товар + " | " +
Строка.Характеристика + " | " +
Строка.Количество + " | " +
Строка.Цена + " | " +
Строка.Сумма + Символы.ПС;
КонецЦикла;
Сообщение = Сообщение + "Общая сумма: " + ОбщаяСумма;
Сообщить(Сообщение);
КонецПроцедуры
ЭтоОтчетУНФ = Истина;
СтандартнаяОбработка = Ложь; ПоказатьИ код запроса:
ВЫБРАТЬ
Реализация.Контрагент КАК Контрагент,
РеализацияТоваровУслугБРД.Дата КАК Период,
Товары.Товар КАК Товар,
Товары.Характеристика КАК Характеристика,
Товары.Количество КАК Количество,
Товары.Цена КАК Цена,
Товары.Количество * Товары.Цена КАК Сумма
ИЗ
Документ.Реализация КАК Реализация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Реализация.Товары КАК Товары
ПО Реализация.Ссылка = Товары.Ссылка
ГДЕ
Реализация.Дата МЕЖДУ &НачалоПериода и &КонецПериода ПоказатьВ чём может быть проблема?
При формировании отчета СКД выдавало сообщение:
Не удалось сформировать отчет (пустой результат)
Причиной этого было размещение картинки в отчете с размером файла более 2000 000 байт
После того как в процедуре ПриКомпоновкеРезультата был установлен блок контроля размера файла картинки отчет стал нормально формироваться.
Не удалось сформировать отчет (пустой результат)
Причиной этого было размещение картинки в отчете с размером файла более 2000 000 байт
После того как в процедуре ПриКомпоновкеРезультата был установлен блок контроля размера файла картинки отчет стал нормально формироваться.
(17)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НастройкаКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкаКомпоновки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ЭлементыВыбранныеПоля = НастройкаКомпоновки.Выбор.Элементы;
ВывестиИзображение = Ложь;
Для каждого ЭлементВыбранногоПоля Из ЭлементыВыбранныеПоля Цикл
Если Строка(ЭлементВыбранногоПоля.Поле) = "ФайлКартинки" И ЭлементВыбранногоПоля.Использование Тогда
ВывестиИзображение = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ВывестиИзображение Тогда
КоличествоСтрок = ДокументРезультат.ВысотаТаблицы;
КоличествоКолонок = ДокументРезультат.ШиринаТаблицы;
Для СтрокаДокумента = 1 По КоличествоСтрок Цикл
Для КолонкаДокумента = 1 По КоличествоКолонок Цикл
Область = ДокументРезультат.Область(СтрокаДокумента, КолонкаДокумента);
Расшифровка = Область.Расшифровка;
Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
ПоляРасшифровки = ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля();
НайденноеПоле = ПоляРасшифровки.Найти("ФайлКартинки");
Если НайденноеПоле <> Неопределено Тогда
Если ЗначениеЗаполнено(НайденноеПоле.Значение) Тогда
Если ЗначениеЗаполнено(НайденноеПоле.Значение.Том) И ЗначениеЗаполнено(НайденноеПоле.Значение.ПутьКФайлу) Тогда
ПутьККартинке = НайденноеПоле.Значение.Том.ПолныйПутьWindows + НайденноеПоле.Значение.ПутьКФайлу;
Если ЗначениеЗаполнено(ПутьККартинке) Тогда
Фото = Новый Файл(ПутьККартинке);
Если Фото.Существует() Тогда
Картинка = Новый Картинка(ПутьККартинке);
Изображение = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
СжатаяКартинка = ПолучитьСжатуюКартинку(Картинка, 60, );
Изображение.Картинка = СжатаяКартинка;
Изображение.РазмерКартинки = РазмерКартинки.АвтоРазмер;
Область.АвтоВысотаСтроки = Ложь;
Изображение.Расположить(Область);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
// ПолучитьСжатуюКартинку взято из УТ из общего модуля ТиС2019
Функция ПолучитьСжатуюКартинку(Крт, ВысотаКартинки, РазмерФайлаПоУмолчаниюКБ = 300) Экспорт
Крт_ = Крт;
Если (Крт_.РазмерФайла() > РазмерФайлаПоУмолчаниюКБ*1024) ИЛИ (Крт_.Высота() > ВысотаКартинки) Тогда // размер файла более в байтах
Попытка
ОбрКрт = Новый ОбрабатываемаяКартинка(Крт, Истина);
ОбрКрт.УстановитьРазмер(, ВысотаКартинки);
//===
ОбрКрт.УстановитьПлотность(96, 96);
ОбрКрт.УстановитьГлубинуЦвета(ГлубинаЦвета.БитНаПиксел24);
ОбрКрт.УстановитьФормат(ФорматКартинки.PNG);
//===
Крт_ = ОбрКрт.ПолучитьКартинку();
Возврат Крт_;
Исключение
Возврат Крт;
КонецПопытки;
Иначе
Возврат Крт;
КонецЕсли;
КонецФункции // ПолучитьСжатуюКартинку()
Показать
(22) попробуйте ограничить вывод картинок по размеру файла, начините отладку 50000 байт и увеличивайте понемногу, увидите на каком файле (картинке) спотыкается, возможно и формат графического файла имеет значение, первоначально я так и сделал (по ограничению размера файла), но отчет выглядит небрежно с пропусками картинок, сжатие все решило.
Аналогичная ситуация. 8.3.24.1548. УТ 11.5.17.172. Самопильный отчет с картинками номенклатуры.
При большом количестве выводимых данных падает в ошибку "Пустой результат". Если исключить картинки из отчета, то выводится все корректно. Буду курить в эту сторону
При большом количестве выводимых данных падает в ошибку "Пустой результат". Если исключить картинки из отчета, то выводится все корректно. Буду курить в эту сторону
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
