Имя: Пароль:
1C
1С v8
Печать файла в формате ворд или пдф, в зависимости с какой роли пользователь зашел в прогу
0 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();
    КонецПопытки;     
КонецПроцедуры
1 Garykom
 
гуру
22.05.21
16:04
откуда вы беретесь?

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

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