Имя: Пароль:
1C
1С v8
Параметры страницы
0 inmortal203
 
02.10.12
11:21
Добрый день! Нужно чтобы при печати стояли по умолчанию параметры страницы. Этот код платформа игнорит

   ТабДокумент.ПолеСверху              = 5;
   ТабДокумент.ПолеСлева               = 5;
   ТабДокумент.ПолеСнизу               = 5;
   ТабДокумент.ПолеСправа              = 5;
   ТабДокумент.МасштабПечати           = 96;
   ТабДокумент.ОриентацияСтраницы      =    ОриентацияСтраницы.Ландшафт;

кто знает причину, получит печеньку)
1 Cube
 
02.10.12
11:23
(0) Ну если это весь код, то я бы его тоже проигнорировал :)
2 inmortal203
 
02.10.12
11:25
намек понят)


Функция ПечатьТТН()

   ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
   Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ТоварКод = "Артикул";
   Иначе
       ТоварКод = "Код";
   КонецЕсли;

   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ПогрузкаТовараСостав.Контрагент,
   |    ПогрузкаТовараСостав.КоличествоПоОтгрузке КАК Колво
   |ИЗ
   |    Документ.ПогрузкаТовара.Состав КАК ПогрузкаТовараСостав
   |ГДЕ
   |    ПогрузкаТовараСостав.Ссылка = &ТекущийДокумент";
   
   Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
   
   тбСостав = Запрос.Выполнить().Выгрузить();
   тбСостав.Свернуть("Контрагент", "Колво");
   
   
   Автотранспорт = Справочники.Автотранспорт.НайтиПоРеквизиту("Водитель", Водитель);
   
   ТабДокумент = Новый ТабличныйДокумент;

// Зададим параметры макета
   ТабДокумент.ПолеСверху              = 5;
   ТабДокумент.ПолеСлева               = 5;
   ТабДокумент.ПолеСнизу               = 5;
   ТабДокумент.ПолеСправа              = 5;
   ТабДокумент.МасштабПечати           = 96;
   ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;

   Макет       = ПолучитьМакет("ТТН");
   
   КодЯзыкаПечать = "uk";

   
   Для Каждого Стр из тбСостав Цикл
   
   // Выводим общие реквизиты шапки
   СведенияОПоставщике       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация,        Дата);
   Если ТипЗнч(Стр.Контрагент) = Тип("СправочникСсылка.Подразделения") Тогда
       СведенияОПокупателе       = Стр.Контрагент;
       СведенияОГрузополучателе  = Стр.Контрагент;
   Иначе
       СведенияОПокупателе       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Стр.Контрагент,       Дата);
       СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Стр.Контрагент,  Дата);
   КонецЕсли;
   СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, Дата);

   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакета.Параметры.НомерДокумента                = "ПТ"+Число(Номер);
   ОбластьМакета.Параметры.ДатаДокумента                 = Дата;
   ОбластьМакета.Параметры.Грузоотправитель              = Организация;
   ОбластьМакета.Параметры.Грузополучатель               = Стр.Контрагент;
   ОбластьМакета.Параметры.Плательщик                    = Стр.Контрагент;
   ОбластьМакета.Параметры.ГрузоотправительПредставление = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ");
   Если ТипЗнч(Стр.Контрагент) = Тип("СправочникСсылка.Подразделения") Тогда
       ОбластьМакета.Параметры.ГрузополучательПредставление  = Стр.Контрагент;
       ОбластьМакета.Параметры.ПлательщикПредставление       = Стр.Контрагент;
       ОбластьМакета.Параметры.ГрузополучательЕДРПОУ  = "";
       ОбластьМакета.Параметры.ПлательщикЕДРПОУ       = "";
   Иначе
       ОбластьМакета.Параметры.ГрузополучательПредставление  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе,  "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ");
       ОбластьМакета.Параметры.ПлательщикПредставление       = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,  "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ");
       ОбластьМакета.Параметры.ГрузополучательЕДРПОУ  = ?(ЗначениеЗаполнено(СведенияОГрузополучателе.КодПоЕДРПОУ), СведенияОГрузополучателе.КодПоЕДРПОУ, СведенияОГрузополучателе.КодПоДРФО);
       ОбластьМакета.Параметры.ПлательщикЕДРПОУ       = ?(ЗначениеЗаполнено(СведенияОПокупателе.КодПоЕДРПОУ), СведенияОПокупателе.КодПоЕДРПОУ, СведенияОПокупателе.КодПоДРФО);
   КонецЕсли;
   ОбластьМакета.Параметры.ГрузоотправительЕДРПОУ = ?(ЗначениеЗаполнено(СведенияОГрузоотправитель.КодПоЕДРПОУ), СведенияОГрузоотправитель.КодПоЕДРПОУ, СведенияОГрузоотправитель.КодПоДРФО);
   
   
   //ОбластьМакета.Параметры.МаркаИГосНомерАвтомобиля = МаркаИГосНомерАвтомобиля;
   ОбластьМакета.Параметры.МаркаИГосНомерАвтомобиля = Автотранспорт.Марка +" "+ Автотранспорт.НомерАвтомобиля;
   ОбластьМакета.Параметры.ФИОВодителя = Водитель;
   ОбластьМакета.Параметры.ВидПеревозки = "Вантажна";
   ОбластьМакета.Параметры.ГосНомерПрицепа = Автотранспорт.НомерПрицепа;
   
   ОбластьМакета.Параметры.ПунктПогрузки = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ЮридическийАдрес");
   //ОбластьМакета.Параметры.ПунктРазгрузки = ПунктРазгрузки;
   ОбластьМакета.Параметры.ПунктРазгрузки = "";
   
   ОбластьМакета.Параметры.ОрганизацияПеревозчик = Организация;

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

   СтрокНаСтранице = 23;
   СтрокШапки      = 10;
   СтрокПодвала    = 9;
   НомерСтраницы   = 1;

   // Выводим заголовок таблицы
   ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   ТабДокумент.Вывести(ЗаголовокТаблицы);

   

   // Выводим многострочную часть докмента
   ОбластьМакета = Макет.ПолучитьОбласть("Строка");
   
       //Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
       //    Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
       //    Продолжить;
       //КонецЕсли;


       //ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
       ОбластьМакета.Параметры.ТоварНаименование = "Труба димохідна та комплектуючі";

       

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


       // увеличим итоги по дукументу
       
       ИтогоКоличество = ИтогоКоличество + Стр.Колво;
       
   
   // Выводим итоги по документу в целом
   ОбластьМакета = Макет.ПолучитьОбласть("Всего");
   ОбластьМакета.Параметры.ИтогоКоличество = ИтогоКоличество;
   //ОбластьМакета.Параметры.ИтогоСуммаСНДС  = ИтогоСуммаСНДС;

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

   // Выводим подвал документа
   ОбластьМакета = Макет.ПолучитьОбласть("Подвал");

   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Организация, Дата,);
   Руководитель = Руководители.Руководитель;
   
   // Отпуск товара разрешил
   Если НЕ ЗначениеЗаполнено(Ответственный) Тогда
       ФИООтпускРазрешил       = Руководитель;
       ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
   Иначе
       ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Ответственный, Дата);
       ПодразделениеДолжностьФизЛица    = ФормированиеПечатныхФорм.ДолжностьОтветственногоЛицаОрганизации(Ответственный, Дата, Организация);
       ФамилияИмяОтчествоОтпускРазрешил = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
       ФИООтпускРазрешил                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускРазрешил);
       ДолжностьОтпускРазрешил          = ПодразделениеДолжностьФизЛица.Должность;
   КонецЕсли;
   
   ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ?(ЗначениеЗаполнено(ДолжностьОтпускРазрешил), ДолжностьОтпускРазрешил, "Директор");
   
   //ОбластьМакета.Параметры.НомерДоверенности = Шапка.ДоверенностьНомер;
   //ОбластьМакета.Параметры.ДатаДоверенности = Формат(Шапка.ДоверенностьДата, "ДФ = ""дд.ММ.гггг""");
   //ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСуммаСНДС, глЗначениеПеременной("ВалютаРегламентированногоУчета"), КодЯзыкаПечать);
   ТабДокумент.Вывести(ОбластьМакета);
   
       
   ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
   КонецЦикла;
     Возврат ТабДокумент;

КонецФункции // ПечатьТТН()
3 hhhh
 
02.10.12
11:31
(2) вроде поля пользователь настраивает.
4 ssh2006
 
02.10.12
11:34
Посмотри как дальше выводится документ, нет ли там установки Автомасштаба
5 ssh2006
 
02.10.12
11:35
Да и в коде добавь еще Автомасштаб = ложь
6 inmortal203
 
02.10.12
11:42
о масштабе больше нигде упоминаний нет. добавил сию строчку
   ТабДокумент.АвтоМасштаб             =Ложь;
все старания тщетны...
7 ssh2006
 
02.10.12
11:43
Как дальше выводится документ, каким кодом?
8 inmortal203
 
02.10.12
11:51
Дальше ползет сюда...
9 inmortal203
 
02.10.12
11:51
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

   Если ЭтоНовый() Тогда
       Предупреждение("Документ можно распечатать только после его записи");
       Возврат;
   ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
       Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
       Возврат;
   КонецЕсли;

   Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
       Возврат;
   КонецЕсли;

   Если ТипЗнч(ИмяМакета) = Тип("ДвоичныеДанные") Тогда
       
       ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка, ИмяМакета);
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   //    //Носников 15.02.2010
   //ИначеЕсли ИмяМакета = ("Заявка") Тогда
   //    ТабДокумент = ПечатьСчетаЗаказа(ТипЗнч(ИмяМакета));
   //    
   //    Если ТабДокумент = Неопределено Тогда
   //        Возврат
   //    КонецЕсли;
   //    //!Носников 15.02.2010
   //Коломоец - печать Накладной на отгрузку >>>
   ИначеЕсли ИмяМакета = ("КоррПогрузкаТоваровСклад") Тогда
       ТабДокумент = ПечатьКорректировкаПогрузкаТоваровСклад(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("КоррПогрузкаТоваровБух") Тогда
       ТабДокумент = ПечатьКорректировкаПогрузкаТоваровБух(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("КоррОчередностьПогрузки") Тогда
       ТабДокумент = ПечатьКорректировкаОчередностьПогрузки(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("КоррСписокНоменклатуры") Тогда
       ТабДокумент = ПечатьКорректировкаСписокНоменклатуры(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("КоррСписокКонтрагентов") Тогда
       ТабДокумент = ПечатьКорректировкаСписокКонтрагентов(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = "1Т" Или ИмяМакета = "_1Т" Тогда
       ТабДокумент = ПечатьТТН();    
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("СписокКонтрагентов") Тогда
       ТабДокумент = ПечатьСписокКонтрагентов(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("СписокНоменклатуры") Тогда
       ТабДокумент = ПечатьСписокНоменклатуры(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("ОчередностьПогрузки") Тогда
       ТабДокумент = ПечатьОчередностьПогрузки(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("ПогрузкаТоваровСклад") Тогда
       ТабДокумент = ПечатьПогрузкаТоваровСклад(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   ИначеЕсли ИмяМакета = ("ПогрузкаТоваровБух") Тогда
       ТабДокумент = ПечатьПогрузкаТоваровБух(ТипЗнч(ИмяМакета));
       
       Если ТабДокумент = Неопределено Тогда
           Возврат
       КонецЕсли;
   //Коломоец - печать Накладной на отгрузку <<<
   КонецЕсли;

   УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);

КонецПроцедуры // Печать
10 ssh2006
 
02.10.12
11:55
Что в процедуре НапечататьДокумент?
11 inmortal203
 
02.10.12
11:55
затем общий модуль...

   
   НаПринтер = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ПечатьДокументовБезПредварительногоПросмотра") = Истина;
   
   Расшифровка = СтрокаКнопки.Расшифровка;
   Если ТипЗнч(Расшифровка) = Тип("Структура") Тогда
       ТабДокумент = НапечататьВнешнююФорму(Объект.Ссылка, Расшифровка);
       НапечататьДокумент(ТабДокумент, 0, НаПринтер, ?(ЭтоДокумент, ОбщегоНазначения.СформироватьЗаголовокДокумента(Объект), Строка(Объект)), Объект.Ссылка);
   Иначе
       Объект.Печать(Расшифровка, 0, НаПринтер);
12 Maxus43
 
02.10.12
11:56
код из (0) перенеси в перед
Возврат ТабДокумент;
13 Darky
 
02.10.12
11:58
В Функции ПечатьТТН() возвращай Неопределено и перед этим ТабДокумент.Показать();
14 inmortal203
 
02.10.12
11:59
уже переносил, эффекта ноль...
15 inmortal203
 
02.10.12
11:59
Процедура НапечататьДокумент(ПечДокумент, КоличествоЭкземпляров = 1, НаПринтер = Ложь, Заголовок = "", Ссылка = Неопределено, ИсточникМакета = Неопределено) Экспорт

   Если ПечДокумент = Неопределено тогда
       Возврат;
   КонецЕсли;

   // Получить необходимое количество копий
   Если КоличествоЭкземпляров > 0 Тогда
       ПечДокумент.КоличествоЭкземпляров = КоличествоЭкземпляров;
   КонецЕсли;

   Если НЕ ПечДокумент.АвтоМасштаб
      И НЕ ЗначениеЗаполнено(ПечДокумент.ИмяПринтера) Тогда
       ПечДокумент.АвтоМасштаб = Истина;
   КонецЕсли;

   Если ТипЗнч(НаПринтер) = Тип("Булево") Тогда
       Если НаПринтер Тогда
           ПечДокумент.Вывод = ИспользованиеВывода.Разрешить;
           ПечДокумент.Напечатать();
       Иначе
           ФормаПечати = ПолучитьОбщуюФорму("ПечатьДокументов",, Новый УникальныйИдентификатор);
           ФормаПечати.ОбъектПечати     = Ссылка;
           ФормаПечати.ПечатныйДокумент = ПечДокумент;
           ФормаПечати.ЭлементыФормы.ПолеТабличногоДокумента.АвтоМасштаб = Истина;
           ФормаПечати.Заголовок        = Заголовок;
           ФормаПечати.Защита           = УправлениеДопПравамиПользователей.ЗащитаТаблиц();
           //ФормаПечати.ИсточникМакета   = ИсточникМакета;
           ФормаПечати.Открыть();
       КонецЕсли;
   ИначеЕсли ТипЗнч(НаПринтер) = Тип("Массив") Тогда
       ПечДокумент.Вывод = ИспользованиеВывода.Разрешить;
       ПечДокумент.Напечатать();

       НаПринтер.Добавить(ПечДокумент);
   КонецЕсли;

КонецПроцедуры // НапечататьДокумент()
16 inmortal203
 
02.10.12
12:07
Darky, получи заслуженную печеньку :) сейчас проверю как будет происходить печать...
17 inmortal203
 
02.10.12
12:12
все ок
печеньки розданы, тема закрыта)
18 ssh2006
 
02.10.12
12:13
Думаю дело здесь:

 Если НЕ ПечДокумент.АвтоМасштаб
      И НЕ ЗначениеЗаполнено(ПечДокумент.ИмяПринтера) Тогда
       ПечДокумент.АвтоМасштаб = Истина;
   КонецЕсли;

Проверь в отладчике вот это НЕ ЗначениеЗаполнено(ПечДокумент.ИмяПринтера)

Добавь перед установкой полей ТабДокумент.ИмяПараметровПечати = "бла бла"
19 Darky
 
02.10.12
12:15
Грасиас :)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.