8.х М-11 Печатная форма как вытащить?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Vitalik85, 24 май 2013.

  1. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Задался вопросом вытащить из УПП печатную форму М-11.
    Пересмотрел много уроков, перечитал много статей, отличается от скажем так типовых случаев.
    Созхдал обработку, добавил реквизит, из общих шаблонов - печатную форму.
    Далее иду в документ ТребованиеНакладная. Там в общем модуле:
    Код:
    Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    Если ЭтоНовый() Тогда
    Предупреждение(НСтр("ru = 'Документ можно распечатать только после его записи'"));
    Возврат;
    ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
    Предупреждение(НСтр("ru = 'Недостаточно полномочий для печати непроведенного документа!'"));
    Возврат;
    КонецЕсли;
    
    Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
    Возврат;
    КонецЕсли;
    
    // Получить экземпляр документа на печать
    Если ТипЗнч(ИмяМакета) = Тип("ДвоичныеДанные") Тогда
    
    ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка, ИмяМакета);
    
    Если ТабДокумент = Неопределено Тогда
    Возврат
    КонецЕсли;
    Иначе
    ПараметрКоманды = Новый Массив;
    ПараметрКоманды.Добавить(Ссылка);
    
    Если НаПринтер Тогда
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.ТребованиеНакладная", ИмяМакета,
    ПараметрКоманды, Неопределено);
    Иначе
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.ТребованиеНакладная", ИмяМакета,
    ПараметрКоманды, Неопределено, Неопределено);
    КонецЕсли;
    Возврат;
    КонецЕсли;
    
    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер,
    ОбщегоНазначения.СформироватьЗаголовокДокумента(Ссылка), Ссылка);
    
    КонецПроцедуры // Печать()
    
    НапечататьВнешнююФорму ссылается на функцию:
    Код:
    Функция НапечататьВнешнююФорму(Ссылка, ИсточникМакета) Экспорт
    
    Перем ДополнительныеПараметры;
    
    ДвоичныеДанные = ИсточникМакета.СсылкаНаВнешнююОбработку.Принадлежность[ИсточникМакета.НомерСтроки - 1].ХранилищеВнешнейОбработки.Получить();
    
    // Получить дополнительные параметры внешней обработки
    ИсточникМакета.Свойство("ДополнительныеПараметрыОбработки", ДополнительныеПараметры);
    
    Если ДвоичныеДанные = Неопределено Тогда
    ДвоичныеДанные = ИсточникМакета.СсылкаНаВнешнююОбработку.ХранилищеВнешнейОбработки.Получить();
    КонецЕсли;
    
    Если ДвоичныеДанные = Неопределено Тогда
    Возврат Неопределено;
    КонецЕсли;
    
    ТабДокумент = Неопределено;
    
    ИмяФайла = ПолучитьИмяВременногоФайла("epf");
    Попытка
    ДвоичныеДанные.Записать(ИмяФайла);
    Обработка = ВнешниеОбработки.Создать(ИмяФайла);
    Обработка.СсылкаНаОбъект = Ссылка;
    
    // Передать внешней обработке дополнительные параметры
    Если ДополнительныеПараметры <> Неопределено Тогда
    
    // Если у внешней обработки есть реквизит для дополнительных параметров, присвоить ему значение
    Если НЕ Обработка.Метаданные().Реквизиты.Найти("ДополнительныеПараметры") = Неопределено Тогда
    Обработка.ДополнительныеПараметры = ДополнительныеПараметры;
    КонецЕсли;
    
    КонецЕсли;
    
    ТабДокумент = Обработка.Печать();
    УдалитьФайлы(ИмяФайла);
    Исключение
    ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),, "Не удалось сформировать внешнюю печатную форму!");
    КонецПопытки;
    
    Возврат ТабДокумент;
    
    КонецФункции
    
    Я понимаю все это не то что нужно. Иду в Модуль Менеджера. Там:
    Код:
    // Сформировать печатные формы объектов
    //
    // ВХОДЯЩИЕ:
    //   МассивОбъектов  - Массив    - Массив ссылок на объекты которые нужно распечатать
    //
    // ИСХОДЯЩИЕ:
    //   КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
    //   ОшибкиПечати		  - Список значений  - Ошибки печати  (значение - ссылка на объект, представление - текст ошибки)
    //   ОбъектыПечати		 - Список значений  - Объекты печати (значение - ссылка на объект, представление - имя области в которой был выведен объект)
    //   ПараметрыВывода	   - Структура	    - Параметры сформированных табличных документов
    //
    Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Накладная") Тогда
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Накладная", "Требование-накладная", ПечатьТребованиеНакладная(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М11") Тогда
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "М11", "М-11 (Требование накладная)", ПечатьМ11(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
    
    КонецПроцедуры
    
    
    // Функция формирует печатную форму М-11
    //
    Функция ПечатьМ11(МассивОбъектов, ОбъектыПечати) Экспорт
    
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
    ТоварКод = "Артикул";
    Иначе
    ТоварКод = "Код";
    КонецЕсли;
    
    ТекстЗапроса_Шапка =
    "ВЫБРАТЬ
    |    Ссылка.Номер    КАК НомерДокумента,
    |    Ссылка.Дата    КАК ДатаДокумента,
    |    Ссылка.Дата    КАК ДатаСоставления,
    |    Ссылка.Организация,
    |    Ссылка.Склад,
    |    Ссылка.ПодразделениеОрганизации КАК Подразделение
    |    //ПОЛЕ_КорСчет, ВЫБОР КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СчетЗатрат) = 1 ТОГДА
    |    //ПОЛЕ_КорСчет    МИНИМУМ(СчетЗатрат)
    |    //ПОЛЕ_КорСчет ИНАЧЕ """" КОНЕЦ КАК КоррСчет
    |ИЗ
    |    Документ.ТребованиеНакладная КАК ТребованиеНакладная
    |
    |ГДЕ
    |    ТребованиеНакладная.Ссылка = &ТекущийДокумент
    |//ПОЛЕ_КорСчет СГРУППИРОВАТЬ ПО Ссылка";
    
    ТекстЗапроса_Материалы = "
    |ВЫБРАТЬ
    |    ТребованиеНакладная.Номенклатура,
    |    ВЫРАЗИТЬ(ТребованиеНакладная.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК МатериалНаименование,
    |    ТребованиеНакладная.Номенклатура." + ТоварКод + " КАК НоменклатурныйНомер,
    |    ТребованиеНакладная.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование,
    |    ТребованиеНакладная.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКод,
    |    ТребованиеНакладная.Характеристика,
    |    ТребованиеНакладная.Серия,
    |    ТребованиеНакладная.Количество,
    |    ТребованиеНакладная.Счет,
    |    ТребованиеНакладная.НомерСтроки КАК НомерСтроки,
    |    ВЫРАЗИТЬ(
    |        ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Стоимость, 0)
    |        * ТребованиеНакладная.Количество
    |        * ТребованиеНакладная.Коэффициент
    |        / ЕСТЬNULL(ТребованиеНакладная.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1)
    |        / ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Количество, 1)
    |     КАК ЧИСЛО(15,2) ) КАК Сумма
    |ИЗ (
    |    ВЫБРАТЬ
    |        ТребованиеНакладная.Номенклатура,
    |        ТребованиеНакладная.ЕдиницаИзмерения,
    |        ТребованиеНакладная.Коэффициент,
    |        ТребованиеНакладная.Счет,
    |        ТребованиеНакладная.ХарактеристикаНоменклатуры КАК Характеристика,
    |        ТребованиеНакладная.СерияНоменклатуры КАК Серия,
    |        СУММА(ТребованиеНакладная.Количество) КАК Количество,
    |        МИНИМУМ(ТребованиеНакладная.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладная
    |    ГДЕ
    |        ТребованиеНакладная.Ссылка = &ТекущийДокумент
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ТребованиеНакладная.Номенклатура,
    |        ТребованиеНакладная.ЕдиницаИзмерения,
    |        ТребованиеНакладная.Коэффициент,
    |        ТребованиеНакладная.ХарактеристикаНоменклатуры,
    |        ТребованиеНакладная.СерияНоменклатуры,
    |        ТребованиеНакладная.Счет
    |    ) КАК ТребованиеНакладная
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        ТаблицаСебестоимостиОбороты КАК ТаблицаСебестоимостиОбороты
    |        ПО ТребованиеНакладная.Номенклатура = ТаблицаСебестоимостиОбороты.Номенклатура
    |            И ТаблицаСебестоимостиОбороты.Регистратор = &Регистратор
    |            И ((ТребованиеНакладная.Характеристика = ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры = ""Не используется""))
    |            И ((ТребованиеНакладная.Серия = ТаблицаСебестоимостиОбороты.СерияНоменклатуры)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.СерияНоменклатуры = ""Не используется""))
    |            И ((ТребованиеНакладная.Счет = ТаблицаСебестоимостиОбороты.СчетУчета)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.СчетУчета = ""Не используется""))
    |        
    |ГДЕ
    |    ТаблицаСебестоимостиОбороты.Регистратор = &ТекущийДокумент
    |    ИЛИ ТаблицаСебестоимостиОбороты.Регистратор ЕСТЬ NULL
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерСтроки
    |";
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11";
    
    // Вывод заголовка
    Макет = ПолучитьОбщийМакет("М11");
    
    ПервыйДокумент = Истина;
    
    Для Каждого Ссылка Из МассивОбъектов Цикл
    
    Если Не ПервыйДокумент Тогда
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    
    ПервыйДокумент = Ложь;
    
    НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    Запрос.Текст = ТекстЗапроса_Шапка;
    Если Ссылка.ОтражатьВБухгалтерскомУчете Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "Документ.ТребованиеНакладная", "Документ.ТребованиеНакладная.Материалы");
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "//ПОЛЕ_КорСчет", "");
    Иначе
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"Ссылка.", "");
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"ПодразделениеОрганизации", "Подразделение");
    КонецЕсли;
    
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
    СтруктраПараметров = Новый Структура();
    СтруктраПараметров.Вставить("ТекущийДокумент", Ссылка);
    СтруктраПараметров.Вставить("Регистратор", Ссылка);
    СтруктраПараметров.Вставить("НачГраница", Новый Граница(Ссылка.Дата, ВидГраницы.Включая));
    
    ТекстЗапроса = ТекстЗапроса_Материалы;
    
    ТаблицаЗатрат = УправлениеЗапасами.ПолучитьТаблицуЗатратДляПечатиИЗаполненияДокументов(Ссылка, ТекстЗапроса, СтруктраПараметров);
    
    Если ТаблицаЗатрат = Неопределено Тогда
    Продолжить;
    КонецЕсли;    
    
    Область = Макет.ПолучитьОбласть("Шапка");
    Область.Параметры.Заголовок	 = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Шапка.НомерДокумента);
    Область.Параметры.Заполнить(Шапка);
    
    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
    
    Область.Параметры.ПредставлениеОрганизации   = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбОрганизации);
    Область.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
    Область.Параметры.КодОКПО				    = СведенияОбОрганизации.КодПоОКПО;
    
    ТабДокумент.Вывести(Область);
    
    Для Каждого ВыборкаПоСтрокам Из ТаблицаЗатрат Цикл
    
    Область = Макет.ПолучитьОбласть("Строка");
    Область.Параметры.Заполнить(ВыборкаПоСтрокам);
    Область.Параметры.Цена = ?( ВыборкаПоСтрокам.Количество = 0, ВыборкаПоСтрокам.Сумма, Окр(ВыборкаПоСтрокам.Сумма / ВыборкаПоСтрокам.Количество, 2, 1));
    Область.Параметры.МатериалНаименование = СокрЛП(ВыборкаПоСтрокам.МатериалНаименование) + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаПоСтрокам);
    
    ТабДокумент.Вывести(Область);
    
    КонецЦикла;
    
    Область = Макет.ПолучитьОбласть("Подвал");
    ТабДокумент.Вывести(Область);
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка);
    
    КонецЦикла;
    Возврат ТабДокумент;
    
    КонецФункции // ПечатьМ11()
    
    Тут я понимаю функция Функция ПечатьМ11 то что нужно. Переписываю ее:
    Код:
    Функция Печать() Экспорт
    МассивОбъектов = СсылкаНаОбъект;
    //ОбъектыПечати //Понимаю этот параметр нам не нужен?
    
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
    ТоварКод = "Артикул";
    Иначе
    ТоварКод = "Код";
    КонецЕсли;
    
    ТекстЗапроса_Шапка =
    "ВЫБРАТЬ
    |    Ссылка.Номер    КАК НомерДокумента,
    |    Ссылка.Дата    КАК ДатаДокумента,
    |    Ссылка.Дата    КАК ДатаСоставления,
    |    Ссылка.Организация,
    |    Ссылка.Склад,
    |    Ссылка.ПодразделениеОрганизации КАК Подразделение
    |    //ПОЛЕ_КорСчет, ВЫБОР КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СчетЗатрат) = 1 ТОГДА
    |    //ПОЛЕ_КорСчет    МИНИМУМ(СчетЗатрат)
    |    //ПОЛЕ_КорСчет ИНАЧЕ """" КОНЕЦ КАК КоррСчет
    |ИЗ
    |    Документ.ТребованиеНакладная КАК ТребованиеНакладная
    |
    |ГДЕ
    |    ТребованиеНакладная.Ссылка = &ТекущийДокумент
    |//ПОЛЕ_КорСчет СГРУППИРОВАТЬ ПО Ссылка";
    
    ТекстЗапроса_Материалы = "
    |ВЫБРАТЬ
    |    ТребованиеНакладная.Номенклатура,
    |    ВЫРАЗИТЬ(ТребованиеНакладная.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК МатериалНаименование,
    |    ТребованиеНакладная.Номенклатура." + ТоварКод + " КАК НоменклатурныйНомер,
    |    ТребованиеНакладная.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование,
    |    ТребованиеНакладная.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКод,
    |    ТребованиеНакладная.Характеристика,
    |    ТребованиеНакладная.Серия,
    |    ТребованиеНакладная.Количество,
    |    ТребованиеНакладная.Счет,
    |    ТребованиеНакладная.НомерСтроки КАК НомерСтроки,
    |    ВЫРАЗИТЬ(
    |        ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Стоимость, 0)
    |        * ТребованиеНакладная.Количество
    |        * ТребованиеНакладная.Коэффициент
    |        / ЕСТЬNULL(ТребованиеНакладная.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1)
    |        / ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Количество, 1)
    |     КАК ЧИСЛО(15,2) ) КАК Сумма
    |ИЗ (
    |    ВЫБРАТЬ
    |        ТребованиеНакладная.Номенклатура,
    |        ТребованиеНакладная.ЕдиницаИзмерения,
    |        ТребованиеНакладная.Коэффициент,
    |        ТребованиеНакладная.Счет,
    |        ТребованиеНакладная.ХарактеристикаНоменклатуры КАК Характеристика,
    |        ТребованиеНакладная.СерияНоменклатуры КАК Серия,
    |        СУММА(ТребованиеНакладная.Количество) КАК Количество,
    |        МИНИМУМ(ТребованиеНакладная.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладная
    |    ГДЕ
    |        ТребованиеНакладная.Ссылка = &ТекущийДокумент
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ТребованиеНакладная.Номенклатура,
    |        ТребованиеНакладная.ЕдиницаИзмерения,
    |        ТребованиеНакладная.Коэффициент,
    |        ТребованиеНакладная.ХарактеристикаНоменклатуры,
    |        ТребованиеНакладная.СерияНоменклатуры,
    |        ТребованиеНакладная.Счет
    |    ) КАК ТребованиеНакладная
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        ТаблицаСебестоимостиОбороты КАК ТаблицаСебестоимостиОбороты
    |        ПО ТребованиеНакладная.Номенклатура = ТаблицаСебестоимостиОбороты.Номенклатура
    |            И ТаблицаСебестоимостиОбороты.Регистратор = &Регистратор
    |            И ((ТребованиеНакладная.Характеристика = ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры = ""Не используется""))
    |            И ((ТребованиеНакладная.Серия = ТаблицаСебестоимостиОбороты.СерияНоменклатуры)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.СерияНоменклатуры = ""Не используется""))
    |            И ((ТребованиеНакладная.Счет = ТаблицаСебестоимостиОбороты.СчетУчета)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.СчетУчета = ""Не используется""))
    |        
    |ГДЕ
    |    ТаблицаСебестоимостиОбороты.Регистратор = &ТекущийДокумент
    |    ИЛИ ТаблицаСебестоимостиОбороты.Регистратор ЕСТЬ NULL
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерСтроки
    |";
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11";
    
    // Вывод заголовка
    Макет = ЭтотОбъект.ПолучитьМакет("М11");
    
    ПервыйДокумент = Истина;
    
    Для Каждого Ссылка Из МассивОбъектов Цикл
    
    Если Не ПервыйДокумент Тогда
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    
    ПервыйДокумент = Ложь;
    
    НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    Запрос.Текст = ТекстЗапроса_Шапка;
    Если Ссылка.ОтражатьВБухгалтерскомУчете Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "Документ.ТребованиеНакладная", "Документ.ТребованиеНакладная.Материалы");
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "//ПОЛЕ_КорСчет", "");
    Иначе
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"Ссылка.", "");
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"ПодразделениеОрганизации", "Подразделение");
    КонецЕсли;
    
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
    СтруктраПараметров = Новый Структура();
    СтруктраПараметров.Вставить("ТекущийДокумент", Ссылка);
    СтруктраПараметров.Вставить("Регистратор", Ссылка);
    СтруктраПараметров.Вставить("НачГраница", Новый Граница(Ссылка.Дата, ВидГраницы.Включая));
    
    ТекстЗапроса = ТекстЗапроса_Материалы;
    
    ТаблицаЗатрат = УправлениеЗапасами.ПолучитьТаблицуЗатратДляПечатиИЗаполненияДокументов(Ссылка, ТекстЗапроса, СтруктраПараметров);
    
    Если ТаблицаЗатрат = Неопределено Тогда
    Продолжить;
    КонецЕсли;    
    
    Область = Макет.ПолучитьОбласть("Шапка");
    Область.Параметры.Заголовок	 = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Шапка.НомерДокумента);
    Область.Параметры.Заполнить(Шапка);
    
    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
    
    Область.Параметры.ПредставлениеОрганизации   = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбОрганизации);
    Область.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
    Область.Параметры.КодОКПО				    = СведенияОбОрганизации.КодПоОКПО;
    
    ТабДокумент.Вывести(Область);
    
    Для Каждого ВыборкаПоСтрокам Из ТаблицаЗатрат Цикл
    
    Область = Макет.ПолучитьОбласть("Строка");
    Область.Параметры.Заполнить(ВыборкаПоСтрокам);
    Область.Параметры.Цена = ?( ВыборкаПоСтрокам.Количество = 0, ВыборкаПоСтрокам.Сумма, Окр(ВыборкаПоСтрокам.Сумма / ВыборкаПоСтрокам.Количество, 2, 1));
    Область.Параметры.МатериалНаименование = СокрЛП(ВыборкаПоСтрокам.МатериалНаименование) + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаПоСтрокам);
    
    ТабДокумент.Вывести(Область);
    
    КонецЦикла;
    
    Область = Макет.ПолучитьОбласть("Подвал");
    ТабДокумент.Вывести(Область);
    //УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка);
    
    КонецЦикла;
    Возврат ТабДокумент;
    
    КонецФункции // Печать()
    
    Выдает ошибку при открытии формы:
    Не удалось сформировать внешнюю печатную форму!
    Итератор для значения не определен

    Что это за ошибка и что я сделал не так?
    Спасибо.
  2. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    ощущение что переменная МассивОбъектов неопределена/пустая
  3. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    Тоже думал за это. Но что это за переменная?
    МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
    Чем ее инициализировать?
  4. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Массив объектов - это переменная менеджера, Вы пишите ВПФ, перейдите в соответствующую тему форума, там уйма вопросов разобрано.
    http://www.1c-pro.ru/topic26882.html
  5. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    Все равно не понятно. Там код вытекает напрямую из конфигуратора.
    Код:
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    
    Видимо и тут все очень просто, только я что-то не замечаю или не понимаю.
  6. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    МассивОбъектов - это переменная менеджера для печати из списка документов. В нем может содержаться несколько объектов на печать.
    В данном случае не обращайте внимание на эту переменную, Вы пишите не обработку печати из менеджера, у Вас есть ссылка.
  7. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    При запуске выдает ошибку:
    Не удалось сформировать внешнюю печатную форму!
    Обращение к процедуре объекта как к функции (Печать)

    Создал ссылку на документ, скопировал макет. Не могу понять в чем проблема.
    В коде поменял только одну строку:
    Макет = ПолучитьОбщийМакет("М11");
    на
    Макет = ЭтотОбъект.ПолучитьМакет("М11");
    Код:
    // Сформировать печатные формы объектов
    //
    // ВХОДЯЩИЕ:
    //   МассивОбъектов  - Массив    - Массив ссылок на объекты которые нужно распечатать
    //
    // ИСХОДЯЩИЕ:
    //   КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
    //   ОшибкиПечати		  - Список значений  - Ошибки печати  (значение - ссылка на объект, представление - текст ошибки)
    //   ОбъектыПечати		 - Список значений  - Объекты печати (значение - ссылка на объект, представление - имя области в которой был выведен объект)
    //   ПараметрыВывода	   - Структура	    - Параметры сформированных табличных документов
    //
    Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Накладная") Тогда
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Накладная", "Требование-накладная", ПечатьТребованиеНакладная(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "М11") Тогда
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "М11", "М-11 (Требование накладная)", ПечатьМ11(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
    
    КонецПроцедуры
    
    
    // Функция формирует печатную форму М-11
    //
    Функция ПечатьМ11(МассивОбъектов, ОбъектыПечати) Экспорт
    
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
    ТоварКод = "Артикул";
    Иначе
    ТоварКод = "Код";
    КонецЕсли;
    
    ТекстЗапроса_Шапка =
    "ВЫБРАТЬ
    |    Ссылка.Номер    КАК НомерДокумента,
    |    Ссылка.Дата    КАК ДатаДокумента,
    |    Ссылка.Дата    КАК ДатаСоставления,
    |    Ссылка.Организация,
    |    Ссылка.Склад,
    |    Ссылка.ПодразделениеОрганизации КАК Подразделение
    |    //ПОЛЕ_КорСчет, ВЫБОР КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СчетЗатрат) = 1 ТОГДА
    |    //ПОЛЕ_КорСчет    МИНИМУМ(СчетЗатрат)
    |    //ПОЛЕ_КорСчет ИНАЧЕ """" КОНЕЦ КАК КоррСчет
    |ИЗ
    |    Документ.ТребованиеНакладная КАК ТребованиеНакладная
    |
    |ГДЕ
    |    ТребованиеНакладная.Ссылка = &ТекущийДокумент
    |//ПОЛЕ_КорСчет СГРУППИРОВАТЬ ПО Ссылка";
    
    ТекстЗапроса_Материалы = "
    |ВЫБРАТЬ
    |    ТребованиеНакладная.Номенклатура,
    |    ВЫРАЗИТЬ(ТребованиеНакладная.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК МатериалНаименование,
    |    ТребованиеНакладная.Номенклатура." + ТоварКод + " КАК НоменклатурныйНомер,
    |    ТребованиеНакладная.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование,
    |    ТребованиеНакладная.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКод,
    |    ТребованиеНакладная.Характеристика,
    |    ТребованиеНакладная.Серия,
    |    ТребованиеНакладная.Количество,
    |    ТребованиеНакладная.Счет,
    |    ТребованиеНакладная.НомерСтроки КАК НомерСтроки,
    |    ВЫРАЗИТЬ(
    |        ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Стоимость, 0)
    |        * ТребованиеНакладная.Количество
    |        * ТребованиеНакладная.Коэффициент
    |        / ЕСТЬNULL(ТребованиеНакладная.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1)
    |        / ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Количество, 1)
    |     КАК ЧИСЛО(15,2) ) КАК Сумма
    |ИЗ (
    |    ВЫБРАТЬ
    |        ТребованиеНакладная.Номенклатура,
    |        ТребованиеНакладная.ЕдиницаИзмерения,
    |        ТребованиеНакладная.Коэффициент,
    |        ТребованиеНакладная.Счет,
    |        ТребованиеНакладная.ХарактеристикаНоменклатуры КАК Характеристика,
    |        ТребованиеНакладная.СерияНоменклатуры КАК Серия,
    |        СУММА(ТребованиеНакладная.Количество) КАК Количество,
    |        МИНИМУМ(ТребованиеНакладная.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладная
    |    ГДЕ
    |        ТребованиеНакладная.Ссылка = &ТекущийДокумент
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ТребованиеНакладная.Номенклатура,
    |        ТребованиеНакладная.ЕдиницаИзмерения,
    |        ТребованиеНакладная.Коэффициент,
    |        ТребованиеНакладная.ХарактеристикаНоменклатуры,
    |        ТребованиеНакладная.СерияНоменклатуры,
    |        ТребованиеНакладная.Счет
    |    ) КАК ТребованиеНакладная
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        ТаблицаСебестоимостиОбороты КАК ТаблицаСебестоимостиОбороты
    |        ПО ТребованиеНакладная.Номенклатура = ТаблицаСебестоимостиОбороты.Номенклатура
    |            И ТаблицаСебестоимостиОбороты.Регистратор = &Регистратор
    |            И ((ТребованиеНакладная.Характеристика = ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры = ""Не используется""))
    |            И ((ТребованиеНакладная.Серия = ТаблицаСебестоимостиОбороты.СерияНоменклатуры)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.СерияНоменклатуры = ""Не используется""))
    |            И ((ТребованиеНакладная.Счет = ТаблицаСебестоимостиОбороты.СчетУчета)
    |                ИЛИ (ТаблицаСебестоимостиОбороты.СчетУчета = ""Не используется""))
    |        
    |ГДЕ
    |    ТаблицаСебестоимостиОбороты.Регистратор = &ТекущийДокумент
    |    ИЛИ ТаблицаСебестоимостиОбороты.Регистратор ЕСТЬ NULL
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерСтроки
    |";
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11";
    
    // Вывод заголовка
    Макет = ПолучитьОбщийМакет("М11");
    
    ПервыйДокумент = Истина;
    
    Для Каждого Ссылка Из МассивОбъектов Цикл
    
    Если Не ПервыйДокумент Тогда
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    
    ПервыйДокумент = Ложь;
    
    НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    Запрос.Текст = ТекстЗапроса_Шапка;
    Если Ссылка.ОтражатьВБухгалтерскомУчете Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "Документ.ТребованиеНакладная", "Документ.ТребованиеНакладная.Материалы");
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "//ПОЛЕ_КорСчет", "");
    Иначе
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"Ссылка.", "");
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"ПодразделениеОрганизации", "Подразделение");
    КонецЕсли;
    
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
    СтруктраПараметров = Новый Структура();
    СтруктраПараметров.Вставить("ТекущийДокумент", Ссылка);
    СтруктраПараметров.Вставить("Регистратор", Ссылка);
    СтруктраПараметров.Вставить("НачГраница", Новый Граница(Ссылка.Дата, ВидГраницы.Включая));
    
    ТекстЗапроса = ТекстЗапроса_Материалы;
    
    ТаблицаЗатрат = УправлениеЗапасами.ПолучитьТаблицуЗатратДляПечатиИЗаполненияДокументов(Ссылка, ТекстЗапроса, СтруктраПараметров);
    
    Если ТаблицаЗатрат = Неопределено Тогда
    Продолжить;
    КонецЕсли;    
    
    Область = Макет.ПолучитьОбласть("Шапка");
    Область.Параметры.Заголовок	 = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Шапка.НомерДокумента);
    Область.Параметры.Заполнить(Шапка);
    
    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
    
    Область.Параметры.ПредставлениеОрганизации   = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбОрганизации);
    Область.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
    Область.Параметры.КодОКПО				    = СведенияОбОрганизации.КодПоОКПО;
    
    ТабДокумент.Вывести(Область);
    
    Для Каждого ВыборкаПоСтрокам Из ТаблицаЗатрат Цикл
    
    Область = Макет.ПолучитьОбласть("Строка");
    Область.Параметры.Заполнить(ВыборкаПоСтрокам);
    Область.Параметры.Цена = ?( ВыборкаПоСтрокам.Количество = 0, ВыборкаПоСтрокам.Сумма, Окр(ВыборкаПоСтрокам.Сумма / ВыборкаПоСтрокам.Количество, 2, 1));
    Область.Параметры.МатериалНаименование = СокрЛП(ВыборкаПоСтрокам.МатериалНаименование) + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаПоСтрокам);
    
    ТабДокумент.Вывести(Область);
    
    КонецЦикла;
    
    Область = Макет.ПолучитьОбласть("Подвал");
    ТабДокумент.Вывести(Область);
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка);
    
    КонецЦикла;
    Возврат ТабДокумент;
    
    КонецФункции // ПечатьМ11()
    
    Функция ПечатьТребованиеНакладная(МассивОбъектов, ОбъектыПечати) Экспорт
    
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
    ВыводитьКоды = Истина;
    Колонка = "Артикул";
    ТекстКодАртикул = "Артикул";
    ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
    ВыводитьКоды = Истина;
    Колонка = "Код";
    ТекстКодАртикул = "Код";
    Иначе
    ВыводитьКоды = Ложь;
    Колонка		 = "";
    ТекстКодАртикул = "Код";
    КонецЕсли;
    Если ВыводитьКоды Тогда
    ОбластьШапки  = "ШапкаСКодом";
    ОбластьСтроки = "СтрокаСКодом";
    Иначе
    ОбластьШапки  = "Шапка";
    ОбластьСтроки = "Строка";
    Конецесли;
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_ТН";
    
    Макет = ПолучитьМакет("ТребованиеНакладная");
    
    ТекстЗапроса_ТаблицаМатериалов =
    "ВЫБРАТЬ
    |    МИНИМУМ(НомерСтроки) КАК НомПП,
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Артикул КАК Артикул,
    |    ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Имя,
    |    ХарактеристикаНоменклатуры	        КАК Характеристика,
    |    СерияНоменклатуры			         КАК Серия,
    |    ЕдиницаИзмеренияМест КАК ЕдИзмМест,
    |    ЕдиницаИзмерения КАК ЕдИзм,
    |    СУММА(Количество) КАК Количество,
    |    СУММА(КоличествоМест) КАК КоличествоМест
    |
    |ИЗ
    |    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладная
    |
    |ГДЕ
    |    ТребованиеНакладная.Ссылка = &ТекущийДокумент
    |
    |СГРУППИРОВАТЬ ПО
    |    Номенклатура,
    |    ЕдиницаИзмерения,
    |    ЕдиницаИзмеренияМест,
    |    ХарактеристикаНоменклатуры,
    |    СерияНоменклатуры
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомПП
    |";
    
    ПервыйДокумент = Истина;
    Для Каждого Ссылка Из МассивОбъектов Цикл
    
    Если Не ПервыйДокумент Тогда
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    
    ПервыйДокумент = Ложь;
    
    НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    Запрос.Текст =	 "ВЫБРАТЬ
    |    Номер,
    |    Дата,
    |    Организация,
    |    Склад,
    |    "+?(Ссылка.ОтражатьВБухгалтерскомУчете, "ПодразделениеОрганизации", "Подразделение")+" КАК Подразделение
    |ИЗ
    |    Документ.ТребованиеНакладная КАК ТребованиеНакладная
    |
    |ГДЕ
    |    ТребованиеНакладная.Ссылка = &ТекущийДокумент";
    
    
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    
    
    
    Запрос.Текст = ТекстЗапроса_ТаблицаМатериалов;
    
    ЗапросПоНоменклатуре = Запрос.Выполнить();
    
    Область = Макет.ПолучитьОбласть("Заголовок");
    Область.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Ссылка, "Требование-накладная");
    Область.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(Область);
    
    //Вывод шапки
    ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
    Если ВыводитьКоды Тогда
    ОбластьМакета.Параметры.Колонка = Колонка;
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
    
    //Вывод строк
    Область = Макет.ПолучитьОбласть(ОбластьСтроки);
    
    ВыборкаПоСтрокам = ЗапросПоНоменклатуре.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаПоСтрокам.Следующий() Цикл
    
    Область.Параметры.Заполнить(ВыборкаПоСтрокам);
    Если ВыводитьКоды Тогда
    Область.Параметры.КодАртикул = ВыборкаПоСтрокам[ТекстКодАртикул];
    КонецЕсли;
    
    Область.Параметры.Имя = СокрЛП(ВыборкаПоСтрокам.Имя) + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаПоСтрокам);
    ТабДокумент.Вывести(Область);
    
    КонецЦикла;
    
    // Вывод подвала
    Область = Макет.ПолучитьОбласть("Подписи");
    ТабДокумент.Вывести(Область);
    
    МестВсего = ЗапросПоНоменклатуре.Выгрузить().Итог("КоличествоМест");
    Если МестВсего = 0 Тогда
    УниверсальныеМеханизмы.СкрытьКолонкиВТабличномДокументе(ТабДокумент, "Мест",2, ОбластьШапки);
    КонецЕсли;
    
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка);
    
    КонецЦикла;
    
    Возврат ТабДокумент;
    
    КонецФункции // ПечатьТребованиеНакладная()
    
    // В функции описано, какие данные следует сохранять в шаблоне
    //
    Функция СтруктураДополнительныхДанныхФормы() Экспорт
    
    Возврат ХранилищаНастроек.ДанныеФорм.СформироватьСтруктуруДополнительныхДанных("Материалы");
    
    КонецФункции
    
  8. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    Если заменить ключевое слово Процедура на Функция то следующая ошибка:
    Не удалось сформировать внешнюю печатную форму!
    Недостаточно фактических параметров

    Возможно нужно обращаться к параметром через СсылкаНаОбъект? Только к каким именно?
  9. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    Не все параметры инициализированы?
    Код:
    Функция Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    В частности значение ПараметрыПечати?
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    В ВПФ функцию печать напишите так:
    Код:
    Функция Печать() Экспорт
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(СсылкаНаОбъект);
    
    ОбъектыПечати = Новый СписокЗначений;
    
    ТабДокумент = ПечатьМ11(МассивОбъектов, ОбъектыПечати);
    
    Возврат ТабДокумент;
    
    КонецФункции // Печать
    

Поделиться этой страницей