Имя: Пароль:
1C
1С v8
КомпоновщикМакета
0 ejikbeznojek
 
27.05.14
17:20
Добрый день.
Имеется отчёт реализованный следующим образом.
Выполняется запрос.
ВЫБРАТЬ
|т1.Накладная.Ссылка КАК Накладная
....
результат=запрос.выполнить.выгрузить();

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

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

В случае если я в отборах при выполнении отчёта выбираю Накладная=Какая то накладная.
То всё работает хорошо.
Если же я пытаюсь использовать отбор вроде
Накладная.Менеджер = какой-то менеджер.
То ругается, что нет такого поля.
В самом макете у меня создано поле "Накладная" с правильным типом данных.
1 Defender aka LINN
 
27.05.14
17:34
В таблице, в колонке "Накладная" составной тип данных.
Ну и традиционно: Накладная.Ссылка - категорически мало. Надо хотя бы так: Накладная.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка
2 ejikbeznojek
 
27.05.14
17:37
Это шутка такая? ?
Ошибку пишет о том, что поле не найдено "Накладная менеджер"
На всякий случай попробовал в макете поставить составной тип данных - не помогло 8(
3 nufnufcheg
 
27.05.14
17:40
покажи скрин полей набора данных
4 ejikbeznojek
 
27.05.14
17:44
5 ejikbeznojek
 
27.05.14
18:18
Только что понял закономерность.
Если я в группировке добавляю необходимое поле "Накладная.менеджер", то и отбор по нему тогда не вызывает ошибки.
Остаётся тогда только вопрос, как выводить не добавляя в группировку))
6 ejikbeznojek
 
27.05.14
19:28
В голову пока что пришло только.
    для каждого сч из КомпоновщикНастроек.Настройки.отбор.элементы цикл                        СтрокаВывода=КомпоновщикНастроек.Настройки.структура[0].ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
СтрокаВывода.Поле=сч.ЛевоеЗначение;
КонецЦикла;
7 H A D G E H O G s
 
27.05.14
20:58
Привет, брат - инвалид, за что тебя так?
8 ejikbeznojek
 
28.05.14
12:48
Привет))) Это образно, я просто очень плохо в футбол играю)
9 ejikbeznojek
 
29.05.14
12:40
В общем сделал как обычно - через одно место))).
В цикле перебираю отборы и добавляю поля из отборов в группировки(если их там нет).
Запоминаю индексы этих строчек и после выполнения на СКД, удаляю по этим индексам добавленные поля.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.