Не могу отредактировать модуль к макету

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

Помогите, я вообще далек от 1С, но хотелось бы решить эту проблему!
Прикрепленные файлы:
ПечатнаяФормаСчета.epf
По теме из базы знаний
Найденные решения
5. Doreng 27 23.07.18 14:24 Сейчас в теме
(3)У Вас реквизит СсылкаНаОбъект имеет тип ВнешняяОбработка.ПечатнаяФормаСчета, а должен быть тип ДокументСсылка, потом макет Макет = ПолучитьМакет("Счет"); , а должно быть Макет = ПолучитьМакет("СчетЗаказДАС4"); Вы переименовали макет?
11. Doreng 27 23.07.18 14:38 Сейчас в теме
(9)Поиском по модулю и все коммент :-)
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Doreng 27 23.07.18 14:13 Сейчас в теме
(1)А как вы хотите пользоваться этой формой? Если независимо, то необходимо создать форму для этой обработки, где вы будете указывать документ для которого будет сформирована печ форма, либо подключать в документ, тогда необходим модуль регистрации обработки. В любом случае - какая конфигурация? какие формы?
3. VoffkaIT 23.07.18 14:19 Сейчас в теме
5. Doreng 27 23.07.18 14:24 Сейчас в теме
(3)У Вас реквизит СсылкаНаОбъект имеет тип ВнешняяОбработка.ПечатнаяФормаСчета, а должен быть тип ДокументСсылка, потом макет Макет = ПолучитьМакет("Счет"); , а должно быть Макет = ПолучитьМакет("СчетЗаказДАС4"); Вы переименовали макет?
6. VoffkaIT 23.07.18 14:27 Сейчас в теме
8. VoffkaIT 23.07.18 14:31 Сейчас в теме
(5) Переименовал, но теперь вот такая ошибка ссылку изменил
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (ПолучитьОбласть): Область не найдена: КолонкаКодов
9. VoffkaIT 23.07.18 14:35 Сейчас в теме
(5) Как убрать лишнюю писанину, чтобы без ошибок, просто таблицу я редактировал, там были столбцы коды, видимо теперь модуль не находит эти столбцы и ругается, но мне эти столбцы не нужны, как их правильно убрать с текста модуля, чтобы не нарушить структуру
11. Doreng 27 23.07.18 14:38 Сейчас в теме
(9)Поиском по модулю и все коммент :-)
13. VoffkaIT 23.07.18 14:40 Сейчас в теме
(11) только комментарии удалять?
15. Doreng 27 23.07.18 14:44 Сейчас в теме
(13)Удалить все строки где есть запись ПолучитьОбласть("КолонкаКодов"); и ОбластьКодов, но лучше верните старый макет и не удаляйте области, а попытайтесь понять как работает
ТабДокумент.Вывести(ОбластьМакета); если комментировать эти строки у Вас не будут выводится области
4. пользователь 23.07.18 14:20
Сообщение было скрыто модератором.
...
7. spacecraft 23.07.18 14:28 Сейчас в теме
(1) СсылкаНаОбъект где определяется?
В итоге получается: "СчетНаОплатуПокупателю.Ссылка = Неопределено"
10. VoffkaIT 23.07.18 14:36 Сейчас в теме
(7) я ссылку изменил в реквизите!
12. VoffkaIT 23.07.18 14:39 Сейчас в теме
(7)Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (ПолучитьОбласть): Область не найдена: КолонкаКодов
Как убрать с модуля?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

правда пока он не идентифицировал конфигурацию и версию - даже это делать пустая трата времени
16. Leon75 23.07.18 14:55 Сейчас в теме
17. VoffkaIT 23.07.18 15:13 Сейчас в теме
18. Leon75 23.07.18 16:16 Сейчас в теме
(17) У вас кроме всего прочего что было сказано (5) Функция СоздатьТабличныйДокументПечатиСчетаЗаказа
не соответствует областям макета. Если нужна печатная форма, то закажите ее. На тендерах она 500 р будет стоить.

Если хотите экспериментировать, учиться, то у Вас базовых знаний на первый взгляд не много.
Области макета в функции есть, в макете нет.
19. VoffkaIT 23.07.18 16:45 Сейчас в теме
(18) Я лишнее удалил уже! Теперь открывается, но не все отображается, менеджера нет, логотипа, который снизу тоже нет, нужно в макете закреплять таблицу и форму печати?
20. Leon75 23.07.18 17:00 Сейчас в теме
(19)ОбластьМакета = Макет.ПолучитьОбласть("Менеджер1");
ОбластьМакета.Параметры.Менеджер = ПараметрыПечати.ФИООтветственный;
ТабДокумент.Вывести(ОбластьМакета);
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)