v8: Программно заменить схему компоновки в тонком клиенте #687075


#0 by brato4karik
Добрый день, необходима помощь, поскольку справиться сам не могу. Есть отчет который доступен разным пользователям в разных режимах запуска 1С. Часть пользователей работают из толстого клиента, часть из веб. Те пользователи которые работают из толстого имеют больше привилегий нежели пользователи браузерной версии(больше полей, больше деталей). Для   этого есть две схемы(по умолчанию в отчете в качестве основой стоит схема "подробная" для пользователей толстого клиента) а вот для управляемой формы нужно выбирать другую схему "краткая". вот такой код не дает эффекта: при возвращении на клиент, свойство Компоновщик, Реквизита формы Отчет, имеет старый компоновщик, от подробной схемы. Получается что схема и компоновщик не заменились и результат отчета выводиться в подробном виде
#1 by H A D G E H O G s
Чтото такое я проходил давно.
#2 by brato4karik
И я прохожу давно, множество способов уйти от такого подхода, но щас обойти не выходит))
#3 by H A D G E H O G s
Во временное хранилище я схему помещал, а адрес Временного Хранилища засовывал... ХЗ куда я его засовывал, не помню.
#4 by H A D G E H O G s
Или даже не сам адрес, а Схему. Важно, чтобы объект схемы не уничтожался после возврата с сервера, а жил все время жизни формы.
#5 by brato4karik
ну я тоже это вроде как подумал, заменил схему, загрузил настройки, инициализировал компоновщик, потом во временное помещать компоновщик и по адресу его сдергивать на клиенте. и обновлять свойство реквизита формы. Но может у кого есть рабочий пример, наверняка уж ктонить такое делал.
#6 by H A D G E H O G s
Это было 3 года назад, уж след простыл тому коду.
#7 by К_Дач
Формировать отчет полностью программно, в зависимости от параметров текущего пользователя (толстый клиент, тонкий клиент) инициализировать ту или иную СКД.
#8 by brato4karik
Нет, на форме есть доступ к полям отборов, сортировок текущего компоновщика. Получается что пользователь с "кратокой " версией отчета может задать в качестве отбора значения тех полей которые ему недоступны. (хоть на выводе он и получить менее детализированную выборку, но будет знать что она по той информации которая ему не положена)
#9 by К_Дач
сделай в лоб. Нарисуй две формы, для толстого и тонкого клиента, на каждой форме вытащи свою СКД и настрой так, как надо. При создании отчета на сервере открывай нужную форму
#10 by Зойч
схему нужно в хранилище класть, а компоновщик инициализировать адресом
#11 by H A D G E H O G s
Во! Точно!
#12 by GenV
Типовой функционал отчета (варианты, настройки, схема СКД в метаданных) рассчитан на одну схему СКД (та, что задана в метаданных). Когда то пытался сделать отчет схема СКД которого подгружалась из сохраненной в справочнике - были грабли из-за конфликта сохраненных настроек. Могу предложить попробовать настраивать доступность полей программно в зависимости от пользователя в одной общей схеме СКД или программно реализовывать типовой механизм работы с настройками и компоновщиком. ЗЫ Попробуй подменять схему в толстом клиенте, а в тонком родную использовать - в тонком больше ограничений.
#13 by zladenuw
может надо так
#14 by brato4karik
да такой подход точно работает, но это не решение задачи)) , видимо должен согласиться, что это единственный вариант
#15 by К_Дач
как-то у меня была задача расшифровывать полученный в результате отчета данные с помощью той же самой СКД, но с другими настройками, я делал так: где КомпоновщикДетальный - добавленный на форму реквизит с типом КомпоновщикНастроекКомпоновкиДанных
#16 by К_Дач
Соответсвенно, у меня в вариантах настроек СКД был вариант "Расшифровка"
#17 by brato4karik
Тему можно закрыть, результат получен. &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
#18 by Зойч
Подожди - это еще не вечер )))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С