Имя: Пароль:
1C
 
СКД: Ошибка в элементе отбора: глобальные элементы отбора обязательно должны использовать
0 megabax
 
28.08.26
13:12
Коллеги, подскажите, пожалуйста, почему при выполнении этого кода:
Функция СформироватьОтчет() Экспорт 
	
	// 1. ЗАГРУЖАЕМ СХЕМУ ИЗ МАКЕТА
	Схема = ПолучитьМакет("Макет");	 

	для каждого Поле из Схема.ВычисляемыеПоля цикл
		сообщить(Поле.Заголовок);   
		сообщить(Поле.ТипЗначения);
	конеццикла;
	сообщить("---++++++++-----");
	
	
	Для каждого Параметр из Схема.Параметры цикл
		сообщить(Параметр.Заголовок);
		сообщить(Параметр.Имя);
		сообщить(Параметр.Значение);
	конеццикла;	   
	сообщить("---++++++--------------------++-----");

	
	для каждого Набор из Схема.НаборыДанных цикл
		сообщить(Набор.Имя);   
		сообщить("--------");
		сообщить(Набор.Запрос);
	конеццикла;
	
	//Схема=Макет.ПоулчитьСхему();
	
	// 2. ПОЛУЧАЕМ НАСТРОЙКИ ПО УМОЛЧАНИЮ
	Настройки = Схема.НастройкиПоУмолчанию;	   
	
	// Добавляем отбор
	ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));  
	ПолеНоменклатура = Схема.НаборыДанных[0].Поля.Найти("Номенклатура");
	ЭлементОтбора.ЛевоеЗначение = ПолеНоменклатура; //Схема.Поля.Номенклатура; // Поле из схемы
	ЭлементОтбора.ВидСравнения = ВидСравнения.Равно; //Новый ВидСравненияКомпоновкиДанных(ВидСравненияКомпоновкиДанных.Равно); //ВидСравнения.Равно;
	ЭлементОтбора.ПравоеЗначение = Справочники.Номенклатура.НайтиПоНаименованию("Палка телескопическая (Чехия)"); // Конкретное значение
	
	// 3. ФОРМИРУЕМ ОТЧЕТ
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, Неопределено);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(Макет);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
	
	ПроцессорВывода.НачатьВывод();
	Пока Истина Цикл
		ЭлементВывода = ПроцессорКомпоновки.Следующий();
		Если ЭлементВывода = Неопределено Тогда
			Прервать;
		КонецЕсли;
		ПроцессорВывода.ВывестиЭлемент(ЭлементВывода);
	КонецЦикла;
	ПроцессорВывода.ЗакончитьВывод();
	
	// 4. ВОЗВРАЩАЕМ РЕЗУЛЬТАТ
	Возврат ТабличныйДокумент;
	
КонецФункции


Получаю ошибку:
Ошибка при установке значения атрибута контекста (ВидСравнения)
{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(141)}:ЭлементОтбора.ВидСравнения = ВидСравнения.Равно; //Новый ВидСравненияКомпоновкиДанных(ВидСравненияКомпоновкиДанных.Равно); //ВидСравнения.Равно;
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(11)}:ТабличныйДокумент = ОбработкаОбъект.СформироватьОтчет();
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(4)}:СформироватьНаСервере();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Несоответствие типов
[ОшибкаИспользованияВстроенногоЯзыка]
1 Галахад
 
гуру
28.08.26
13:10
Не ВидСравнения, а ВидСравненияКомпоновкиДанных
2 megabax
 
28.08.26
13:20
Спасибо, вроде нашел, надо был отказывается вот так делать: ЭлементОтбора.ЛевоеЗначение = новый ПолеКомпоновкиДанных("Номенклатура");