Сбивается сортировка в печатной форме при выводе на печать

1. AleksandrLeshkov 15.08.21 07:01 Сейчас в теме
Добрый день! Помогите, пожалуйста, разобраться. При заполнении документа в табличных частях всё отображается в плане упорядочивания отлично, но при выводе на печать нумерация сбивается как на скриншоте.
Есть тестовая база, в которой я изначально и сделал доработку, там всё отлично выводится на печать. Код идентичен
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. furman2000 16 15.08.21 07:17 Сейчас в теме
(1) Код выложи.
И еще отлаживал наверно в файловой, а сейчас в серверной?
3. AleksandrLeshkov 15.08.21 07:38 Сейчас в теме
(2) Серверная и та и та
Функция ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, ИмяМакета,Специальность=Неопределено)
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	
	ПервыйДокумент = Истина;
	
	Для Каждого ТекущийДокумент Из МассивОбъектов Цикл
		
		Если Не ПервыйДокумент Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		ПервыйДокумент = Ложь;
		
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		Если ИмяМакета = "РейтингАбитуриентов" Тогда
			
			Запрос = Новый Запрос();
			Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
			Запрос.Текст = 
			"ВЫБРАТЬ
			|	РейтингАбитуриентов.БазыОсвоенияПрограммОбучения КАК БазыОсвоенияПрограммОбучения,
			|	РейтингАбитуриентов.Дата КАК Дата,
			|	РейтингАбитуриентов.ИсключитьЦелевиков КАК ИсключитьЦелевиков,
			|	РейтингАбитуриентов.Организация КАК Организация,
			|	РейтингАбитуриентов.План КАК План,
			|	РейтингАбитуриентов.ПолученноеОбразование КАК ПолученноеОбразование,
			|	РейтингАбитуриентов.Специальность КАК Специальность,
			|	РейтингАбитуриентов.Финансирование КАК Финансирование,
			|	РейтингАбитуриентов.ФормаОбучения КАК ФормаОбучения,
			|	РейтингАбитуриентов.ЦелевоеНаправление КАК ЦелевоеНаправление,
			|	РейтингАбитуриентов.СписокАбитуриентовПоСобеседованию.(
			|		НомерСтроки КАК НомерСтроки,
			|		АнкетаАбитуриента КАК АнкетаАбитуриента,
			|		Абитуриент КАК Абитуриент,
			|		ЦелевоеНаправление КАК ЦелевоеНаправление,
			|		Комментарий КАК Комментарий,
			|		АнкетаАбитуриента.ВидДокументаОбразования КАК АнкетаАбитуриентаВидДокументаОбразования,
			|		КопияАттестата КАК КопияАттестата,
			|		АнкетаАбитуриента.ЕстьЦелевойДоговор КАК АнкетаАбитуриентаЕстьЦелевойДоговор,
			|		АнкетаАбитуриента.СреднийБаллАттестата КАК АнкетаАбитуриентаСреднийБаллАттестата
			|	) КАК СписокАбитуриентовПоСобеседованию,
			|	РейтингАбитуриентов.СписокАбитуриентовКЗачислению.(
			|		НомерСтроки КАК НомерСтроки,
			|		АнкетаАбитуриента КАК АнкетаАбитуриента,
			|		Абитуриент КАК Абитуриент,
			|		СуммаБаллов КАК СуммаБаллов,
			|		ЦелевоеНаправление КАК ЦелевоеНаправление,
			|		Комментарий КАК Комментарий,
			|		АнкетаАбитуриента.ВидДокументаОбразования КАК АнкетаАбитуриентаВидДокументаОбразования,
			|		КопияАттестата КАК КопияАттестата,
			|		АнкетаАбитуриента.ЕстьЦелевойДоговор КАК АнкетаАбитуриентаЕстьЦелевойДоговор,
			|		АнкетаАбитуриента.СреднийБаллАттестата КАК АнкетаАбитуриентаСреднийБаллАттестата
			|	) КАК СписокАбитуриентовКЗачислению,
			|	РейтингАбитуриентов.СписокАбитуриентовКРаспределению.(
			|		НомерСтроки КАК НомерСтроки,
			|		АнкетаАбитуриента КАК АнкетаАбитуриента,
			|		Абитуриент КАК Абитуриент,
			|		СуммаБаллов КАК СуммаБаллов,
			|		ЦелевоеНаправление КАК ЦелевоеНаправление,
			|		Комментарий КАК Комментарий,
			|		КопияАттестата КАК КопияАттестата,
			|		АнкетаАбитуриента.ВидДокументаОбразования КАК АнкетаАбитуриентаВидДокументаОбразования,
			|		АнкетаАбитуриента.СреднийБаллАттестата КАК АнкетаАбитуриентаСреднийБаллАттестата,
			|		АнкетаАбитуриента.ЕстьЦелевойДоговор КАК АнкетаАбитуриентаЕстьЦелевойДоговор
			|	) КАК СписокАбитуриентовКРаспределению
			|ИЗ
			|	Документ.РейтингАбитуриентов КАК РейтингАбитуриентов
			|ГДЕ
			|	РейтингАбитуриентов.Ссылка = &ТекущийДокумент";
			Шапка = Запрос.Выполнить().Выбрать();
			Шапка.Следующий();
				
			// СпециальностьДисциплины = Шапка.СпециальностьДисциплины.Выбрать();
				
			ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РейтингАбитуриентов_РейтингАбитуриентов";
				
			Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.РейтингАбитуриентов.ПФ_MXL_РейтингАбитуриентов");

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

				ТабличныйДокумент.Вывести(ОбластьМакета);
					
			КонецЦикла;

            ТабличныйДокумент.Вывести(Макет.ПолучитьОбласть("СписокАбитуриентовКРаспределениюШапка"));
			
			ОбластьМакета = Макет.ПолучитьОбласть("СписокАбитуриентовКРаспределению");
			СписокАбитуриентовПоСобеседованию = Шапка.СписокАбитуриентовКРаспределению.Выбрать();
	
			Пока СписокАбитуриентовПоСобеседованию.Следующий() Цикл
				
				ОбластьМакета.Параметры.НомерСтроки=СписокАбитуриентовПоСобеседованию.НомерСтроки;
				//ОбластьМакета.Параметры.АнкетаАбитуриента=СписокАбитуриентовПоСобеседованию.АнкетаАбитуриента;
				ОбластьМакета.Параметры.Абитуриент=СписокАбитуриентовПоСобеседованию.Абитуриент;
				ОбластьМакета.Параметры.СуммаБаллов=СписокАбитуриентовПоСобеседованию.СуммаБаллов;
				//ОбластьМакета.Параметры.ЦелевоеНаправление=СписокАбитуриентовПоСобеседованию.ЦелевоеНаправление;
				//ОбластьМакета.Параметры.Комментарий=СписокАбитуриентовПоСобеседованию.Комментарий;
				ОбластьМакета.Параметры.Копия=СписокАбитуриентовПоСобеседованию.КопияАттестата;
				ОбластьМакета.Параметры.СБА = СписокАбитуриентовПоСобеседованию.АнкетаАбитуриентаСреднийБаллАттестата;
				ОбластьМакета.Параметры.Целевой = СписокАбитуриентовПоСобеседованию.АнкетаАбитуриентаЕстьЦелевойДоговор;
				ТабличныйДокумент.Вывести(ОбластьМакета);
					
			КонецЦикла;
		// ИначеЕсли ИмяМакета = "" Тогда
		//	// ТелоОбработкиПечати			
		// ИначеЕсли ИмяМакета = "" Тогда
		//	// ТелоОбработкиПечати
		КонецЕсли;
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ТекущийДокумент);
		
	КонецЦикла;
	
	ТабличныйДокумент.АвтоМасштаб = Истина;
	
	Возврат ТабличныйДокумент;
	
КонецФункции // ПечатнаяФорма()
Показать
4. AleksandrLeshkov 15.08.21 07:39 Сейчас в теме
(2) Единственное различаются версии конфигурации, первая 2.0, а вторая 2.1, но до модификации всё сортировалось нормально. В 2.0 всё работает без проблем даже после модификации
5. alxarz 32 15.08.21 09:08 Сейчас в теме
(4) можно перед каждым из 3-х циклов создать ТЗ, ну или только тот цикл, где неверный порядок
в цикле заносим строчки в ТЗ, после цикла делаем ТЗ.сортировать и из ТЗ отправляются данные в табличный документ в нужном порядке
AleksandrLeshkov; +1 Ответить
6. AleksandrLeshkov 15.08.21 09:24 Сейчас в теме
(5)а получается я же могу в этой тз отсортировать при равенстве значений в одной колонке, чтобы в другой они становились в порядке возрастания. В первой у меня средний балл дисциплин, а во второй средний балл аттестата. И вот при равенстве балла дисциплин нужно чтобы в порядке убывания во второй остортировались. Так заработает же?
7. alxarz 32 15.08.21 09:29 Сейчас в теме
(6)
И вот при равенстве балла дисциплин нужно чтобы в порядке убывания во второй остортировались.
ТЗ.Сортировать("Колонка1 ВОЗР, Колонка2 УБЫВ");
AleksandrLeshkov; +1 Ответить
8. AleksandrLeshkov 15.08.21 09:56 Сейчас в теме
(7) Да, так и хотел, спасибо большое! Сейчас до компа доберусь буду пробовать
Оставьте свое сообщение

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