Имя: Пароль:
1C
 
печатная форма только просмотр = ложь
0 KonstantinK90
 
18.06.15
10:03
Всем привет! Есть печатная форма трудовой договор не типовой код.Отладчиком смотрю везде стоит только просмотр =ложь и добавил еще  Макет.ТекущаяОбласть.Защита=Ложь;
            ТабДокумент.ТекущаяОбласть.Защита=Ложь;
все равно не работает нужно постоянно делать таблица вид редактировать. как сделать что бы при формировании всегда можно было редактировать
1 vicof
 
18.06.15
10:05
С табдока снять защиту, а не с текущей области
2 KonstantinK90
 
18.06.15
10:07
ТабДокумент.Защита = ложь; стоит и все равно не работает
3 Enterprise
 
18.06.15
10:08
(2) Встань отладчиком в самый конец формирования табдока, перед выводом. И посмотри ТолькоПросмотр и Защита
4 KonstantinK90
 
18.06.15
10:09
функция возращает ТабДокумент.Защита = ложь;
5 Enterprise
 
18.06.15
10:09
(4) тогда показывай
6 KonstantinK90
 
18.06.15
10:10
скинуть функцию?
7 Enterprise
 
18.06.15
10:10
ну
8 KonstantinK90
 
18.06.15
10:12
ИначеЕсли ИмяМакета = "ТрудовойДоговор_Новый" Тогда
        ТабДокумент = Новый ТабличныйДокумент;
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТрудовойДоговор_Печать";
        Выборка = СформироватьЗапросДляПечатиТрудовогоДоговора().Выбрать();
        Макет = ПолучитьМакет("ТрудовойДоговор_Новый");
        
        Если Выборка.Следующий() Тогда
            
            Макет.Параметры.НомДог   = НомерДоговора;
            Макет.Параметры.ДатаДог  = Формат(ДатаДоговора,"ДФ='dd MMMM yyyy'");;
            
            Макет.Параметры.ПолноеНазваниеОрганизации = СокрЛП(ОбособленноеПодразделение.НаименованиеПолное);
            
            
            
            Отбор = Новый Структура;
            Отбор.Вставить("Физлицо", Физлицо);
            Ф = РегистрыСведений.ФИОФизЛиц.ПолучитьПоследнее(,Отбор);
            
            Макет.Параметры.ФИО_Работника = СокрЛП(Ф.Фамилия)+" "+СокрЛП(Ф.Имя)+" "+СокрЛП(Ф.Отчество);
            
            Макет.Параметры.Подразделение = СокрЛП(ПодразделениеОрганизации.Наименование);
            
            Макет.Параметры.Должность = СокрЛП(Должность.Наименование);  
            Макет.Параметры.Дата_Начала_Работы = Формат(ДатаПриемаНаРаботу,"ДФ='dd MMMM yyyy'");
            
            Макет.Параметры.Испытательный_Срок_продолжительность = ИспытательныйСрок;
            
            Макет.Параметры.Испытательный_Срок_Нач = Формат(ДатаПриемаНаРаботу,"ДФ='dd MMMM yyyy'");
            Макет.Параметры.Испытательный_Срок_Кон = Формат(ДобавитьМесяц(ДатаПриемаНаРаботу,ИспытательныйСрок),"ДФ='dd MMMM yyyy'");
            
            Макет.Параметры.Оклад = ЧислоПрописью(Число(Формат(Выборка.ТарифнаяСтавка,"ЧГ=0")),"Л = ru_RU","рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 0");  //
                        
            Макет.Параметры.Оклад = Макет.Параметры.Оклад + " в месяц, с районным коэффициентом 1,15.";
            
            
            Макет.Параметры.Орг_Краткое_Н = СокрЛП(ОбособленноеПодразделение.НаименованиеСокращенное);
            
            Макет.Параметры.Реквизиты_Орг = СокрЛП(Выборка.АдресОрганизации) +", ИНН/КПП "+СокрЛП(Выборка.ИНН) +",р/с " + СокрЛП(ОбособленноеПодразделение.ОсновнойБанковскийСчет.НомерСчета) +", "+
            СокрЛП(ОбособленноеПодразделение.ОсновнойБанковскийСчет.Банк.Наименование)+", " + СокрЛП(ОбособленноеПодразделение.ОсновнойБанковскийСчет.Банк.Город)+", "+
             СокрЛП(ОбособленноеПодразделение.ОсновнойБанковскийСчет.Банк.КоррСчет)+", " + СокрЛП(ОбособленноеПодразделение.ОсновнойБанковскийСчет.Банк.Код);  
            
            Макет.Параметры.ДатаРожд = Формат(Физлицо.ДатаРождения,"ДФ='dd.MM.yyyy'");  
            
            Макет.Параметры.Адр_Рег = СокрЛП(Выборка.АдресРегистрации);
            
            Макет.Параметры.Адр_Факт_Проживания = СокрЛП(Выборка.ФактАдресФизЛица);
            
            Макет.Параметры.Паспорт = "Паспорт гражданина Российской Федерации, серия " +СокрЛП(Выборка.ДокументСерия) + " № " + СокрЛП(Выборка.ДокументНомер)+ ", Выдан: "+СокрЛП(Формат(Выборка.ДокументДатаВыдачи,"ДФ='dd MMMM yyyy'")) +" " + СокрЛП(Выборка.ДокументКемВыдан) + " № подр. " + СокрЛП(Выборка.ДокументКодПодразделения);
            
            //Макет.Параметры.Вод_Удостоверение = ;  
            
            Макет.Параметры.Работник_Фио = Лев(СокрЛП(Ф.Имя),1)+". "+Лев(СокрЛП(Ф.Отчество),1)+". " + СокрЛП(Ф.Фамилия);
            
        КонецЕсли;
            Макет.ТекущаяОбласть.Защита=Ложь;
            ТабДокумент.ТекущаяОбласть.Защита=Ложь;
            
        ТабДокумент.Вывести(Макет);
        Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, "ТрудовойДоговор_Новый");
    
    КонецЕсли;
9 Любопытная
 
18.06.15
10:14
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, "ТрудовойДоговор_Новый");
Вот здесь вся магия и случается
10 dva1c
 
18.06.15
10:14
Перед

ТабДокумент.Вывести(Макет);

нет из (4)
11 John83
 
18.06.15
10:14
разве не у общей формы это нужно устанавливать?
12 Enterprise
 
18.06.15
10:14
(8) Теперь ищи тут УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, "ТрудовойДоговор_Новый");
13 dva1c
 
18.06.15
10:16
(9),(12) лучшее решение.
14 dva1c
 
18.06.15
10:17
(13) для (8)
15 Enterprise
 
18.06.15
10:20
(8) если взять процедуру "УниверсальныеМеханизмы.НапечататьДокумент" из УТ 10, то там будет:

ФормаПечати = ПолучитьОбщуюФорму("ПечатьДокументов",, Новый УникальныйИдентификатор);
ФормаПечати.Защита = УправлениеДопПравамиПользователей.ЗащитаТаблиц();


Далее при открытии самой общей формы "ПечатьДокументов":

ЭлементыФормы.ПолеТабличногоДокумента.Защита              = Защита;
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр      = Истина;
16 KonstantinK90
 
18.06.15
10:24
// Отобразить печатный документ на экране
        ФормаПечати = ПолучитьОбщуюФорму("ПечатьДокументов",, ПечДокумент);
        ФормаПечати.ПечатныйДокумент                = ПечДокумент;
        ФормаПечати.Заголовок                        = Заголовок;
        ФормаПечати.Защита                            = УправлениеДопПравамиПользователей.ЗащитаТаблиц();
        ФормаПечати.ПараметрыРасшифровки            = ПараметрыРасшифровки;
        ФормаПечати.ПараметрыПечатногоДокумента        = ПараметрыПечДокумента;
        ФормаПечати.Открыть();

        Возврат ФормаПечати;
и здесь я смотрю в отладчике формапечать .Защита стоит ложь
17 Enterprise
 
18.06.15
10:26
(16) ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Истина;

При открытии общей формы, я ж писал
18 KonstantinK90
 
18.06.15
10:27
добавил строку ФормаПечати.ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Ложь;
и все получилось спасибо!