![]() |
![]() |
![]() |
|
Параметры СКД при нескольких схемах. | ☑ | ||
---|---|---|---|---|
0
Pok3Mon
13.08.13
✎
16:29
|
Всем добрый день!
Подскажите пожалуйста, в схеме есть Параметр &Подрядчик, пытаюсь его выставить программно, но всегда пишет Параметр с указанным именем не найден &НаКлиенте Процедура абрСформироватьОтчетЗаявки(Команда) Если абрРольДоступна_Сервер("абрПодрядчик")ИЛИ абрРольДоступна_Сервер("ПолныеПрава") Тогда СформироватьОтчетЗаявки_НаСервере(абрРезультат, "абрМакетОтчетаПоЗаявкам_Подрядчик"); СкомпоноватьРезультат(РежимКомпоновкиРезультата.Фоновый); ИначеЕсли абрРольДоступна_Сервер("абрКлиент") Тогда СформироватьОтчетЗаявки_НаСервере(абрРезультат, "абрМакетОтчетаПоЗаявкам"); СкомпоноватьРезультат(РежимКомпоновкиРезультата.Фоновый); КонецЕсли; КонецПроцедуры &НаСервере Процедура СформироватьОтчетЗаявки_НаСервере(РезультатЭлемент, Макет) РезультатЭлемент.Очистить(); ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет(Макет); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоПериода); ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецПериода); ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Подрядчик", ПараметрыСеанса.ТекущийПользователь); Настройки = Отчет.КомпоновщикНастроек.Настройки; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; РасшифровкаДанных = Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, РасшифровкаДанных); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , РасшифровкаДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(РезультатЭлемент); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); абрРасшифровка = ПоместитьВоВременноеХранилище(РасшифровкаДанных, ЭтаФорма.УникальныйИдентификатор); КонецПроцедуры |
|||
1
pessok
13.08.13
✎
16:31
|
тип значения реквизита Подрядчик какой?
|
|||
2
pessok
13.08.13
✎
16:32
|
вангую, что параметрысеанса.текущийпользователь возвращает СправочникСсылка.Пользователи, а в Подрядчик что-то другое
|
|||
3
Pok3Mon
13.08.13
✎
16:34
|
(1) СправочникСсылка.Пользователи
|
|||
4
Pok3Mon
13.08.13
✎
16:34
|
Подрядчик у меня тоже СправочникСсылка.Пользователи
|
|||
5
pessok
13.08.13
✎
16:35
|
Тогда так:
Настройки = Отчет.КомпоновщикНастроек.Настройки; ПараметрПодрядчик = Настройки.ПараметрыДанных.Элементы.Найти("Подрядчик"); ПараметрПодрядчик.Значение = ПараметрыСеанса.ТекущийПользователь ПараметрПодрядчик.Использование = Истина; |
|||
6
Pok3Mon
13.08.13
✎
16:37
|
{Отчет.ОтчетПоЗаявкам_ОтделДекларирования.Форма.ФормаОтчета.Форма(1832)}: Значение не является значением объектного типа (Значение)
ПараметрПодрядчик.Значение = ПараметрыСеанса.ТекущийПользователь; ПараметрПодрядчик возвращает Неопределено |
|||
7
pessok
13.08.13
✎
16:39
|
(6) а ограничения на него не стоит, случаем, в схеме? потому что должно работать.
Из типового УТ: ЗначениеПараметра = ПараметрыДанных.Элементы.Найти("НачалоТекущегоПериода"); Если ЗначениеПараметра <> Неопределено Тогда ПериодФормирования = ПолучитьПериодФормирования(ПараметрПериод.Значение, ПараметрПериодичность.Значение, 0); ЗначениеПараметра.Значение = ПериодФормирования.НачалоПериода; ЗначениеПараметра.Использование = Истина; КонецЕсли; |
|||
8
Pok3Mon
13.08.13
✎
16:43
|
||||
9
pessok
13.08.13
✎
16:44
|
(8) что в Настройки.ПараметрыДанных.Элементы?
|
|||
10
Pok3Mon
13.08.13
✎
16:46
|
НачалоПериода; КонецПериода
Подрядчика почему-то нет. |
|||
11
pessok
13.08.13
✎
16:46
|
Настройки = Отчет.КомпоновщикНастроек.Настройки;
может все таки Настройки = ОтчетОБЪЕКТ.КомпоновщикНастроек.Настройки; |
|||
12
Pok3Mon
13.08.13
✎
16:49
|
Не попадает в Настройки.ПараметрыДанных.Элементы.
Причем странно как-то в СхемаКомпоновкиДанных.Параметры Есть и НачалоПериода; КонецПериода; Подрядчик |
|||
13
V01tk2010
13.08.13
✎
16:52
|
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет(Макет);
На скрине что-то другое |
|||
14
Pok3Mon
13.08.13
✎
16:54
|
(13) У меня вроде также как и у тебя СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет(Макет);
или что-то не то? |
|||
15
pessok
13.08.13
✎
17:03
|
(14) а ведь и правда. какой, нафик, макет, когда у тебя схема называется абрЧтотоТам
|
|||
16
Pok3Mon
13.08.13
✎
17:06
|
Название Макета передается через параметр, что не так-то?
|
|||
17
Pok3Mon
13.08.13
✎
17:09
|
Из (0) кода я специально убрал слово ТЭО
|
|||
18
pessok
13.08.13
✎
17:15
|
(16) а, да, сорри, не усмотрел.
(14) нет. не так Настройки = Отчет.КомпоновщикНастроек.Настройки; а надо Настройки = ОтчетОбъект.КомпоновщикНастроек.Настройки; попробуй |
|||
19
Pok3Mon
13.08.13
✎
17:19
|
в (11)(12) Пробовал, не помогло.
|
|||
20
zladenuw
13.08.13
✎
17:23
|
я делал так. у меня в отчете используется две схемы. которая не по умолчанию.
КомпоновщикМакетаА = Новый КомпоновщикМакетаКомпоновкиДанных; СхемаКомпоновкиДанныхА = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1"); КомпоновщикНастроекА = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекА.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанныхА)); ДанныеРасшифровкиА = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикНастроекА.ЗагрузитьНастройки(СхемаКомпоновкиДанныхА.НастройкиПоУмолчанию); ЗаполнитьНастройки(КомпоновщикНастроекА.Настройки.ПараметрыДанных); // МакетКомпоновки = КомпоновщикМакетаА.Выполнить(СхемаКомпоновкиДанныхА,КомпоновщикНастроекА.Настройки,ДанныеРасшифровкиА,, |
|||
21
Pok3Mon
13.08.13
✎
17:29
|
Вообщем мне помогло следующее:
ОтчетОбъект.СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет(Макет); Настройки = ОтчетОбъект.СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ... МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных, Настройки, РасшифровкаДанных); |
|||
22
Pok3Mon
13.08.13
✎
17:29
|
Всем спасибо за помощь!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |