Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Печать файла в формате ворд или пдф, в зависимости с какой роли пользователь зашел в прогу

Печать файла в формате ворд или пдф, в зависимости с какой роли пользователь зашел в прогу
Я
   Vasutka12
 
22.05.21 - 15:58
Всем доброго здравия, есть вопрос. Есть рабочий макет с типом active documents, в который подставляются необходимые данные из документа. Нужно, если пользователь заходит от имени Администратора печатать файл только в формате pdf, а если от имени бухгалтера - только в формате word. Как это реализовать?? Мало примеров в гугле, может быть кто знает как это сделать? Вот код, который сохраняет оба формата файлов. А как это осуществить по роляи?    

&НаКлиенте
Процедура СформироватьКнопка(Команда)
    Серверная();
КонецПроцедуры  
&НаСервере
Процедура Серверная()
    Сформировать=РеквизитФормыВЗначение("Объект").ПолучитьМакет("Сформировать");
    // Получить объект из макета.
    MSWord = Сформировать.Получить();
    Попытка
        Документ = MSWord.Application.Documents(1);
        Документ.Activate();
        // Получить объект, который будет использоваться для поиска и замены.
        Замена = Документ.Content.Find;
        // Заменить заранее определенные ключевые конструкции на требуемый текст.
        
                Замена = Документ.Content.Find;
        Замена.Execute("<Data>", Ложь, Истина, Ложь, , , Истина, , Ложь, (Формат(Объект.Дата, "ДЛФ=Д")));
        Замена = Документ.Content.Find;         
        Замена.Execute("<Data1>", Ложь, Истина, Ложь, , , Истина, , Ложь, Объект.ДатаПриема);                            
        // Вкл видимость приложения и активизируем его.      
        //MSWord.Application.Visible = Истина;
        MSWord.Activate();
        Если ?????
        MSWord.SaveAS("D:\"+"Документ №"+ Объект.Номер +".pdf",17 );
        MSWord.SaveAs("D:\"+"Документ  №"+ Объект.Номер +".docx" , 16);
    Исключение
        // Если произойдет ошибка, выводятся данные об ошибке, и объект закрывается.
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();    
        MSWord.Application.Quit();
    КонецПопытки;     
КонецПроцедуры
   Garykom
 
1 - 22.05.21 - 16:04
откуда вы беретесь?

с вопросами типа:
есть авто и есть сигнализация которая играет две мелодии
как сделать чтобы сел владелец авто или нет она разные играла?
   ДенисЧ
 
2 - 22.05.21 - 16:04
если РольДоступна("ЯМогуПечататьТолькоВПДФ) Тогда
// печатаем в пдф

Иначе...
   ДенисЧ
 
3 - 22.05.21 - 16:05
(1) Плохой пример.
   Vasutka12
 
4 - 22.05.21 - 16:06
(3) Он рабочий
   Garykom
 
5 - 22.05.21 - 16:06
(3) для ТС это примеры очень похожи см (4) :)
   Garykom
 
6 - 22.05.21 - 16:07
(2) вот откуда он про роли догадается?
лучше две кнопки сделать и пусть юзер сам выбирает
ну или доп реквизит или доп сведение на юзера навесить что сильно проще
   Vasutka12
 
7 - 22.05.21 - 16:11
(2) Огромное спасибо, работает
   ДенисЧ
 
8 - 22.05.21 - 16:12
(6) "заходит от имени Администратора ..., а если от имени бухгалтера"
Должен догадаться...

Ну... Я ещё иногда верю в способности людей...
   Garykom
 
9 - 22.05.21 - 16:12
(8) а потом зайдет бухгалтер с полными правами и упс
   Garykom
 
10 - 22.05.21 - 16:14
(9)+ и будет:
чтобы эта штука правильно печатала мы должны у вас права забрать!
ну или вот вам вторая учетка урезанная туда заходите вторым сеансом и там печатайте...
   ДенисЧ
 
11 - 22.05.21 - 16:16
(9) Сама виновата будет.
   Новый1сник2
 
12 - 22.05.21 - 16:27
(9) если у бухгалтера нет этой роли, то все норм
   acanta
 
13 - 22.05.21 - 16:37
(10) и почему программист 1с не установил лицензии не на компьютер, а на сеанс...

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.