Имя: Пароль:
1C
 
Нет полей для отбора в компоновщике настроек...
0 mikecool
 
07.07.19
15:50
Продолжаю ваять универсальную обработку
реквизит обработки: КомпоновщикНастроек, тип КомпоновщикНастроекКомпоновкиДанных
в ОФ на форме в поле лежит КомпоновщикНастроек.Настройки.Отбор
в УФ на форме в поле лежит Объект.КомпоновщикНастроек.Настройки.Отбор, т.е. он же
компоновщик инициализируется в ОФ перед открытием формы, в УФ - ПриСозданииНаСервере
в УФ смотрю настройки - в отборе доступные поля есть, при попытке в интерфейсе добавить новое поле отбора - доступных полей нет
чего я делаю не так?
1 mikecool
 
07.07.19
15:54
гм... при добавлении нового отбора - действительно полей для выбора нет...
где то потерялись настройки, вот только где?
2 mikecool
 
07.07.19
15:55
инициализирую так:
    пОбъект.ИнициализироватьКомпоновщикНастроекВыгрузки();
    ЗначениеВРеквизитФормы(пОбъект, "Объект");
на этом моменте компоновщик заполнен
а вот далее - нет ((
3 mikecool
 
07.07.19
16:09
нашел ответ здесь v8: КомпоновщикНастроек на форме
и ведь помнил об этом, даже закоментаренные строки в модуле есть, но подумал - раз в модуле, значит должно быть на сервере, а значит и должно нормально работать для УФ ))
4 mikecool
 
07.07.19
16:21
а вот проблема все равно есть, код в модуле объекта
    Если СхемаВыгрузки = Неопределено Тогда
        ИнициализироватьСхемуВыгрузки();
    КонецЕсли;
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаВыгрузки, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    Результат = Новый ТаблицаЗначений;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    Если Результат.Количество() = 0 Тогда
        Возврат Новый Массив;
    Иначе
        Возврат Результат.ВыгрузитьКолонку("Ссылка");
    КонецЕсли;
при использовании ОФ возвращает результат, при УФ - нет
при УФ приходится еще раз вызывать ИнициализироватьСхемуВыгрузки(); - этот метод выполняется для ОФ один раз и сохраняется в переменную, в УФ значение переменной, ессно, затирается на сервере
однако разве это должно повлиять на результат? для УФ что-то надо изменить?
5 mikecool
 
07.07.19
16:37
нашел это v8: СКД При компоновке результата
но метод ПолучитьНастройки() возвращает как раз все с учетом пользовательских настроек...
6 mikecool
 
07.07.19
16:40
смотрю МакетКомпоновки - источник данных установлен, запрос верный, параметр запроса по отбору тоже установлен
7 mikecool
 
07.07.19
16:41
непонятно же...
8 mikecool
 
07.07.19
17:13
все нормально, все хорошо
упр интерфейс проверял в соседней базе ))) в которой не было данных по отборам )))
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.