Имя: Пароль:
1C
1С v8
Как обойти галку "Редактирование печатных форм документов"?
0 SuperSpade
 
15.06.16
09:49
Конфа - сильно переписанная Розница. Платформа 8.1.13.
Вопрос: как открыть пользователю возможность сохранить табличный документ, печатаемый внешней печатной формой в файл (меню файл - сохранить, сохранить как, сохранить копию), не устанавливая галку в дополнительных правах пользователя "Редактирование печатных форм документов"?
В печатной форме сняты галки "Защита" и "ТолькоПросмотр", но это не помогает.
1 Чайник Рассела
 
15.06.16
09:51
править обработку печати
2 FIXXXL
 
15.06.16
09:52
(0) на общей форме печати нарисовать свою кнопку выгрузки в эксель
3 kubik_live
 
15.06.16
09:52
в впф не используй универсальныемеханизмы при выводе на печать
4 SuperSpade
 
15.06.16
09:57
(2), (3) над этими вариантами уже думали, но сейчас главная задача обойтись правкой только печатной формы - чтобы не обновлять саму конфу. Если конечно это вообще возможно.

Можно в печатной форме инициировать запись в xls с запросом имени файла (помимо вывода в общую форму печати), но делать это автоматом без кнопки - плохой вариант.
5 SuperSpade
 
15.06.16
09:58
(1) как именно править, если речь именно о внешней обработке печати?
6 Чайник Рассела
 
15.06.16
09:59
(5) если используешь универсальный механизм то правится общая форма печати, но с учетом (4) не вариант
7 kubik_live
 
15.06.16
09:59
(4) ...чтобы не обновлять саму конфу ???

Говоришь, впф...
8 SuperSpade
 
15.06.16
10:00
(6) да, к сожалению внешняя печатная форма вызывается универсальным механизмом печати.
9 FIXXXL
 
15.06.16
10:03
(8) у тебя и так конфа перепиленная, что мешает кнопку приделать?
10 FIXXXL
 
15.06.16
10:05
(9) + если надо только ВПФ, передавай какой-нить параметр в общий механизм печати и по нему разрешай доступность кнопки
11 SuperSpade
 
15.06.16
10:09
(8) нельзя вот так просто взять и обновить конфу :)
(9) это вариант, но опять же с перепилом основной конфы, может к этому и придёт, но хотелось конечно обойтись меньшей кровью.
12 patria0muerte
 
15.06.16
10:38
Вообще можно в функции Печать внешней обработки вызвать модальное окошко, нарисованное в этой печатной форме, в котором нарисовать свою кнопку сохранения или еще чего. По ней все действия уже и делать.

А сама функция пусть возвращает Неопределено в случае сохранения. Если не ошибаюсь - универсальный механизм печати на неопределено нормально реагирует.
13 patria0muerte
 
15.06.16
10:40
В итоге функция Печать() внешней печатной формы у меня заканчивается примерно следующим:

Если Действие = "Печать" Тогда
    Возврат ТабДок;
ИначеЕсли Действие = "СохранитьВPDF" Тогда
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.Заголовок = "Сохранить договор в pdf";
    Диалог.Фильтр = "Документ PDF (*.pdf)|*.pdf";
    Диалог.Расширение = "pdf";
    Если Диалог.Выбрать() Тогда
        Если НЕ ПустаяСтрока(Диалог.ПолноеИмяФайла) Тогда
            ТабДок.Записать(Диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);
        КонецЕсли;
    КонецЕсли;
    
    Возврат Неопределено;
    
ИначеЕсли Действие = "ЭлектронныйДокумент" Тогда
    
    РеквизитыЗаполнения = ЗаполнитьРеквизитыЭлектронногоДокумента(
        Документооборот.ПолучитьСтруктуруРеквизитовЗаполненияЭлектронногоДокумента()
    );
            
    Документооборот.СоздатьПисьмоСМакетом(
        СсылкаНаОбъект,
        ТабДок,
        ВыборкаПоШапкеСправочника.ДоговорНаименование,
        РеквизитыЗаполнения
    );
    
    Возврат Неопределено;
            
КонецЕсли;

Возврат ТабДок;
14 patria0muerte
 
15.06.16
10:42
И в начале процедуры печати соответственно:

Действие = ПолучитьФорму("ФормаВыбораДействия").ОткрытьМодально();
    
Если ПустаяСтрока(Действие) Тогда
    Возврат Неопределено;
КонецЕсли;
15 patria0muerte
 
15.06.16
10:42
(14)*функции Печать()
16 mehfk
 
15.06.16
10:51
(0) Вместо Возврат ТабДок открыть свою форму со своими кнопками сохранения табличного документа.
17 SuperSpade
 
15.06.16
10:54
(12) Спасибо. Натолкнули на мысль.
Сделал так: в печатной форме в конце:

ТабДокумент.Показать();
ТабДокумент=Неопределено;

В итоге отображается не в общей печатной форме, а как отдельный табличный док с возможностью сохранения (проверка галки доступности редактирования проверяется именно в общей печатной форме "ПечатьДокументов").