Версия для печати темы (https://pro1c.org.ua/index.php?s=cfabbf5431b1e51591f2a80d92a82a37&showtopic=40194)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Маршрутный лист

Автор: XacTLa 12.09.17, 16:32

1С:Предприятие 8.3 (8.3.6.2237)
1С:ERP Управление предприятием 2.0 (2.0.9.66)



Ситуация такая что мне нужно что бы печаталось не один документ а несколько выделенных документов а именно маршрутный листов, кто что скажет, подскажет?


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

    УправлениеПечатью.
    ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
    "МаршрутныйНовый",
    "Маршрутный новый",
    СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()

Автор: logist 12.09.17, 17:09

Цитата(XacTLa @ 12.09.17, 17:32) *
кто что скажет, подскажет?

А что тут подсказывать? МассивОбъектов - это и есть массив объектов, процедуру переписать так, что бы был цикл который обходит массив объектов

Автор: XacTLa 13.09.17, 8:46

logist @ Вчера, 18:09 * ,
Суть такая вроде то, но ошибка вот код:

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

КонецПроцедуры // Печать()


Ошибка: {ВнешняяОбработка.МаршрутныйНовый.МодульОбъекта(50,60)}: Слишком много фактических параметров (СформироватьПечатнуюФорму)
СформироватьПечатнуюФорму (МассивОбъектов, ОбъектыПечати, <<?>>КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)); (Проверка: Сервер)

Автор: logist 13.09.17, 11:30

Цитата(XacTLa @ 13.09.17, 9:46) *
но ошибка

А вы параметры в функцию написали просто так, без понимания что пишите?

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

    Для Каждого ОбъектПечати Из МассивОбъектов Цикл
        УправлениеПечатью.
        ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
        "МаршрутныйНовый",
        "Маршрутный новый",
        СформироватьПечатнуюФорму(ОбъектПечати, ОбъектыПечати));
    КонецЦикла;

КонецПроцедуры // Печать()

Автор: XacTLa 13.09.17, 15:01

logist @ Сегодня, 11:30 * ,
Да это правильный код я знаю, но суть такова что нужно что бы на печать выводилось несколько печатных форм по выбору, допустим выбирает нач производства 3 маршрутных листа, и их конкретно хочет распечатать, но при этом коде печатает только один маршрутный лист.

Автор: logist 13.09.17, 17:22

Цитата(XacTLa @ 13.09.17, 16:01) *
допустим выбирает нач производства 3 маршрутных листа

Если он курсором в списке пометил три строки (документа) и нажал на печать, то такой вариант как раз печатает три документа.

Автор: XacTLa 14.09.17, 8:24

logist @ Вчера, 18:22 * ,

 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 8
 


А на печать выводит тот документ на котором курсор изначально стоял, я думаю сейчас пройдусь по старому маршрутному листу и там функции пересмотрю

Автор: XacTLa 18.09.17, 9:28

XacTLa @ 14.09.17, 9:24 * ,
Может тут ошибка я уже все перешерстил как мне сделать массовое распечатывание документа одного

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = ПолучитьМакет("МакетМаршрутныйЛист");

    ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");

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


остальное вот

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

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

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

    Для Каждого ОбъектПечати Из МассивОбъектов Цикл
        УправлениеПечатью.
        ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
        "МаршрутныйНовый",
        "Маршрутный новый",
        СформироватьПечатнуюФорму(ОбъектПечати, ОбъектыПечати));
    КонецЦикла;

КонецПроцедуры // Печать()

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = ПолучитьМакет("МакетМаршрутныйЛист");

    ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");

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

    
    
КонецФункции // СформироватьПечатнуюФорму()

Автор: XacTLa 20.09.17, 10:37

XacTLa @ 18.09.17, 9:28 * ,
Я так и не могу разобраться что мне дописать, в коллекцию печать не выводит хоть убей, уже всю голову поломал, может где то я что то упустил.

Я сразу скажу что я не гуру в этом деле, я только начинаю, очень хочется разобраться а намека даже нет

Автор: XacTLa 26.09.17, 14:08

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

    Для Каждого ОбъектПечати Из МассивОбъектов Цикл
        УправлениеПечатью.
        ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
        "МаршрутныйНовый",
        "Маршрутный новый",
        СформироватьПечатнуюФорму(ОбъектПечати, ОбъектыПечати));
    КонецЦикла;

КонецПроцедуры // Печать()


еще раз пишу, короче суть такова что код этот работает но ровно на одну печатную форму, а что бы распечатать несколько печатных форм то не работает. Куда копать уже не знаю

Автор: logist 27.09.17, 11:04

Что у вас содержится в МассивОбъектов когда ві ждете несколько документов?

Автор: XacTLa 28.09.17, 14:24

logist @ Вчера, 12:04 * ,
Весь код скинут это все что есть

Автор: logist 28.09.17, 15:11

XacTLa, вы знаете что такое отладчик? Если знаете - ответьте на вопрос выше, если нет - восполните знания. и ответьте на вопросы выше smile.gif

Автор: salton 28.09.17, 15:50

Цитата(XacTLa @ 28.09.17, 15:24) *
Весь код скинут это все что есть

Сбросьте также код которым вы заполняете МассивОбъектов.
По идее в МассивОбъектов вы должны добавить перечень документов выбранных для печати.
А так как у вас печатается всего один документ - можно предположить, что МассивОбъектов Вы никак не заполняете..

Автор: XacTLa 28.09.17, 16:18

salton @ Сегодня, 16:50 * ,

Функция ПечатнаяФормаМаршрутногоЛиста(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)
    
    УстановитьПривилегированныйРежим(Истина);
    
    Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.МаршрутныйНовый.МаршрутныйЛист");
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Реквизиты.Ссылка,
    |    Реквизиты.Номер,
    |    Реквизиты.Дата,
    |    Реквизиты.Распоряжение,
    |    Реквизиты.Распоряжение.Номер КАК РаспоряжениеНомер,
    |    Реквизиты.Распоряжение.Дата КАК РаспоряжениеДата,
    |    Реквизиты.КодСтроки КАК КодСтроки,
    |    Реквизиты.Спецификация.МногоэтапныйПроизводственныйПроцесс КАК МногоэтапныйПроизводственныйПроцесс,
    |    Реквизиты.Спецификация КАК Спецификация,
    |    Реквизиты.Спецификация.Представление КАК СпецификацияПредставление,
    |    Реквизиты.Этап КАК Этап,
    |    Реквизиты.Этап.Представление КАК ЭтапПредставление,
    |    Реквизиты.Подразделение КАК Подразделение,
    |    Реквизиты.Подразделение.Представление КАК ПодразделениеПредставление,
    |    Реквизиты.Подразделение.Код КАК КодПодразделения,
    |    Реквизиты.Номенклатура КАК Номенклатура,
    |    Реквизиты.Номенклатура.Представление КАК НоменклатураПредставление,
    |    Реквизиты.Характеристика КАК Характеристика,
    |    Реквизиты.Характеристика.Представление КАК ХарактеристикаПредставление,
    |    Реквизиты.МаршрутнаяКарта КАК МаршрутнаяКарта,
    |    Реквизиты.МаршрутнаяКарта.Представление КАК МаршрутнаяКартаПредставление,
    |    Реквизиты.УправлениеМаршрутнымиЛистами КАК УправлениеМаршрутнымиЛистами,
    |    Реквизиты.Начало,
    |    Реквизиты.Окончание,
    |    Реквизиты.Запланировано,
    |    Реквизиты.Произведено,
    |    Реквизиты.Брак
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства КАК Реквизиты
    |ГДЕ
    |    Реквизиты.Ссылка В(&МассивДокументов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Реквизиты.Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаВыходныеИзделия.Ссылка КАК Ссылка,
    |    ТаблицаВыходныеИзделия.НомерСтроки,
    |    ТаблицаВыходныеИзделия.Номенклатура,
    |    ТаблицаВыходныеИзделия.Номенклатура.Код КАК НоменклатураКод,
    |    ТаблицаВыходныеИзделия.Номенклатура.Артикул КАК НоменклатураАртикул,
    |    ТаблицаВыходныеИзделия.Номенклатура КАК Номенклатура,
    |    ТаблицаВыходныеИзделия.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
    |    ТаблицаВыходныеИзделия.Характеристика.Представление КАК ХарактеристикаПредставление,
    |    ВЫБОР
    |        КОГДА ТаблицаВыходныеИзделия.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаВыходныеИзделия.Упаковка.ЕдиницаИзмерения)
    |        ИНАЧЕ ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаВыходныеИзделия.Номенклатура.ЕдиницаИзмерения)
    |    КОНЕЦ КАК ЕдиницаИзмеренияНаименование,
    |    ТаблицаВыходныеИзделия.КоличествоУпаковок КАК Норматив,
    |    ВЫБОР
    |        КОГДА ТаблицаВыходныеИзделия.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаВыходныеИзделия.КоличествоУпаковокФакт
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Факт,
    |    ВЫБОР
    |        КОГДА ТаблицаВыходныеИзделия.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаВыходныеИзделия.КоличествоУпаковокОтклонение
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Отклонение,
    |    ЕСТЬNULL(ТаблицаОперации.НомерОперации, """") КАК НомерОперации,
    |    ЕСТЬNULL(ТаблицаОперации.Операция, НЕОПРЕДЕЛЕНО) КАК Операция
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства.ВыходныеИзделия КАК ТаблицаВыходныеИзделия
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистПроизводства.Операции КАК ТаблицаОперации
    |        ПО (ТаблицаОперации.Ссылка = ТаблицаВыходныеИзделия.Ссылка)
    |            И (ТаблицаОперации.КлючСвязи = ТаблицаВыходныеИзделия.КлючСвязиОперации)
    |ГДЕ
    |    ТаблицаВыходныеИзделия.Ссылка В(&МассивДокументов)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаМатериалыИУслуги.Ссылка КАК Ссылка,
    |    ТаблицаМатериалыИУслуги.НомерСтроки,
    |    ТаблицаМатериалыИУслуги.Номенклатура,
    |    ТаблицаМатериалыИУслуги.Номенклатура.Код КАК НоменклатураКод,
    |    ТаблицаМатериалыИУслуги.Номенклатура.Артикул КАК НоменклатураАртикул,
    |    ТаблицаМатериалыИУслуги.Номенклатура КАК Номенклатура,
    |    ТаблицаМатериалыИУслуги.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
    |    ТаблицаМатериалыИУслуги.Характеристика.Наименование КАК ХарактеристикаПредставление,
    |    ВЫБОР
    |        КОГДА ТаблицаМатериалыИУслуги.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаМатериалыИУслуги.Упаковка.ЕдиницаИзмерения)
    |        ИНАЧЕ ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаМатериалыИУслуги.Номенклатура.ЕдиницаИзмерения)
    |    КОНЕЦ КАК ЕдиницаИзмеренияНаименование,
    |    ТаблицаМатериалыИУслуги.КоличествоУпаковок КАК Норматив,
    |    ВЫБОР
    |        КОГДА ТаблицаМатериалыИУслуги.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаМатериалыИУслуги.КоличествоУпаковокФакт
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Факт,
    |    ВЫБОР
    |        КОГДА ТаблицаМатериалыИУслуги.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаМатериалыИУслуги.КоличествоУпаковокОтклонение
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Отклонение,
    |    ЕСТЬNULL(ТаблицаОперации.НомерОперации, """") КАК НомерОперации,
    |    ЕСТЬNULL(ТаблицаОперации.Операция, НЕОПРЕДЕЛЕНО) КАК Операция
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства.МатериалыИУслуги КАК ТаблицаМатериалыИУслуги
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистПроизводства.Операции КАК ТаблицаОперации
    |        ПО (ТаблицаОперации.Ссылка = ТаблицаМатериалыИУслуги.Ссылка)
    |            И (ТаблицаОперации.КлючСвязи = ТаблицаМатериалыИУслуги.КлючСвязиОперации)
    |ГДЕ
    |    ТаблицаМатериалыИУслуги.Ссылка В(&МассивДокументов)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаОперации.Ссылка КАК Ссылка,
    |    ТаблицаОперации.Операция КАК Операция,
    |    ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаОперации.Операция)         КАК ОперацияПредставление,
    |    ТаблицаОперации.НомерОперации                         КАК НомерОперации,
    |    ТаблицаОперации.ВремяВыполнения                       КАК ВремяВыполнения,
    |    ТаблицаОперации.ВремяВыполненияЕдИзм                  КАК ВремяВыполненияЕдИзм,
    |    ТаблицаОперации.ПодготовительноеВремя                 КАК ПодготовительноеВремя,
    |    ТаблицаОперации.ПодготовительноеВремяЕдИзм            КАК ПодготовительноеВремяЕдИзм,
    |    ТаблицаОперации.ЗаключительноеВремя                   КАК ЗаключительноеВремя,
    |    ТаблицаОперации.ЗаключительноеВремяЕдИзм              КАК ЗаключительноеВремяЕдИзм
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства.Операции КАК ТаблицаОперации
    |ГДЕ
    |    ТаблицаОперации.Ссылка В(&МассивДокументов)";

    Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ПолеСлева = 5;
    ТабличныйДокумент.ПолеСправа = 5;
    ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
    ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МаршрутныйЛистНовый_МаршрутныйЛист";
    
    МассивРезультатов  = Запрос.ВыполнитьПакет();
    
    ДанныеПечати = МассивРезультатов[0].Выбрать();
    
    ТаблицаВыходныеИзделия = МассивРезультатов[1].Выгрузить();
    ТаблицаВыходныеИзделия.Индексы.Добавить("Ссылка");
    
    ТаблицаМатериалыИУслуги = МассивРезультатов[2].Выгрузить();
    ТаблицаМатериалыИУслуги.Индексы.Добавить("Ссылка");
    
    ТаблицаОперации = МассивРезультатов[3].Выгрузить();
    ТаблицаОперации.Индексы.Добавить("Ссылка");
    
      КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
    
    ПервыйДокумент = Истина;
    
    Пока ДанныеПечати.Следующий() Цикл
    
        Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ПервыйДокумент    = Ложь;
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
    
        // Выводим общие реквизиты шапки
        ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
        ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
        ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
        
        // Используем структуру для заполнения параметров, т.к. макет может изменяться пользователем
        ДополнительныеПараметрыОбластьМакета = Новый Структура;
        
        НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ДанныеПечати.Номер);
        ДополнительныеПараметрыОбластьМакета.Вставить("НомерДокумента", НомерДокумента);
        ДополнительныеПараметрыОбластьМакета.Вставить("ДатаДокумента", Формат(ДанныеПечати.Дата, "ДЛФ=D"));
        
        // РаспоряжениеПредставление
        НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ДанныеПечати.РаспоряжениеНомер);
        РаспоряжениеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                                        НСтр("ru = '№%1 от %2 (код строки %3)'"),
                                        НомерДокумента,
                                        Формат(ДанныеПечати.Дата, "ДЛФ=D"),
                                        Формат(ДанныеПечати.КодСтроки, "ЧГ="));
                                        
        ДополнительныеПараметрыОбластьМакета.Вставить("РаспоряжениеПредставление", РаспоряжениеПредставление);
        
        Если Минута(ДанныеПечати.Начало) = 0
            И Час(ДанныеПечати.Начало) = 0
            И Минута(ДанныеПечати.Окончание) = 59
            И Час(ДанныеПечати.Окончание) = 23 Тогда
            
            ФорматПериода = "ДЛФ=D";
        Иначе
            ФорматПериода = "ДФ='dd.MM.yy ЧЧ:мм'";
        КонецЕсли;
        
        // НачатьНеРаньше
        НачатьНеРаньше = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                                                            НСтр("ru = '(не раньше %1)'"),
                                                            Формат(ДанныеПечати.Начало, ФорматПериода));
        
        ДополнительныеПараметрыОбластьМакета.Вставить("НачатьНеРаньше", НачатьНеРаньше);
        
        // СрокНеПозже
        СрокНеПозже = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                                                            НСтр("ru = '(не позже %1)'"),
                                                            Формат(ДанныеПечати.Окончание, ФорматПериода));
                                                            
        ДополнительныеПараметрыОбластьМакета.Вставить("СрокНеПозже", СрокНеПозже);
        
        // ИзделиеПредставление
        ИзделиеПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
                                    ДанныеПечати.НоменклатураПредставление,
                                    ДанныеПечати.ХарактеристикаПредставление);
                                    
        ДополнительныеПараметрыОбластьМакета.Вставить("ИзделиеПредставление", ИзделиеПредставление);
        
        // СпецификацияПредставление
        СпецификацияПредставление = ДанныеПечати.СпецификацияПредставление;
        Если ДанныеПечати.МногоэтапныйПроизводственныйПроцесс Тогда
            СпецификацияПредставление = СпецификацияПредставление + ", " + ДанныеПечати.ЭтапПредставление;
        КонецЕсли;
        ДополнительныеПараметрыОбластьМакета.Вставить("СпецификацияПредставление", СпецификацияПредставление);
        
        ОбластьМакета.Параметры.Заполнить(ДополнительныеПараметрыОбластьМакета);
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        НомерСтраницы = 1;
        
        // Создаем массив для проверки вывода
        МассивВыводимыхОбластей = Новый Массив;
                
                
        
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
        
    КонецЦикла;
    
    Возврат ТабличныйДокумент;
    
КонецФункции



Тупо взял с маршрутного скопировал чуть подкорректировал и все, но выдает ошибку здесь
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = ПолучитьМакет("МакетМаршрутныйЛист");

    ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");

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

    
    
КонецФункции // СформироватьПечатнуюФорму()



{ВнешняяОбработка.МаршрутныйНовый.МодульОбъекта(322)}: Поле объекта не обнаружено (Номер)
ОбластьШапки.Параметры.НомерДокумента = СсылкаНаОбъект.Номер;


как такое может быть

Только не ругайтесь я еще раз повторяюсь я учусь

Автор: salton 28.09.17, 16:52

Цитата(XacTLa @ 28.09.17, 17:18) *
как такое может быть

такое может быть.. очень даже....

Если СсылкаНаОбъект - это не документ, то и номера там не может быть...

Смотрите внимательно -

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


В процедуре Печать функция вызывается с двумя параметрами
СформироватьПечатнуюФорму(ОбъектПечати, ОбъектыПечати))
. При этом
 ОбъектПечати
- это элемент массива МассивОбъектов, в который Вы должны передать документы, для которых хотите распечатать маршрутные листы.

Из этого следует -
Если не заполнить МассивОбъектов, то процедуре нечего будет перебирать в этом массиве. И момент вызова функции
СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
параметр СсылкаНаОбъект будет пустым


И естественно, что когда доходит дело до заполнения параметров печатной формы ОбластьШапки.Параметры.НомерДокумента = СсылкаНаОбъект.Номер получается ошибка.

Поэтому Вас и попросили сообщить что в МассивОбъектов находится.
Не поленитесь - воспользуйтесь отладкой. Или выложите код где явно видно чем заполняется этот массив

Автор: logist 28.09.17, 17:26

Цитата(salton @ 28.09.17, 17:52) *
Или выложите код где явно видно чем заполняется этот массив

Что толку смотреть на код, если не понятно как он вызывается. Нужно смотреть отладчик, что в массиве, это решает все вопросы без гаданий на коде.

Автор: salton 29.09.17, 7:19

Цитата(logist @ 28.09.17, 18:26) *
если не понятно как он вызывается. Нужно смотреть отладчик, что в массиве

кажется мне что нет смысла ни смотреть код ни отладчиком массив - так как нету кода.... фишку с передачей массива в параметр печати придумали вы. А вот сам код формирования массива ему никто не написал)))

Автор: XacTLa 29.09.17, 9:34

Функция ПечатьВнешнейПечатнойФормы(МассивОбъектов, ОбъектыПечати) Экспорт
    ТабДок = новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("МакетМаршрутныйЛист");
    
    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрокаТЧ  = Макет.ПолучитьОбласть("СтрокаТЧ");
        
    Запрос = новый запрос;
    Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
    Запрос.Текст = "ВЫБРАТЬ
    |    МаршрутныйЛистПроизводства.Номер,
    |    МаршрутныйЛистПроизводства.Дата,
    |    МаршрутныйЛистПроизводства.Распоряжение,
    |    МаршрутныйЛистПроизводства.Распоряжение.Номер КАК РаспоряжениеНомер,    
    |    МаршрутныйЛистПроизводства.Распоряжение.Дата КАК РаспоряжениеДата,
    |    МаршрутныйЛистПроизводства.КодСтроки КАК КодСтроки,
    |    МаршрутныйЛистПроизводства.Спецификация КАК Спецификация,
    |    МаршрутныйЛистПроизводства.Спецификация.Представление КАК СпецификацияПредставление,
    |    МаршрутныйЛистПроизводства.Подразделение КАК Подразделение,
    |    МаршрутныйЛистПроизводства.Назначение КАК Назначение
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства КАК МаршрутныйЛистПроизводства
    |ГДЕ
    |    МаршрутныйЛистПроизводства.Ссылка В(&МассивОбъектов)
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    МаршрутныйЛистПроизводства.Номер,
    |    МаршрутныйЛистПроизводства.Дата,
    |    МаршрутныйЛистПроизводства.Распоряжение,
    |    МаршрутныйЛистПроизводства.Распоряжение.Номер КАК РаспоряжениеНомер,    
    |    МаршрутныйЛистПроизводства.Распоряжение.Дата КАК РаспоряжениеДата,
    |    МаршрутныйЛистПроизводства.КодСтроки КАК КодСтроки,
    |    МаршрутныйЛистПроизводства.Спецификация КАК Спецификация,
    |    МаршрутныйЛистПроизводства.Спецификация.Представление КАК СпецификацияПредставление,
    |    МаршрутныйЛистПроизводства.Подразделение КАК Подразделение,
    |    МаршрутныйЛистПроизводства.Назначение КАК Назначение
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства КАК МаршрутныйЛистПроизводства
    |ГДЕ
    |    МаршрутныйЛистПроизводства.Ссылка В(&МассивОбъектов)      
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка";
    
    ОбщаяВыборка = Запрос.Выполнить().Выгрузить();
    
    Для Каждого СсылкаНаОбъект из МассивОбъектов Цикл
        
        ОбластьШапки.Параметры.ТекстЗаголовка = "Маршрутный лист №  "+СсылкаНаОбъект.Номер;
        ОбластьШапки.Параметры.ТекстЗаголовка = "Дата"+СсылкаНаОбъект.Дата;
        
        ТабДок.Вывести(ОбластьШапки);
        
        Отбор = Новый Структура;
        Отбор.Вставить("Ссылка",СсылкаНаОбъект);
        
        Выборка = ОбщаяВыборка.НайтиСтроки(Отбор);
        
        ИтогоСумма      = 0;
        ИтогоКоличество = 0;
        
        Для Каждого Стр из Выборка Цикл
            ЗаполнитьЗначенияСвойств(ОбластьСтрокаТЧ.Параметры,Стр);
            
            ИтогоСумма = ИтогоСумма + Стр.Сумма;
            ИтогоКоличество = ИтогоКоличество + Стр.Количество;
            
            ТабДок.Вывести(ОбластьСтрокаТЧ);
        КонецЦикла;
        
        
                
        ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;
    
    Возврат ТабДок;
КонецФункции


как то так

При таком коде ругается на
ОбщаяВыборка = Запрос.Выполнить().Выгрузить();


{ВнешняяОбработка.МаршрутныйНовый.МодульОбъекта(100)}: Ошибка при вызове метода контекста (Выполнить)
ОбщаяВыборка = Запрос.Выполнить().Выгрузить();
по причине:
{(36, 2)}: В случае использования операторов ОБЪЕДИНИТЬ, поля предложений УПОРЯДОЧИТЬ ПО и ИТОГИ ПО должны находиться в списке выбора.
<<?>>Ссылка

Автор: salton 29.09.17, 10:58

XacTLa @ Сегодня, 10:34 * ,
ДОлжно быть в запросе не:

    |УПОРЯДОЧИТЬ ПО
    |    Ссылка";


а

    |УПОРЯДОЧИТЬ ПО
    |    МаршрутныйЛистПроизводства.Ссылка";


Цитата(XacTLa @ 29.09.17, 10:34) *
как то так

оно и понятно шо "как-то так..." но, вопрос остается - что вы передаете в МассивОбъектов при выполнении функции
 ПечатьВнешнейПечатнойФормы(МассивОбъектов, ОбъектыПечати)
????

это должен быть перечень документов МаршрутныйЛистПроизводства...

Автор: sava1 29.09.17, 11:55

XacTLa,
1. Зачем выбирать 2 экземпляра документа ?
2. Зачем поиск в результате запроса - у Вас уже все есть в выборке ?
3. Покажите код, где Вы формируете массив документов.

Автор: logist 02.10.17, 19:20

Цитата(salton @ 29.09.17, 8:19) *
фишку с передачей массива в параметр печати придумали вы. А вот сам код формирования массива ему никто не написал)))

Поскольку тема в 8.3, то никакого кода формирования массива (в стандартной ситуации) не требуется, если в списке выделить необходимые строки, и вызвать стандартную команду печати, то в неё уже будет передан массив выделенных строк.

Автор: XacTLa 03.10.17, 9:36

Да это верно я ее упустил, вот теперь сижу читаю как это сделать, спасибо за намеки)

Автор: XacTLa 04.10.17, 9:39

Короче говоря я запутался массив мне уже не нужен, теперь я должен команду печати переделать?

Автор: Flexy 04.10.17, 10:24

Цитата(XacTLa @ 04.10.17, 9:39) *
Короче говоря я запутался массив мне уже не нужен

Нужен. В массиве выделенные в динамическом списке строки документов.
Цикл по массиву не нужен. Будет запрос в цикле в таком случае.

Автор: XacTLa 04.10.17, 10:24

Ага ща

Автор: XacTLa 04.10.17, 13:44

Пример вот такой запрос?

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


Это

Автор: salton 04.10.17, 15:07

Цитата(XacTLa @ 04.10.17, 14:44) *
Это

"Это" вернет Вам готовый ТабличныйДокумент.
Если Вы будете вызывать функцию печати с параметром "СсылкаНаОбъект" в момент перебора массива (который будет содержать ссылки на документы типа "ПоступлениеТоваровУслугТовары") то получите на выходе готовую процедуру печати. Тоесть взяли массив с доками, перебираем, внутри запускаем функцию Печать(СсылкаНаОбъект), которая возвращает нам ТабличныйДокумент, а мы его тут же отправляем на печать без предпросмотра и возвращаемся к началу цикла для нового вызова функции печати и получения нового ТабличногоДокумента.


Процедура ПакетнаяПечать()
//получаем массив с документами

Для Каждого ЭлементМассива из Массив Цикл
       ГотовыйТабличныйДокумент = Печать(ЭлементМассива);
       ГотовыйТабличныйДокумент.Напечатать();
КонецЦикла;


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

Автор: XacTLa 04.10.17, 15:58

salton @ Сегодня, 16:07 * ,
А говорили что цикл по массиву не нужен, и еще так и не понял верно я запрос указал или нет?

Автор: XacTLa 06.10.17, 10:56

XacTLa @ 04.10.17, 15:58 * ,
Слишком много фактических параметров


Функция Печать(СсылкаНаОбъект) Экспорт
    ТабДок = новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("МакетМаршрутныйЛист");
    
    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрокаТЧ  = Макет.ПолучитьОбласть("СтрокаТЧ");
        
    ОбластьШапки.Параметры.ТекстЗаголовка                      = СсылкаНаОбъект.Номер;
    ОбластьШапки.Параметры.ТекстЗаголовка                      = СсылкаНаОбъект.Дата;
    ОбластьШапки.Параметры.ПодразделениеПредставление       = СсылкаНаОбъект.Подразделение;
    ОбластьШапки.Параметры.ИзделиеПредставление              = СсылкаНаОбъект.Номенклатура;
    ОбластьШапки.Параметры.СпецификацияПредставление         = СсылкаНаОбъект.Спецификация;
    ОбластьШапки.Параметры.РаспоряжениеПредставление         = СсылкаНаОбъект.Распоряжение;
    ОбластьШапки.Параметры.Назначение                         = СсылкаНаОбъект.Назначение;

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

Автор: salton 06.10.17, 14:34

XacTLa @ Сегодня, 11:56 * ,
дайте полную строку описания ошибки...


зы. по поводу использовать ли перебор/цикл по массиву - если Вы передадите в "СсылкаНаОбъект" сам Массив с доками, а в условии корректно укажите МаршрутныйЛистПроизводства.Ссылка в (&Ссылка) то естественно Вам перебор/цикл по Массиву не нужен )))

Автор: XacTLa 06.10.17, 15:26

salton @ Сегодня, 14:34 * ,
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(221)}: Слишком много фактических параметров
ВнешняяОбработкаОбъект.Печать(

Автор: salton 06.10.17, 15:52

Цитата(XacTLa @ 06.10.17, 16:26) *
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(221)}: Слишком много фактических параметров
ВнешняяОбработкаОбъект.Печать(


ну и? что там дальше в ошибке? можно полный текст?
Такое впечатление, что у Вас не сходится количество параметров которые Вы передаете в момент вызова функции Печать()...
Тоесть вместо Печать(СсылкаНаОбъект) Вы вызываете Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)

Автор: XacTLa 06.10.17, 15:54

salton @ Сегодня, 16:52 * ,
вот это полный текст, я захожу в конфигуратор, меня кидает на общий модуль. Я вообще в шоке.
на этот код :

Процедура ПечатьПоВнешнемуИсточнику(Ссылка, ПараметрыИсточника, КоллекцияПечатныхФорм,
    ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки") Тогда
        Возврат;
    КонецЕсли;
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ПараметрыИсточника.ИдентификаторКоманды);
    
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектыПечати = Новый СписокЗначений;
    
    ВнешняяОбработкаОбъект = ПолучитьОбъектВнешнейОбработки(Ссылка);
    
    Если ВнешняяОбработкаОбъект = Неопределено Тогда
        ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'Внешняя обработка ""%1"" (тип ""%2"") не обслуживается подсистемой ""Дополнительные отчеты и обработки""'"),
            Строка(Ссылка),
            Строка(ТипЗнч(Ссылка)));
    КонецЕсли;
    
    ВнешняяОбработкаОбъект.Печать(
        ПараметрыИсточника.ОбъектыНазначения,
        КоллекцияПечатныхФорм,
        ОбъектыПечати,
        ПараметрыВывода);
    
    // Проверим, все ли макеты были сформированы
    Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
        Если Стр.ТабличныйДокумент = Неопределено Тогда
            ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
                Стр.ИмяМакета);
            ВызватьИсключение(ТекстСообщенияОбОшибке);
        КонецЕсли;
        
        Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
    КонецЦикла;

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


ошибка типо тут :
ВнешняяОбработкаОбъект.Печать(
        ПараметрыИсточника.ОбъектыНазначения,
        КоллекцияПечатныхФорм,
        ОбъектыПечати,
        ПараметрыВывода);

Автор: salton 06.10.17, 16:31

Цитата(XacTLa @ 06.10.17, 16:54) *
ошибка типо тут :
ВнешняяОбработкаОбъект.Печать(
        ПараметрыИсточника.ОбъектыНазначения,
        КоллекцияПечатныхФорм,
        ОбъектыПечати,
        ПараметрыВывода);

да. тут. У Вас в ВнешняяОбработкаОбъект.Печать(ПараметрыИсточника.ОбъектыНазначения,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода) аж 4 параметра, а в написанной Вами функции печати всего один Печать(СсылкаНаОбъект).

Автор: Petre 06.10.17, 16:37

XacTLa @ Сегодня, 16:54 * ,
В модуле менеджера должна располагаться экспортная процедура "Печать" с пятью параметрами. Внутри этой процедуры исходя из полученных параметров осуществляется вызов локальных процедур печати.
Почему у вас процедура "Печать" имеет один параметр - не понятно.

Автор: XacTLa 06.10.17, 16:45

salton @ Сегодня, 17:31 * salton @ Сегодня, 17:31 * ,Что мне нужно сделать так?

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

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

XacTLa @ Сегодня, 17:44 * ,
Эта процедура такую же ошибку выводит.

Автор: Petre 06.10.17, 16:57

XacTLa @ Сегодня, 17:45 * ,
Из какого документа вы печатаете?
Где располагается данная процедура?

Автор: salton 06.10.17, 18:15


Это Ваша новая написанная функция печати - Печать(СсылкаНаОбъект, ПараметрыИсточника, КоллекцияПечатныхФорм,ОбъектыПечати, ПараметрыВывода)
СсылкаНаОбъект - это раз
ПараметрыИсточника - это два
КоллекцияПечатныхФорм - это три
ОбъектыПечати - это четыре
ПараметрыВывода - это пять
Итого пять параметров.

Это функция печати которая вызывается из модуля - ВнешняяОбработкаОбъект.Печать(ПараметрыИсточника.ОбъектыНазначения,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);
ПараметрыИсточника.ОбъектыНазначения - это раз
КоллекцияПечатныхФорм - это два
ОбъектыПечати - это три
ПараметрыВывода - это четыре.
Итого четыре параметра.

Четыре параметра - не пять. Потому Вы передавая функции излишнее или недостаточное количество параметров ставите ее в тупик.
Количество параметров должно быть равным!
Можно так Печать(ПараметрыИсточника.ОбъектыНазначения,,,) - если остальные параметры Вам не нужны.
При этом ПараметрыИсточника.ОбъектыНазначения - у Вас должен быть Ваш массив с доками.

Автор: XacTLa 07.10.17, 8:28

Petre @ Вчера, 16:57 * ,
МаршрутныйЛистПроизводства

salton @ Вчера, 18:15 * ,
Я уже ставлю одну процедуру это "Ссылка на обьект" и все равно пишем много параметров

Автор: XacTLa 09.10.17, 10:42

Может кто то знает как это чудо переделать так что бы работало, а то вообще я уже подставляю параметры все равно пишет много факт. данных

Автор: salton 09.10.17, 12:07

Цитата(Petre @ 06.10.17, 17:57) *
Из какого документа вы печатаете?
Где располагается данная процедура?

Дайте ответы на эти вопросы.
Совсем не понятно в каком месте вы пытаетесь вызвать свою функцию печати и передать ей параметры! Потому как исходя из ошибок которые вы описываете - функция печати вызывается без Вашего участия...

Автор: XacTLa 09.10.17, 13:07

salton @ Сегодня, 12:07 * ,

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

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

Автор: salton 09.10.17, 13:16

XacTLa @ Сегодня, 14:07 * ,
вполне даже очень ничего код, не понятно зачем там запрос и что вы делаете с его результатами.. но то уже другая опера.

а теперь покажите код в котором Вы вызываете функцию печать, код которой Вы тут выложили!

Автор: XacTLa 09.10.17, 13:23

salton @ Сегодня, 13:16 * ,

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ПараметрыИсточника,
        КоллекцияПечатныхФорм,
        ОбъектыПечати,
        ПараметрыВывода)
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = ПолучитьМакет("МакетМаршрутныйЛист");

    ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");

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

    
    
КонецФункции

Автор: salton 09.10.17, 13:54

Вы в коде функции

СформироватьПечатнуюФорму()
(вот в той которую выложили последней), видите где-то вызов функции Печать()??
Возможно мне мерещится..... но я лично не вижу, а значит она вызывается не отсюда...

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua