Имя: Пароль:
1C
1С v8
Тонкий клиент 8.2 + СКД - как поменять текст запроса ?
0 ll13
 
27.09.11
16:51
Возникла проблема с заменой текста запроса СКД:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
   ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = "!!!";
   ЗначениеВРеквизитФормы(ОтчетОбъект, "Отчет");    
КонецПроцедуры

Код отрабатывает без ошибок, но и запроса не меняет ...
Тема на форуме вроде поднималась, но тогда решения так и не нашлось.
Нашел ли кто нибудь способ обойти проблему ?
1 ll13
 
27.09.11
17:19
Подниму...
2 aleks-id
 
27.09.11
17:21
ОтчетОбъект.СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = "!!!";
не?
3 detec
 
27.09.11
17:22
(0) Скажу по своему опыту, что если текст запроса меняется существенно, с появлением новых полей, то как это сделать в рабочем виде - знают, похоже, только разработчики платформы.
Если состав полей не меняется, то лучше выкрутиться через параметры, они сравнительно легко передаются в настрйоки с тонкого клиента.
4 acsent
 
27.09.11
17:23
В тонком клиенте никак нельзя менять схему
5 ll13
 
27.09.11
17:30
(2) У меня опечатка, следует читать именно так, как Вы написали.

(3) Состав выходных полей не меняется, запрос строится динамически в зависимости от конфы ...

(4) У меня были неприятные предчувствия, что СКД в тонком клиенте нельзя поменять в принципе, похоже они подтверждаются ...
6 GenV
 
27.09.11
17:32
(0) В модуле отчета схему можно подменить (например тестовой из справочника). На форме нет.
7 ll13
 
27.09.11
17:51
(6) Хм...

Этот код также не дал результатов:

УстановитьЗапросСКД() - экспортная процедура модуля объекта.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
   ОтчетОбъект.УстановитьЗапросСКД();
   ЗначениеВРеквизитФормы(ОтчетОбъект, "Отчет");    
КонецПроцедуры
8 GenV
 
27.09.11
17:53
(7) В модуле, а не из формы вызвать процедуру модуля ) После создания объекта уже все ... Отчет можно идентифицировать по имени метаданных.
Программист всегда исправляет последнюю ошибку.