Привет. Хочу сделать с внутреннего счета на оплату, внешний, создал внешнюю обработку, макет скопировал с внутренней формы, вставил, реквизит сделал на внешнюю форму. При попытке распечатать, выдает такую ошибку Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): {(24, 32)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
СчетНаОплатуПокупателю.Ссылка <<?>>= &ТекущийДокумент.

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

Функция СоздатьТабличныйДокументПечатиСчетаЗаказа(Тип, ПараметрыПечати)

 ТабДокумент = Новый ТабличныйДокумент;
 ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";

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

 // Выводим шапку накладной

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

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

 ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
 ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
 ТабДокумент.Вывести(ОбластьМакета);

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

 ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
 ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
 ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
 ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
 ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");

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

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

 ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
 ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
 ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
 ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка");
 ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма");

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

 Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

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

  ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
  ТабДокумент.Вывести(ОбластьНомера);

  Если ПараметрыПечати.ВыводитьКоды Тогда
   ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
   ТабДокумент.Присоединить(ОбластьКодов);
  КонецЕсли;

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

  Если ПараметрыПечати.ЕстьСкидки Тогда
   ОбластьСкидок.Параметры.Заполнить(ПараметрыПозиции);
   ТабДокумент.Присоединить(ОбластьСкидок);
  КонецЕсли;

  ОбластьСуммы.Параметры.Заполнить(ПараметрыПозиции);
  ТабДокумент.Присоединить(ОбластьСуммы);

 КонецЦикла;

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

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

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

 // Вывести ИтогоНДС
 Если ПараметрыПечати.УчитыватьНДС Тогда
  ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
  ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
  ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
  ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоНДС|Скидка");
  ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");

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

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

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

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

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

 КонецЕсли;

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

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

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

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

 Возврат ТабДокумент;

КонецФункции // СоздатьТабличныйДокументПечатиСчетаЗаказа()
---
проще дать автору ссылку для изучения механизма подключения внешних печатных форм, ибо на пальцах это НЕ покажешь и можно только воду в ступе толочь.

правда пока он не идентифицировал конфигурацию и версию - даже это делать пустая трата времени
---
Похоже на УТ 10.3
---
Да она самая
---
У вас кроме всего прочего что было сказано (5) Функция СоздатьТабличныйДокументПечатиСчетаЗаказа
не соответствует областям макета. Если нужна печатная форма, то закажите ее. На тендерах она 500 р будет стоить.

Если хотите экспериментировать, учиться, то у Вас базовых знаний на первый взгляд не много.
Области макета в функции есть, в макете нет.
---
Я лишнее удалил уже! Теперь открывается, но не все отображается, менеджера нет, логотипа, который снизу тоже нет, нужно в макете закреплять таблицу и форму печати?
---
ОбластьМакета = Макет.ПолучитьОбласть("Менеджер1");
 ОбластьМакета.Параметры.Менеджер = ПараметрыПечати.ФИООтветственный;
 ТабДокумент.Вывести(ОбластьМакета);