Имя: Пароль:
1C
 
Отчет СКД, ошибка в вычисляемом поле.
0 Zombi
 
16.12.25
10:06
Есть отчет СКД, есть вычисляемое поле с выражением "Строка(Формат(ГоденОт, "ДФ = дд.ММ.гг")) + КДВНашеВсяко.СимволыПС() + Строка(Формат(ГоденДо, "ДФ = дд.ММ.гг"))"  
КДВНашеВсяко это общий модуль, СимволыПС() это функция, которая возвращает символ переноса строки. Отчет работает, все нормально. Возникла необходимость формировать отчет программно для вставки разрыва страницы. Вот модуль процедуры  ПриКомпоновкеРезультата:

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

	Настройки = КомпоновщикНастроек.ПолучитьНастройки();

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

	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

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

	ПроцессорВывода.НачатьВывод();

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


Получаю вот такую ошибку:

Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
Ошибка при вызове метода контекста (Следующий)
{ВнешнийОтчет.ОтгрузкиСкладу.МодульОбъекта(117)}:ЭлементРезультата = ПроцессорКомпоновки.Следующий();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
[ОшибкаНастроекКомпоновкиДанных]
по причине:
Синтаксическая ошибка "КДВНашеВсяко.СимволыПС"


Убираю из вычисляемого поля "КДВНашеВсяко.СимволыПС", все нормально. Комментирую код в процедуре ПриКомпоновкеРезультата, тоже все нормально. В чем может быть причина ошибки?
1 Timon1405
 
16.12.25
10:12
КДВНашеВсяко.СимволыПС()
2 toypaul
 
гуру
16.12.25
10:17
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,, Истина); и в СП сходить почитать
3 Мультук
 
гуру
16.12.25
10:18
(0)

Нужно взять себя в руки и прочитать описание аргументов к функции

ПроцессорКомпоновки.Инициализировать();
4 Zombi
 
16.12.25
10:20
(2) Точно. Спасибо.
5 Fish
 
гуру
16.12.25
11:08
Вообще, конечно свинство, что у параметра ВозможностьИспользованияВнешнихФункций значение по умолчанию Ложь.
Ведь когда делаешь отчет не программно, то дополнительно никаких флагов не взводишь, т.е. там по умолчанию - Истина.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн