Подскажите что изменилось при печати внешних печатных форм для
 Бухгалтерия предприятия, редакция 3.0.66.53)

{ОбщийМодуль.ПечатьТорговыхДокументов.Модуль(260)}: Значение не является значением объектного типа (ИмяПараметровПечати)
ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;
---
чё вот вот? ))
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть

на название не обращай внимания...лень было перешмякивать
---
ИмяПараметровПечати
вместо ИмяПараметровПечати попробуйте
ТабличныйДокумент.КлючПараметровПечати = ""
---
ссылается на базу в которой не правим, а надо изменить в при выводе на печать
---
Ну так откройте ПараметрыПечати и посмотрите ЧТО там изменилось.
Может имя поменяли - это сейчас модно в 1с
Все изменения только обеспечивают работой програмистов - я даже подумал : удобно, не останешься без хлеба...
---
Всё правильно: действуют согласно модели бизнеса от M$, которую они приобрели и используют. Так и появилась 1С 8.Х с багами, несовместимостями версий, кучей толстых бесполезных книжек и очень платными курсами.
---
ПараметрыПечати а не имя
---
- не понятно... код из модуля базы

```1c
    Функция ПечатьТОРГ12(СведенияТОРГ12, ОбъектыПечати, ПараметрыПечати) Экспорт

    УстановитьПривилегированныйРежим(Истина);

    ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;

    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

    ТабличныйДокумент.КлючПараметровПечати = ИмяПараметровПечати;

    УстановитьМинимальныеПоляПечати(ТабличныйДокумент);

    Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_ТОРГ12");

    ЕстьОбластьГосконтракты = (Макет.Области.Найти("ДатаНомерГосконтракт") <> Неопределено);

    ПервыйДокумент = Истина;
    СведенияОКонтрагентах = Новый Соответствие;
    КонтрагентыДляПечати = Новый Структура("Поставщик, Грузоотправитель, Покупатель, Грузополучатель");
    Для Каждого СведенияОДокументе Из СведенияТОРГ12 Цикл

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

    ПервыйДокумент = Ложь;

    // Запомним номер строки, с которой начали выводить текущий документ.
    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

    ТаблицаДокумента = СведенияОДокументе.ТаблицаДокумента;

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

    // Получаем сведения об используемых в документе контрагентах с разными ролями в документообороте.
    Для каждого КонтрагентДляПечати Из КонтрагентыДляПечати Цикл

    КонтрагентИзДокумента = СведенияОДокументе[КонтрагентДляПечати.Ключ];
    СведенияОКонтрагенте = СведенияОКонтрагентах[КонтрагентИзДокумента];
    Если СведенияОКонтрагенте = Неопределено Тогда
    БанковскийСчетКонтрагента = ?(КонтрагентДляПечати.Ключ = "Поставщик", СведенияОДокументе.БанковскийСчетПродавца, Неопределено);
    СведенияОКонтрагенте = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(
    КонтрагентИзДокумента, СведенияОДокументе.ДатаДляПолученияСведений, БанковскийСчетКонтрагента);
    СведенияОКонтрагентах.Вставить(КонтрагентИзДокумента, СведенияОКонтрагенте);
    КонецЕсли;
    КонтрагентыДляПечати.Вставить(КонтрагентДляПечати.Ключ, СведенияОКонтрагенте);

    КонецЦикла;

    // Выводим общие реквизиты шапки.
    ОбластьМакетаШапка.Параметры.Заполнить(СведенияОДокументе);

    ДополнительныеПараметрыШапки = Новый Структура;

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

    Если ЗначениеЗаполнено(СведенияОДокументе.Подразделение) Тогда
    СведенияОПодразделении = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СведенияОДокументе.Подразделение, "ОбособленноеПодразделение, НаименованиеПолное");
    ДополнительныеПараметрыШапки.Вставить("ПредставлениеПодразделения", ?(СведенияОПодразделении.ОбособленноеПодразделение, СведенияОПодразделении.НаименованиеПолное, "));
    КонецЕсли;

    Если СокрЛП(СведенияОДокументе.АдресДоставки) <> " Тогда
    ПредставлениеГрузополучателяДоАдреса = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
    КонтрагентыДляПечати.Грузополучатель, "НаименованиеДляПечатныхФорм,ИНН,");
    ПредставлениеГрузополучателяПослеАдреса = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
    КонтрагентыДляПечати.Грузополучатель, "Телефоны,НомерСчета,Банк,БИК,КоррСчет,");
    ДополнительныеПараметрыШапки.Вставить("ПредставлениеГрузополучателя", ?(СокрЛП(ПредставлениеГрузополучателяДоАдреса) = ",
    ", ПредставлениеГрузополучателяДоАдреса+", ") + СведенияОДокументе.АдресДоставки
    + ?(СокрЛП(ПредставлениеГрузополучателяПослеАдреса)=", ", ", "+ПредставлениеГрузополучателяПослеАдреса));
    Иначе
    ДополнительныеПараметрыШапки.Вставить("ПредставлениеГрузополучателя", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
    КонтрагентыДляПечати.Грузополучатель, "НаименованиеДляПечатныхФорм,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"));
    КонецЕсли;

    ДополнительныеПараметрыШапки.Вставить("ПредставлениеПоставщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Поставщик));
    ДополнительныеПараметрыШапки.Вставить("ПредставлениеПлательщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Покупатель));

    // Выводим всевозможные коды
    ДополнительныеПараметрыШапки.Вставить("ОрганизацияПоОКПО", КонтрагентыДляПечати.Грузоотправитель.КодПоОКПО);
    ДополнительныеПараметрыШапки.Вставить("ВидДеятельностиПоОКДП", ");
    ДополнительныеПараметрыШапки.Вставить("ГрузополучательПоОКПО", КонтрагентыДляПечати.Грузополучатель.КодПоОКПО);
    ДополнительныеПараметрыШапки.Вставить("ПоставщикПоОКПО", КонтрагентыДляПечати.Поставщик.КодПоОКПО);
    ДополнительныеПараметрыШапки.Вставить("ПлательщикПоОКПО", КонтрагентыДляПечати.Покупатель.КодПоОКПО);
    ДополнительныеПараметрыШапки.Вставить("ТранспортнаяНакладнаяНомер", ");
    ДополнительныеПараметрыШапки.Вставить("ТранспортнаяНакладнаяДата", ");

    ОбластьМакетаШапка.Параметры.Заполнить(ДополнительныеПараметрыШапки);

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

    ОбластьНомерИсправления = ОбластьМакетаДатаНомер.Области.Найти("НомерИсправленияГосконтракт");
    ОбластьДатаИсправления = ОбластьМакетаДатаНомер.Области.Найти("ДатаИсправленияГосконтракт");
    Иначе
    ОбластьМакетаДатаНомер = Макет.ПолучитьОбласть("ДатаНомер");

    ОбластьНомерИсправления = ОбластьМакетаДатаНомер.Области.Найти("НомерИсправления");
    ОбластьДатаИсправления = ОбластьМакетаДатаНомер.Области.Найти("ДатаИсправления");
    КонецЕсли;

    Иначе
    ОбластьМакетаДатаНомер = ОбластьМакетаШапка;

    ОбластьНомерИсправления = ОбластьМакетаШапка.Области.Найти("НомерИсправления");
    ОбластьДатаИсправления = ОбластьМакетаШапка.Области.Найти("ДатаИсправления");
    КонецЕсли;

    ПараметрыИсправление = Новый Структура;

    Если ЗначениеЗаполнено(СведенияОДокументе.НомерИсправления) И ЗначениеЗаполнено(СведенияОДокументе.ДатаИсправления) Тогда

    ПараметрыИсправление.Вставить("ТекстИсправления", НСтр("ru='Исправление '"));
    ПараметрыИсправление.Вставить("НомерИсправления", СведенияОДокументе.НомерИсправления);
    ПараметрыИсправление.Вставить("ДатаИсправления", Формат(СведенияОДокументе.ДатаИсправления, "ДФ=dd.MM.yyyy"));

    ЛинияГраницыРеквизитовИсправления = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
    ОбластьНомерИсправления.ГраницаСнизу = ЛинияГраницыРеквизитовИсправления;
    ОбластьНомерИсправления.ГраницаСлева = ЛинияГраницыРеквизитовИсправления;
    ОбластьНомерИсправления.ГраницаСправа = ЛинияГраницыРеквизитовИсправления;

    ОбластьДатаИсправления.ГраницаСнизу = ЛинияГраницыРеквизитовИсправления;
    ОбластьДатаИсправления.ГраницаСлева = ЛинияГраницыРеквизитовИсправления;
    ОбластьДатаИсправления.ГраницаСправа = ЛинияГраницыРеквизитовИсправления;

    КонецЕсли;

    ОбластьМакетаДатаНомер.Параметры.Заполнить(СведенияОДокументе);
    ОбластьМакетаДатаНомер.Параметры.Заполнить(ПараметрыИсправление);

    ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
    Если ЕстьОбластьГосконтракты Тогда
    ТабличныйДокумент.Вывести(ОбластьМакетаДатаНомер);
    КонецЕсли;

    // Инициализация счетчика страниц
    НомерСтраницы = 1;

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

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

    // Инициализация счетчика строк
    НомерСтроки = 0;
    КоличествоСтрок = ТаблицаДокумента.Количество();

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

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

    НДСИсчисляетсяНалоговымАгентом = СведенияОДокументе.НДСИсчисляетсяНалоговымАгентом = Истина
    И УчетНДС.ВедетсяУчетНДСПоФЗ335(СведенияОДокументе.ДатаДокумента);

    // Выводим многострочную часть документа
    Для Каждого СтрокаДокумента Из ТаблицаДокумента Цикл

    НомерСтроки = НомерСтроки + 1;

    ПараметрыСтроки = Новый Структура;

    ПараметрыСтроки.Вставить("Номер", НомерСтроки);
    ПараметрыСтроки.Вставить("ТоварНаименование", СтрокаДокумента.ТоварНаименование);
    ПараметрыСтроки.Вставить("ТоварКод", СтрокаДокумента.ТоварКод);
    ПараметрыСтроки.Вставить("БазоваяЕдиницаНаименование", СтрокаДокумента.ЕдиницаИзмеренияНаименование);
    ПараметрыСтроки.Вставить("БазоваяЕдиницаКодПоОКЕИ", СтрокаДокумента.ЕдиницаИзмеренияКод);

    ПараметрыСтроки.Вставить("КоличествоМест", СтрокаДокумента.КоличествоМест);
    Если НЕ ЗначениеЗаполнено(СтрокаДокумента.КоличествоМест) Тогда
    ПараметрыСтроки.Вставить("ВидУпаковки", ");
    ПараметрыСтроки.Вставить("КоличествоВОдномМесте", ");
    Иначе
    ПараметрыСтроки.Вставить("ВидУпаковки", СтрокаДокумента.ВидУпаковкиНаименование);
    ПараметрыСтроки.Вставить("КоличествоВОдномМесте", СтрокаДокумента.КоличествоВОдномМесте);
    КонецЕсли;

    ПараметрыСтроки.Вставить("Количество", СтрокаДокумента.Количество);
    ПараметрыСтроки.Вставить("Цена", СтрокаДокумента.Цена);
    ПараметрыСтроки.Вставить("СуммаБезНДС", СтрокаДокумента.СуммаБезНДС);

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

    ОбластьМакетаСтрока.Параметры.Заполнить(ПараметрыСтроки);

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

    Если НЕ ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, СтрокаСПодвалом) Тогда

    Если КоличествоСтрок > 1 Тогда

    // Выводим итоги по странице
    ПараметрыИтоги = Новый Структура;

    ПараметрыИтоги.Вставить("ИтогМестПоСтранице", ИтогоМестНаСтранице);
    ПараметрыИтоги.Вставить("ИтогКоличествоПоСтранице", ИтогоКоличествоНаСтранице);
    ПараметрыИтоги.Вставить("ИтогСуммыПоСтранице", ИтогоСуммаБезНДСНаСтранице);

    Если НДСИсчисляетсяНалоговымАгентом Тогда
    ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
    ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
    Иначе
    ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", ИтогоНДСНаСтранице);
    ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", ИтогоСуммаСНДСНаСтранице);
    КонецЕсли;

    ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(ПараметрыИтоги);

    ТабличныйДокумент.Вывести(ОбластьМакетаИтогоПоСтранице);

    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();

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

    // Выведем заголовок таблицы
    НомерСтраницы = НомерСтраницы + 1;

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

    КонецЕсли;

    КонецЕсли;

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

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

    // Увеличим итоги по документу
    ИтогоМест = ИтогоМест + СтрокаДокумента.КоличествоМест;
    ИтогоКоличество = ИтогоКоличество + СтрокаДокумента.Количество;
    ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + СтрокаДокумента.СуммаБезНДС;
    ИтогоНДС = ИтогоНДС + СтрокаДокумента.СуммаНДС;
    ИтогоСуммаСНДС = ИтогоСуммаСНДС + СтрокаДокумента.СуммаСНДС;

    КонецЦикла;

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

    Если НДСИсчисляетсяНалоговымАгентом Тогда
    ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
    ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
    Иначе
    ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", ИтогоНДСНаСтранице);
    ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", ИтогоСуммаСНДСНаСтранице);
    КонецЕсли;

    ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(ПараметрыИтоги);

    ТабличныйДокумент.Вывести(ОбластьМакетаИтогоПоСтранице);

    // Выводим итоги по документу в целом
    ПараметрыИтоги = Новый Структура;

    ПараметрыИтоги.Вставить("ИтогМест", ИтогоМест);
    ПараметрыИтоги.Вставить("ИтогКоличество", ИтогоКоличество);
    ПараметрыИтоги.Вставить("ИтогСуммы", ИтогоСуммаБезНДС);

    Если НДСИсчисляетсяНалоговымАгентом Тогда
    ПараметрыИтоги.Вставить("ИтогНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
    ПараметрыИтоги.Вставить("ИтогСуммыСНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
    Иначе
    ПараметрыИтоги.Вставить("ИтогНДС", ИтогоНДС);
    ПараметрыИтоги.Вставить("ИтогСуммыСНДС", ИтогоСуммаСНДС);
    КонецЕсли;

    ОбластьМакетаВсего.Параметры.Заполнить(ПараметрыИтоги);

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

    // Выводим подвал документа
    ПараметрыПодвал = Новый Структура;

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

    ПараметрыПодвал.Вставить("СуммаПрописью", ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(ИтогоСуммаСНДС, СведенияОДокументе.Валюта));

    ЗаРуководителяНаОсновании = ?(СведенияОДокументе.ЗаРуководителяНаОснованииНаименование = ", " , ", "+СведенияОДокументе.ЗаРуководителяНаОснованииНаименование);
    ПараметрыПодвал.Вставить("ФИОРуководителя", СведенияОДокументе.РуководительФИО + ЗаРуководителяНаОсновании);
    ПараметрыПодвал.Вставить("ДолжностьРуководителя", СведенияОДокументе.РуководительДолжностьНаименование);

    ЗаГлавногоБухгалтераНаОсновании = ?(СведенияОДокументе.ЗаГлавногоБухгалтераНаОснованииНаименование = ", " , ", "+СведенияОДокументе.ЗаГлавногоБухгалтераНаОснованииНаименование);
    ПараметрыПодвал.Вставить("ФИОГлавБухгалтера", СведенияОДокументе.ГлавныйБухгалтерФИО + ЗаГлавногоБухгалтераНаОсновании);

    ПараметрыПодвал.Вставить("ФИОКладовщика", СведенияОДокументе.КладовщикФИО);
    ПараметрыПодвал.Вставить("ДолжностьКладовщика", СведенияОДокументе.КладовщикДолжность);

    Если ЗначениеЗаполнено(СведенияОДокументе.ДатаПодписанияДокумента) Тогда
    ПолнаяДатаДокумента = Формат(СведенияОДокументе.ДатаПодписанияДокумента, "ДФ="дд ММММ гггг ""года"""");
    ДлинаСтроки = СтрДлина(ПолнаяДатаДокумента);
    ПервыйРазделитель = СтрНайти(ПолнаяДатаДокумента," ");
    ВторойРазделитель = СтрНайти(Прав(ПолнаяДатаДокумента,ДлинаСтроки - ПервыйРазделитель), " ") + ПервыйРазделитель;

    ПараметрыПодвал.Вставить("ДатаДокументаДень", "" + Лев(ПолнаяДатаДокумента, ПервыйРазделитель - 1) + "");
    ПараметрыПодвал.Вставить("ДатаДокументаМесяц", Сред(ПолнаяДатаДокумента, ПервыйРазделитель + 1, ВторойРазделитель - ПервыйРазделитель - 1));
    ПараметрыПодвал.Вставить("ДатаДокументаГод", Прав(ПолнаяДатаДокумента, ДлинаСтроки - ВторойРазделитель));
    Иначе
    ПараметрыПодвал.Вставить("ДатаДокументаДень", "" "");
    ПараметрыПодвал.Вставить("ДатаДокументаМесяц", ");
    ПараметрыПодвал.Вставить("ДатаДокументаГод", " 20 года");
    КонецЕсли;

    ДлинаСтрокиДоверенность = СтрДлина(СведенияОДокументе.ДоверенностьВыдана);
    Если ДлинаСтрокиДоверенность < 70 Тогда

    ДоверенностьВыдана = СведенияОДокументе.ДоверенностьВыдана;
    ДоверенностьВыдана1 = ";

    Иначе
    // Разбиваем строку на две подстроки, таким образом чтобы первая строка была не более 70ти символов
    // Для этого ищем очередной пробел и проверяем длину строк в предположении, что перенос будет выполнен по найденной позиции.
    ДоверенностьВыдана1 = СведенияОДокументе.ДоверенностьВыдана;
    ПозицияПоиска = СтрНайти(ДоверенностьВыдана1," ")+1;

    // Если найден очередной пробел и длина первой строки после операции будет менее 70ти символов, то выполняем еще одну итерацию.
    Пока ПозицияПоиска > 1 И ДлинаСтрокиДоверенность - СтрДлина(ДоверенностьВыдана1) + ПозицияПоиска < 70 Цикл

    ДоверенностьВыдана1 = Сред(ДоверенностьВыдана1, ПозицияПоиска);
    ПозицияПоиска = СтрНайти(ДоверенностьВыдана1," ")+1;

    КонецЦикла;

    ДоверенностьВыдана = Лев(СведенияОДокументе.ДоверенностьВыдана,ДлинаСтрокиДоверенность - СтрДлина(ДоверенностьВыдана1));

    КонецЕсли;

    ДанныеДоверенность = Новый Структура;
    ДанныеДоверенность.Вставить("ДоверенностьНомер", СведенияОДокументе.ДоверенностьНомер);
    ДанныеДоверенность.Вставить("ДоверенностьВыдана", ДоверенностьВыдана);
    ДанныеДоверенность.Вставить("ДоверенностьВыдана1", ДоверенностьВыдана1);
    ДанныеДоверенность.Вставить("ДоверенностьЧерезКого", СведенияОДокументе.ДоверенностьЧерезКого);
    ДанныеДоверенность.Вставить("ДоверенностьДата",?(ЗначениеЗаполнено(СведенияОДокументе.ДоверенностьДата), Формат(СведенияОДокументе.ДоверенностьДата, "ДЛФ=ДД"), "));

    ОбластьМакетаПодвал.Параметры.Заполнить(ДанныеДоверенность);
    ОбластьМакетаПодвал.Параметры.Заполнить(ПараметрыПодвал);

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

    // В табличном документе зададим имя области, в которую был
    // выведен объект. Нужно для возможности печати покомплектно.
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
    НомерСтрокиНачало, ОбъектыПечати, СведенияОДокументе.Документ);

    УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью(ТабличныйДокумент, СведенияОДокументе, ОбъектыПечати, ПараметрыПечати);

    КонецЦикла;

    Возврат ТабличныйДокумент;

    КонецФункции
```
---
```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    ВключатьУслуги = Ложь;
    ТаблицаСведенийТОРГ12 = ПолучитьТаблицуСведенийТОРГ12(МассивОбъектов, ВключатьУслуги);
    КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПередачаОС_ТОРГ12";
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ_12", "ТОРГ-12 (Товарная накладная)",
    ПечатьТорговыхДокументов.ПечатьТОРГ12(ТаблицаСведенийТОРГ12, ОбъектыПечати, КлючПараметровПечати),,"ОбщийМакет.ПФ_MXL_ТОРГ12");

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

    Функция ПолучитьТаблицуСведенийТОРГ12(Знач МассивДокументов, Знач ВключатьУслуги) Экспорт

    УстановитьПривилегированныйРежим(Истина);

    ТаблицаСведений = ПечатьТорговыхДокументов.ПолучитьОписаниеТОРГ12();

    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
    Запрос.УстановитьПараметр("ВключатьУслуги", ВключатьУслуги);
    Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов", Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить());

    Запрос.Текст = ПолучитьТекстЗапросаДляФормированияТаблицыСведенийТОРГ12();

    РезультатыЗапроса = Запрос.ВыполнитьПакет();

    ВалютаРегУчета = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
    РеквизитыВалютыРегУчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВалютаРегУчета, "Код, Наименование");

    Выборка = РезультатыЗапроса[2].Выбрать();
    СтрокиДокументов = РезультатыЗапроса[3].Выгрузить();
    СтрокиДокументов.Индексы.Добавить("Документ");

    Пока Выборка.Следующий() Цикл

    СведенияОДокументе = ТаблицаСведений.Добавить();
    ЗаполнитьЗначенияСвойств(СведенияОДокументе, Выборка);

    СведенияОДокументе.Валюта = ВалютаРегУчета;
    СведенияОДокументе.ВалютаКод = РеквизитыВалютыРегУчета.Код;
    СведенияОДокументе.ВалютаНаименование = РеквизитыВалютыРегУчета.Наименование;

    ТаблицаДокумента = ПечатьТорговыхДокументов.ПолучитьОписаниеТаблицыТОРГ12();

    Отбор = Новый Структура("Документ", Выборка.Документ);
    СтрокиДокумента = СтрокиДокументов.НайтиСтроки(Отбор);

    НуженПересчетВРубли = НЕ (Выборка.ВалютаДокумента = ВалютаРегУчета);

    Для Каждого Строка Из СтрокиДокумента Цикл

    СтрокаТаблицыДокумента = ТаблицаДокумента.Добавить();
    ЗаполнитьЗначенияСвойств(СтрокаТаблицыДокумента, Строка);

    Если НуженПересчетВРубли Тогда
    Если Строка.СуществуютЗаписиРублевыхСумм Тогда
    СтрокаТаблицыДокумента.СуммаНДС = Строка.НДСВРублях;
    СтрокаТаблицыДокумента.СуммаБезНДС = Строка.ВсегоВРублях - Строка.НДСВРублях;
    Иначе
    Кратность = ?(Выборка.Кратность = 0, 1, Выборка.Кратность);
    СтрокаТаблицыДокумента.СуммаНДС = Строка.СуммаНДС * Выборка.Курс / Кратность;;
    СтрокаТаблицыДокумента.СуммаБезНДС = (Строка.СуммаБезНДС + Строка.СуммаНДС) * Выборка.Курс / Кратность - СтрокаТаблицыДокумента.СуммаНДС;
    КонецЕсли;
    КонецЕсли;

    СтрокаТаблицыДокумента.СуммаСНДС = СтрокаТаблицыДокумента.СуммаБезНДС + СтрокаТаблицыДокумента.СуммаНДС;

    Если НуженПересчетВРубли
    ИЛИ (Выборка.СуммаВключаетНДС И СтрокаТаблицыДокумента.СуммаНДС <> 0) Тогда
    СтрокаТаблицыДокумента.Цена = ?(СтрокаТаблицыДокумента.Количество = 0,
    СтрокаТаблицыДокумента.СуммаБезНДС,
    СтрокаТаблицыДокумента.СуммаБезНДС / СтрокаТаблицыДокумента.Количество);
    КонецЕсли;

    КонецЦикла;

    СведенияОДокументе.ТаблицаДокумента = ТаблицаДокумента;

    ПорядокЗаполнения = Новый Структура("ЗаполнятьРуководителя, ЗаполнятьГлавногоБухгалтера, ЗаполнятьКладовщика");
    ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, ПорядокЗаполнения);

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

    КонецЦикла;

    Возврат ТаблицаСведений;

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

    Функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийТОРГ12()

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

    Возврат ТекстЗапроса;

    КонецФункции
```
---
да, поторопился, не посмотрел
хотел макетом твоим заменить, чёт не получилось, много ссылок на общий модуль печати торг
надо бы все функции и процедуры экспортные перенсти, чтоб не было отсыла в общ.модуль
---
вот вот..
---
чё вот вот? ))
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть

на название не обращай внимания...лень было перешмякивать
---
- да Вы просто гуру 1с! :-)

- спасибо!

p/s
- уезжал в командировку..