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

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");
ОбластьМакета.Параметры.Менеджер = ПараметрыПечати.ФИООтветственный;
ТабДокумент.Вывести(ОбластьМакета);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот