Объединение задвоенных строк в печатной форме

1. hartman620 29.04.18 16:59 Сейчас в теме
Пытаюсь разобраться с методом Свернуть
В типовой конфигурации ЗУП 3.1 в списке документа "Ведомости в кассу" перечисляются сотрудники. Среди этих сотрудников есть те, которые приняты на 2 рабочих места. в этом списке отображается общая сумма"К выплате", но при печати Печатной ведомости Т-53 сотрудники, принятые на 2 рабочих места, задваиваются и сумма к выплате у них дробится.
Да возможно не совсем корректно ведётся учёт, но менять что то категорически запретили.
Суть вопроса:
Создал Внешнюю обработку Платежная ведомость с типовым макетом печатной формы Т-53, там есть ОбластьСтроки. Как правильно методом "свернуть" объединить по строки по ФИО, а сумму к выплате сложить?
Синтаксис помощник подсказывает
Состав.Свернуть("Номенклатура", "Количество, Сумма, Всего");
, но я так подозреваю что провернуть это со строкой в печатной форме нельзя, т.к. меня встречает ошибка
{ВнешняяОбработка.ВПФ.МодульОбъекта(139)}: Метод объекта не обнаружен (Свернуть)
		ОбластьСтроки.Свернуть("ФизЛицо", "Сумма");

Что я делаю не так?

	//ЗаполняемСтроку:
	ОбластьСтроки	=	МакетОбработки.ПолучитьОбласть("Строка");	
	ОбластьИтога	=	МакетОбработки.ПолучитьОбласть("ИтогПоЛисту");
	ОбластьПодвала	=	МакетОбработки.ПолучитьОбласть("Подвал");

	//СсылкаНаОбъект.Состав Новый ТаблицаЗначений;
	//x.Свернуть("ФизическоеЛицо");
	
	Итератор = 0;
	Для Каждого Строка из СсылкаНаОбъект.Зарплата Цикл
		
	//Форматируем код сотрудника:
	  КодБезПрефикса	=	Строка.Сотрудник.Код;
       Пока Найти(КодБезПрефикса,"0") <> 1 Цикл
               КодБезПрефикса	=	Сред(КодБезПрефикса,2); //удаляет лидирующие ненули
		   КонецЦикла;
		   
       КодБезНулей	=	КодБезПрефикса;
       Пока Найти(КодБезНулей,"0") = 1 Цикл
                КодБезНулей	=	Сред(КодБезНулей,2); //удаляет лидирующие нули
			КонецЦикла;
       ОбработанныйКод	=	СтрЗаменить(КодБезНулей,"-","");
	//Код сотрудника отформатирован;
		
		итератор = итератор+1;
		ОбластьСтроки.Параметры.НомерСтроки			 =	Итератор;
		ОбластьСтроки.Параметры.ТабельныйНомер		 =	ОбработанныйКод;
		ОбластьСтроки.Параметры.ФизЛицо				 =	Строка.ФизическоеЛицо;
		ОбластьСтроки.Параметры.Сумма				 =	Строка.КВыплате;
		ОбластьСтроки.Параметры.ЗаписьОДепонировании =	"";	
		
		ОбластьСтроки.Свернуть("ФизЛицо", "Сумма");
		
		//ДобавляемРазделительСтраниц:
		Проверка = ТабличныйДокумент.ПроверитьВывод(ОбластьСтроки);	
		Если Не Проверка Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			ТабличныйДокумент.Вывести(ОбластьШапки);
			КоличествоСтраниц = КоличествоСтраниц+1;
		КонецЕсли;
		//РазделительСтраниц;
		
		Если Итератор = СсылкаНаОбъект.Зарплата.Количество() тогда
			Таб = новый Массив;
			Таб.Добавить(ОбластьСтроки);
			Таб.добавить(ОбластьИтога);
			Таб.Добавить(ОбластьПодвала);
			Проверка = ТабличныйДокумент.ПроверитьВывод(Таб);
			
		Если Не Проверка Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			ТабличныйДокумент.Вывести(ОбластьШапки);
			КоличествоСтраниц = КоличествоСтраниц+1;
		КонецЕсли;
	КонецЕсли;
	
	ТабличныйДокумент.Вывести(ОбластьСтроки);

	КонецЦикла;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user705522_constantin_h 35 29.04.18 17:20 Сейчас в теме
(1)
//СсылкаНаОбъект.Состав Новый ТаблицаЗначений;
//x.Свернуть("ФизическоеЛицо");

Итератор = 0;
Для Каждого Строка из СсылкаНаОбъект.Зарплата Цикл

Так попробуйте:

    //СсылкаНаОбъект.Состав Новый ТаблицаЗначений;
    //x.Свернуть("ФизическоеЛицо");
    
    СсылкаНаОбъект.Зарплата.Свернуть("ФизическоеЛицо", "КВыплате")
    Итератор = 0;
    Для Каждого Строка из СсылкаНаОбъект.Зарплата Цикл
3. hartman620 29.04.18 17:28 Сейчас в теме
(2)
Уже так пробовал, но увы
{ВнешняяОбработка.ВПФ.МодульОбъекта(113)}: Ошибка при вызове метода контекста (Свернуть)
	СсылкаНаОбъект.Зарплата.Свернуть("ФизическоеЛицо", "КВыплате");
по причине:
Объект недоступен для изменения.
4. user705522_constantin_h 35 29.04.18 17:34 Сейчас в теме
(3)Не сворачивает?
У этого документа сложная структура. В табличной части Состав ФизическиеЛица, а строкам присваивается УникальныйИдентификатор, по которому связываются табличные части Состав, Зарплата, НДФЛ. Может у вас дубли в табличной части Состав?
5. hartman620 29.04.18 18:04 Сейчас в теме
(4)я так понял не сворачивает тк не даёт внести изменение в типовую конфигурацию

Мне кажется возможный алгоритм действий таков:
1. Создать новую таблицу значений;
2. Заполнить её построчно из СсылкаНаОбъект.Зарплата (но тут сразу вопрос - как?);
3. Свернуть. (правда после свертки у меня похерятся порядковые номера "Итератор");
4. В печатную форму вывести таблицу значений (но тоже не представляю как и возможно ли это).

ещё как вариант создать новая табличнаячасть и как то запихать туда строки из СсылкаНаОбъект.Зарплата, затем свернуть её и после этого её вывести на печатную форму, правда это тоже только в голове, тк из-за малоопытности не представляю как это можно было бы реализовать.
Прикрепленные файлы:
6. hartman620 29.04.18 18:32 Сейчас в теме
В принципе есть ещё более простой способ:
при заполнении ОбластьСтроки.Параметры можно обратиться к предыдущей строке и сравнить, в случае равенства уже работать с ними, но тут возникает вопрос как обратиться к этой предыдущей строке и сравнить её с текущей?
7. Xershi 1490 29.04.18 21:45 Сейчас в теме
(6) по индексу. Или через переменную.
Оставьте свое сообщение

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