Ошибка "Защита" как обойти?

1. Romakon92 18.05.17 13:14 Сейчас в теме
Добрый день!
Возникла следующая ситуация,
Есть Макет печатной формы, в него нужно добавить строку "Заказчик" с реквизитом <Наименование>,
который будет включать в себя Наименование, Контактное лицо и телефон
В модуле Маршрутного листа в Функцию "ПечатьМаршрутныйЛистСЗаказами" добавил

//Контрагент, контактное лицо
    Запрос = Новый Запрос;
    Запрос.Текст = 
    	"ВЫБРАТЬ
    	|	уатЗаказГрузоотправителя.Контрагент.Наименование КАК Наименование,
    	|	уатЗаказГрузоотправителя.Контрагент.ОсновноеКонтактноеЛицо КАК ОсновноеКонтактноеЛицо
    	|ИЗ
    	|	Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителя";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    КонтрагентКонтактноеЛицо = "";
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
     КонтрагентИКонтактноеЛицо =
     	" " + ВыборкаДетальныеЗаписи.Наименование
    	+
    	" " + ВыборкаДетальныеЗаписи.ОсновноеКонтактноеЛицо;	 
 КонецЕсли;
 Возврат КонтрагентИКонтактноеЛицо;
 
    //Телефон		
    Запрос = Новый Запрос;
    Запрос.Текст = 
    	"ВЫБРАТЬ
    	|	уатЗаказГрузоотправителя.Контрагент.КонтактнаяИнформация.(
    	|		НомерТелефона КАК НомерТелефона
    	|	)
    	|ИЗ
    	|	Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителя";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    	Телефон =  ВыборкаДетальныеЗаписи.НомерТелефона;
    КонецЕсли;
//Выводим данные
ОбластьМакетаШапка.Параметры.Наименование = КонтрагентИКонтактноеЛицо + Телефон;
Показать


И при печати Маршрутного Листа детализация по заказам выходит ошибка:
Значение не является значением объектного типа "Защита"
Код:
// Процедура устанавливает свойства Защита и ТолькоПросмотр для табл. документов
//согласно настройкам пользователя УАТ
//
Процедура УстановитьРедактированиеПечатныхФормДокумента(КоллекцияПечатныхФорм) Экспорт
	ЗащитаПечФорм = уатПраваИНастройки.уатПолучитьПраваИНастройкиПользователя(, "ЗащитаПечатныхФорм");
	ТолькоПросмотрПечФорм = уатПраваИНастройки.уатПолучитьПраваИНастройкиПользователя(, "ОткрытиеПечатныхФормДокументовВРежимеПросмотра");
	
	Для Каждого ТекПечФорма Из КоллекцияПечатныхФорм Цикл
		ТекПечФорма.ТабличныйДокумент.Защита = ЗащитаПечФорм;
		 
		ТекПечФорма.ТабличныйДокумент.ТолькоПросмотр = ТолькоПросмотрПечФорм;
		Для Каждого ТекОбл Из ТекПечФорма.ТабличныйДокумент.Области Цикл
			ТекОбл.Защита = ЗащитаПечФорм;
		КонецЦикла;
	КонецЦикла;
КонецПроцедуры
Показать


Направьте на путь истинный
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
17. Romakon92 23.05.17 12:59 Сейчас в теме
(16) Спасибо, разобрался вот итоговый код

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



ОбластьМакетаШапка.Параметры.ПредставлениеЗаказчика = ПолучитьПараметрыЗаказчика(ТекущийДокумент);
19. BackinSoda 23.05.17 13:38 Сейчас в теме
ИнфоКонтрагент = 
        "" 
        + ВыборкаДетальныеЗаписи.Контрагент.Наименование
        + ?(ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Контрагент.ОсновноеКонтактноеЛицо),", Контактное лицо: " + ВыборкаДетальныеЗаписи.Контрагент.ОсновноеКонтактноеЛицо, "")
        + ?(ЗначениеЗаполнено(ТелефонКонтрагента), ", Телефон: " + ТелефонКонтрагента, "")  
        + ?(ЗначениеЗаполнено(Другое),", Другое: " + Другое, "");
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 18.05.17 13:32 Сейчас в теме
Посмотрите в печати любого похожего документа будет код на подобии
ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата), "ПолноеНаименование,");

или похожим способом можно получить структуру со всякими Инн, телефонами, адресами и прочим.

В примере вашего кода лучше явно "привести к строке" поставив в начале кавычки
ОбластьМакетаШапка.Параметры.Наименование = "" + КонтрагентИКонтактноеЛицо +"  " + Телефон;

в дальнейшем обязательно пригодится )
8. BackinSoda 18.05.17 15:02 Сейчас в теме
 Возврат КонтрагентИКонтактноеЛицо;
просто закомментируйте эту строчку.. далее определите переменную Телефон = ""; т.к. её может не быть в контактной информации и она выпадет с ошибкой что переменная не определена, ну и в посте номер (2) я уже написал про
ОбластьМакетаШапка.Параметры.Наименование = "" + КонтрагентИКонтактноеЛицо +"  " + Телефон;
9. Romakon92 18.05.17 16:35 Сейчас в теме
(8)
Возврат КонтрагентИКонтактноеЛицо;

просто закомментируйте эту строчку..

Да все работает, выводятся данные КонтрагентИКонтактноеЛицо, а вот с Телефоном проблемы, передалал запрос, но все равно пустая строка
//Телефон		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КонтрагентыКонтактнаяИнформация.НомерТелефона КАК НомерТелефона1
		|ИЗ
		|	Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		Телефон = ВыборкаДетальныеЗаписи.НомерТелефона1;
	КонецЕсли;
Показать
3. Romakon92 18.05.17 14:18 Сейчас в теме
Есть мысли что у меня нет прав на изменение макетов,
// Процедура устанавливает свойства Защита и ТолькоПросмотр для табл. документов согласно настройкам пользователя УАТ
Но если закомментировать данные которые я ввожу в модуль, и оставить на макете надпись Заказчик, то документ выводится на печать...
help
4. BackinSoda 18.05.17 14:25 Сейчас в теме
У Вас в коде почему-то посреди печати стоит "Возврат КонтрагентИКонтактноеЛицо;" и видимо дальше вместо КоллекцииПечатныхФорм передаётся контактное лицо которое и выпадает с ошибкой.. или это вы выложили разные процедуры общим текстом ?
Выложите всю процедуру печати и всё станет ясно.
5. comptr 30 18.05.17 14:43 Сейчас в теме
Значение не является значением объектного типа "Защита"

Означает, что в момент
ТекПечФорма.ТабличныйДокумент.Защита

ТекПечФорма.ТабличныйДокумент не имеет свойства "Защита", что говорит о том, что ТекПечФорма.ТабличныйДокумент - совсем не табличный документ в этот момент.

А если внимательно поглядеть на код, то можно увидеть:
Возврат КонтрагентИКонтактноеЛицо;

И что-то мне подсказывает, что это прописано в функции, формирующей и заполняющей ТабличныйДокумент, который она потом и должна возвращать. А возвращает КонтрагентИКонтактноеЛицо - строка.

Стоит внимательно рассмотреть код формирования ПФ, и правильно разместить свои доработки.
6. Romakon92 18.05.17 14:46 Сейчас в теме
ВСЯ Функция
Функция ПечатьМаршрутныйЛистСЗаказами(МассивОбъектов, ОбъектыПечати)
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_МаршрутныйЛист";
	ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	
	ПервыйДокумент = Истина;
	
	Для Каждого ТекущийДокумент Из МассивОбъектов Цикл
		Если Не ПервыйДокумент Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		ПервыйДокумент = Ложь;
		
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МаршрутныйЛист_МаршрутныйЛистСЗаказами";
		Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.уатМаршрутныйЛист.ПФ_MXL_МаршрутныйЛистСЗаказами");
			
//Контрагент, контактное лицо
    Запрос = Новый Запрос;
    Запрос.Текст = 
    	"ВЫБРАТЬ
    	|	уатЗаказГрузоотправителя.Контрагент.Наименование КАК Наименование,
    	|	уатЗаказГрузоотправителя.Контрагент.ОсновноеКонтактноеЛицо КАК ОсновноеКонтактноеЛицо
    	|ИЗ
    	|	Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителя";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    КонтрагентКонтактноеЛицо = "";
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
     КонтрагентИКонтактноеЛицо =
     	" " + ВыборкаДетальныеЗаписи.Наименование
    	+
    	" " + ВыборкаДетальныеЗаписи.ОсновноеКонтактноеЛицо;	 
 КонецЕсли;
 Возврат КонтрагентИКонтактноеЛицо;
// 
//Телефон		
    Запрос = Новый Запрос;
    Запрос.Текст = 
    	"ВЫБРАТЬ
    	|	уатЗаказГрузоотправителя.Контрагент.КонтактнаяИнформация.(
    	|		НомерТелефона КАК НомерТелефона
    	|	)
    	|ИЗ
    	|	Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителя";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

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

//Заполняем Наименование
		ОбластьМакетаШапка.Параметры.Наименование = КонтрагентИКонтактноеЛицо + Телефон;
//		
		
		Если ТекущийДокумент.Заказы.Количество() Тогда 
			ОбластьМакетаШапка.Параметры.ПлановоеВремяВыезда = ПолучитьВремяОтправленияПлан(ТекущийДокумент);
			
			Если ТекущийДокумент.Заказы.НайтиСтроки(Новый Структура("Выполнен", Истина)).Количество() Тогда 
				ОбластьМакетаШапка.Параметры.ФактическоеВремяВыезда = ТекущийДокумент.ДатаИВремяОтправления;
			КонецЕсли;
			
			ОбластьМакетаШапка.Параметры.ПлановоеВремяВозврата = ПолучитьВремяВозвратаПлан(ТекущийДокумент);
			
			Если ТекущийДокумент.Выполнен Тогда 
				ОбластьМакетаШапка.Параметры.ФактическоеВремяВозврата = ТекущийДокумент.ДатаИВремяВыполнения;
				ОбластьМакетаШапка.Параметры.ДатаВыполнения           = ТекущийДокумент.ДатаИВремяВыполнения;
			КонецЕсли;
			
			ПервыйПункт   = ТекущийДокумент.Заказы[0].Пункт;
			ПерваяСтоянка = 0;
			ПредЗаказ     = Неопределено;
			
			Для Сч = 0 По ТекущийДокумент.Заказы.Количество()-1 Цикл 
				ТекСтрока = ТекущийДокумент.Заказы[Сч];
				Если Не ТекСтрока.Пункт = ПервыйПункт Тогда 
					Прервать;
				КонецЕсли;
				
				Если Не ПредЗаказ = ТекСтрока.ЗаказГрузоотправителя Тогда 
					ПерваяСтоянка = уатЗащищенныеФункцииСервер.СложитьВремя(ПерваяСтоянка, ТекСтрока.Стоянка);
					ПредЗаказ = ТекСтрока.ЗаказГрузоотправителя;
				КонецЕсли;
			КонецЦикла;
			
			мВремяПрибытия = уатЗащищенныеФункцииСервер.СложитьВремя(ТекущийДокумент.ДатаИВремяОтправленияПлан, -ПерваяСтоянка);
		КонецЕсли;
		
		ТабДокМаршрут = Новый ТабличныйДокумент;
		ТабДокЗаказ   = Новый ТабличныйДокумент;
		
		ОбластьМакета = Макет.ПолучитьОбласть("МаршрутШапка");
		ТабДокМаршрут.Вывести(ОбластьМакета);
		ОбластьМакетаАдрес = Макет.ПолучитьОбласть("СтрокаАдрес");
		ОбластьМакетаЗаказ = Макет.ПолучитьОбласть("СтрокаЗаказ");
		
		ПредАдр = 0;
		ПредСтрока = Неопределено;
		ИзменилсяЗаказ = Ложь;
		ОбщийПробег = 0; мСтоянка  = 0;
		СчАдресов = 1;  СчЗаказов = 1;
		МаксВес    = 0; МаксОбъем    = 0; МаксКолМест    = 0; МаксЗаказов    = 0;
		ПеревезВес = 0; ПеревезОбъем = 0; ПеревезКолМест = 0; ПеревезЗаказов = 0;
		мВес       = 0; мОбъем       = 0; мКолМест       = 0; 
		ТекВес     = 0; ТекОбъем     = 0; ТекКолМест     = 0; ТекКолЗаказов  = 0;
		
		Для Каждого ТекСтрока ИЗ ТекущийДокумент.Заказы цикл
			
			Если ТекСтрока.Пункт = Неопределено ИЛИ НЕ ЗначениеЗаполнено(ТекСтрока.Пункт) тогда
				Если НЕ ТекСтрока.ЗаказГрузоотправителя.Пустая() И ТекСтрока.ТипТочкиМаршрута = Перечисления.уатТипыТочекМаршрута.Погрузка тогда
					мАдр = ТекСтрока.ЗаказГрузоотправителя.АдресОтправления;
				ИначеЕсли НЕ ТекСтрока.ЗаказГрузоотправителя.Пустая() И ТекСтрока.ТипТочкиМаршрута = Перечисления.уатТипыТочекМаршрута.Погрузка тогда
					мАдр = ТекСтрока.ЗаказГрузоотправителя.АдресДоставки;
				Иначе
					Продолжить;
				КонецЕсли;
			Иначе
				мАдр = ТекСтрока.Пункт;
			КонецЕсли;
			
			мАдр = ПолучитьАдресСтрокой(мАдр);
			
			Если мАдр <> ПредАдр тогда
				
				Если ПредАдр <> 0 тогда
					//выводим старую
					ОбластьМакетаАдрес.Параметры.Стоянка      = мСтоянка;
					ТабДокМаршрут.Вывести(ОбластьМакетаАдрес);
					Если ИзменилсяЗаказ = Истина тогда
						ОбластьМакетаЗаказ.Параметры.Вес            = мВес;
						ОбластьМакетаЗаказ.Параметры.Объем          = мОбъем;
						ОбластьМакетаЗаказ.Параметры.КоличествоМест = мКолМест;
						Если СчАдресов >= 2 тогда
							мВремяПрибытия = уатЗащищенныеФункцииСервер.СложитьВремя(мВремяПрибытия, мСтоянка);
							ОбластьМакетаАдрес.Параметры.ПрибытиеПлан = мВремяПрибытия;
						КонецЕсли;
						ТабДокЗаказ.Вывести(ОбластьМакетаЗаказ);
						мВес = 0; мОбъем = 0; мКолМест = 0;
					КонецЕсли;
					ТабДокМаршрут.Вывести(ТабДокЗаказ);
					ТабДокЗаказ = Новый ТабличныйДокумент;
					ИзменилсяЗаказ = Ложь;
				КонецЕсли;
				
				ОбластьМакетаАдрес = Макет.ПолучитьОбласть("СтрокаАдрес");
				ОбластьМакетаАдрес.Параметры.Адрес           = мАдр;
				ОбластьМакетаАдрес.Параметры.РасстояниеВремя = "" + ТекСтрока.Расстояние + " / " + Формат(ТекСтрока.Время,"ЧДЦ=2; ЧРД=:; ЧН=0:00");
				ОбластьМакетаАдрес.Параметры.ПрибытиеПлан    = мВремяПрибытия;
				ОбластьМакетаАдрес.Параметры.ПрибытиеФакт    = ТекСтрока.ПрибытиеФакт;
				ОбластьМакетаАдрес.Параметры.Номер           = СчАдресов;
				мВремяПрибытия = уатЗащищенныеФункцииСервер.СложитьВремя(мВремяПрибытия,ТекСтрока.Время);
				мСтоянка   = 0;
				СчАдресов = СчАдресов + 1;
				СчЗаказов = 1;
				ОбщийПробег = ОбщийПробег  + ТекСтрока.Расстояние;
				
			КонецЕсли;
			
			ПредАдр = мАдр;
			//произвольный пункт 
			Если ТекущийДокумент.ВидОперации = Перечисления.уатВидыОперацийМаршрутныйЛист.ПоЗаказуГрузоотправителя И НЕ ЗначениеЗаполнено(ТекСтрока.ЗаказГрузоотправителя) 
				ИЛИ ТекущийДокумент.ВидОперации = Перечисления.уатВидыОперацийМаршрутныйЛист.Произвольный И НЕ ЗначениеЗаполнено(ТекСтрока.Контрагент)
				И НЕ ЗначениеЗаполнено(ТекСтрока.Номенклатура) тогда
				
				мСтоянка   = мСтоянка + ТекСтрока.Стоянка;
				ПредСтрока = ТекСтрока;
				Продолжить;
			КонецЕсли;
			
			Если ПредСтрока = Неопределено
				ИЛИ (ТекущийДокумент.ВидОперации = Перечисления.уатВидыОперацийМаршрутныйЛист.ПоЗаказуГрузоотправителя И
					(ПредСтрока.ЗаказГрузоотправителя <> ТекСтрока.ЗаказГрузоотправителя ИЛИ ПредСтрока.ТипТочкиМаршрута <> ТекСтрока.ТипТочкиМаршрута))
				ИЛИ (ТекущийДокумент.ВидОперации = Перечисления.уатВидыОперацийМаршрутныйЛист.Произвольный И ТекСтрока.Контрагент <> ПредСтрока.Контрагент) Тогда
				
				Если ИзменилсяЗаказ = Истина Тогда
					//Выводим
					ОбластьМакетаЗаказ.Параметры.Вес            = мВес;
					ОбластьМакетаЗаказ.Параметры.Объем          = мОбъем;
					ОбластьМакетаЗаказ.Параметры.КоличествоМест = мКолМест;
					ТабДокЗаказ.Вывести(ОбластьМакетаЗаказ);
					ИзменилсяЗаказ = Ложь;
					мВес = 0; мОбъем = 0; мКолМест = 0;
				КонецЕсли;
				мСтоянка = уатЗащищенныеФункцииСервер.СложитьВремя(мСтоянка,ТекСтрока.Стоянка);
				ОбластьМакетаЗаказ = Макет.ПолучитьОбласть("СтрокаЗаказ");
				мКонтр = "";
				Если ТекСтрока.ЗаказГрузоотправителя.Пустая() И ЗначениеЗаполнено(ТекСтрока.Контрагент) тогда
					мКонтр = ТекСтрока.Контрагент;
				Иначе
					Если ТекСтрока.ТипТочкиМаршрута = Перечисления.уатТипыТочекМаршрута.Погрузка тогда
						мКонтр = ТекСтрока.ЗаказГрузоотправителя.Грузоотправитель;
					Иначе
						мКонтр = ТекСтрока.ЗаказГрузоотправителя.Грузополучатель;
					КонецЕсли;
					Если мКонтр = Неопределено ИЛИ НЕ ЗначениеЗаполнено(мКонтр) тогда
						мКонтр = ТекСтрока.ЗаказГрузоотправителя.Контрагент;
					КонецЕсли;
				КонецЕсли;
				
				ОбластьМакетаЗаказ.Параметры.Номер      = "" + (СчАдресов - 1) + "." + СчЗаказов;
				ОбластьМакетаЗаказ.Параметры.Контрагент = мКонтр;
				ОбластьМакетаЗаказ.Параметры.Заказ      = "" + ТекСтрока.ЗаказГрузоотправителя.Номер + " от " + ТекСтрока.ЗаказГрузоотправителя.Дата;
				ОбластьМакетаЗаказ.Параметры.НомерПоУчетуЗаказчика = ТекСтрока.ЗаказГрузоотправителя.НомерПоУчетуЗаказчика;
				ОбластьМакетаЗаказ.Параметры.Операция   = ТекСтрока.ТипТочкиМаршрута;
				
				СчЗаказов = СчЗаказов + 1;
				ИзменилсяЗаказ = Истина;
			КонецЕсли;
			
			мВес        = мВес        + ТекСтрока.ВесБрутто;
			мОбъем      = мОбъем      + ТекСтрока.Объем;
			мКолМест    = мКолМест    + ТекСтрока.КоличествоМест;
			Если ТекСтрока.ТипТочкиМаршрута = Перечисления.уатТипыТочекМаршрута.Погрузка тогда
				ПеревезВес     = ПеревезВес     + ТекСтрока.ВесБрутто;
				ПеревезОбъем   = ПеревезОбъем   + ТекСтрока.Объем;
				ПеревезКолМест = ПеревезКолМест + ТекСтрока.КоличествоМест;
				ТекВес         = ТекВес         + ТекСтрока.ВесБрутто;
				ТекОбъем       = ТекОбъем       + ТекСтрока.Объем;
				ТекКолМест     = ТекКолМест     + ТекСтрока.КоличествоМест;
				ПеревезЗаказов = ПеревезЗаказов + 1;
				ТекКолЗаказов  = ТекКолЗаказов  + 1;
			ИначеЕсли ТекСтрока.ТипТочкиМаршрута = Перечисления.уатТипыТочекМаршрута.Разгрузка тогда
				ТекВес         = ТекВес         - ТекСтрока.ВесБрутто;
				ТекОбъем       = ТекОбъем       - ТекСтрока.Объем;
				ТекКолМест     = ТекКолМест     - ТекСтрока.КоличествоМест;
				ТекКолЗаказов  = ТекКолЗаказов  - 1;
			КонецЕсли;
			МаксВес     = Макс(МаксВес    ,ТекВес);
			МаксОбъем   = Макс(МаксОбъем  ,ТекОбъем);
			МаксКолМест = Макс(МаксКолМест,ТекКолМест);
			МаксЗаказов = Макс(МаксЗаказов,ТекКолЗаказов);
			
			ПредСтрока = ТекСтрока;
			
		КонецЦикла;
		
		ОбластьМакетаАдрес.Параметры.Стоянка   = мСтоянка;
		ТабДокМаршрут.Вывести(ОбластьМакетаАдрес);
		Если ИзменилсяЗаказ = Истина тогда
			ОбластьМакетаЗаказ.Параметры.Вес            = мВес;
			ОбластьМакетаЗаказ.Параметры.Объем          = мОбъем;
			ОбластьМакетаЗаказ.Параметры.КоличествоМест = мКолМест;
			ТабДокЗаказ.Вывести(ОбластьМакетаЗаказ);
		КонецЕсли;
		ТабДокМаршрут.Вывести(ТабДокЗаказ);
		ОбластьМакета = Макет.ПолучитьОбласть("МаршрутПодвал");
		ОбластьМакета.Параметры.ПеревезеноВес     = ПеревезВес;
		ОбластьМакета.Параметры.ПеревезеноОбъем   = ПеревезОбъем;
		ОбластьМакета.Параметры.ПеревезеноКолМест = ПеревезКолМест;
		ОбластьМакета.Параметры.ПеревезеноЗаказов = ПеревезЗаказов;
		ОбластьМакета.Параметры.МаксВес           = МаксВес;
		ОбластьМакета.Параметры.МаксОбъем         = МаксОбъем;
		ОбластьМакета.Параметры.МаксКолМест       = МаксКолМест;
		ОбластьМакета.Параметры.МаксЗаказов       = МаксЗаказов;
		ТабДокМаршрут.Вывести(ОбластьМакета);
		
		ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
		ТабличныйДокумент.Вывести(ТабДокМаршрут);
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ТекущийДокумент);
		
	КонецЦикла;
	
	ТабличныйДокумент.АвтоМасштаб = Истина;
	
	Возврат ТабличныйДокумент;
	
КонецФункции // ПечатнаяФорма()
Показать
7. Romakon92 18.05.17 14:49 Сейчас в теме
//Контрагент, контактное лицо
//Телефон
//Заполняем Наименование
Это все что я добавлял
10. BackinSoda 18.05.17 16:40 Сейчас в теме
Как минимум в запросе не хватает условия
ГДЕ ссылка = &ВашКонтрагент
ну и скорее всего других отборов на Вид/Тип контактной информации (где выбирается что это Телефон а не адрес или почта) , с контактнымЛицом та же история
11. Romakon92 18.05.17 16:45 Сейчас в теме
Контактное лицо выводится корректно, насчет
(10)
(где выбирается что это Телефон а не адрес или почта)

немного не понял, у меня же в запросе указано
КонтрагентыКонтактнаяИнформация.НомерТелефона
12. BackinSoda 18.05.17 16:54 Сейчас в теме
Не уверен что он записывает в этот реквизит телефон. Думаю вам нужно поле "Представление" и при этом указать и Тип и Вид в условии, для теста заполните поле телефон, а в запросе выберите все поля из таблицы КонтактнаяИнформация, для теста напишите таб = Запрос.Выполнить().Выгрузить(); и посмотрите что содержится в таблице и в какой колонке (подчеркну, что это для теста и получать инфу уже из выборки лучше)
13. Romakon92 18.05.17 16:54 Сейчас в теме
"ВЫБРАТЬ
		|	КонтрагентыКонтактнаяИнформация.НомерТелефона КАК НомерТелефона1
		|ИЗ
		|	Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
		|ГДЕ
		|	КонтрагентыКонтактнаяИнформация.Ссылка = &ВашКонтрагент";

Прошу прощение за нубство, но что такое &ВашКонтрагент? Название контрагента?
14. BackinSoda 18.05.17 16:56 Сейчас в теме
(13) да Ссылка = &Контрагент , при этом нужно для запроса определить параметр
Запрос.УстановитьПараметр("Контрагент" , ТекущийДокумент.Контрагент);
15. Romakon92 18.05.17 17:04 Сейчас в теме
Получилось, номер телефона находится в НомерТелефонаБезКодов

//Телефон		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КонтрагентыКонтактнаяИнформация.НомерТелефонаБезКодов
		|ИЗ
		|	Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		Телефон = ВыборкаДетальныеЗаписи.НомерТелефонаБезКодов;
	КонецЕсли;
Показать


Вот код :)
16. BackinSoda 19.05.17 00:08 Сейчас в теме
Без использования условия
ГДЕ
        |    КонтрагентыКонтактнаяИнформация.Ссылка = &Контрагент
ваш запрос будет получать телефоны всех контрагентов в базе
17. Romakon92 23.05.17 12:59 Сейчас в теме
(16) Спасибо, разобрался вот итоговый код

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



ОбластьМакетаШапка.Параметры.ПредставлениеЗаказчика = ПолучитьПараметрыЗаказчика(ТекущийДокумент);
18. Romakon92 23.05.17 13:06 Сейчас в теме
Подскажите пожалуйста, как реализовать возможность вывода на печать только заполненных выражений.
Например:

значение "Контактное лицо" пустое, а "Другое" заполнено. Выводится на печать "Другое"

значение "Контактное лицо" заполнено, а "Другое" пустое. Выводится на печать "Контактное лицо"

значение "Контактное лицо" заполнено, и "Другое" заполнено. Выводится на печать "Контактное лицо" и "Другое"
19. BackinSoda 23.05.17 13:38 Сейчас в теме
ИнфоКонтрагент = 
        "" 
        + ВыборкаДетальныеЗаписи.Контрагент.Наименование
        + ?(ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Контрагент.ОсновноеКонтактноеЛицо),", Контактное лицо: " + ВыборкаДетальныеЗаписи.Контрагент.ОсновноеКонтактноеЛицо, "")
        + ?(ЗначениеЗаполнено(ТелефонКонтрагента), ", Телефон: " + ТелефонКонтрагента, "")  
        + ?(ЗначениеЗаполнено(Другое),", Другое: " + Другое, "");
20. Romakon92 23.05.17 13:45 Сейчас в теме
(19) Спасибо большое, тоже пытался сделать что нибудь с "ЗначениеЗаполнено"
Все работает
21. BackinSoda 23.05.17 13:53 Сейчас в теме
Если в запросе не будет контрагента то вылетит ошибка т.к. переменная ИнфоКонтрагент не будет определена.
В данном случае можно обойтись и без запроса, и получать "через точку" всё, типа
Контрагент = СсылкаНаМЛ.ЗаказГрузоотправителя.Контрагент;

только перед этим надо будет проверить заполнен ли ЗаказГрузоотправителя. просто для примера)
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

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

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

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

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