Внешняя печатная форма "Расходная накладная"

1. user801594 20.04.21 11:52 Сейчас в теме
Выходит ошибка "Слишком много фактических параметров"

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

КонецФункции // СведенияОВнешнейОбработке()


Функция ПолучитьНазначениеОбработки()
	Массив = Новый Массив;
	Массив.Добавить("Документ.РеализацияТоваровУслуг");
	
	Возврат Массив;
	Конецфункции

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = Представление;
	НоваяКоманда.Идентификатор = Идентификатор;
	НоваяКоманда.Использование = Использование;
	НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
	НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
	
	Функция Печать() Экспорт	
	ТабДок = новый ТабличныйДокумент;
	
	Макет = ПолучитьМакет("Макет");
	
	ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
	ОбластьДанные = Макет.ПолучитьОбласть("Данные");
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	
	ОбластьШапки.Параметры.ТекстЗаголовка = "Расходная накладная №"+РеализацияТоваровУслуг.Номер+"от "+РеализацияТоваровУслуг.Дата;
	ОбластьШапки.Параметры.Поставщик = РеализацияТоваровУслуг.Организация;
	ОбластьШапки.Параметры.Покупатель = РеализацияТоваровУслуг.Контрагент;
	ОбластьШапки.Параметры.Склад = РеализацияТоваровУслуг.Склад;
	
	ТабДок.Вывести(ОбластьШапки);
	
	Запрос = Новый Запрос;
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	РеализацияТоваровУслуг.Товары.(
	               |		НомерСтроки КАК НомерСтроки,
	               |		Номенклатура КАК Номенклатура,
	               |		Серия КАК Серия,
	               |		Количество КАК Количество
	               |	) КАК Товары
	               |ИЗ
	               |	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	               |ГДЕ
	               |	РеализацияТоваровУслуг.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка",РеализацияТоваровУслуг);
	Запрос.УстановитьПараметр("ТекущаяДата",ТекущаяДата());
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	ИтогоКоличество = 0;
	
	Пока Выборка.Следующий() Цикл
		ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
		
		ИтогоКоличество = ИтогоКоличество + Выборка.Количество;
		
		ТабДок.Вывести(ОбластьПодвал);
		
	КонецЦикла;
	
	ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество;
	
	ТабДок.Вывести(ОбластьПодвал);
	
	Возврат ТабДок;
	
КонецФункции
Показать
По теме из базы знаний
Найденные решения
14. DenisVol 3 20.04.21 14:12 Сейчас в теме
19. DenisVol 3 20.04.21 15:10 Сейчас в теме
(15) у вас поставщик в макете строка, а должен быть параметр. Посмотрите в макет У Вас "Организация" параметр, то напишите так:
ОбластьШапки.Параметры.Организация= РеализацияТоваровУслуг.Организация;
ОбластьШапки.Параметры.Контрагент = РеализацияТоваровУслуг.Контрагент;

Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user801594 20.04.21 11:54 Сейчас в теме
(1) Подскажите, пожалуйста, где ошибка в коде?
3. DenisVol 3 20.04.21 12:18 Сейчас в теме
когда возникает ошибка?
4. user801594 20.04.21 12:19 Сейчас в теме
(3)Выходит ошибка "Слишком много фактических параметров"
5. DenisVol 3 20.04.21 12:23 Сейчас в теме
при регистрации обработки или уже при печати?
6. user801594 20.04.21 12:29 Сейчас в теме
(5) При печати из документа
7. DenisCh 20.04.21 12:33 Сейчас в теме
Коллеги, давайте хором угадаем строку, в которой появляется ошибка!
Угадавшему - приз зрительских симпатий!

ЗЫ. Автор, не подсказывай!
8. DenisVol 3 20.04.21 12:38 Сейчас в теме
обработку надо у себя тестировать, так не угадаем
9. user801594 20.04.21 12:50 Сейчас в теме
(8) Прикрепил обработку
Прикрепленные файлы:
Расходная накладная с серией.epf
10. andy_zhav 197 20.04.21 13:16 Сейчас в теме
(1)
Это что? где параметры?

Функция Печать() Экспорт
11. DenisVol 3 20.04.21 13:17 Сейчас в теме
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	Наименование = ЭтотОбъект.Метаданные().Представление(); 		

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

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

Функция ПечатьФормы() Экспорт	
	ТабДок = новый ТабличныйДокумент;
	
	Макет = ПолучитьМакет("Макет");
	
	ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
	ОбластьДанные = Макет.ПолучитьОбласть("Данные");
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	
	ОбластьШапки.Параметры.ТекстЗаголовка = "Расходная накладная №"+РеализацияТоваровУслуг.Номер+"от "+РеализацияТоваровУслуг.Дата;
	ОбластьШапки.Параметры.Поставщик = РеализацияТоваровУслуг.Организация;
	ОбластьШапки.Параметры.Покупатель = РеализацияТоваровУслуг.Контрагент;
	ОбластьШапки.Параметры.Склад = РеализацияТоваровУслуг.Склад;
	
	ТабДок.Вывести(ОбластьШапки);
	
	Запрос = Новый Запрос;
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	РеализацияТоваровУслуг.Товары.(
	               |		НомерСтроки КАК НомерСтроки,
	               |		Номенклатура КАК Номенклатура,
	               |		Серия КАК Серия,
	               |		Количество КАК Количество
	               |	) КАК Товары
	               |ИЗ
	               |	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	               |ГДЕ
	               |	РеализацияТоваровУслуг.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка",РеализацияТоваровУслуг);
	Запрос.УстановитьПараметр("ТекущаяДата",ТекущаяДата());
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	ИтогоКоличество = 0;
	
	Пока Выборка.Следующий() Цикл
		ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
		
		ИтогоКоличество = ИтогоКоличество + Выборка.Количество;
		
		ТабДок.Вывести(ОбластьПодвал);
		
	КонецЦикла;
	
	ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество;
	
	ТабДок.Вывести(ОбластьПодвал);
	
	Возврат ТабДок;
	
КонецФункции


Показать
12. DenisVol 3 20.04.21 13:19 Сейчас в теме
и потом смотрите макет, у Вас ругается на параметры "Поставщик". Корректно определите параметры для вывода

для какой конфигурации разрабатывали внешнюю печатную форму?
13. user801594 20.04.21 14:08 Сейчас в теме
(12) Управление аптечной сетью
14. DenisVol 3 20.04.21 14:12 Сейчас в теме
15. user801594 20.04.21 15:04 Сейчас в теме
(14) не получилось.

ОбластьШапки.Параметры.Поставщик = РеализацияТоваровУслуг.Организация;
 ОбластьШапки.Параметры.Покупатель = РеализацияТоваровУслуг.Контрагент;

На эти строки ругается, как правильно написать не понимаю.
17. Vlaloplo 20.04.21 15:07 Сейчас в теме
(15) Что в вашем случае "РеализацияТоваровУслуг"?
Печатная форма внешняя? Если да, то указывай полный путь к документу
А если печать из этого же документа, то в чем тогда вообще проблема? Не знаете, как к реквизиту объекта обратится?
18. Vlaloplo 20.04.21 15:09 Сейчас в теме
(17)Виноват, ПФ внешняя, увидел
Создай проще запрос и бери данные откуда хочешь.. Проще будет
19. DenisVol 3 20.04.21 15:10 Сейчас в теме
(15) у вас поставщик в макете строка, а должен быть параметр. Посмотрите в макет У Вас "Организация" параметр, то напишите так:
ОбластьШапки.Параметры.Организация= РеализацияТоваровУслуг.Организация;
ОбластьШапки.Параметры.Контрагент = РеализацияТоваровУслуг.Контрагент;

20. user801594 28.04.21 11:32 Сейчас в теме
(19) Подскажите, пожалуйста, данные ошибки исправил, теперь выходит новая ошибка при использовании обработки "В обработчике печати не был сформирован табличный документ для:Расходная накладная"
16. Vlaloplo 20.04.21 15:05 Сейчас в теме
Откуда функцию печать вызываете? Я вообще совет посмотрите аналогичные обработки, там все типично в большинстве случаем, только процедура формирования отличается..
Пример кода для процедуры печати:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт 
	
	ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "МТГТД");
	
	   КонецПроцедуры;	


Такие параметры чаще всего указываются
Оставьте свое сообщение

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