Дубли при выводе на печать

1. user979200 18.01.24 10:58 Сейчас в теме
Добрый день, помогите разобраться, когда в ТЧ МестоРаботыТЧ справочника КарточкиПреподавателей несколько записей, то Телефон выводится несколько раз, что не так?


Процедура ДоговорПечать(ТабДок, Ссылка) Экспорт
	//{{_КОНСТРУКТОР_ПЕЧАТИ(ДоговорПечать)
	Макет = Документы.ДоговораСПреподавателями.ПолучитьМакет("Договор");
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ДоговораСПреподавателями.НомерДоговора,
	|	ДоговораСПреподавателями.От,
	|	ДоговораСПреподавателями.Преподаватель,
	|	ДоговораСПреподавателями.Тема.(
	|		Название,
	|		Ссылка,
	|		НомерСтроки,
	|		Название КАК Название1
	|	),
	|	КарточкиПреподавателейМестоРаботыТЧ.МестоРаботыПреподавателя,
	|	КарточкиПреподавателейМестоРаботыТЧ.ДолжностьПреподавателя,
	|	КарточкиПреподавателей.УлицаПроживанияПреподавателя КАК Улица,
	|	КарточкиПреподавателей.НомерДомаПроживанияПреподавателя КАК НомерДома,
	|	КарточкиПреподавателей.НомерКорпусаПроживанияПреподавателя КАК Корпус,
	|	КарточкиПреподавателей.НомерПодъездаПроживанияПреподавателя КАК НомерПодъезда,
	|	КарточкиПреподавателей.НомерКвКомнатыПроживанияПреподавателя КАК НомерКвартиры,
	|	КарточкиПреподавателейКонтактнаяИнформацияПреподавателя.НомерСтроки,
	|	КарточкиПреподавателейКонтактнаяИнформацияПреподавателя.КонтактнаяИнформацияПреподавателяКонтакты,
	|	КарточкиПреподавателейКонтактнаяИнформацияПреподавателя.Ссылка,
	|	КарточкиПреподавателейПаспортныеДанныеТЧ.Серия,
	|	КарточкиПреподавателейПаспортныеДанныеТЧ.Номер,
	|	КарточкиПреподавателейПаспортныеДанныеТЧ.ОрганВыдавший,
	|	КарточкиПреподавателейПаспортныеДанныеТЧ.ДатаВыдачи,
	|	КарточкиПреподавателейПаспортныеДанныеТЧ.ЛичныйНомер,
	|	КарточкиПреподавателейМестоРаботыТЧ.МестоРаботыПреподавателяОтдел,
	|	ДоговораСПреподавателями.ДоговорС,
	|	ДоговораСПреподавателями.ДоговорС КАК ДоговорС1,
	|	ДоговораСПреподавателями.ДоговорС КАК ДоговорС2,
	|	ДоговораСПреподавателями.ДоговорПо,
	|	ДоговораСПреподавателями.Ссылка КАК Ссылка1,
	|	ДоговораСПреподавателями.ВерсияДанных,
	|	ДоговораСПреподавателями.ПометкаУдаления,
	|	ДоговораСПреподавателями.Номер КАК Номер1,
	|	ДоговораСПреподавателями.Дата,
	|	ДоговораСПреподавателями.Проведен,
	|	ДоговораСПреподавателями.Ответственный,
	|	ДоговораСПреподавателями.Преподаватель КАК Преподаватель1,
	|	ДоговораСПреподавателями.НомерДоговора КАК НомерДоговора1,
	|	ДоговораСПреподавателями.От КАК От1,
	|	ДоговораСПреподавателями.ДоговорС КАК ДоговорС3,
	|	ДоговораСПреподавателями.ДоговорПо КАК ДоговорПо1,
	|	ДоговораСПреподавателями.Комментарий,
	|	ДоговораСПреподавателями.ДатаДокумента,
	|	ДоговораСПреподавателями.НомерЛицензии,
	|	ДоговораСПреподавателями.ДатаЛицензии КАК ДатаЛицензии1,
	|	ДоговораСПреподавателями.ЛицевойСчет,
	|	ДоговораСПреподавателями.ПрофильОбразования,
	|	ДоговораСПреподавателями.Разделы.(
	|		Ссылка,
	|		НомерСтроки,
	|		Тема,
	|		Раздел
	|	),
	|	ДоговораСПреподавателями.Темы.(
	|		Ссылка,
	|		НомерСтроки,
	|		Тема
	|	),
	|	ДоговораСПреподавателями.НомерЛицензии.Наименование КАК РуководительФИО,
	|	ДоговораСПреподавателями.НомерЛицензии.НомерЛицензии КАК НомерЛ,
	|	ДоговораСПреподавателями.НомерЛицензии.Должность.Наименование КАК ДолжностьРуководителя,
	|	ДоговораСПреподавателями.НомерЛицензии.Пол КАК Пол,
	|	ДоговораСПреподавателями.НомерЛицензии.ДатаЛицензии КАК ДатаЛицензии2,
	|	КарточкиПреподавателей.УлицаПроживанияПреподавателя.НаселённыйПункт КАК Город,
	|	КарточкиПреподавателей.УлицаПроживанияПреподавателя.НаселённыйПункт.Облать КАК Область,
	|	КарточкиПреподавателей.УлицаПроживанияПреподавателя.НаселённыйПункт.Район.Наименование КАК Район,
	|	КарточкиПреподавателейМестоРаботыТЧ.ДолжностьПреподавателя.Наименование КАК Должность,
	|	КарточкиПреподавателейМестоРаботыТЧ.Пенсионер
	|ИЗ
	|	Справочник.КарточкиПреподавателей.МестоРаботыТЧ КАК КарточкиПреподавателейМестоРаботыТЧ
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ДоговораСПреподавателями КАК ДоговораСПреподавателями
	|			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КарточкиПреподавателей КАК КарточкиПреподавателей
	|			ПО ДоговораСПреподавателями.Преподаватель = КарточкиПреподавателей.Ссылка
	|			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КарточкиПреподавателей.КонтактнаяИнформацияПреподавателя КАК КарточкиПреподавателейКонтактнаяИнформацияПреподавателя
	|			ПО ДоговораСПреподавателями.Преподаватель.КонтактнаяИнформацияПреподавателя.Ссылка = КарточкиПреподавателейКонтактнаяИнформацияПреподавателя.Ссылка
	|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КарточкиПреподавателей.ПаспортныеДанныеТЧ КАК КарточкиПреподавателейПаспортныеДанныеТЧ
	|			ПО ДоговораСПреподавателями.Преподаватель.ПаспортныеДанныеТЧ.Ссылка = КарточкиПреподавателейПаспортныеДанныеТЧ.Ссылка
	|			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Доверенность КАК Доверенность
	|			ПО ДоговораСПреподавателями.НомерЛицензии = Доверенность.Ссылка
	|				И ДоговораСПреподавателями.ДатаЛицензии = Доверенность.Ссылка
	|		ПО КарточкиПреподавателейМестоРаботыТЧ.Ссылка = ДоговораСПреподавателями.Преподаватель.МестоРаботыТЧ.Ссылка
	|ГДЕ
	|	ДоговораСПреподавателями.Ссылка В(&Ссылка)";
	Запрос.Параметры.Вставить("Ссылка", Ссылка);
	Выборка = Запрос.Выполнить().Выбрать();

	Шапка = Макет.ПолучитьОбласть("Шапка");
	ОсновнаяОбласть = Макет.ПолучитьОбласть("ОсновнаяОбласть");
	ОсновнаяОбласть1 = Макет.ПолучитьОбласть("ОсновнаяОбласть1");
	ОсновнаяОбласть2 = Макет.ПолучитьОбласть("ОсновнаяОбласть2");
	Подвал = Макет.ПолучитьОбласть("Подвал"); 
	Подвал2 = Макет.ПолучитьОбласть("Подвал2");   
	
	НомерСтроки = (" ");
	ВТ = Запрос.Выполнить().Выгрузить();
	МассивКонтактов = ВТ.ВыгрузитьКолонку("КонтактнаяИнформацияПреподавателяКонтакты");   
	СтрокаКонтактов = ""; 
	МассивНомеров = ВТ.ВыгрузитьКолонку("НомерСтроки");
	СтрокаНомеров = "";
	
	
		Для Каждого КонтактнаяИнформацияПреподавателяКонтакты из МассивКонтактов Цикл
		СтрокаКонтактов = СтрокаКонтактов + КонтактнаяИнформацияПреподавателяКонтакты + НомерСтроки;
		КонецЦикла;

	//ТабДок.Очистить();
	
	ВставлятьРазделительСтраниц = Ложь;
	Пока Выборка.Следующий() Цикл
		Если ВставлятьРазделительСтраниц Тогда
			ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		
				Телефон = Макет.ПолучитьОбласть("Телефон");		
				Телефон.Параметры.Контакт = СтрокаКонтактов;
				Телефон.Параметры.Заполнить(Выборка);  
		
				Если Выборка.КонтактнаяИнформацияПреподавателяКонтакты = "" Тогда
				Телефон.Параметры.Контакт = "----"; 
				КонецЕсли; 
				
				Если ПустаяСтрока (Выборка.КонтактнаяИнформацияПреподавателяКонтакты) Тогда
				Телефон.Параметры.Контакт = "-нет данных-"; 
				КонецЕсли;

		    		ТабДок.Очистить();  
					
		Шапка.Параметры.Заполнить(Выборка);
		Шапка.Параметры.От = Формат(Выборка.От, "ДФ='dd MMMM yyyy'; ДЛФ=DD");
		ТабДок.Вывести(Шапка, Выборка.Уровень());
		
		МассивФИО = ПолучитьСклоненияСтроки(Ссылка[0].НомерЛицензии,,"ПД = Родительный");
        ОсновнаяОбласть.Параметры.Руководитель = МассивФИО[0];        
		ОсновнаяОбласть.Параметры.ДатаЛицензии= Формат(Ссылка[0].ДатаЛицензии, "ДФ='dd.MM.yyyy'; ДЛФ=DD");

		МассивДолжность = ПолучитьСклоненияСтроки(Ссылка[0].НомерЛицензии.Должность,,"ПД = Родительный");
        ОсновнаяОбласть.Параметры.ДолжностьР = МассивДолжность[0];
		
		Если Выборка.Пол = Перечисления.Пол.Мужчина Тогда
		ОсновнаяОбласть.Параметры.Действие = "действующего";
		Иначе
		ОсновнаяОбласть.Параметры.Действие = "действующей"
		КонецЕсли;
		
		
			
		ОсновнаяОбласть.Параметры.Заполнить(Выборка); 
		
		Если Выборка.Пенсионер = ИСТИНА Тогда
		ОсновнаяОбласть.Параметры.ДолжностьПреподавателя = "Пенсионер"; 
		КонецЕсли; 


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

		ВыборкаТема = Выборка.Тема.Выбрать();	
		Пока ВыборкаТема.Следующий() Цикл
			Строка = "";
			Строка = Строка + ВыборкаТема.Название + ", ";
			ОсновнаяОбласть1.Параметры.Заполнить(ВыборкаТема);
			ТабДок.Вывести(ОсновнаяОбласть1, ВыборкаТема.Уровень());
		КонецЦикла;
		
		ОсновнаяОбласть2.Параметры.Заполнить(Выборка);
		ОсновнаяОбласть2.Параметры.ДоговорС = Формат(Выборка.ДоговорС, "ДФ='dd MMMM yyyy'; ДЛФ=DD");
		ОсновнаяОбласть2.Параметры.ДоговорПо = Формат(Выборка.ДоговорПо, "ДФ='dd MMMM yyyy'; ДЛФ=DD");
		ТабДок.Вывести(ОсновнаяОбласть2);

		Подвал.Параметры.Заполнить(Выборка);
		Если Не ЗначениеЗаполнено(Выборка.Область) Тогда
		Иначе
			Подвал.Параметры.Область = Строка(Выборка.Область) +", ";
		КонецЕсли;
		
		Если Строка(Выборка.Район) = "" Тогда
			Подвал.Параметры.Район = "";
		Иначе
			Подвал.Параметры.Район = Строка(Выборка.Район)+ " р-н, ";
		КонецЕсли;


		Подвал.Параметры.Город = "г." + Выборка.Город + " ,";
		Подвал.Параметры.Улица = "ул." + Выборка.Улица + " ,";
		Подвал.Параметры.НомерДома = "д." + Выборка.НомерДома + " ,";
		Если ЗначениеЗаполнено(Выборка.Корпус) Тогда  
			Подвал.Параметры.Корпус =  "к." + Выборка.Корпус + " ,";
		Иначе
			Подвал.Параметры.Корпус =  "";
		КонецЕсли;

	//	Подвал.Параметры.Корпус = "к." + Выборка.Корпус + " ,";
		Подвал.Параметры.НомерКвартиры = "кв." + Выборка.НомерКвартиры;
		ТабДок.Вывести(Подвал);   
		
		Подвал2.Параметры.Заполнить(Выборка);
		Подвал2.Параметры.ДатаВыдачи = Формат(Выборка.ДатаВыдачи, "ДФ='dd.MM.yyyy'; ДЛФ=D");
		
		МассивДолжность = ПолучитьСклоненияСтроки(Выборка.ДолжностьРуководителя,,"ПД = Родительный");
        Подвал2.Параметры.ДолжностьРуководителя = МассивДолжность[0];
		
		МассивФИО = РазложитьСтрокуНаПодстроки(Выборка.РуководительФИО, " ");
		ФИО = МассивФИО[0]+" "+ Лев(МассивФИО[1],1)+". "+Лев(МассивФИО[2],1);
		Подвал2.Параметры.ОтветственныйР = ФИО;
				
		ТабДок.Вывести(Телефон, Выборка.Уровень()); 
		ТабДок.Вывести(Подвал2);

		ВставлятьРазделительСтраниц = Истина;			
	КонецЦикла;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
4. starik-2005 3043 18.01.24 12:27 Сейчас в теме
(3)
мне нужна последняя строка
"ГДЕ ТЧМестоРаботы.НомерСтроки В (ВЫБРАТЬ Максимум(НомерСтроки) ИЗ Справочник.КарточкиПреподавателей.МестоРаботыТЧ т0 ГДЕ т0.Ссылка = ТЧМестоРаботы.Ссылка И т0.чтототам = основной)" - как-то так.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3043 18.01.24 11:25 Сейчас в теме
Ну как вариант "ГДЕ ТЧМестоРаботы.НомерСтроки = 1"
3. user979200 18.01.24 12:01 Сейчас в теме
(2)Да, контакты так не дублируются, но из ТЧМестоРаботы в Основной области мне нужна последняя строка
4. starik-2005 3043 18.01.24 12:27 Сейчас в теме
(3)
мне нужна последняя строка
"ГДЕ ТЧМестоРаботы.НомерСтроки В (ВЫБРАТЬ Максимум(НомерСтроки) ИЗ Справочник.КарточкиПреподавателей.МестоРаботыТЧ т0 ГДЕ т0.Ссылка = ТЧМестоРаботы.Ссылка И т0.чтототам = основной)" - как-то так.
5. user979200 18.01.24 13:17 Сейчас в теме
(4)Не очень понятно, что такое т0
6. starik-2005 3043 18.01.24 14:02 Сейчас в теме
(5)
что такое т0
МестоРаботыТЧ, слово "КАК" не является обязательным.
7. user979200 18.01.24 14:48 Сейчас в теме
(6)Все получилось. Огромное вам человеческое спасибо!
Оставьте свое сообщение

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