|
Скд. программный вызов | ☑ | ||
---|---|---|---|---|
0
jenny_tea
31.05.12
✎
17:08
|
Ситуация следующая:
У меня есть некая обработка(Рабочий стол для руководителей подразделений). и им необходимо выдавать Отчет Расчетная ведомость на его сотрудников. Схема = Отчеты.РасчетныеВедомостиОрганизацийСПоказателями.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = Схема.НастройкиПоУмолчанию; ЭлементыКомпоновщикаНастроек = Настройки.Отбор.Элементы; ПолеПодразделение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации"); Для Каждого Элемент из ЭлементыКомпоновщикаНастроек ЦИкл Если Элемент.ЛевоеЗначение = ПолеПодразделение Тогда Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Элемент.ПравоеЗначение = мПодразделениеОргазации; Элемент.Использование = Истина; Прервать; КонецЕсли; КонецЦикла; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; Макет = КомпоновщикМакета.Выполнить(Схема, Настройки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(Макет); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДок = Новый ТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновки); ТабДок.Показать(); Все вроде хорошо, НО! для работы необходимо пользователю дать права на кучу регистров и документов, что делать не очень хочется. Попытка поставить ПривелигированныйРежим в начале и в конце данного блока, не дает ничего так как на форме не работает УстановитьПривелигированныйРежим. Если поставить данные действия в модуль обработки также не сработали. Тогда я попыталась сделать данную процедуру в общем модуле который выполняется на сервере с привелигированным режимом, и передаю ТабДок. При этом он ругается что я пытаюсь передать мутабельное значение результата. Есть какая-нибудь возможность обойти, подскажите? |
|||
1
Buster007
31.05.12
✎
17:11
|
А зачем передавать на сервер ТабДок? Оттуда его наоборот надо вернуть.
|
|||
2
jenny_tea
31.05.12
✎
17:13
|
он не возвращается с сервера, я оттуда и передаю
|
|||
3
Necessitudo
31.05.12
✎
17:17
|
Мда, жестоко)) Как я делаю в 8.1 - выполняю запрос в общем модуле с привилегированным режимом, оттуда получаю таблицу значений.И вот уже ТЗ передаю в СКД в качестве внешнего источника данных).
|
|||
4
Buster007
31.05.12
✎
17:23
|
каким образом ты пытаешься передать ТабДок?
|
|||
5
jenny_tea
31.05.12
✎
20:28
|
делаю экспортную функцию и делаю возврат табдок; на этом моменте ругается на мутабельное значение? а какие есть варианты?
|
|||
6
jenny_tea
01.06.12
✎
09:07
|
поднимаю с новыми силами с начала рабочего дня:)
|
|||
7
jenny_tea
01.06.12
✎
09:14
|
решила проблему следующим способом:
В общем модуле на сервере в Привилегированном режиме написала следующую функцию Функция ОткрытьРасчетнуюВедомость(мПодразделениеОргазации) Экспорт Схема = Отчеты.РасчетныеВедомостиОрганизацийСПоказателями.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = Схема.НастройкиПоУмолчанию; ЭлементыКомпоновщикаНастроек = Настройки.Отбор.Элементы; ПолеПодразделение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации"); Для Каждого Элемент из ЭлементыКомпоновщикаНастроек ЦИкл Если Элемент.ЛевоеЗначение = ПолеПодразделение Тогда Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Элемент.ПравоеЗначение = мПодразделениеОргазации; Элемент.Использование = Истина; Прервать; КонецЕсли; КонецЦикла; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; Макет = КомпоновщикМакета.Выполнить(Схема, Настройки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(Макет); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДок = Новый ТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновки); Хранилище = Новый ХранилищеЗначения(ТабДок); Возврат Хранилище; КонецФункции Соответственно на клиенте при этом Процедура РасчетныеВедомостиОрганизацийСПоказателямиНажатие(Элемент) Хранилище = РИТЕК_ПодключениеКБазе.ОткрытьРасчетнуюВедомость(мПодразделениеОргазации); ТабДок = Хранилище.Получить(); ТабДок.Показать(); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |