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