|
Отбор в СКД | ☑ | ||
---|---|---|---|---|
0
Andrey2C
02.04.15
✎
14:23
|
Здравствуйте. Делаю отчет в СКД. В отчете создал Табличную часть. Туда скомпоновал все нужные мне данные и вставил в СКД. Пишу так:
НаборДанных = Новый Структура; НаборДанных.Вставить("ВнешниеДанные", ВнешниеДанные); СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ЭлементыФормы.ТабДок.ПоказатьУровеньГруппировокСтрок(0); Потом установил в настройках СКД Отбор по коду справочника. Если задаю в настройках СКД(Режим конфигуратора) значение то отбор срабатывает как нужно. А если тоже значение задаю в режиме 1С Предприятие отбор не срабатывает! В чем может быть дело? |
|||
1
Andrey2C
02.04.15
✎
14:28
|
Т.е. работают только те настройки отбора, которые задал в Конфигураторе.
|
|||
2
ЧеловекДуши
02.04.15
✎
14:28
|
(0) Трудно сказать. Но вот тебе пример.
Пример использования внешнего набора данных http://1cskd.ru/2010/07/vneshnie-nabori-dannyh/ |
|||
3
ЧеловекДуши
02.04.15
✎
14:29
|
(1) Фигня
|
|||
4
ЧеловекДуши
02.04.15
✎
14:32
|
+(2) Вот часть кода который добавлен по коду из ссылки
Если НастройкиКомпоновщика.ПараметрыДанных.Элементы.Количество()>0 ТОгда Для каждого Элемент Из НастройкиКомпоновщика.ПараметрыДанных.Элементы Цикл Если Сокрлп(Элемент.Параметр)="ВариантЗапроса" тогда Элемент.Использование = Истина; //Отобразим для пользователя НайденЭлемент = ЭлемПользНастр.Найти(Элемент.ИдентификаторПользовательскойНастройки); Если НайденЭлемент <> Неопределено Тогда НайденЭлемент.Использование = Истина; КонецЕсли; //ВариантЗапроса2 ИначеЕсли Сокрлп(Элемент.Параметр)="Период" тогда Элемент.Значение = ТекущаяДата(); //Отобразим для пользователя НайденЭлемент = ЭлемПользНастр.Найти(Элемент.ИдентификаторПользовательскойНастройки); Если НайденЭлемент <> Неопределено Тогда НайденЭлемент.Значение = Элемент.Значение; КонецЕсли; ИначеЕсли Сокрлп(Элемент.Параметр)="Средний" тогда Если Элемент.Значение = 0 Тогда СреднийОбъемЗаказа = Константы.Средний.Получить(); Если СреднийОбъемЗаказа = 0 Тогда СреднийОбъемЗаказа = 0.025; //м3 - метры кубические КонецЕсли; Элемент.Значение = СреднийОбъемЗаказа; КонецЕсли; Элемент.Использование = Истина; //Отобразим для пользователя НайденЭлемент = ЭлемПользНастр.Найти(Элемент.ИдентификаторПользовательскойНастройки); Если НайденЭлемент <> Неопределено Тогда НайденЭлемент.Значение = Элемент.Значение; НайденЭлемент.Использование = Элемент.Использование; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
5
Andrey2C
02.04.15
✎
14:40
|
(4) А где там этот код? Я такого не нашел там
|
|||
6
Andrey2C
02.04.15
✎
14:45
|
Где его использовать то этот код?
|
|||
7
ЧеловекДуши
02.04.15
✎
14:49
|
(5) Допиши, Между
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; //------------------------- НастройкиКомпоновщика = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(); ЭлемПользНастр = ЭтотОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; //НастройкиКомпоновщика - как раз и заполняется всем, чем ты пожелаешь МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, НастройкиКомпоновщика, ДанныеРасшифровки); |
|||
8
ЧеловекДуши
02.04.15
✎
14:50
|
(6) В модуле отчета "ПриКомпоновкеРезультата", это предопределенная процедура.
ТЗ можешь не передавать, т.е. вместо переменной ТЗ пишешь "Неопределено" и все ок. |
|||
9
Andrey2C
02.04.15
✎
15:11
|
(8) Блин все дело в настройках. Я так и думал. Спасибо) Провозился времени кучу потерял! не там копал.
Вместо Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; Нужно: Настройки = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |