СКД запрет вывод на печать и сохранение в файл

1. lendyez 12.07.19 09:17 Сейчас в теме
Подскажите как реализовать запрет на сохранения отчета на СКД в файл?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 12.07.19 09:26 Сейчас в теме
без выключения вывода в правах никак.
кнопка сохранения в главном меню плевала на СКД, а пользователь знает где она сидит.
3. dhurricane 12.07.19 09:41 Сейчас в теме
(2) (1) Ну вообще теоретически возможно. У табличного документа на форме отчета есть свойство "Вывод", которому можно присвоить значение "Запретить". Сделать это можно либо добавив свою форму отчета, либо определить обработчик ПриСозданииНаСервере в модуле объекта (при использовании БСП), и там изменить свойство программно.
4. catena 110 12.07.19 09:45 Сейчас в теме
(3)И заодно запретить принтскрин и фото экрана. Даже темка такая тут мелькала.
5. VmvLer 12.07.19 09:46 Сейчас в теме
(3) а выделение вручную и копи-паст тоже зарубит?
6. dhurricane 12.07.19 09:48 Сейчас в теме
(5) Должно.
Вывод (Output)
Использование:

Чтение и запись.
Описание:

Тип: ИспользованиеВывода.
Ограничение вывода на печать, сохранения, работы с буфером обмена.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
Изменение свойства на клиенте может потребовать обращения к серверу.

Примечание:

Может иметь значение, отличное от значения свойства Вывод документа, с которым это поле связано.
Показать
7. lendyez 12.07.19 09:52 Сейчас в теме
(6) Пробовал вот так, не получается.
// Выводим результат в табличный документ
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);	
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
	// Устанавливаем фиксацию в табличном документе
	ДокументРезультат.ФиксацияСлева = 1;
	ДокументРезультат.Вывод=ИспользованиеВывода.Запретить; 
Показать
8. toypaul 63 12.07.19 09:54 Сейчас в теме
(7) у элемента формы свои свойства
9. VmvLer 12.07.19 10:04 Сейчас в теме
+ 7. Да, ДокументРезультат сидит в памяти и передается на форму.

Если отчет на БСП, то подозреваю, что необходимо будет "влезть" в общую БСП-форму отчетов СКД и там покостылить. В принципе в расширение кинуть модуль из этой формы и там запретить вывод.
10. dhurricane 12.07.19 10:16 Сейчас в теме
(9) Опять же, не все так страшно. :)
БСП, по крайней мере начиная с 2.4, предоставляет возможность реализовать свой обработчик события формы "ПриСозданииНаСервере" в модуле объекта самого отчета.
11. VmvLer 12.07.19 10:20 Сейчас в теме
Ждем пока автор реализует механизм, мне лень ковырять.
Надеюсь, совесть не позволит ему утаить решение!
12. lendyez 12.07.19 10:32 Сейчас в теме
(11)Всем спасибо. Добавил в расширение
&НаСервере
Процедура ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Элементы.ОтчетТабличныйДокумент.Вывод = ИспользованиеВывода.Запретить;
КонецПроцедуры

Это я влез в общую форму. Тут конечно надо еще покрутить, потому что тогда запретит вывод всех отчетов. Выход либо здесь покрутить с точным указанием отчета для кого используется. Либо просто создать у отчета свою форму и в ней внести данный код.
13. SlavaKron 12.07.19 11:25 Сейчас в теме
Зачем расширение, если это БСП? В модуле отчета:
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
	Форма.Элементы.ОтчетТабличныйДокумент.Вывод = ИспользованиеВывода.Запретить;
	Форма.Элементы.ОтчетТабличныйДокумент.Защита = Истина;
	ГруппаВывод = Форма.Элементы.Найти("ГруппаВывод");
	Если ГруппаВывод <> Неопределено Тогда
		ГруппаВывод.Видимость = Ложь;
	КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
ПереопределениеПриСозданииНаСервере.erf
14. VmvLer 12.07.19 11:55 Сейчас в теме
(13) если это не требует "сбросить замки", то тоже вариант.
я же предпочитаю расширение.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот