Имя: Пароль:
1C
1С v8
Проблеммы с печатью(
0 Jana1
 
23.01.12
17:20
Подскажите....Есть документ Отпуск в отделение,в табличной части указан список номенклатуры. Хочу распечатать из этого документа Накладную(упрощённую). Но печать выводится странным образом: одна страница заполненна, на второй странице одна строчка и на третьей продолжение...в чем может быть причина?
1 aleks-id
 
23.01.12
17:20
в масштабе
2 Jana1
 
23.01.12
17:22
в настройке печати копались..не помогло
3 hhhh
 
23.01.12
17:25
(2) в полях забыли покопаться
4 Jana1
 
23.01.12
17:27
Функция ПечатьТребованияНакладнойУпрощенной(Док) Экспорт //гит
   
   ТабДокумент = Новый ТабличныйДокумент;
   
     // Зададим параметры макета
   ТабДокумент.ПолеСверху              = 0;
   ТабДокумент.ПолеСлева               = 0;
   ТабДокумент.ПолеСнизу               = 0;
   ТабДокумент.ПолеСправа              = 0;
   ТабДокумент.РазмерКолонтитулаСверху = 0;
   ТабДокумент.РазмерКолонтитулаСнизу  = 0;
   ТабДокумент.АвтоМасштаб             = Истина;
   ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;
         
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УМО_ОтпускВОтделение_М11_Упрощенная";
   
   Макет = УправлениеПечатью.ПолучитьМакет("Документ.УМО_ОтпускВОтделение.ПФ_MXL_М11_Упрощенная");
   
   ВалютаПечати = УМО_ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ВалютаРегламентированногоУчета");
   
   // Создаем массив для проверки вывода
   МассивВыводимыхОбластей = Новый Массив;    
   
   ТекстЗапроса = ПолучитьТекстЗапроса() + ";";
   
   РассчитыватьПоСебестоимости=Истина;
   
   Если РассчитыватьПоСебестоимости Тогда
       ТекстЗапроса = ТекстЗапроса + ПолучитьТекстЗапросаЦеныПоСебестоимости();
   Иначе
       ТекстЗапроса = ТекстЗапроса + ПолучитьТекстЗапросаЦены();
   КонецЕсли;
   
   Запрос = Новый Запрос;
   Запрос.Текст = ТекстЗапроса;
   Запрос.УстановитьПараметр("ТекущийДокумент", Док);
   
   РезультатыЗапросов = Запрос.ВыполнитьПакет();
   
   ТаблицаЦен = РезультатыЗапросов[2].Выгрузить();
       
   ПервыйДокумент = Истина;
   Шапка = РезультатыЗапросов[0].Выбрать();
   Пока Шапка.Следующий() Цикл
       
       Если Не ПервыйДокумент Тогда
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
       КонецЕсли;
       
       ПервыйДокумент = Ложь;
       НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
       
       // Выводим общие реквизиты шапки
       СведенияОбОрганизации = УМО_ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
       
       ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
       ОбластьШапка.Параметры.Заполнить(Шапка);
       НомерДокумента = УМО_ФормированиеПечатныхФорм.ПолучитьНомерНаПечать(Шапка.НомерДокумента, Шапка.Префикс);
       ОбластьШапка.Параметры.Заголовок = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(НомерДокумента);
       ОбластьШапка.Параметры.ПредставлениеОрганизации = УМО_ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
       
       ТабДокумент.Вывести(ОбластьШапка);

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

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

       ОбластьИтого.Параметры.Сумма = СуммаИтого;    
       ТабДокумент.Вывести(ОбластьИтого);
       
       ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
       
       ФИООтправителя = УМО_ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(Шапка.ОтпускПроизвел);
       ОбластьПодвал.Параметры.ФИООтправителя = ФИООтправителя;
       ОбластьПодвал.Параметры.ДолжностьОтправителя = Шапка.ДолжностьОтпускПроизведшего;
       
       
       ФИОПолучателя = УМО_ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(Шапка.СтаршаямедСестра);
       ОбластьПодвал.Параметры.ФИОПолучателя = ФИОПолучателя;
       
       Если Не ПустаяСтрока(ФИОПолучателя) Тогда
           ОбластьПодвал.Параметры.ДолжностьПолучателя = "Старшая мед. сестра";
       КонецЕсли;
               
       ТабДокумент.Вывести(ОбластьПодвал);
       
   //    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
       
   КонецЦикла;    
   
   Возврат ТабДокумент;
   
КонецФункции
5 Wobland
 
23.01.12
17:28
ТекстЗапроса = ПолучитьТекстЗапроса() + ";";
порадовало ;)
6 hhhh
 
23.01.12
17:29
(4) ну вот, нули у вас. Сделайте левое поле хотя бы 50 и правое 40, тогда по-любому влезет.
7 Jana1
 
23.01.12
17:40
(6) не помогло(
8 VasjaIvanov
 
23.01.12
18:49
завтра посмотрим)
9 VasjaIvanov
 
23.01.12
18:50
(5) к 1С-никам по данному анекдоту
10 ssh2006
 
23.01.12
18:54
(7) в диалоге параметров печати в режиме предприятия когда таб документ накладной на экране проверь что параметры установлены как в коде - масштаб по шинине, поля. В случае различий установить параметры и заново сформировать печ форму
11 КапЛей
 
23.01.12
19:01
Джей-Анал. Может сначала русский выучим, а уж потом в код полезем?

П.С. мне бы Ваши проблеММы...