8.х Макет в печатную форму

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем sashasasha89, 20 ноя 2015.

  1. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Подскажите есть макет в конфигурации. Как добавить чтобы это была печатная форма в Документе продаж?
    [​IMG]
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    В документе продаж прописать код, который будет дергать макет и печатать его.
  3. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Где можно найти пример кода?
    Последнее редактирование: 20 ноя 2015
  4. bajiepka
    Offline

    bajiepka Опытный в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    329
    Симпатии:
    23
    Баллы:
    29
    отладчиком надо смотреть
  5. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Решил что написать с нуля будет быстрее. Осталось вроде как самое сложное описать что откуда будет браться. Если ли откуда взять формирование пачатной формы для Акта на передачу прав?
    Код:
    Функция СведенияОВнешнейОбработке() Экспорт
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Вид", "ПечатнаяФорма");
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
    РегистрационныеДанные.Вставить("Назначение", МассивНазначений);
    РегистрационныеДанные.Вставить("Наименование", "Печатная форма  Акта на передачу прав");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
    РегистрационныеДанные.Вставить("Версия", "1.0");
    РегистрационныеДанные.Вставить("Информация", "Акт на передачу прав");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд,"Акт на передачу прав", "ЭД_АктНаПередачуПрав", "ВызовСерверногоМетода",  Истина, "ЭД_АктНаПередачуПрав");
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);
    Возврат РегистрационныеДанные;
    КонецФункции
    //Вспомогательные для Сведений ВПФ
    Функция ПолучитьТаблицуКоманд()
    
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
    
    КонецФункции
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
    КонецПроцедуры
    //Формирование печатной формы
    Функция Печать(МассивОбъектов,  КоллекцияПечатныхФорм,  ОбъектыПечати,  ПараметрыВывода) Экспорт
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    ТабличныйДокумент = ПечатьАкт(МассивОбъектов, ОбъектыПечати);
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,"ЭД_АктНаПередачуПрав", "Акт",ТабличныйДокумент);
    КонецФункции // Печать()
    Функция ПечатьАкт(МассивОбъектов, ОбъектыПечати)
    
    КонецФункции
    --- Объединение сообщений, 20 ноя 2015 ---
    В 1с загрузил в таком виде пишет несформирован таблицные документ и это естественно. Подскажите где в интенете есть хорошая инструкция для новичка как формаровать что бы данные в таблицу попадали.
    Последнее редактирование модератором: 20 ноя 2015
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    На форуме есть статьи, почитайте.
  7. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Что то я не нашел. Как я понимаю мне далее надо формировать табличную часть, что откуда должно браться и заполнять печатную форму?
    Начало у меня правильно написано?
  8. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Дошел до процедуры печати. У меня нет докумена Акт на передачу прав чтобы скопировать оттуда команду печати. Как быть?

    Мне надо чтобы он выходил на печать из Документа Продаж

    Функция ПолучитьНазначениеОбработки ()

    Массив = Новый Массив;
    Массив.Добавить("Документ.ДокументПродаж");

    Возврат Массив;

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

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

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

    Функция СведенияОВнешнейОбработке()
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Акт на передачу прав");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Внешняя печатная форма");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);


    Команд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Документы продаж", "Акт на передачу прав", "ВызовСерверногоМетода", Ложь, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", Команда);

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

    Функция ПолучитьТаблицуКоманд()

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

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


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



    КонецПроцедуры
    Последнее редактирование: 21 ноя 2015
  9. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    В таком виде подключил пишет что В обработчике печати не был сфорирован табличный документ для: ЭД_АктНаПередачуПрав. Дайте ссылку на инструкцию как формировать табличный документ? Везде просто копируют из Документа команду печати, а у меня нет на этот документ такого или я не нашел.
  10. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    А сейчас ничего не менял а уже ошибки пошли
    {ВнешняяОбработка.АктНаПередачуПрав.МодульОбъекта(14,45)}: Переменная не определена (МассивНазначений)
    ПараметрыРегистрации.Вставить("Назначение", <<?>>МассивНазначений); (Проверка: Сервер)
    {ВнешняяОбработка.АктНаПередачуПрав.МодульОбъекта(22,17)}: Переменная не определена (ТаблицаКоманд)
    ДобавитьКоманду(<<?>>ТаблицаКоманд, "Документы продаж", "Акт на передачу прав", "ВызовСерверногоМетода", Ложь, "ПечатьMXL"); (Проверка: Сервер)
    {ВнешняяОбработка.АктНаПередачуПрав.МодульОбъекта(23,42)}: Переменная не определена (Команда)
    ПараметрыРегистрации.Вставить("Команды", <<?>>Команда); (Проверка: Сервер)
    {ВнешняяОбработка.АктНаПередачуПрав.МодульОбъекта(31,30)}: Переменная не определена (Идентификатор)
    НоваяКоманда.Идентификатор = <<?>>Идентификатор; (Проверка: Сервер)
  11. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Поправил так
    Функция ПолучитьНазначениеОбработки ()
    Массив = Новый Массив;
    Массив.Добавить("Документ.ДокументПродаж");
    Возврат Массив;
    КонецФункции
    Функция СведенияОВнешнейОбработке ()
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивЗначений);
    ПараметрыРегистрации.Вставить("Наименование", "Акт на передачу прав");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Внешняя печатная форма");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    Команд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Документы продаж", "Акт на передачу прав", "ВызовСерверногоМетода", Ложь, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", Массив);
    Возврат ПараметрыРегистрации;
    КонецФункции
    Функция ПолучитьТаблицуКоманд()
    Команды = Новый МассивЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("ПечатьMXL"));
    Возврат Команды;
    КонецФункции
    Процедура ДобавитьКоманду (ТаблицаКоманд, Представление, Идентифткатор, Использование, показыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить ();
    НоваяКоманда.Представлении = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использовании = Использование;
    НоваяКоманда.ПоказыватьОповещение = показыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    КонецПроцедуры

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

    Теперь одна ошибка
    {ВнешняяОбработка.АктНаПередачуПрав.МодульОбъекта(22,17)}: Тип не определен (МассивЗначений)
    Команды = Новый <<?>>МассивЗначений; (Проверка: Сервер)
  12. pavl_vs
    Offline

    pavl_vs Профессионал в 1С

    Регистрация:
    18 июн 2011
    Сообщения:
    343
    Симпатии:
    27
    Баллы:
    54
    Как я понимаю документ Продаж имеет свою печатную форму, но хочется иметь макет из Акта на передачу прав.
    Очень странное заявление ТС о невозможности найти в инете инструкции; понятно нет если "один в один".

    Кстати, параметры в приведенном макете очень понятны и очень непонятен "кодовый огород".
    Последнее редактирование модератором: 23 ноя 2015
  13. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Что то лишнее?
    --- Объединение сообщений, 21 ноя 2015 ---
    Вот вроде лишнее удалил. Я найти не могу откуда можно экспортировать функцию печати так как Акта на передачу прав я не нашел в конфигураторе.
    Последнее редактирование: 21 ноя 2015
  14. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    И принцип написания функции печати я пока не нашел .
  15. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Вот что у меня получилось.
    Синтаксических ошибок не обнаружено!
    Но при попытки открыть печатную форму в 1с
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(221)}: Недостаточно фактических параметров
    ВнешняяОбработкаОбъект.Печать(
    Что не так?
    Код:
    Функция СведенияОВнешнейОбработке() Экспорт
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Вид", "ПечатнаяФорма");
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
    РегистрационныеДанные.Вставить("Назначение", МассивНазначений);
    РегистрационныеДанные.Вставить("Наименование", "Печатная форма  Акта на передачу прав");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
    РегистрационныеДанные.Вставить("Версия", "1.0");
    РегистрационныеДанные.Вставить("Информация", "Акт на передачу прав");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд,"Акт на передачу прав", "АктНаПередачуПрав", "ВызовСерверногоМетода",  Истина, "АктНаПередачуПрав");
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);
    Возврат РегистрационныеДанные;
    КонецФункции
    //Вспомогательные для Сведений ВПФ
    Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
    КонецФункции
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    КонецПроцедуры
    //Формирование печатной формы
    Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПечататьКарточкуЭД = УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "КарточкаЭД");
    Если ПечататьКарточкуЭД Тогда
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "КарточкаЭД",
    НСтр("ru = 'Карточка электронного документа'"),
    ПечатьКарточкиЭД(МассивОбъектов, ОбъектыПечати, "КарточкаЭД"),
    ,
    "Справочник.ЭДПрисоединенныеФайлы.ПФ_MXL_КарточкаЭД");
    КонецЕсли;
    
    ПечататьЭД = УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЭД");
    Если ПечататьЭД Тогда
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "ЭД",
    НСтр("ru = 'Электронный документ'"),
    ПечатьЭД(МассивОбъектов, ОбъектыПечати),
    ,
    );
    КонецЕсли;
    КонецПроцедуры
    Функция ПечатьЭД(СсылкаНаЭД, ОбъектыПечати)
    
    ТабДок = ФайлДанныхЭД(СсылкаНаЭД);
    
    Возврат ТабДок;
    
    КонецФункции
    Функция ПечатьКарточкиЭД(МассивОбъектов, ОбъектыПечати, ИмяМакета ="КарточкаЭД")
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЭДПрисоединенныеФайлы.Ссылка,
    | ЭДПрисоединенныеФайлы.НаименованиеФайла КАК НаименованиеФайла,
    | ЭДПрисоединенныеФайлы.ОтправительЭД КАК Отправитель,
    | ЭДПрисоединенныеФайлы.ПолучательЭД КАК Получатель,
    | ЭДПрисоединенныеФайлы.ВидЭД КАК ВидЭДСсылка,
    | ПРЕДСТАВЛЕНИЕ(ЭДПрисоединенныеФайлы.ВидЭД) КАК ВидДокумента,
    | """" КАК ТипДокумента,
    | ЭДПрисоединенныеФайлы.УникальныйИД КАК Идентификатор,
    | """" КАК НомерЭД,
    | """" КАК ДатаЭД,
    | ЭДПрисоединенныеФайлы.ДополнительнаяИнформация КАК СопроводительнаяЗаписка,
    | ЭДПрисоединенныеФайлы.Расширение,
    | ЭДПрисоединенныеФайлы.Контрагент,
    | ЭДПрисоединенныеФайлы.Организация,
    | ЭДПрисоединенныеФайлы.ПрофильНастроекЭДО,
    | ЭДПрисоединенныеФайлы.НаправлениеЭД КАК НаправлениеЭД,
    | ЭДПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайла
    |ПОМЕСТИТЬ втЭД
    |ИЗ
    | Справочник.ЭДПрисоединенныеФайлы КАК ЭДПрисоединенныеФайлы
    |ГДЕ
    | ЭДПрисоединенныеФайлы.Ссылка В(&МассивОбъектов)
    | И НЕ ЭДПрисоединенныеФайлы.ВидЭД В (&СлужебныеЭД)
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЭДПрисоединенныеФайлы.Ссылка,
    | ЭДПрисоединенныеФайлы.НаименованиеФайла,
    | ЭДПрисоединенныеФайлы.ОтправительЭД,
    | ЭДПрисоединенныеФайлы.ПолучательЭД,
    | ЭДПрисоединенныеФайлы.ВидЭД,
    | ПРЕДСТАВЛЕНИЕ(ЭДПрисоединенныеФайлы.ВидЭД),
    | ПРЕДСТАВЛЕНИЕ(ПроизвольныйЭД.ТипДокумента),
    | ЭДПрисоединенныеФайлы.УникальныйИД,
    | ПроизвольныйЭД.Номер,
    | ПроизвольныйЭД.Дата,
    | ПроизвольныйЭД.Текст,
    | ЭДПрисоединенныеФайлы.Расширение,
    | ПроизвольныйЭД.Контрагент,
    | ПроизвольныйЭД.Организация,
    | ЭДПрисоединенныеФайлы.ПрофильНастроекЭДО,
    | ПроизвольныйЭД.Направление,
    | ЭДПрисоединенныеФайлы.ВладелецФайла
    |ИЗ
    | Документ.ПроизвольныйЭД КАК ПроизвольныйЭД
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ЭДПрисоединенныеФайлы КАК ЭДПрисоединенныеФайлы
    | ПО ПроизвольныйЭД.Ссылка = ЭДПрисоединенныеФайлы.ВладелецФайла
    |ГДЕ
    | ПроизвольныйЭД.Ссылка В(&МассивОбъектов)
    | И НЕ ЭДПрисоединенныеФайлы.ВидЭД В (&СлужебныеЭД)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Отпечаток,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.ПодписьВерна КАК ПодписьВерна,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.ДатаПроверкиПодписи,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.КомуВыданСертификат,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Ссылка,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Сертификат
    |ПОМЕСТИТЬ ВтОтпечатки
    |ИЗ
    | Справочник.ЭДПрисоединенныеФайлы.ЭлектронныеПодписи КАК ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи
    |ГДЕ
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Ссылка В
    | (ВЫБРАТЬ
    | втЭД.Ссылка
    | ИЗ
    | втЭД)
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Отпечаток,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.ПодписьВерна,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.ДатаПроверкиПодписи,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.КомуВыданСертификат,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Ссылка,
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Сертификат
    |ИЗ
    | Справочник.ЭДПрисоединенныеФайлы.ЭлектронныеПодписи КАК ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи
    |ГДЕ
    | ЭДПрисоединенныеФайлыЭлектронныеЦифровыеПодписи.Ссылка.ЭлектронныйДокументВладелец В
    | (ВЫБРАТЬ
    | втЭД.Ссылка
    | ИЗ
    | втЭД)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СоглашенияОбИспользованииЭДИсходящиеДокументы.ИспользоватьЭП КАК ТребуетсяПодпись,
    | СоглашенияОбИспользованииЭДИсходящиеДокументы.Ссылка.Организация КАК ПодписьОрганизации,
    | СоглашенияОбИспользованииЭДИсходящиеДокументы.Ссылка.Контрагент КАК ПодписьКонтрагента,
    | втЭД.Ссылка КАК Ссылка,
    | втЭД.ВидЭДСсылка,
    | втЭД.НаправлениеЭД КАК НаправлениеЭД,
    | ЛОЖЬ КАК ПроизвольныйЭД
    |ИЗ
    | втЭД КАК втЭД
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СоглашенияОбИспользованииЭД.ИсходящиеДокументы КАК СоглашенияОбИспользованииЭДИсходящиеДокументы
    | ПО втЭД.ПрофильНастроекЭДО = СоглашенияОбИспользованииЭДИсходящиеДокументы.ПрофильНастроекЭДО
    |ГДЕ
    | СоглашенияОбИспользованииЭДИсходящиеДокументы.ИсходящийДокумент В
    | (ВЫБРАТЬ
    | ВтЭД.ВидЭДСсылка
    | ИЗ
    | ВтЭД)
    | И СоглашенияОбИспользованииЭДИсходящиеДокументы.Ссылка.Организация В
    | (ВЫБРАТЬ
    | ВтЭД.Организация
    | ИЗ
    | ВтЭД)
    | И СоглашенияОбИспользованииЭДИсходящиеДокументы.Ссылка.Контрагент В
    | (ВЫБРАТЬ
    | ВтЭД.Контрагент
    | ИЗ
    | ВтЭД)
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ПроизвольныйЭД.ТребуетсяПодтверждение,
    | ПроизвольныйЭД.Организация,
    | ПроизвольныйЭД.Контрагент,
    | втЭД.Ссылка,
    | втЭД.ВидЭДСсылка,
    | втЭД.НаправлениеЭД,
    | ИСТИНА
    |ИЗ
    | втЭД КАК втЭД
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПроизвольныйЭД КАК ПроизвольныйЭД
    | ПО втЭД.ВладелецФайла = ПроизвольныйЭД.Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | втЭД.НаименованиеФайла,
    | втЭД.Отправитель,
    | втЭД.Получатель,
    | втЭД.ВидДокумента,
    | втЭД.ВидЭДСсылка,
    | втЭД.ТипДокумента,
    | втЭД.Идентификатор,
    | втЭД.НомерЭД,
    | втЭД.ДатаЭД,
    | втЭД.СопроводительнаяЗаписка,
    | втЭД.Расширение,
    | втЭД.Контрагент,
    | втЭД.Организация,
    | втЭД.НаправлениеЭД,
    | втЭД.Ссылка
    |ИЗ
    | втЭД КАК втЭД
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | ВтОтпечатки.ПодписьВерна,
    | ВтОтпечатки.ДатаПроверкиПодписи,
    | ВтОтпечатки.КомуВыданСертификат,
    | ВтОтпечатки.Ссылка
    |ИЗ
    | ВтОтпечатки КАК ВтОтпечатки";
    
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    
    СлужебныеЭД = Новый Массив;
    СлужебныеЭД.Добавить(Перечисления.ВидыЭД.ИзвещениеОПолучении);
    СлужебныеЭД.Добавить(Перечисления.ВидыЭД.УведомлениеОбУточнении);
    Запрос.УстановитьПараметр("СлужебныеЭД", СлужебныеЭД);
    
    МассивРезультатов = Запрос.ВыполнитьПакет();
    
    МассивДанныхПечати = Новый Массив;
    
    ЗаполнитьДанныеПечатнойФормы(МассивРезультатов, МассивДанныхПечати);
    
    Макет = УправлениеПечатью.ПолучитьМакет("Справочник.ЭДПрисоединенныеФайлы.ПФ_MXL_КарточкаЭД");
    ТабДок = Новый ТабличныйДокумент;
    
    Для каждого ДанныеПечатнойФормы Из МассивДанныхПечати Цикл
    
    Если ТабДок.ВысотаТаблицы > 0 Тогда
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    
    НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;
    
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.Заполнить(ДанныеПечатнойФормы);
    ТабДок.Вывести(ОбластьШапка);
    
    Если ДанныеПечатнойФормы.Свойство("НомерЭД") Тогда
    ОбластьПроизвольныйЭД = Макет.ПолучитьОбласть("ПроизвольныйЭД");
    ОбластьПроизвольныйЭД.Параметры.Заполнить(ДанныеПечатнойФормы);
    ТабДок.Вывести(ОбластьПроизвольныйЭД);
    КонецЕсли;
    
    Если ДанныеПечатнойФормы.Свойство("СопроводительнаяЗаписка") Тогда
    ОбластьСопроводительнаяЗаписка = Макет.ПолучитьОбласть("СопроводительнаяЗаписка");
    ОбластьСопроводительнаяЗаписка.Параметры.Заполнить(ДанныеПечатнойФормы);
    ТабДок.Вывести(ОбластьСопроводительнаяЗаписка);
    КонецЕсли;
    
    Если ДанныеПечатнойФормы.Свойство("Подписи") Тогда
    
    ОбластьСопроводительнаяЗаписка = Макет.ПолучитьОбласть("ТребуемыеПодписи");
    ОбластьСопроводительнаяЗаписка.Параметры.Заполнить(ДанныеПечатнойФормы.Подписи);
    ТабДок.Вывести(ОбластьСопроводительнаяЗаписка);
    
    КонецЕсли;
    
    Если ДанныеПечатнойФормы.Свойство("Сертификаты") Тогда
    
    ОбластьСертификаты = Макет.ПолучитьОбласть("Сертификаты");
    ТабДок.Вывести(ОбластьСертификаты);
    
    ОбластьСертификатыСтрока = Макет.ПолучитьОбласть("СертификатыСтрока");
    Для Каждого ТекСтрока Из ДанныеПечатнойФормы.Сертификаты Цикл
    ОбластьСертификатыСтрока.Параметры.Заполнить(ТекСтрока);
    ТабДок.Вывести(ОбластьСертификатыСтрока);
    КонецЦикла;
    
    КонецЕсли;
    
    ОбластьПодпись = Макет.ПолучитьОбласть("Подпись");
    ОбластьПодпись.Параметры.Заполнить(ДанныеПечатнойФормы);
    ТабДок.Вывести(ОбластьПодпись);
    
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечатнойФормы.Ссылка);
    
    КонецЦикла;
    
    Возврат ТабДок;
    
    КонецФункции
    Процедура ЗаполнитьДанныеПечатнойФормы(МассивРезультатовЗапроса, МассивДанныхПечати)
    
    НеобходимыеПодписи = МассивРезультатовЗапроса[2].Выгрузить();
    ДанныеЭД = МассивРезультатовЗапроса[3].Выгрузить();
    СертификатыЭД = МассивРезультатовЗапроса[4].Выгрузить();
    
    МассивЭД = Новый Массив;
    
    ОбщегоНазначения.ЗаполнитьМассивУникальнымиЗначениями(МассивЭД, ДанныеЭД.ВыгрузитьКолонку("Ссылка"));
    
    Для Каждого ЭлементМассива Из МассивЭД Цикл
    
    Отбор = Новый Структура;
    Отбор.Вставить("Ссылка", ЭлементМассива);
    
    МассивСтрокЭД = ДанныеЭД.НайтиСтроки(Отбор);
    СтрокаДанныхЭД = МассивСтрокЭД[0];
    
    ДанныеПечатнойФормы = Новый Структура;
    ДанныеПечатнойФормы.Вставить("Ссылка", ЭлементМассива);
    
    ИмяФайла = СтрокаДанныхЭД.НаименованиеФайла +"." + СтрокаДанныхЭД.Расширение;
    ДанныеПечатнойФормы.Вставить("ИмяФайла", ИмяФайла);
    
    Если СтрокаДанныхЭД.НаправлениеЭД = Перечисления.НаправленияЭД.Исходящий Тогда
    Отправитель = ПредставлениеЮрФизЛицо(СтрокаДанныхЭД.Организация);
    Получатель = ПредставлениеЮрФизЛицо(СтрокаДанныхЭД.Контрагент);
    
    Иначе
    Отправитель = ПредставлениеЮрФизЛицо(СтрокаДанныхЭД.Контрагент);
    Получатель = ПредставлениеЮрФизЛицо(СтрокаДанныхЭД.Организация);
    
    КонецЕсли;
    
    ДанныеПечатнойФормы.Вставить("Отправитель", Отправитель);
    ДанныеПечатнойФормы.Вставить("Получатель", Получатель);
    
    ТипДокумента = СтрокаДанныхЭД.ВидДокумента + " "+ СтрокаДанныхЭД.ТипДокумента;
    ДанныеПечатнойФормы.Вставить("ТипДокумента", ТипДокумента);
    
    Если ЭлектронныеДокументыСлужебный.ЭтоФНС(СтрокаДанныхЭД.ВидЭДСсылка)Тогда
    Идентификатор = СтрокаДанныхЭД.НаименованиеФайла;
    Иначе
    Идентификатор = СтрокаДанныхЭД.Идентификатор;
    КонецЕсли;
    ДанныеПечатнойФормы.Вставить("Идентификатор", Идентификатор );
    
    Если ЗначениеЗаполнено(СтрокаДанныхЭД.НомерЭД) Тогда
    
    ДанныеПечатнойФормы.Вставить("НомерЭД", СтрокаДанныхЭД.НомерЭД);
    ДанныеПечатнойФормы.Вставить("ДатаЭД", СтрокаДанныхЭД.ДатаЭД);
    
    КонецЕсли;
    Если ЗначениеЗаполнено(СтрокаДанныхЭД.СопроводительнаяЗаписка) Тогда
    ДанныеПечатнойФормы.Вставить("СопроводительнаяЗаписка", СтрокаДанныхЭД.СопроводительнаяЗаписка);
    КонецЕсли;
    
    ДанныеПечатнойФормы.Вставить("ТекущаяДата", Формат(ТекущаяДатаСеанса(), "ДЛФ=D"));
    
    // заполняем требуемые подписи
    МассивНеобходимыеПодписи = НеобходимыеПодписи.НайтиСтроки(Отбор);
    ТребуемыеПодписи = Неопределено;
    
    ЗаполнитьТребуемыеПодписи(ТребуемыеПодписи, МассивНеобходимыеПодписи);
    Если ЗначениеЗаполнено(ТребуемыеПодписи) Тогда
    ДанныеПечатнойФормы.Вставить("Подписи", ТребуемыеПодписи);
    КонецЕсли;
    
    // заполняем таблицу серфтикатов ЭД
    
    МассивСертификатовЭД = СертификатыЭД.НайтиСтроки(Отбор);
    
    ТаблицаСертификатов = Новый ТаблицаЗначений;
    ИнициализацияТаблицыСертификатов(ТаблицаСертификатов);
    Для Каждого СтрокаМассива Из МассивСертификатовЭД Цикл
    
    НоваяСтрока = ТаблицаСертификатов.Добавить();
    НоваяСтрока.КомуВыдан = СтрокаМассива.КомуВыданСертификат;
    НоваяСтрока.Сертификат = СтрокаМассива.КомуВыданСертификат;
    НоваяСтрока.Статус = СтатусПодписи(СтрокаМассива);
    КонецЦикла;
    ДанныеПечатнойФормы.Вставить("Сертификаты", ТаблицаСертификатов);
    
    МассивДанныхПечати.Добавить(ДанныеПечатнойФормы);
    
    КонецЦикла;
    
    КонецПроцедуры
    Процедура ЗаполнитьТребуемыеПодписи(ТребуемыеПодписи, МассивНеобходимыеПодписи)
    
    Если МассивНеобходимыеПодписи.Количество() = 0 Тогда
    Возврат;
    КонецЕсли;
    
    ТребуемыеПодписи = Новый Структура;
    ТребуемыеПодписи.Вставить("ПредставлениеОтправителя");
    ТребуемыеПодписи.Вставить("ПредставлениеПолучателя");
    
    Для Каждого СтрокаМассива Из МассивНеобходимыеПодписи Цикл
    
    ЗаполнитьПредставлениеПодписантов(СтрокаМассива, ТребуемыеПодписи);
    
    КонецЦикла;
    
    КонецПроцедуры
    Процедура ЗаполнитьПредставлениеПодписантов(СтрокаМассива, ТребуемыеПодписи)
    
    Если СтрокаМассива.ПроизвольныйЭД Тогда
    
    Если СтрокаМассива.ТребуетсяПодпись Тогда
    
    Если СтрокаМассива.НаправлениеЭД = Перечисления.НаправленияЭД.Исходящий Тогда
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьОрганизации);
    ТребуемыеПодписи.ПредставлениеПолучателя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьКонтрагента);
    
    Иначе
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьКонтрагента);
    ТребуемыеПодписи.ПредставлениеПолучателя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьОрганизации);
    
    КонецЕсли;
    Иначе
    
    Если СтрокаМассива.НаправлениеЭД = Перечисления.НаправленияЭД.Исходящий Тогда
    
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьОрганизации);
    ТребуемыеПодписи.ПредставлениеПолучателя = НСтр("ru = 'Не требуется'");
    
    Иначе
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьКонтрагента);
    ТребуемыеПодписи.ПредставлениеПолучателя = НСтр("ru = 'Не требуется'");
    
    КонецЕсли;
    
    КонецЕсли;
    
    Иначе
    
    Если СтрокаМассива.ТребуетсяПодпись Тогда
    
    Если ЭлектронныеДокументыСлужебный.ЭтоФНС(СтрокаМассива.ВидЭДСсылка) Тогда
    
    Если СтрокаМассива.НаправлениеЭД = Перечисления.НаправленияЭД.Исходящий Тогда
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьОрганизации);
    ТребуемыеПодписи.ПредставлениеПолучателя = НСтр("ru = 'Не требуется'");
    
    Иначе
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьКонтрагента);
    ТребуемыеПодписи.ПредставлениеПолучателя = НСтр("ru = 'Не требуется'");
    
    КонецЕсли;
    
    Иначе
    
    Если СтрокаМассива.НаправлениеЭД = Перечисления.НаправленияЭД.Исходящий Тогда
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьОрганизации);
    ТребуемыеПодписи.ПредставлениеПолучателя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьКонтрагента);
    
    Иначе
    ТребуемыеПодписи.ПредставлениеОтправителя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьКонтрагента);
    ТребуемыеПодписи.ПредставлениеПолучателя = ПредставлениеЮрФизЛицо(СтрокаМассива.ПодписьОрганизации);
    
    КонецЕсли;
    
    КонецЕсли;
    
    Иначе
    ТребуемыеПодписи.ПредставлениеОтправителя = НСтр("ru = 'Не требуется'");
    ТребуемыеПодписи.ПредставлениеПолучателя = НСтр("ru = 'Не требуется'");
    КонецЕсли;
    КонецЕсли;
    
    КонецПроцедуры
    Функция ПредставлениеЮрФизЛицо(ЮрФизЛицо)
    
    ДанныеЮрФизЛицо = ЭлектронныеДокументыПереопределяемый.ПолучитьДанныеЮрФизЛица(ЮрФизЛицо);
    ПредставлениеЮрФизЛицо = ЭлектронныеДокументыПереопределяемый.ОписаниеОрганизации(ДанныеЮрФизЛицо,"ПолноеНаименование,ИНН,КПП");
    
    Возврат ПредставлениеЮрФизЛицо;
    
    КонецФункции
    Функция СтатусПодписи(ВыборкаЭД)
    
    Если ВыборкаЭД.ПодписьВерна Тогда
    СтатусПодписи = "Верна ("+Формат(ВыборкаЭД.ДатаПроверкиПодписи,"ДЛФ=DT") + ")";
    Иначе
    СтатусПодписи = "Неверна ( "+Формат(ВыборкаЭД.ДатаПроверкиПодписи,"ДЛФ=DT") + ")";
    КонецЕсли;
    
    Возврат СтатусПодписи;
    
    КонецФункции
    Процедура ИнициализацияТаблицыСертификатов(ТаблицаСертификатов)
    
    ТаблицаСертификатов.Колонки.Добавить("КомуВыдан");
    ТаблицаСертификатов.Колонки.Добавить("Сертификат");
    ТаблицаСертификатов.Колонки.Добавить("Статус");
    
    КонецПроцедуры
    Функция ФайлДанныхЭД(СсылкаНаЭД, ИмяФайла = Неопределено, ИмяФайлаПодчиненногоЭД = Неопределено)
    
    ДопИнформацияПоЭД = ЭлектронныеДокументыСлужебный.ПолучитьДанныеФайла(СсылкаНаЭД, СсылкаНаЭД.УникальныйИдентификатор(), Истина);
    
    Если ДопИнформацияПоЭД.Свойство("СсылкаНаДвоичныеДанныеФайла")
    И ЗначениеЗаполнено(ДопИнформацияПоЭД.СсылкаНаДвоичныеДанныеФайла) Тогда
    
    ДанныеЭД = ПолучитьИзВременногоХранилища(ДопИнформацияПоЭД.СсылкаНаДвоичныеДанныеФайла);
    
    Если ЗначениеЗаполнено(ДопИнформацияПоЭД.Расширение) Тогда
    ИмяФайла = ЭлектронныеДокументыСлужебный.ТекущееИмяВременногоФайла(ДопИнформацияПоЭД.Расширение);
    Иначе
    ИмяФайла = ЭлектронныеДокументыСлужебный.ТекущееИмяВременногоФайла("xml");
    КонецЕсли;
    
    Если ИмяФайла = Неопределено Тогда
    ТекстОшибки = НСтр("ru = 'Не удалось просмотреть электронный документ. Проверьте настройку рабочего каталога'");
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
    Возврат Неопределено;
    КонецЕсли;
    
    ВыборкаЭДДопДанных = ЭлектронныеДокументыСлужебный.ВыборкаДопДанныеЭД(СсылкаНаЭД);
    Если ВыборкаЭДДопДанных.Следующий() Тогда
    ДопДанныеЭД = ЭлектронныеДокументыСлужебный.ПолучитьДанныеФайла(ВыборкаЭДДопДанных.Ссылка,
    ВыборкаЭДДопДанных.Ссылка.УникальныйИдентификатор(), Истина);
    СсылкаНаДДДопДанныхЭД = "";
    Если ДопДанныеЭД.Свойство("СсылкаНаДвоичныеДанныеФайла", СсылкаНаДДДопДанныхЭД)
    И ЗначениеЗаполнено(СсылкаНаДДДопДанныхЭД) Тогда
    ДанныеДопФайла = ПолучитьИзВременногоХранилища(СсылкаНаДДДопДанныхЭД);
    
    Если ЗначениеЗаполнено(ДопДанныеЭД.Расширение) Тогда
    ИмяФайлаДопДанных = ЭлектронныеДокументыСлужебный.ТекущееИмяВременногоФайла(ДопДанныеЭД.Расширение);
    Иначе
    ИмяФайлаДопДанных = ЭлектронныеДокументыСлужебный.ТекущееИмяВременногоФайла("xml");
    КонецЕсли;
    
    Если ИмяФайлаДопДанных = Неопределено Тогда
    ТекстОшибки = НСтр("ru = 'Не удалось получить доп. данные электронного документа. Проверьте настройку рабочего каталога'");
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
    Возврат Неопределено;
    КонецЕсли;
    ДанныеДопФайла.Записать(ИмяФайлаДопДанных);
    КонецЕсли;
    КонецЕсли;
    
    ДанныеЭД.Записать(ИмяФайла);
    
    Если СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.ТОРГ12Покупатель
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.АктЗаказчик
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.СоглашениеОбИзмененииСтоимостиПолучатель Тогда
    
    ТабличныйДокумент = ФайлДанныхЭД(СсылкаНаЭД.ЭлектронныйДокументВладелец);
    Возврат ТабличныйДокумент;
    ИначеЕсли Найти(ДопИнформацияПоЭД.Расширение, "zip") > 0 Тогда
    
    ЗИПЧтение = Новый ЧтениеZipФайла(ИмяФайла);
    ПапкаДляРаспаковки = ЭлектронныеДокументыСлужебный.РабочийКаталог(,СсылкаНаЭД.УникальныйИдентификатор());
    
    Если ПапкаДляРаспаковки = Неопределено Тогда
    ТекстОшибки = НСтр("ru = 'Не удалось просмотреть электронный документ. Проверьте настройку рабочего каталога'");
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
    Возврат Неопределено;
    КонецЕсли;
    
    Попытка
    ЗипЧтение.ИзвлечьВсе(ПапкаДляРаспаковки);
    Исключение
    ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
    Если НЕ ЭлектронныеДокументыСлужебный.ВозможноИзвлечьФайлы(ЗипЧтение, ПапкаДляРаспаковки) Тогда
    ТекстСообщения = ЭлектронныеДокументыПовтИсп.ПолучитьСообщениеОбОшибке("006");
    КонецЕсли;
    ЭлектронныеДокументыСлужебныйВызовСервера.ОбработатьИсключениеПоЭДНаСервере(НСтр("ru = 'Распаковка пакета ЭД'"),
    ТекстОшибки, ТекстСообщения);
    Возврат Неопределено;
    КонецПопытки;
    
    ФлагПросмотра = Ложь;
    
    ФайлыАрхиваXML = НайтиФайлы(ПапкаДляРаспаковки, "*.xml");
    
    Для Каждого РаспакованныйФайл Из ФайлыАрхиваXML Цикл
    
    ТабличныйДокумент = ЭлектронныеДокументыВнутренний.СформироватьПечатнуюФормуЭД(РаспакованныйФайл.ПолноеИмя,
    СсылкаНаЭД.НаправлениеЭД,
    СсылкаНаЭД.УникальныйИдентификатор(),
    ,
    ДопИнформацияПоЭД.Наименование);
    
    Если ТипЗнч(ТабличныйДокумент) = Тип("ТабличныйДокумент") Тогда
    Возврат ТабличныйДокумент;
    КонецЕсли;
    
    КонецЦикла;
    
    ИначеЕсли Найти(ДопИнформацияПоЭД.Расширение, "xml") > 0 Тогда
    Если СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.Подтверждение
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.ИзвещениеОПолучении
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.УведомлениеОбУточнении
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.ТОРГ12Продавец
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.АктИсполнитель
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.СоглашениеОбИзмененииСтоимостиОтправитель
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.СчетФактура
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.КорректировочныйСчетФактура Тогда
    
    ИмяФайлаДанных = ИмяФайла;
    ТабличныйДокумент = ЭлектронныеДокументыВнутренний.СформироватьПечатнуюФормуЭД(
    ИмяФайла,
    СсылкаНаЭД.НаправлениеЭД,
    СсылкаНаЭД.УникальныйИдентификатор(),
    ИмяФайлаПодчиненногоЭД,
    ДопИнформацияПоЭД.Наименование,
    ИмяФайлаДопДанных);
    
    Если ТипЗнч(ТабличныйДокумент) = Тип("ТабличныйДокумент") Тогда
    Возврат ТабличныйДокумент;
    КонецЕсли;
    
    ИначеЕсли СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.ПлатежноеПоручение
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.ЗапросВыписки
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.ВыпискаБанка
    ИЛИ СсылкаНаЭД.ВидЭД = Перечисления.ВидыЭД.Квитанция Тогда
    
    ИмяФайлаДанных = ИмяФайла;
    ТабличныйДокумент = ЭлектронныеДокументыВнутренний.СформироватьПечатнуюФормуЭД(
    ИмяФайла,
    СсылкаНаЭД.НаправлениеЭД,
    СсылкаНаЭД.УникальныйИдентификатор(),
    ИмяФайлаПодчиненногоЭД,
    СсылкаНаЭД.УникальныйИдентификатор());
    
    Если ТипЗнч(ТабличныйДокумент)=Тип("ТабличныйДокумент") Тогда
    Возврат ТабличныйДокумент;
    КонецЕсли;
    КонецЕсли;
    Иначе
    
    Возврат ИмяФайла;
    КонецЕсли;
    
    КонецЕсли;
    КонецФункции
    --- Объединение сообщений, 22 ноя 2015 ---

    В конфигураторе без ошибок. Форма печатная подключается. А при выводе на печать Недостаточно фактических данных
    Последнее редактирование модератором: 23 ноя 2015
  16. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Оказывается вот на что ругается:
    Вот на эту строку:
    ВнешняяОбработкаОбъект.Печать(
    Вот ошибка:
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(222,39)}: Неопознанный оператор
    ПараметрыИсточника.ОбъектыНазначения<<?>>, (Проверка: Сервер)
    --- Объединение сообщений, 22 ноя 2015 ---
    Это все находится в Подсистема "Дополнительные отчеты и обработки"

    ВнешняяОбработкаОбъект.Печать(/
    ПараметрыИсточника.ОбъектыНазначения,
    КоллекцияПечатныхФорм,
    ОбъектыПечати,
    ПараметрыВывода);
  17. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
  18. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Если я убираю эту ошибку:
    ВнешняяОбработкаОбъект.Печать(
    Вот ошибка:
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(222,39)}: Неопознанный оператор
    ПараметрыИсточника.ОбъектыНазначения<<?>>, (Проверка: Сервер)

    То много новых вылазеет, а так одна.
  19. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Помогите пожалуйста в чем проблема?
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(233)}: В обработчике печати не был сформирован табличный документ для: АктНаПередачуПрав
    ВызватьИсключение(ТекстСообщенияОбОшибке);
    http://rghost.ru/8pnYB4gC9
    В документе Реализация товаров и услуг нет команды для печати Акта на передачу прав. Подскажите где ковырять?
  20. TopicStarter Overlay
    sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Кто-нибудь сталкивался с такой проблемой? Как сформировать табличный документ?

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