Рассылка пустого отчета по расписанию

1. 5225688vd 10.07.23 09:27 Сейчас в теме
Всем привет! Коллеги подскажите пожалуйста, столкнулся вот с такой проблемой, в базе УТ 11.4.13.280 настроена рассылка отчета, флаг отправлять пустой снят, но отчет все равно отправляется пустой, может быть кто-то сталкивался с данной проблемой, как это победить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user-z99999 78 10.07.23 11:49 Сейчас в теме
(1)
Отчет, содержащий графики без текста, не является пустым.

Создавайте его руками, проверяйте результат запроса.
Вы программист?
3. 5225688vd 10.07.23 12:14 Сейчас в теме
(2)О каких графиках идет речь? Отчет не формирует графики, он формирует таблицу
4. 5225688vd 10.07.23 12:15 Сейчас в теме
Вообще отчет формируется в модуле объекта, я почему-то не могу выйти на отладку.
5. user654641_yaga_m 14 10.07.23 12:27 Сейчас в теме
(1)Отчет можно запустить не по расписанию? Обычно в этом проблем нет! Он "пустой"? Или есть "пустая" таблица хотя бы с одной строкой?
6. 5225688vd 10.07.23 12:46 Сейчас в теме
7. user654641_yaga_m 14 10.07.23 12:47 Сейчас в теме
8. 5225688vd 10.07.23 12:49 Сейчас в теме
11. 5225688vd 10.07.23 12:52 Сейчас в теме
(8)Две процедуры формирования отчета, отчет по заданным настройкам формируется пустой, и он не должен отправляться на эл. почту, а он улетает, хотя в рассылке флаг отправлять пустой снят
9. 5225688vd 10.07.23 12:50 Сейчас в теме
(7)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	
	//Виды номенклатуры по умолчанию
	ПараметрВидНоменклатуры = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек, "ВидНоменклатуры");
	Если ПараметрВидНоменклатуры.Значение = Неопределено Тогда
		ВидыНоменкатуры = Новый СписокЗначений;
		ВидыНоменкатуры.Добавить(Справочники.ВидыНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор("e92cb736-abaf-11ea-b983-5afc5c07d194"))); //ЗИП для СТО
		КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "ВидНоменклатуры", ВидыНоменкатуры);
	ИначеЕсли ТипЗнч(ПараметрВидНоменклатуры.Значение) = Тип("СписокЗначений") И НЕ ПараметрВидНоменклатуры.Значение.Количество() Тогда
		ВидыНоменкатуры = Новый СписокЗначений;
		ВидыНоменкатуры.Добавить(Справочники.ВидыНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор("e92cb736-abaf-11ea-b983-5afc5c07d194"))); //ЗИП для СТО
		КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "ВидНоменклатуры", ВидыНоменкатуры);
	КонецЕсли;
	//Номенклатура по умолчанию
	ПараметрНоменклатура = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек, "Номенклатура");
	Если ПараметрНоменклатура.Значение = Неопределено Тогда
		Номенклатура = Новый СписокЗначений;
		Номенклатура.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("eb686655-1867-11e7-a9a2-704d7b28dcd0"))); //Группа "Запчасти"
		КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "Номенклатура", Номенклатура);
	ИначеЕсли ТипЗнч(ПараметрНоменклатура.Значение) = Тип("СписокЗначений") И НЕ ПараметрНоменклатура.Значение.Количество() Тогда
		Номенклатура = Новый СписокЗначений;
		Номенклатура.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("eb686655-1867-11e7-a9a2-704d7b28dcd0"))); //Группа "Запчасти"
		КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "Номенклатура", Номенклатура);	
	КонецЕсли;
	
	НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
	
	//++Архипцев 16.09.2022 Задача № 30609
	// Добавим внешние данные
	ТЗ_РекомендацииНаВводВАссортимент = Новый ТаблицаЗначений;
	ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Склад", 					  Новый ОписаниеТипов("СправочникСсылка.Склады"));
	ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Номенклатура", 			  Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
	ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Регистратор");
	ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("СуммаВыручки", 		  	  Новый ОписаниеТипов("Число"));
	ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("СуммаВыручкиБезНДС", 	  Новый ОписаниеТипов("Число"));
	ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Количество", 		  	  Новый ОписаниеТипов("Число"));
	ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Кратность", 			  Новый ОписаниеТипов("Число"));
	
	Период = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("Период").Значение;
	Номенклатура = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("Номенклатура").Значение;
	ВидНоменклатуры = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("ВидНоменклатуры").Значение;
	Кратность = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("Кратность").Значение;
	
	ПолучитьДанные(ТЗ_РекомендацииНаВводВАссортимент, Период, ВидНоменклатуры, Номенклатура, Кратность);
	
	ВнешниеНаборыДанных = Новый Структура;
	ВнешниеНаборыДанных.Вставить("ТЗ_РекомендацииНаВводВАссортимент",ТЗ_РекомендацииНаВводВАссортимент);
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;	
	МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета);
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);

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

Процедура ПолучитьДанные(ТЗ_РекомендацииНаВводВАссортимент, Период, ВидНоменклатуры, Номенклатура, Кратность)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка КАК ЭлементНоменклатуры
	|ПОМЕСТИТЬ ВТ_Номенклатура
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	НЕ Номенклатура.ПометкаУдаления
	|	И Номенклатура.Ссылка В ИЕРАРХИИ(&Номенклатура)
	|	И НЕ Номенклатура.ЭтоГруппа
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
	|	ВыручкаИСебестоимостьПродажОбороты.Склад КАК Склад,
	|	ВыручкаИСебестоимостьПродажОбороты.Регистратор КАК Регистратор,
	|	СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК СуммаВыручки,
	|	СУММА(ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот) КАК Количество,
	|	СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиБезНДСОборот) КАК СуммаВыручкиБезНДС
	|ИЗ
	|	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
	|			&ДатаНачала,
	|			&ДатаОкончания,
	|			Регистратор,
	|			АналитикаУчетаНоменклатуры.Номенклатура.ВидНоменклатуры В (&ВидНоменклатуры)
	|				И АналитикаУчетаНоменклатуры.Номенклатура В
	|					(ВЫБРАТЬ
	|						ВТ_Номенклатура.ЭлементНоменклатуры КАК ЭлементНоменклатуры
	|					ИЗ
	|						ВТ_Номенклатура КАК ВТ_Номенклатура)) КАК ВыручкаИСебестоимостьПродажОбороты
	|
	|СГРУППИРОВАТЬ ПО
	|	ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
	|	ВыручкаИСебестоимостьПродажОбороты.Склад,
	|	ВыручкаИСебестоимостьПродажОбороты.Регистратор
	|ИТОГИ ПО
	|	Склад,
	|	Номенклатура";
	
	Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);
	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
	Запрос.УстановитьПараметр("ДатаНачала", Период.ДатаНачала);
	Запрос.УстановитьПараметр("ДатаОкончания", Период.ДатаОкончания);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	//Если РезультатЗапроса.Пустой() Тогда
	//	Прервать;
	//КонецЕсли;
	
	ВыборкаСклад = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	Пока ВыборкаСклад.Следующий() Цикл

		ВыборкаНоменклатура = ВыборкаСклад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		
		Пока ВыборкаНоменклатура.Следующий() Цикл
			
			ВыборкаДокументов = ВыборкаНоменклатура.Выбрать();
			
			КоличествоДокументов = ВыборкаДокументов.Количество();
			Если КоличествоДокументов >= Кратность Тогда
				Пока ВыборкаДокументов.Следующий() Цикл
					НоваяСтрока = ТЗ_РекомендацииНаВводВАссортимент.Добавить();
					НоваяСтрока.Склад 					 = ВыборкаСклад.Склад;
					НоваяСтрока.Номенклатура 			 = ВыборкаНоменклатура.Номенклатура;
					НоваяСтрока.Регистратор				 = ВыборкаДокументов.Регистратор;
					НоваяСтрока.Количество				 = ВыборкаДокументов.Количество;
					НоваяСтрока.СуммаВыручки			 = ВыборкаДокументов.СуммаВыручки;
					НоваяСтрока.СуммаВыручкиБезНДС		 = ВыборкаДокументов.СуммаВыручкиБезНДС;
					НоваяСтрока.Кратность				 = КоличествоДокументов;
				КонецЦикла; 
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;			
КонецПроцедуры
Показать
10. user654641_yaga_m 14 10.07.23 12:51 Сейчас в теме
(6)Показать результат работы отчета...)) Если выведенный отчет сохранить в файл - его размер нулевой?
12. 5225688vd 10.07.23 12:52 Сейчас в теме
13. user654641_yaga_m 14 10.07.23 12:55 Сейчас в теме
(12)Ну так какой он пустой!???
14. 5225688vd 10.07.23 13:01 Сейчас в теме
Вот
Прикрепленные файлы:
15. 5225688vd 10.07.23 13:01 Сейчас в теме
(13)Только шапка, он пустой
16. user654641_yaga_m 14 10.07.23 13:03 Сейчас в теме
(15) Могу ошибаться, посмотрите где-нибудь критерий пустого отчета - по мне он не пустой... Пустая таблица отчета - а это разные вещи!!
17. 5225688vd 10.07.23 13:13 Сейчас в теме
(16)Смотрел уже, остальные отчеты работают корректно
18. user654641_yaga_m 14 10.07.23 13:20 Сейчас в теме
(17) дайте картинку другого отчета...
19. 5225688vd 10.07.23 13:23 Сейчас в теме
(18)Вот этот не улетает
Прикрепленные файлы:
20. user654641_yaga_m 14 10.07.23 13:27 Сейчас в теме
(17)
(19)вижу разницу - в этом нет итога!
21. 5225688vd 10.07.23 13:41 Сейчас в теме
(20)т.е. если я отключу итоги он не будет отправляться?
23. user654641_yaga_m 14 10.07.23 14:09 Сейчас в теме
(21) Надо попробовать и как говорят - будет вам счастье...)
24. 5225688vd 10.07.23 14:09 Сейчас в теме
(23)Результат такой же, ничего не изменилось
25. user654641_yaga_m 14 10.07.23 14:10 Сейчас в теме
(24)Вы отправили по рассылке?
26. 5225688vd 10.07.23 14:12 Сейчас в теме
27. 5225688vd 10.07.23 14:40 Сейчас в теме
(25)Пустой отчет который без итогов имеет размер тоже 7 кб
22. 5225688vd 10.07.23 13:42 Сейчас в теме
Но если отчет не пустой, итоги мне нужны
28. areavel 11.07.23 12:51 Сейчас в теме
Проверьте что значит "пустой" в программе, прям условие по этой галке.
29. 5225688vd 11.07.23 13:14 Сейчас в теме
(28)Да, спасибо, забыл написать что вопрос закрыт, разобрался, нашел расширение в котором была переписана проверка на пустой отчт, немного поправил код и все заработало. Всем огромное спасибо кто помогал в данном вопросе!
30. user1474132 07.04.24 21:04 Сейчас в теме
Приношу свои извинения, но тема для меня актуальная, и регулярно прилетают пустые отчеты ((
Что конечно напрягает.
Не подскажите, что и где правили?
Оставьте свое сообщение

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