СтруктураОбъектов.ключ

1. user631467_ighor.chulkov 13.10.23 07:26 Сейчас в теме
Ребят подскажите, у меня задача разработать м-11 на два документа, здесь на инфостарте нашел форму, но она не подключается из за ошибки как и многие другие формы:

Функция СформироватьПечатнуюФормуМ11(СтруктураТипов, ОбъектыПечати, ПараметрыПечати) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.ОриентацияСтраницы  = ОриентацияСтраницы.Ландшафт;
	ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_М11";
	
	НомерТипаДокумента = 0;
	
	Для Каждого СтруктураОбъектов Из СтруктураТипов Цикл
		
		НомерТипаДокумента = НомерТипаДокумента + 1;
		Если НомерТипаДокумента > 1 Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		
		Если СтруктураОбъектов.Ключ = "Документ.ПеремещениеТоваров" Тогда
			ДанныеДляПечати = ПолучитьДанныеДляПечатнойФормыМ11ПеремещениеТоваров(
			ПараметрыПечати,
			СтруктураОбъектов.Значение);

			ИначеЕсли СтруктураОбъектов.Ключ = "Документ.ВнутреннееПотреблениеТоваров" Тогда
		ДанныеДляПечати = ПолучитьДанныеДляПечатнойФормыМ11ВнутреннееПотреблениеТоваро­в(
			ПараметрыПечати,
			СтруктураОбъектов.Значение);
		КонецЕсли;
		
		ЗаполнитьТабличныйДокументМ11(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати);
		
	КонецЦикла;
	
	Возврат ТабличныйДокумент;
	
КонецФункции 
Показать


Ошибка: Поле объекта не обнаружено(ключ)


Есть мысль что возможно не должно быть обращение к тексту "Документ.ПеремещениеТоваров" ?

Подскажите как исправить....
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 76 13.10.23 07:47 Сейчас в теме
(1)
Подскажите как исправить

Добавить в СтруктураТипов нужный ключ.
4. user631467_ighor.chulkov 13.10.23 07:51 Сейчас в теме
(3)Расскажите по подробнее пожалуйста, может пример в виде кода есть у Вас ?
6. nomad_irk 76 13.10.23 08:04 Сейчас в теме
(4) У вас должен быть код, формирующий СтруктураТипов:

СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);


Идем внутрь функции и перетаскиваем весь код в модуль ПФ, либо добавляем нужный нам тип в функцию общего модуля ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов
7. user631467_ighor.chulkov 13.10.23 08:07 Сейчас в теме
(6) Я начинающий, для меня это пока что темный лес....


Функция СоответствиеМассивовПоТипамОбъектов(МассивСсылок) Экспорт
	
	СоответствиеТипов = Новый Соответствие;
	
	Для Каждого Объект Из МассивСсылок Цикл
		
		ТипОбъекта = Объект.Метаданные().ПолноеИмя();
		ТекущийТипОбъекта = СоответствиеТипов.Получить(ТипОбъекта);
		
		Если ТекущийТипОбъекта = Неопределено Тогда
			СоответствиеТипов.Вставить(ТипОбъекта, Новый Массив);
			ТекущийТипОбъекта = СоответствиеТипов.Получить(ТипОбъекта);
		КонецЕсли;
		ТекущийТипОбъекта.Добавить(Объект);
		
	КонецЦикла;
	
	Возврат СоответствиеТипов;
	
КонецФункции
Показать
8. nomad_irk 76 13.10.23 08:10 Сейчас в теме
(7)
Я начинающий, для меня это пока что темный лес

Все были начинающими и разбирались с кодом.
Выхода у вас два: разобраться самостоятельно, я уже подсказал каким образом, либо заплатить за готовое решение.
9. user631467_ighor.chulkov 13.10.23 08:12 Сейчас в теме
(8)В том то и дело, что это и есть готовое решение с инфостарта

Я бы сидел разбирался, будь больше времени, поставили неадекватные сроки...
10. nomad_irk 76 13.10.23 08:21 Сейчас в теме
(9)
В том то и дело, что это и есть готовое решение с инфостарта

Ваша задача понять, чего не хватает и доработать под конфигурацию.
Исходя из текста ошибки, в СтруктураТипов у вас неизвестно что, а должно быть Соответствие с ключами
"Документ.ПеремещениеТоваров" и "Документ.ВнутреннееПотреблениеТоваров", значение для которых должны быть массивами со ссылками на документы соответствующих типов.
11. user631467_ighor.chulkov 13.10.23 08:22 Сейчас в теме
(10)Буду тогда разбираться по Вашему совету, Спасибо Вам большое
5. user631467_ighor.chulkov 13.10.23 07:54 Сейчас в теме
(3)

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
	
	СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);
	
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "M11Внешний") Тогда
		
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"M11Внешний",
			НСтр("ru='Требование-накладная (М-11)'"),
			СформироватьПечатнуюФормуМ11(
				СтруктураТипов,
				ОбъектыПечати,
				ПараметрыПечати));
		
	КонецЕсли;

		
		КонецПроцедуры
Показать
2. user631467_ighor.chulkov 13.10.23 07:28 Сейчас в теме
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
	МассивНазначений = Новый Массив;
	Массив.Добавить("Документ.ПеремещениеТоваров");
	Массив.Добавить("Документ.ВнутреннееПотреблениеТоваров");
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
	ПараметрыРегистрации.Вставить("Наименование","Требование-накладная (М-11) внешний");
	ПараметрыРегистрации.Вставить("Версия","1.0");
	ПараметрыРегистрации.Вставить("Информация", "Требование-накладная (М-11) (внешняя печатная форма)");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	
	Команды = ПолучитьТаблицуКоманд();
	
	ДобавитьКоманду(Команды,"Требование-накладная (М-11) (внешняя печатная форма)",
							"M11Внешний",
							"ВызовСерверногоМетода",
							Ложь,
							"ПечатьXМL");
							
	ПараметрыРегистрации.Вставить("Команды", Команды);
	
	Возврат ПараметрыРегистрации;
Показать
Оставьте свое сообщение

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