Имя: Пароль:
1C
1С v8
Печатная форма 8,2
0 KonstantinK90
 
22.12.15
08:05
Люди добрые подскажите в чем дело не могу настроить печатную форму что бы если не влазиет на страницу переносил на следующую. Вот ниже код
        ТабДокумент = Новый ТабличныйДокумент;
        Макет = ПолучитьМакет("Макет");
        
        // Зададим параметры макета
        ТабДокумент.ПолеСверху              = 0;
        ТабДокумент.ПолеСлева               = 5;
        ТабДокумент.ПолеСнизу               = 0;
        ТабДокумент.ПолеСправа              = 5;
        ТабДокумент.РазмерКолонтитулаСверху = 0;
        ТабДокумент.РазмерКолонтитулаСнизу  = 0;
        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
        //ТабДокумент.МасштабПечати = 85;
        ТабДокумент.АвтоМасштаб = Истина;
   //     //Заголовок                   ссылка
           ОбластьЗаголовок                                         = Макет.ПолучитьОбласть("Шапка");
          ОбластьЗаголовок.Параметры.НомерСчетаФактуры             = НомерСчетаФактуры;
        ОбластьЗаголовок.Параметры.ДатаСчетаФактуры              = ДатаСчетаФактуры;
        ОбластьЗаголовок.Параметры.НомерИсправления              = "-";
        ОбластьЗаголовок.Параметры.ДатаИсправления               = "-";
        ОбластьЗаголовок.Параметры.ПредставлениеПоставщика       = Организация.НаименованиеПолное;
        ОбластьЗаголовок.Параметры.АдресПоставщика               = Организация.ЮридическийАдрес;
        ОбластьЗаголовок.Параметры.ИННПоставщика                 = Организация.ИНН + "/" + Организация.КПП;
        ОбластьЗаголовок.Параметры.ПредставлениеГрузоотправителя = Организация.НаименованиеПолное + ", " + Организация.ЮридическийАдрес;
        ОбластьЗаголовок.Параметры.ПредставлениеГрузополучателя  = ?(Не ЗначениеЗаполнено(Грузополучатель), Контрагент.НаименованиеПолное +
                                                                     Контрагент.ФактическийАдрес,Грузополучатель.НаименованиеПолное +  Грузополучатель.ФактическийАдрес);
        ОбластьЗаголовок.Параметры.ПредставлениеПокупателя       = Контрагент.НаименованиеПолное;
        ОбластьЗаголовок.Параметры.АдресПокупателя               = Контрагент.ЮридическийАдрес;
        
    Если ЗначениеЗаполнено(Контрагент.ИНН) И  ЗначениеЗаполнено(Контрагент.КПП) Тогда
         ОбластьЗаголовок.Параметры.ИННПокупателя         =  Контрагент.ИНН + "/" + Контрагент.КПП;
    Иначе  
        ОбластьЗаголовок.Параметры.ИННПокупателя       =  "-" + "/" + "-";
   КонецЕсли;
        ОбластьЗаголовок.Параметры.Валюта              = ВалютаДокумента.НаименованиеПолное + ", " + ВалютаДокумента.Код;
        ОбластьЗаголовок.Параметры.НомерДок            = Номер;
        ТабДокумент.Вывести(ОбластьЗаголовок);
        
    // Создаем массив для проверки вывода
        МассивВыводимыхОбластей = Новый Массив;
        
        ОбластьШапкаТаб   = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
        ОбластьИтого      = Макет.ПолучитьОбласть("Итого");
        ОбластьПодвал     = Макет.ПолучитьОбласть("Подвал");
           ТабДокумент.Вывести(ОбластьШапкаТаб);
    
        ОбластьСтрока      = Макет.ПолучитьОбласть("Строка");    
        НомерСтраницы   = 1;
        КоличествоСтрок = Товары.Количество();
        Ном             = 0;
        Для Каждого Стр Из Товары Цикл
            Ном = Ном +1;
               ОбластьСтрока.Параметры.НомерСтроки            = Ном;
            ОбластьСтрока.Параметры.ТоварКод               = Стр.Номенклатура.ОЕ;
            ОбластьСтрока.Параметры.ТоварНаименование      = стр.Номенклатура.Наименование;
            ОбластьСтрока.Параметры.ЕдиницаИзмеренияКод    = Стр.Номенклатура.Единица.Код;
            ОбластьСтрока.Параметры.ЕдиницаИзмерения       = Стр.Номенклатура.Единица;
            ОбластьСтрока.Параметры.Количество             = Стр.Количество;
            ОбластьСтрока.Параметры.Цена                   = Стр.Цена;
            ОбластьСтрока.Параметры.Стоимость              = Стр.Сумма - Стр.СуммаНДС;
            ОбластьСтрока.Параметры.Акциз                  = "Без акциза";
            ОбластьСтрока.Параметры.СтавкаНДС              = Стр.СтавкаНДС;
            ОбластьСтрока.Параметры.СуммаНДС               = Стр.СуммаНДС;
            ОбластьСтрока.Параметры.Всего                  = Стр.Сумма;
            //Пойдем в партии и найдем страну происхождения
            НайтиПартию = ПоискПартии(Дата,Склад,Ссылка,Стр.Номенклатура);
            ОбластьСтрока.Параметры.СтранаПроисхожденияКод = ?(НайтиПартию = Неопределено, "",НайтиПартию.НомерГТД);
            ОбластьСтрока.Параметры.ПредставлениеСтраны    = ?(НайтиПартию = Неопределено, "",НайтиПартию.Страна);
            ОбластьСтрока.Параметры.ПредставлениеГТД       = "";
            
            Если Ном = 1 Тогда // Процедура считает сколько страниц будет
                СклонениеПоПадежамЛиста = получитьЛист(НомерСтраницы);
                ОбластьПодвал.Параметры.КоличествоЛистов = "Документ составлен на " +  НомерСтраницы + " " + СклонениеПоПадежамЛиста;
                //ТабДокумент.Вывести(ОбластьЗаголовокТаблицы);    
            Иначе                
                МассивВыводимыхОбластей.Очистить();
                МассивВыводимыхОбластей.Добавить(ОбластьСтрока);
                МассивВыводимыхОбластей.Добавить(ОбластьИтого);
                Если Ном = КоличествоСтрок Тогда
                    МассивВыводимыхОбластей.Добавить(ОбластьПодвал);
                КонецЕсли;        
                
                Если Ном <> 1 И НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
                                        
                    НомерСтраницы = НомерСтраницы + 1;
                    ТабДокумент.ВывестиВертикальныйРазделительСтраниц();
                    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                    //ТабДокумент.АвтоМасштаб = Истина;
                    СклонениеПоПадежамЛиста = получитьЛист(НомерСтраницы);
                    ОбластьПодвал.Параметры.КоличествоЛистов = "Документ составлен на " +  НомерСтраницы + " " + СклонениеПоПадежамЛиста;
                    ТабДокумент.Вывести(ОбластьШапкаТаб);                
                КонецЕсли;                
            КонецЕсли;                   
            ТабДокумент.Вывести(ОбластьСтрока);
        КонецЦикла;

    ОбластьИтого = Макет.ПолучитьОбласть("Итого");
    ОбластьИтого.Параметры.ИтогоСтоимость =Товары.Итог("Сумма") - Товары.Итог("СуммаНДС") ;
    ОбластьИтого.Параметры.ИтогоСуммаНДС  =Товары.Итог("СуммаНДС");
    ОбластьИтого.Параметры.ИтогоВсего     =СуммаДокумента;
    ТабДокумент.Вывести(ОбластьИтого);      
       ОбластьПодвал                         = Макет.ПолучитьОбласть("Подвал");    
    
    ОбластьПодвал.Параметры.КоличествоЛистов         = "Документ составлен на " +  НомерСтраницы + " " + СклонениеПоПадежамЛиста;
    ОбластьПодвал.Параметры.Основание                = "Договор №" +  ДоговорКонтрагента.Номер + " от " + Формат(ДоговорКонтрагента.Дата,"ДФ=dd.MM.yyyy");
    ОбластьПодвал.Параметры.ДолжностьКладовщика      = Контрагент.СотрудникДолжность;
    ОбластьПодвал.Параметры.ФИОРуководителя          = Менеджер.Наименование + ". Согласно приказа " + Формат(Менеджер.Свойство2,"ДФ=dd.MM.yyyy");

    ОбластьПодвал.Параметры.ДатаОтгрузкиПередачи     = Формат(Дата,"ДЛФ=DD");
    ОбластьПодвал.Параметры.ПредставлениеОрганизации = Организация.НаименованиеПолное + ", ИНН/КПП " + Организация.ИНН + "/" + Организация.КПП;
    ОбластьПодвал.Параметры.ПредставлениеКонтрагента = Контрагент.НаименованиеПолное + ", ИНН/КПП " + Контрагент.ИНН + "/" + Контрагент.КПП;     
    
    ТабДокумент.Вывести(ОбластьПодвал);
ТабДокумент.Показать();
1 KonstantinK90
 
22.12.15
08:06
подвал пару строк не влазиет на 1 стр! Делаю в цикле проверить вывод в нем косяк думаю а понять в чем именно не могу!
2 KonstantinK90
 
22.12.15
08:08
посмотрите массив выводимых областей может там че накосячил
3 KonstantinK90
 
22.12.15
08:19
Есть какие мысли?
4 KonstantinK90
 
22.12.15
08:30
????
5 KonstantinK90
 
22.12.15
08:31
может есть какой то другой способ сделать правильный вывод
6 Мимохожий Однако
 
22.12.15
08:42
из СП:

Пример:

Т.Добавить(ШапкаДокумента);
Т.Добавить(СтрокаДокумента);
Т.Добавить(ПодвалДокумента);
Если Не ТабДок.ПроверитьВывод(Т) Тогда
    Сообщить("Документ не умещается на страницу!");
КонецЕсли;
7 KonstantinK90
 
22.12.15
08:52
спасибо сейчас по пробую
8 фобка
 
22.12.15
08:54
Масштаб 100% ставь и макет под него подгоняй
9 KonstantinK90
 
22.12.15
08:57
нет точно нужно было проверить на вывод поставить шапку документа