Пустой результат отчета с установленным хранилищем вариантов отчетов

1. CHELLL 53 21.11.24 13:12 Сейчас в теме
Добрый день.

Есть внешний отчет, в свойствах если установить Хранилище вариантов - ХранилищеВариантовОтчетов, то не выводит никакие данные отчет. Убираю хранилище вариантов - все ок. Причём с заполненным хранилищем вариантов если просто открыть отчет как внешний - все ок, а как сохраняю его в доп. отчетах и запускаю, то результат запроса пустой.

Пробовал очищать ХранилищеВариантовОтчетов: ВариантыОтчетов.УдалитьВариантОтчета() и ХранилищеВариантовОтчетов.Удалить().

Пробовал очищать пользовательские варианты: ИнтеграцияПодсистемБСП.ПриУдаленииПользовательскихВариантовОтчета().

Может кто сталкивался с такой проблемой, подскажите где "копать".
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DENSKR 16 21.11.24 14:09 Сейчас в теме
А что в модуле отчета?
3. CHELLL 53 21.11.24 14:46 Сейчас в теме
(2)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	Если не ЗначениеЗаполнено(НачалоМесяца) Тогда 
		НачалоМесяца = НачалоМесяца(ТекущаяДата());
	КонецЕсли;
	Если не ЗначениеЗаполнено(КонецМесяца) Тогда 
		КонецМесяца = НачалоМесяца(ТекущаяДата());
	КонецЕсли;
	
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода",НачалоМесяца(НачалоМесяца));
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода",КонецМесяца(КонецМесяца));
	КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
	
КонецПроцедуры

Показать
4. DENSKR 16 22.11.24 09:45 Сейчас в теме
(3)
Скопируй и вставь весь код в модуль отчета
5. CHELLL 53 22.11.24 14:03 Сейчас в теме
(4)
Функция СведенияОВнешнейОбработке() Экспорт

ИмяОтчета = ЭтотОбъект.Метаданные().Имя;
Синоним = ЭтотОбъект.Метаданные().Синоним;
Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета);
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Вид","ДополнительныйОтчет"); //может быть – ПечатнаяФорма, ЗаполнениеОбъекта (для вн.обработки), ДополнительныйОтчет, СозданиеСвязанныхОбъектов…
РегистрационныеДанные.Вставить("Наименование", Синоним); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
РегистрационныеДанные.Вставить("Версия", "1.0");
РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
РегистрационныеДанные.Вставить("Информация", "Отчет "+Синоним); //так будет выглядеть описание вн.отчета для пользователя

ТаблицаКоманд = ПолучитьТаблицуКоманд();

// Добавим команду в таблицу
ДобавитьКоманду(ТаблицаКоманд, Синоним, "СформироватьОтчет" , "ОткрытиеФормы", Истина, );

// Сохраним таблицу команд в параметры регистрации обработки
РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);

Возврат РегистрационныеДанные;

КонецФункции

Функция ПолучитьТаблицуКоманд()

// Создадим пустую таблицу команд и колонки в ней
Команды = Новый ТаблицаЗначений;

// Как будет выглядеть описание печатной формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

// Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

// Тут задается, как должна вызваться команда обработки
// Возможные варианты:
// - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
// - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
// - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

// Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

// Для печатной формы должен содержать строку ПечатьMXL
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;

КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")

// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

МассивЗаголовковРесурсов = Новый Массив;
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);

//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

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

//Обозначим начало вывода
ПроцессорВывода.НачатьВывод();
ТаблицаЗафиксирована = Ложь;

ДокументРезультат.ФиксацияСверху = 0;
//Основной цикл вывода отчета
Пока Истина Цикл
//Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновки.Следующий();

Если ЭлементРезультата = Неопределено Тогда
//Следующий элемент не получен - заканчиваем цикл вывода
Прервать;
Иначе
// Зафиксируем шапку
Если Не ТаблицаЗафиксирована
И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
И ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда

ТаблицаЗафиксирована = Истина;
ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;

КонецЕсли;
//Элемент получен - выведем его при помощи процессора вывода
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
КонецЕсли;
КонецЦикла;

ПроцессорВывода.ЗакончитьВывод();

КонецПроцедуры

Процедура УстановитьЗначениеПараметраКомпоновкиДанных(НастройкаКомпоновки, ИмяПараметра, ЗначениеПараметра = Неопределено, ВидСравнения = Неопределено, Использование = Истина) Экспорт

Если ЗначениеПараметра = Неопределено Тогда

Возврат;

КонецЕсли;

ИскомыйПараметр = Новый ПараметрКомпоновкиДанных(ИмяПараметра);

Для каждого ПараметрНастройки Из НастройкаКомпоновки.ПараметрыДанных.Элементы Цикл

Если ПараметрНастройки.Параметр = ИскомыйПараметр Тогда

ПараметрНастройки.Значение = ЗначениеПараметра;
ПараметрНастройки.Использование = Использование;

Прервать;

КонецЕсли;

КонецЦикла;

КонецПроцедуры

Процедура УстановитьЭлементОтбораКомпоновкиДанных(НастройкаКомпоновки, ИмяПоля, ЗначениеОтбора, ВидСравненияОтбора, Использование = Истина) Экспорт

ПолеКомпоновки = Новый ПолеКомпоновкиДанных(ИмяПоля);

Для каждого ЭлементОтбора Из НастройкаКомпоновки.Отбор.Элементы Цикл

Если ЭлементОтбора.ЛевоеЗначение = ПолеКомпоновки Тогда

ЭлементОтбора.ПравоеЗначение = ЗначениеОтбора;
ЭлементОтбора.ВидСравнения = ВидСравненияОтбора;
ЭлементОтбора.Использование = Использование;

КонецЕсли;

КонецЦикла;

КонецПроцедуры
Показать


Не выводит ничего.

Я нашел почему мой вариант не вывод - в настройках отчета выбрано ХранилищеВарантовОтчета, а в конфигурации нет. Сейчас выбрал - результат есть, но всегда только за текущий месяц.

Если меняю наименование отчета, то выводит нужный мне период. А как только возвращаю назад, то опять текущий месяц...
7. DENSKR 16 22.11.24 14:41 Сейчас в теме
(5) Нажать еще - изменить вариант отчета - установить стандартные настройки. Тогда в отчете будут установлены настройки настроенные в конфигураторе, а не в интерфейсе.
8. CHELLL 53 22.11.24 15:07 Сейчас в теме
(7) Пробовал. Надо как-то очищать по эту отчеты всё
6. пользователь 22.11.24 14:03
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

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