Имя: Пароль:
1C
1С v8
При формировании печатной формы появляется хвост, а шапка таблицы показывается на третьем
0 alexodel
 
22.07.19
17:38
Доброго дня!!! Проблема в том что пишу в ВПФ на УНФ ке... Табличная часть формируется нормально, а я хотел шапку при каждом листе было, и задал шапку на каждом листе, но почему то на второй странице, хвост от первой страницы и шапка переходит на третью страницу что интересно, может Ребят я не так делаю....
помогите юниору....
Вылажу код:


#Область ПрограммныйИнтерфейс

Перем ДатаИНомерДокументаДляРаспечатки Экспорт;

Перем Автор Экспорт ;
Перем Пользователь Экспорт ;

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.6.10.174");
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "030719-19";
    ПараметрыРегистрации.Назначение.Добавить("Документ.СдельныйНаряд");
    
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Сдельный наряд по пошиву'");
    НоваяКоманда.Идентификатор = "СдельныйНарядПоПошиву";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    НоваяКоманда.Модификатор = "ПечатьMXL";

    Возврат ПараметрыРегистрации;
    
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    //Адрес = "R:\Backup1C\Обработка_печати_этикеток\СДЕЛЬНЫЙ_НАРЯД_ПО_ПОШИВУ_SA.epf";
    //обр = ВнешниеОбработки.Создать(Адрес,БезопасныйРежим());            ///(Адрес, БезопасныйРежим());
    //обр.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    //Возврат;
    //
    
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СдельныйНарядПоПошиву", "Сдельный наряд по пошиву", СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати));  //МассивОбъектов[0]

КонецПроцедуры


Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати)
    
    Перем ПервыйДокумент, НомерСтрокиНачало, Ошибки;
    
    ТЗ = Новый ТаблицаЗначений;
    
    ТЗ.Колонки.Добавить("НомерСтроки");
    ТЗ.Колонки.Добавить("ИзделиеОперацияНазвание");
    ТЗ.Колонки.Добавить("ИзделиеНоменклатура");
    ТЗ.Колонки.Добавить("СпецификацияНазвание");
    ТЗ.Колонки.Добавить("МатериалКоличествоНаОдноИзделие");
    ТЗ.Колонки.Добавить("Расценка");
    ТЗ.Колонки.Добавить("МатериалЕдиницаИзмерения");
    ТЗ.Колонки.Добавить("МатериалНоменклатура");
    ТЗ.Колонки.Добавить("МатериалКоличествоНаПланИзделий");
    ТЗ.Колонки.Добавить("Стоимость");
    
    ТЗ.Колонки.Добавить("Количество");
    ТЗ.Колонки.Добавить("МатериалИтого");
    ТЗ.Колонки.Добавить("ИзделиеСсылка");
    ТЗ.Колонки.Добавить("ИзделиеНазвание");
    ТЗ.Колонки.Добавить("ИзделиеОперацияСсылка");
    ТЗ.Колонки.Добавить("ИзделиеОперацияКоличество");
    ТЗ.Колонки.Добавить("СпецификацияСсылка");
    ТЗ.Колонки.Добавить("СпецификацияКомментарий");            // Нужно удалить
    ТЗ.Колонки.Добавить("МатериалКатегорияНоменклатуры");
    ТЗ.Колонки.Добавить("МатериалСсылка");
    ТЗ.Колонки.Добавить("МатериалНазвание");
    ТЗ.Колонки.Добавить("АртикулНоменклатуры");
    
    Массив = Новый Массив(6);
    ТабличныйДокумент = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");                    
    
    ДанныеПечати = Новый Структура;
    
    Для каждого ТекущийДокумент Из МассивОбъектов Цикл
        
        
        Запрос = Новый Запрос();
        Запрос.УстановитьПараметр("Организация",     УправлениеНебольшойФирмойСервер.ПолучитьОрганизацию(ТекущийДокумент.Организация));
        Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
        
        Запрос.Текст =
        "ВЫБРАТЬ
        |    СдельныйНаряд.Ссылка КАК Ссылка,
        |    СдельныйНаряд.Проведен КАК Проведен,
        |    СдельныйНаряд.Организация КАК Организация,
        |    СдельныйНаряд.Номер КАК СдельныйНарядНомер,
        |    СдельныйНаряд.Дата КАК СдельныйНарядДата,
        |    СдельныйНаряд.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
        |    СдельныйНаряд.Исполнитель КАК СдельныйНарядИсполнитель,
        |    СдельныйНаряд.СуммаДокумента КАК СуммаДокумента,
        |    СдельныйНаряд.Автор КАК СдельныйНарядАвтор,
        |    СдельныйНаряд.ИсполнительПредставление КАК ИсполнительПредставление,
        |    СдельныйНаряд.ДатаЗакрытия КАК СдельныйНарядДатаЗакрытия,
        |    СдельныйНаряд.Закрыт КАК Закрыт,
        |    СдельныйНаряд.ДокументОснование КАК ДокументОснование,
        |    СдельныйНаряд.ДокументОснование.Номер КАК ПроизводствоНомер,
        |    СдельныйНаряд.ДокументОснование.Дата КАК ПроизводствоДата,
        |    СдельныйНаряд.СтруктурнаяЕдиницаПредставление КАК СтруктурнаяЕдиницаПредставление,
        |    СдельныйНаряд.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
        |    СдельныйНаряд.Операции.(
        |        Ссылка КАК Ссылка,
        |        НомерСтроки КАК НомерСтроки,
        |        Период КАК Период,
        |        ЗаказПокупателя КАК ЗаказПокупателя,
        |        Номенклатура КАК Номенклатура,
        |        Характеристика КАК Характеристика,
        |        Операция КАК Операция,
        |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |        КоличествоПлан КАК КоличествоПлан,
        |        КоличествоФакт КАК Количество,
        |        НормаВремени КАК НормаВремени,
        |        Расценка КАК Расценка,
        |        Нормочасы КАК Нормочасы,
        |        Стоимость КАК Стоимость,
        |        Партия КАК Партия,
        |        Спецификация КАК Спецификация,
        |        СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
        |        Исполнитель КАК Исполнитель,
        |        КлючСвязи КАК КлючСвязи,
        |        ЗаказНаПроизводство КАК ЗаказНаПроизводство,
        |        Этап КАК Этап,
        |        ПодразделениеЗавершающегоЭтапа КАК ПодразделениеЗавершающегоЭтапа
        |    ) КАК Операции,
        |    СдельныйНаряд.СоставБригады.(
        |        Ссылка КАК Ссылка,
        |        НомерСтроки КАК НомерСтроки,
        |        Сотрудник КАК Сотрудник,
        |        КТУ КАК КТУ,
        |        СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
        |        КлючСвязи КАК КлючСвязи
        |    ) КАК СоставБригады,
        |    СдельныйНаряд.ЗаказНаПроизводство.Номер КАК ЗаказНаПроизводствоНомер,
        |    СдельныйНаряд.ЗаказНаПроизводство.Дата КАК ЗаказНаПроизводствоДата,
        |    СдельныйНаряд.ЗаказНаПроизводство.Финиш КАК ЗаказНаПроизводствоДатаФиниш,
        |    СдельныйНаряд.ЗаказНаПроизводство.ДокументОснование.Номер КАК ЗаказПокупателяНомер6,
        |    СдельныйНаряд.ЗаказНаПроизводство.ДокументОснование.Дата КАК ЗаказПокупателяДата6,
        |    СдельныйНаряд.ЗаказНаПроизводство.ДокументОснование.ДатаОтгрузки КАК ЗаказПокупателяДатаОтгрузки6,
        |    СдельныйНаряд.ЗаказНаПроизводство.ДокументОснование.Контрагент КАК ЗаказПокупателяКонтрагент6
        |ИЗ
        |    Документ.СдельныйНаряд КАК СдельныйНаряд
        |ГДЕ
        |    СдельныйНаряд.Ссылка = &ТекущийДокумент
        |
        |УПОРЯДОЧИТЬ ПО
        |    Ссылка,
        |    НомерСтроки";
        
        Продукция = Запрос.Выполнить().Выбрать();
        
        
        
    КонецЦикла; //    
        
    Пока Продукция.Следующий() Цикл
        
        ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        ОбластьМакетаШапкаПродукция = Макет.ПолучитьОбласть("ШапкаПродукция");
        
        Автор = Продукция.СдельныйНарядАвтор;
        
        ТаблицаПродукция = Продукция.Операции.Выгрузить();//ВЫГРУЖАЕМ ТАБЛИЧНУЮ ЧАСТЬ
        ПараметрыНоменклатуры = Новый Структура;
        
        НомерДокумента = Продукция.СдельныйНарядНомер;
        СдельныйНарядНомер=Продукция.СдельныйНарядНомер;
        СдельныйНарядДата=Продукция.СдельныйНарядДата;            
        
        ДатаДокумента = Формат(Продукция.СдельныйНарядДата, "ДЛФ=DD");
        ДанныеПечати.Вставить("СдельныйНарядНомерИДата", СтрШаблон(НСтр("ru ='№ %1 от %2'"), Продукция.СдельныйНарядНомер, ДатаДокумента));
        
        ДатаИНомерДокументаДляРаспечатки = "Сдельный наряд по пошиву №" + Продукция.СдельныйНарядНомер + " от "+ ДатаДокумента;
        
        ПроизводствоНомер = Продукция.ПроизводствоНомер;
        ПроизводствоДата = Формат(Продукция.ПроизводствоДата, "ДЛФ=DD");
        ДанныеПечати.Вставить("ИзПроизводстваНомерИДата", СтрШаблон(НСтр("ru ='№ %1 от %2'"), ПроизводствоНомер, ПроизводствоДата));
        
        ЗаказНаПроизводствоНомер=Продукция.ЗаказНаПроизводствоНомер;
        ЗаказНаПроизводствоДата=Формат(Продукция.ЗаказНаПроизводствоДата, "ДЛФ=DD");
        ЗаказНаПроизводствоДатаФиниш= Формат(Продукция.ЗаказНаПроизводствоДатаФиниш, "ДЛФ=DD");
        
        ДанныеПечати.Вставить("ЗаказПроизводстваНомерИДата", СтрШаблон(НСтр("ru ='№ %1 от %2, дата финиша: %3'"), ЗаказНаПроизводствоНомер, ЗаказНаПроизводствоДата, ЗаказНаПроизводствоДатаФиниш));            
        
        ЗаказПокупателяНомер = Продукция.ЗаказПокупателяНомер6;
        ЗаказПокупателяДата = Формат(Продукция.ЗаказПокупателяДата6, "ДЛФ=DD");
        ЗаказПокупателяДатаОтгрузки = Формат(Продукция.ЗаказПокупателяДатаОтгрузки6, "ДЛФ=DD");
        ДанныеПечати.Вставить("ЗаказПокупателяНомерИДата", СтрШаблон(НСтр("ru ='№ %1 от %2, дата отгрузки: %3'"), ЗаказПокупателяНомер, ЗаказПокупателяДата, ЗаказПокупателяДатаОтгрузки));
        
        НаименованиеПокупателя = Продукция.ЗаказПокупателяКонтрагент6;
        ДанныеПечати.Вставить("НаименованиеПокупателя", НаименованиеПокупателя);                                                                                                            
        
        Подразделение = Продукция.СтруктурнаяЕдиница;
        ДанныеПечати.Вставить("Подразделение", Подразделение);
        
        СдельныйНарядИсполнитель = Продукция.СдельныйНарядИсполнитель;
        ДанныеПечати.Вставить("Смена", СдельныйНарядИсполнитель);
        
        СдельныйНарядДатаЗакрытия=Продукция.СдельныйНарядДатаЗакрытия;
        ДатаЗакрытия=Формат(СдельныйНарядДатаЗакрытия,"ДЛФ=DD");
        ДанныеПечати.Вставить("ДатаЗакрытие", ДатаЗакрытия);
        
        ЕстьГалочкаНаЗакрытие=Продукция.Закрыт;
        Если ЕстьГалочкаНаЗакрытие = Истина Тогда
        ЕстьГалочкаНаЗакрытие = "ЗАКРЫТО" Иначе ЕстьГалочкаНаЗакрытие = "НЕ ЗАКРЫТО"
        КонецЕсли;
        
        ДанныеПечати.Вставить("ЗакрытДаИлиНет", ЕстьГалочкаНаЗакрытие);
        
        ОбластьМакетаЗаголовок.Параметры.Заполнить(ДанныеПечати);
        
        СтрокаПродукция = Макет.ПолучитьОбласть("СтрокаПродукция");
        ОбластьПодвала = Макет.ПолучитьОбласть("Подвал");
        ОбластьМакетаЛинияЗакрытие = Макет.ПолучитьОбласть("ЛинияЗакрытие");
        ОбластьМакетаИтого = Макет.ПолучитьОбласть("ИтогСтраницы");
                
        //------------------------------------------
        СтрокаСПодвалом = Новый Массив; // создадим массив для проверки вывода
        СтрокаСПодвалом.Добавить(ОбластьМакетаШапкаПродукция);
        СтрокаСПодвалом.Добавить(СтрокаПродукция);
        //СтрокаСПодвалом.Добавить(ОбластьПодвала);
        
        ИтогПоСтранице = 0;
        //------------------------------------------
        
        
        ТабличныйДокумент.Вывести(ОбластьМакетаЗаголовок);
        
        ТабличныйДокумент.Вывести(ОбластьМакетаШапкаПродукция);
        
        
        //ДанныеПечати.Вставить("ИтогоФактическаяСтоимость", Продукция.СуммаДокумента);//
        
        ИтогоПланИтогоДенег = 0;
        ИтогоФактИтогоДенег = 0;
        Для каждого СтрокаТабличнойЧастиПродукция Из ТаблицаПродукция Цикл
            
            ДанныеПечати.Очистить();
            //СтрокаПродукция = Макет.ПолучитьОбласть("СтрокаПродукция");    
            ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиПродукция.НомерСтроки);
            ДанныеПечати.Вставить("ОперацияНазвание", СтрокаТабличнойЧастиПродукция.Операция);
            ДанныеПечати.Вставить("ИзделиеПредставлениеНоменклатуры", СтрокаТабличнойЧастиПродукция.Номенклатура);
            ДанныеПечати.Вставить("СпецификацияНазвание", СтрокаТабличнойЧастиПродукция.Спецификация);
            ДанныеПечати.Вставить("РасценкаРаботы", (СтрокаТабличнойЧастиПродукция.Расценка)); // +"₽"
            ДанныеПечати.Вставить("ОперацийКоличествоПлан", СтрокаТабличнойЧастиПродукция.КоличествоПлан);
            ПланИтогоДенег = (СтрокаТабличнойЧастиПродукция.КоличествоПлан*СтрокаТабличнойЧастиПродукция.Расценка);
            ИтогоПланИтогоДенег = ИтогоПланИтогоДенег + ПланИтогоДенег;
            
            ДанныеПечати.Вставить("ПлановаяСтоимость", ПланИтогоДенег);
            ДанныеПечати.Вставить("ОперацийКоличествоФакт", СтрокаТабличнойЧастиПродукция.Количество);
            
            ПодгибкаНиз = ПолучитьЗначенияИзСпецификации(СтрокаТабличнойЧастиПродукция.Спецификация);
            ПодгибкаБок = ПолучитьЗначенияИзСпецификацииПодгибка(СтрокаТабличнойЧастиПродукция.Спецификация);
            ОписаниеПошива = ПолучитьЗначенияИзСпецификацииОписание(СтрокаТабличнойЧастиПродукция.Спецификация);
            ОписаниеКроя = ПолучитьЗначенияИзСпецификацииОписания(СтрокаТабличнойЧастиПродукция.Спецификация);
            
            //Если ЗначениеЗаполнено(ПодгибкаНиз) Тогда ПослеПроверкиПодгибкаНиз = ПодгибкаНиз Иначе ПослеПроверкиПодгибкаНиз = "  "; КонецЕсли;
            //Если ЗначениеЗаполнено(ПодгибкаБок) Тогда ПослеПроверкиПодгибкаБок = ПодгибкаБок Иначе ПослеПроверкиПодгибкаБок = "  "; КонецЕсли;    
            Если ЗначениеЗаполнено(ОписаниеПошива) Тогда ПослеПроверкиОписаниеПошива = ОписаниеПошива Иначе ПослеПроверкиОписаниеПошива = "  "; КонецЕсли;    
            //Если ЗначениеЗаполнено(ОписаниеКроя) Тогда ПослеПроверкиОписаниеКроя = ОписаниеКроя Иначе ПослеПроверкиОписаниеКроя = "  "; КонецЕсли;
            
            //Ответ = ЗначениеЗаполнено(ПодгибкаНиз);
            //Сообщить("Ответ " +ПослеПроверкиПодгибкаНиз);
            //Сообщить("ПодгибкаНиз "+ТипЗнч(ПослеПроверкиПодгибкаНиз));
            //Сообщить("ПодгибкаБок "+ТипЗнч(ПодгибкаБок));
            //Сообщить("ОписаниеПошива  "+ТипЗнч(ОписаниеПошива ));
            //Сообщить("ОписаниеКроя  "+ТипЗнч(ОписаниеКроя ));
            //ВОписаниеПошива = ПослеПроверкиПодгибкаНиз +" "+ ПослеПроверкиПодгибкаБок +" "+ ПослеПроверкиОписаниеПошива +" "+ ПослеПроверкиОписаниеКроя;
            ВОписаниеПошива = ПослеПроверкиОписаниеПошива;
            ДанныеПечати.Вставить("ОписаниеПошива", ВОписаниеПошива);
            
            ИтогоФактИтогоДенег = ИтогоФактИтогоДенег + СтрокаТабличнойЧастиПродукция.Стоимость;
            ДанныеПечати.Вставить("ФактическаяСтоимость", СтрокаТабличнойЧастиПродукция.Стоимость);
            СтрокаПродукция.Параметры.Заполнить(ДанныеПечати);
            
            //ТабличныйДокумент.Вывести(СтрокаПродукция);                    
            
            
            ЗапросСпецификация = Новый Запрос;
            ЗапросСпецификация .УстановитьПараметр("Спецификация", СтрокаТабличнойЧастиПродукция.Спецификация);
            ЗапросСпецификация.Текст=
            "ВЫБРАТЬ
            |    СпецификацииСостав.Ссылка КАК Ссылка,
            |    СпецификацииСостав.НомерСтроки КАК НомерСтроки,
            |    СпецификацииСостав.ТипСтрокиСостава КАК ТипСтрокиСостава,
            |    СпецификацииСостав.Номенклатура КАК Номенклатура,
            |    СпецификацииСостав.Характеристика КАК Характеристика,
            |    СпецификацииСостав.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
            |    СпецификацииСостав.Спецификация КАК Спецификация,
            |    СпецификацииСостав.Количество КАК Количество,
            |    СпецификацииСостав.КоличествоПродукции КАК КоличествоПродукции,
            |    СпецификацииСостав.ДоляСтоимости КАК ДоляСтоимости,
            |    СпецификацииСостав.Этап КАК Этап,
            |    СпецификацииСостав.Номенклатура.Наименование КАК ПредставлениеНоменклатуры,
            |    СпецификацииСостав.Номенклатура.Артикул КАК Артикул,
            |    СпецификацииСостав.Номенклатура.КатегорияНоменклатуры КАК НоменклатураКатегорияНоменклатуры
            |ИЗ
            |    Справочник.Спецификации.Состав КАК СпецификацииСостав
            |ГДЕ
            |    СпецификацииСостав.Ссылка = &Спецификация";
            
            Спецификация = ЗапросСпецификация.Выполнить().Выбрать();
            
            ТЗ.Очистить();
            
            Пока Спецификация.Следующий() Цикл
                
                НоваяСтрока = ТЗ.Добавить();
                
                НоваяСтрока.НомерСтроки = Спецификация.НомерСтроки;
                НоваяСтрока.ИзделиеОперацияНазвание = СтрокаТабличнойЧастиПродукция.Операция;
                НоваяСтрока.ИзделиеНоменклатура = СтрокаТабличнойЧастиПродукция.Номенклатура;
                НоваяСтрока.СпецификацияНазвание = СтрокаТабличнойЧастиПродукция.Спецификация;
                
                МатериалКоличествоНаОдноИзделие = Спецификация.КоличествоПродукции*Спецификация.Количество;
                НоваяСтрока.МатериалКоличествоНаОдноИзделие = МатериалКоличествоНаОдноИзделие;
                НоваяСтрока.МатериалЕдиницаИзмерения = Спецификация.ЕдиницаИзмерения;
                НоваяСтрока.МатериалНоменклатура = Спецификация.Номенклатура;
                НоваяСтрока.МатериалКоличествоНаПланИзделий = СтрокаТабличнойЧастиПродукция.КоличествоПлан*МатериалКоличествоНаОдноИзделие;
                НоваяСтрока.Стоимость = СтрокаТабличнойЧастиПродукция.Стоимость ;
                
                НоваяСтрока.МатериалИтого = 1;
                НоваяСтрока.ИзделиеСсылка = "";
                НоваяСтрока.ИзделиеНазвание = "";
                НоваяСтрока.ИзделиеОперацияСсылка = "-/-/-";
                НоваяСтрока.ИзделиеОперацияКоличество = СтрокаТабличнойЧастиПродукция.КоличествоПлан ;
                НоваяСтрока.СпецификацияСсылка = Спецификация.Ссылка;
                НоваяСтрока.СпецификацияКомментарий = СтрокаТабличнойЧастиПродукция.Спецификация.Комментарий;
                НоваяСтрока.МатериалКатегорияНоменклатуры=Спецификация.НоменклатураКатегорияНоменклатуры;
                НоваяСтрока.МатериалСсылка = "------------";
                НоваяСтрока.МатериалНазвание = Спецификация.ПредставлениеНоменклатуры;
                НоваяСтрока.АртикулНоменклатуры = Спецификация.Артикул;
                
            КонецЦикла;
            
            ДанныеПечати.Вставить("ИмяКтоПечатал", "Админ");
            ОбластьМакетаИтого.Параметры.Заполнить(ДанныеПечати);
            //-----------------------------
            
            Если Не ТабличныйДокумент.ПроверитьВывод(СтрокаСПодвалом) Тогда
                
                ТабличныйДокумент.Вывести(ОбластьМакетаЛинияЗакрытие); // выведем итог по странице         //В Ы В О Д
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); // начнем новую страницу   //В Ы В О Д
                ТабличныйДокумент.Вывести(ОбластьМакетаШапкаПродукция); // выведем шапку страницы       //В Ы В О Д
                ИтогПоСтранице = 0; // сбросим текущую сумму по странице
                
            КонецЕсли;
            
            ТабличныйДокумент.Вывести(СтрокаПродукция);                                //В Ы В О Д    
            
            //-----------------------------
            
            // 1. объеденить нужно все материалы
            ТЗМатериалы = Новый ТаблицаЗначений;
            ТЗМатериалы = ТЗ.Скопировать();
            //ТЗМатериалы.Свернуть("МатериалНоменклатура, АртикулНоменклатуры", "МатериалКоличествоНаПланИзделий"); //МатериалКоличествоНаОдноИзделие
            ТЗМатериалы.Свернуть("МатериалНоменклатура, МатериалКоличествоНаОдноИзделие, МатериалЕдиницаИзмерения", "МатериалКоличествоНаПланИзделий"); //МатериалКоличествоНаОдноИзделие
            
            Если Не ТЗМатериалы.Количество() = 0 Тогда
                
                Для Каждого Колонка из ТЗМатериалы цикл
                    
                    ДанныеПечати.Очистить();
                    
                    //ДанныеПечати.Вставить("НомерСтрокиВСпецификации", Спецификация.НомерСтроки);
                    ДанныеПечати.Вставить("МатериалВСпецификацииПредставлениеНоменклатуры", Колонка.МатериалНоменклатура);
                    ДанныеПечати.Вставить("КоличествоМатериаловНаОдноИзделие", Колонка.МатериалКоличествоНаОдноИзделие);
                    ДанныеПечати.Вставить("ЕдиницаИзмеренияМатириалов", Колонка.МатериалЕдиницаИзмерения);
                    ДанныеПечати.Вставить("КоличествоМатериалов", Колонка.МатериалКоличествоНаПланИзделий);
                    
                    КоличествоМатериаловСУчетомКоличестваОпераций=(Спецификация.КоличествоПродукции*Спецификация.Количество)*СтрокаТабличнойЧастиПродукция.КоличествоПлан;//Спецификация.ИзделиеОперацияКоличество;// Здесь!!!
                    
                    ОбластьПодвала.Параметры.Заполнить(ДанныеПечати);
                    
                    Если
                        НЕ Лев(Колонка.МатериалНоменклатура,3)<>"104" тогда
                        
                        Продолжить; //Прервать;
                        
                    КонецЕсли;
                    
                    ТабличныйДокумент.Вывести(ОбластьПодвала);                            //В Ы В О Д                    
                
                КонецЦикла;
                
            КонецЕсли;    
                //    //-----------------------------
            //
            //Если Не ТабличныйДокумент.ПроверитьВывод(СтрокаСПодвалом) Тогда
            //    
            //    ТабличныйДокумент.Вывести(ОбластьМакетаЛинияЗакрытие); // выведем итог по странице         //В Ы В О Д
            //    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); // начнем новую страницу   //В Ы В О Д
            //    ТабличныйДокумент.Вывести(ОбластьМакетаШапкаПродукция); // выведем шапку страницы       //В Ы В О Д
            //    ИтогПоСтранице = 0; // сбросим текущую сумму по странице
            //    
            //КонецЕсли;
            //
            //ТабличныйДокумент.Вывести(СтрокаПродукция);                                //В Ы В О Д    
            //
            ////-----------------------------
            
                
                
            
            ////-----------------------------
            //Если Не ТабличныйДокумент.ПроверитьВывод(СтрокаСПодвалом) Тогда
            //    
            //    ТабличныйДокумент.Вывести(ОбластьМакетаЛинияЗакрытие); // выведем итог по странице         //В Ы В О Д
            //    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); // начнем новую страницу   //В Ы В О Д
            //    ТабличныйДокумент.Вывести(ОбластьМакетаШапкаПродукция); // выведем шапку страницы       //В Ы В О Д
            //    ИтогПоСтранице = 0; // сбросим текущую сумму по странице
            //    
            //КонецЕсли;
            //
            //ТабличныйДокумент.Вывести(СтрокаПродукция);                                //В Ы В О Д    
            ////-----------------------------
            
            
            ИтогПоСтранице = ИтогПоСтранице
            
        КонецЦикла;
        
        ИтогПоСтранице = ИтогПоСтранице ;
        ТабличныйДокумент.Вывести(ОбластьМакетаЛинияЗакрытие);
        
    КонецЦикла;
    
    ДанныеПечати.Вставить("ИтогоПлановаяСтоимость", ИтогоПланИтогоДенег);
    ДанныеПечати.Вставить("ИтогоФактическаяСтоимость", ИтогоФактИтогоДенег);
    НДФЛ13 = Окр((ИтогоФактИтогоДенег * 13/100),2);
    ДанныеПечати.Вставить("НДФЛ13", НДФЛ13);
    НДФЛ30 = Окр((ИтогоФактИтогоДенег * 30/100),2);
    ДанныеПечати.Вставить("НДФЛ30", НДФЛ30);
    ПФР = Окр((ИтогоФактИтогоДенег * 22/100),2);
    ДанныеПечати.Вставить("ПФР", ПФР);
    ФСС = Окр((ИтогоФактИтогоДенег * 2.9/100),2);
    ДанныеПечати.Вставить("ФСС", ФСС);
    ФОМС = Окр((ИтогоФактИтогоДенег * 5.1/100),2);
    ДанныеПечати.Вставить("ФОМС", ФОМС);
    
    ОбластьМакетаИтого.Параметры.Заполнить(ДанныеПечати);
    ТабличныйДокумент.Вывести(ОбластьМакетаИтого);//                                 //В Ы В О Д

    
    Пользователь = ПараметрыСеанса.ТекущийПользователь;
    //ТабличныйДокумент.Вывести(ОбластьМакетаПодписи);
    ТабличныйДокумент.АвтоМасштаб = Истина;
    //Таб.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    //ТабличныйДокумент.АвтоМасштаб = Истина;  //КлючПараметровПечати
    //ТабличныйДокумент.МасштабПечати = 100;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СДЕЛЬНЫЙ_НАРЯД_ПО_ПОШИВУ";
    //ТабличныйДокумент.КлючПараметровПечати = "МойУникальныйКлюч";
    
    НастроитьКолонтитулы(ТабличныйДокумент);    
    
    Возврат ТабличныйДокумент;
    
КонецФункции

Процедура НастроитьКолонтитулы(ПечатнаяФорма)
    
    // Верхний колонтитул.
    ПечатнаяФорма.ВерхнийКолонтитул.Выводить = Истина;
    ПечатнаяФорма.ВерхнийКолонтитул.НачальнаяСтраница = 1;
    
    //ПечатнаяФорма.ВерхнийКолонтитул.ТекстВЦентре = "Распечатано [&Дата][&Время]";//"Этот отчёт сделан нами для тестов";
    ПечатнаяФорма.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
    
    ПечатнаяФорма.ВерхнийКолонтитул.ТекстСлева = ДатаИНомерДокументаДляРаспечатки+" "+Автор;//"Этот отчёт сделан нами для тестов";
    ПечатнаяФорма.ВерхнийКолонтитул.ТекстСправа = " Страница [&НомерСтраницы] из [&СтраницВсего]";        
    //ПечатнаяФорма.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Справа;
    
    //ПечатнаяФорма.НижнийКолонтитул.ТекстВЦентре = "[&Дата][&Время]";
    
    
    // Нижний колонтитул.
    ПечатнаяФорма.НижнийКолонтитул.Выводить = Истина;//Ложь;
    //ПечатнаяФорма.НижнийКолонтитул.ТекстСправа = ДокументДляПечати;//"[&НомерСтраницы] из [&СтраницВсего]";        
    ПечатнаяФорма.НижнийКолонтитул.ТекстСлева = Пользователь;//"[&НомерСтраницы] из [&СтраницВсего]";        
    //ПечатнаяФорма.НижнийКолонтитул.ТекстВЦентре = "[&Дата][&Время]";
    ПечатнаяФорма.НижнийКолонтитул.ТекстВЦентре = "Время распечатки [&Дата] "+"[&Время]";//"Этот отчёт сделан нами для тестов";
    // Использованные выше конструкции [&НомерСтраницы] и т.п. предопределены
    // платформой.

КонецПроцедуры

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

    КонецЦикла;
    
    Возврат Реквизит;
    
КонецФункции

Функция ПолучитьЗначенияИзСпецификацииПодгибка(Бок)
    
    Для каждого СтрДР из Бок.ДополнительныеРеквизиты Цикл
        
        Если стрДР.Свойство.Имя = "ПодгибкаБок_7f2bafc0e9b9469db4497cc0d050abe3" Тогда
            Реквизит = СтрДР.Значение;
        КонецЕсли;

    КонецЦикла;
    
    Возврат Реквизит;
    
КонецФункции

Функция ПолучитьЗначенияИзСпецификацииОписание(Пошива)
    
    Для каждого СтрДР из Пошива.ДополнительныеРеквизиты Цикл
        
        Если стрДР.Свойство.Имя = "ОписаниеПошива_eb5863024b2d4accadce9d66b7fc5c96" Тогда
            Реквизит = СтрДР.Значение;
        КонецЕсли;

    КонецЦикла;
    
    Возврат Реквизит;
    
КонецФункции

Функция ПолучитьЗначенияИзСпецификацииОписания(Кроя)
    
    Для каждого СтрДР из Кроя.ДополнительныеРеквизиты Цикл
        
        Если стрДР.Свойство.Имя = "ОписаниеКроя_75ae7670755c4ab18fdd715312cff837" Тогда
            Реквизит = СтрДР.Значение;
        КонецЕсли;

    КонецЦикла;
    
    Возврат Реквизит;
    
КонецФункции

#КонецОбласти
1 dka80
 
22.07.19
17:53
Много букв. Не осилил
2 Ёпрст
 
гуру
22.07.19
17:55
(0) И ?
у вас же закоменчена проверка на то, что влезает на страницу через проверить вывод
3 alexodel
 
22.07.19
18:03
(2) а где заканчивается может подскажите, как быть... просто другие ВПФ ки выводят правильно... этот почему то не работает или я не ту деталь показываю... ???
4 mikecool
 
22.07.19
18:05
(0) открыть макет, найти справа вертикальный пунктир, удалить все пустое от правого края макета до пунктира
профит