Имя: Пароль:
1C
1С v8
МХ-18
0 Kucha88
 
29.01.13
12:08
Всем доброго дня уважаемые, мне необходима ваша помощь. Создаю внешнюю печатную форму для документа "Отчет производства за смену" Мх-18 Накладная на передачу готовой продукции, но возникли трудности не могу никак исправить, подскажите пожалуйста где и что нужно исправить в коде, код был взят из модуля документа, я немного подправил что знал а вот дальше не могу разобраться

// Процедура выводит печатную форму МХ-18
//
Функция ВывестиПечатнуюФормуМХ18( Шапка, СтрокаПродукция)
   
   ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить();
   
   ТабДокумент  = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОтчетПроизводстваЗаСмену_МХ18";

   Макет = ПолучитьМакет("МХ18");

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

   ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
   ОбластьМакета.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;

   // Выводим всевозможные коды
   ОбластьМакета.Параметры.ОрганизацияПоОКПО     = СведенияОбОрганизации.КодПоОКПО;

   ТабДокумент.Вывести(ОбластьМакета);

   СтрокНаСтранице = 20;
   СтрокШапки      = 10;
   СтрокПодвала    = 9;
   НомерСтраницы   = 1;

   // Выводим заголовок таблицы
   ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
   ТабДокумент.Вывести(ЗаголовокТаблицы);

   КоличествоСтрок = СтрокаПродукция.Количество();

   Если КоличествоСтрок <= 2 Тогда
       ПереноситьПоследнююСтроку = 0;
   Иначе
       ЦелыхСтраницСПодвалом     = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
       ЦелыхСтраницБезПодвала    = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
       ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
   КонецЕсли;

   // инициализация итогов по странице
   ИтогоМассаБруттоНаСтранице = 0;
   ИтогоМестНаСтранице        = 0;
   ИтогоКоличествоНаСтранице  = 0;
   ИтогоСуммаНаСтранице         = 0;

   // инициализация итогов по документу
   ИтогоМассаБрутто = 0;
   ИтогоМест        = 0;
   ИтогоКоличество  = 0;
   ИтогоСумма       = 0;
   Ном              = 0;

   ОбластьИтого = Макет.ПолучитьОбласть("Итого");
   ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   
   // Выводим многострочную часть докмента
   ОбластьМакета = Макет.ПолучитьОбласть("Строка");
   Для Каждого ВыборкаСтрок Из СтрокаПродукция Цикл

       Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
           ОбщегоНазначения.Сообщение("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
           Продолжить;
       КонецЕсли;

       Ном = Ном + 1;
       
       // Проверим, помещается ли строка с данными и последняя строка (или итоги) на странице.
       СтрокаТаблицы = Новый Массив;
       СтрокаТаблицы.Добавить(ОбластьСтрока);
       Если Ном = КоличествоСтрок Тогда
           СтрокаТаблицы.Добавить(ОбластьИтого);
           СтрокаТаблицы.Добавить(ОбластьПодвал);
       КонецЕсли;

       Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаТаблицы) Тогда
       
           // очистим итоги по странице
           ИтогоМассаБруттоНаСтранице = 0;
           ИтогоМестНаСтранице        = 0;
           ИтогоКоличествоНаСтранице  = 0;
           ИтогоСуммаНаСтранице         = 0;

           НомерСтраницы = НомерСтраницы + 1;
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
           ТабДокумент.Вывести(ЗаголовокТаблицы);

       КонецЕсли;

       ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
       ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок);

       Если НЕ ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) Тогда
           МассаБрутто = 0;
       Иначе
           МассаБрутто = ВыборкаСтрок.МассаБрутто;
           МассаБрутто = ?(МассаБрутто <> Неопределено И МассаБрутто <> NULL, МассаБрутто, 0);
       КонецЕсли;

       Мест        = ВыборкаСтрок.КоличествоМест;
       Мест        = ?(Мест <> Неопределено И Мест <> NULL, Мест, 0);

       Количество  = ВыборкаСтрок.Количество;

       ОбластьМакета.Параметры.МассаБрутто = МассаБрутто;

       ТабДокумент.Вывести(ОбластьМакета);

       // увеличим итоги по странице
       ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;
       ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + Мест;
       ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + Количество;
       ИтогоСуммаНаСтранице         = ИтогоСуммаНаСтранице        + ВыборкаСтрок.Сумма;

       // увеличим итоги по дукументу
       ИтогоМассаБрутто = ИтогоМассаБрутто + МассаБрутто;
       ИтогоМест        = ИтогоМест        + Мест;
       ИтогоКоличество  = ИтогоКоличество  + Количество;
       ИтогоСумма       = ИтогоСумма        + ВыборкаСтрок.Сумма;

   КонецЦикла;

   // Выводим итоги по документу в целом
   ОбластьМакета = Макет.ПолучитьОбласть("Итого");
   ОбластьМакета.Параметры.ИтогМассаБрутто = ИтогоМассаБрутто;
   ОбластьМакета.Параметры.ИтогМест        = ИтогоМест;
   ОбластьМакета.Параметры.ИтогКоличество  = ИтогоКоличество;
   ОбластьМакета.Параметры.ИтогСумма        = ИтогоСумма;

   ТабДокумент.Вывести(ОбластьМакета);

   // Выводим подвал документа
   ОбластьМакета = Макет.ПолучитьОбласть("Подвал");

   ОбластьМакета.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
   ТабДокумент.Вывести(ОбластьМакета);

   // Зададим параметры макета
   ТабДокумент.ПолеСверху              = 0;
   ТабДокумент.ПолеСлева               = 0;
   ТабДокумент.ПолеСнизу               = 0;
   ТабДокумент.ПолеСправа              = 0;
   ТабДокумент.РазмерКолонтитулаСверху = 0;
   ТабДокумент.РазмерКолонтитулаСнизу  = 0;
   ТабДокумент.АвтоМасштаб             = Истина;
   ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
   
   Возврат ТабДокумент;
   
КонецФункции // ВывестиПечатнуюФормуМХ18()
   
// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
//  Табличный документ - печатная форма накладной
//
Функция ПечатьМХ18()

   ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
   Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ТоварКод = "Артикул";
   Иначе
       ТоварКод = "Код";
   КонецЕсли;

   
   Ссылка = СсылкаНаОбъект.Ссылка;
   Дата = СсылкаНаОбъект.Дата;

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);

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

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

КонецФункции // ПечатьМХ18()

// Функция осуществляет запуск обработки формирующей печатную форму
//
// Параметры
//  Нет
//
// Возвращаемое значение:
//  <Неопределено> – Загрулшка для УниверсальныеМеханизмы.НапечататьДокумент(), т.к. табличный
//                   документ формирутеся вызываемой обработкой.
//
Функция ПечатьСерийныеНомера()
   
   Обработка = Обработки.ПечатьСерийныхНомеров.ПолучитьФорму("Форма");
   Обработка.Печать(Ссылканаобъект.Продукция, Ссылканаобъект.СерийныеНомера);
   
   Возврат Неопределено;
   
КонецФункции // ПечатьСерийныеНомера()

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

   Если Не РаботаСДиалогами.ПроверитьМодифицированность(СсылкаНаОбъект.Ссылка) Тогда
       Возврат ТабДокумент ;
   КонецЕсли;

   // Получить экземпляр документа на печать
   Если ИмяМакета = "МХ18" Тогда
   
       ТабДокумент = ПечатьМХ18();
       
   ИначеЕсли ИмяМакета = "СерНомера" Тогда
   
       ТабДокумент = ПечатьСерийныеНомера();
       
   ИначеЕсли ИмяМакета = "СерийныеНомера" Тогда
   
       ТабДокумент = УчетСерийныхНомеров.ПечатьСерийныхНомеров(СсылкаНаОбъект, "Продукция");
   
   ИначеЕсли ТипЗнч(ИмяМакета) = Тип("ДвоичныеДанные") Тогда

       ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(СсылкаНаОбъект, ИмяМакета);
       
       Если ТабДокумент = Неопределено Тогда
           Возврат ТабДокумент
       КонецЕсли;
       
   КонецЕсли;
   
   Если ТипЗнч(ТабДокумент) = Тип("Массив") Тогда
       Для К = 0 По ТабДокумент.ВГраница() Цикл
           УниверсальныеМеханизмы.НапечататьДокумент( ТабДокумент[К], КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект), ТабДокумент[К]);
       КонецЦикла;
   Иначе
       УниверсальныеМеханизмы.НапечататьДокумент( ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект), Ссылканаобъект);
   КонецЕсли;
       
КонецФункции // Печать
1 Kucha88
 
29.01.13
12:10
При формировании печатной формы пишет недостаточно фактических параметров
2 Artful Den
 
29.01.13
12:10
(0) Задача то какая стояла?
3 1C-band
 
29.01.13
12:10
(0) А что, собственно, требуется?
4 Godofsin
 
29.01.13
12:11
Значит, не хватает параметров, ваш КЭП
5 Kucha88
 
29.01.13
12:11
(2) Задача: создать ВПФ для дальнейшего исправления без изменения конфигурации
6 Kucha88
 
29.01.13
12:12
(4) ну а каких параметров не хватает?
7 Godofsin
 
29.01.13
12:12
"Функция ВывестиПечатнуюФормуМХ18( Шапка, СтрокаПродукция)
"
Как ты ее вызываешь?
8 Godofsin
 
29.01.13
12:17
и ваще для какой функции параметров не хватает?
9 Godofsin
 
29.01.13
12:17
полностью ошибку напиши
10 lopus
 
29.01.13
12:26
Запрос.УстановитьПараметр( "ТекущийДокумент", ЭтотОбъект.Ссылка); Это что?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс