Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

1С 8.3 Формирование печатной формы

1С 8.3 Формирование печатной формы
Я
   andmerc
 
20.05.19 - 15:12
Добрый день, есть готовая обработка формирования печатных форм направлений. Печает каждое направление(каждую номенклатурную позицию) с отдельной шапкой, т.е. отдельным самостоятельным документом. Нужно переделать так чтобы строки по одному человеку выводились под общей шапкой. Пример: https://i109.fastpic.ru/big/2019/0520/18/83a966ea2c3078fc693757be6f427018.png

У нас есть вот такая процедура, я понимаю что цикл проходит по каждому значению, но как переделать не понимаю.

Процедура СформироватьСервер()
    ЭтотОбъект.Результат.Очистить();
    
    Макет_ = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
    
    ОбластьЗаголовок_ = Макет_.ПолучитьОбласть("Заголовок");
    ОбластьШапка_ = Макет_.ПолучитьОбласть("Шапка");
    ОбластьШапкаТаблицы_ = Макет_.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьСтрока = Макет_.ПолучитьОбласть("Строка");
    УслугиОтделения_ = ПолучитьУслугиДокумента();
    
    Для Каждого Услуга_ Из УслугиОтделения_ Цикл                    
        ОбластьЗаголовок_.Параметры.Подразделение = Услуга_.Подразделение;
        ЭтотОбъект.Результат.Вывести(ОбластьЗаголовок_);
        ДанныеПациента_ = Регистратура.ПолучитьДанныеПациента(Услуга_.Пациент, ТекущаяДатаСеанса());
        ОбластьШапка_.Параметры.Заполнить(ДанныеПациента_.ФИО);
        ОбластьШапка_.Параметры.Заполнить(Услуга_);
        ОбластьШапка_.Параметры.ЛечащийВрач = ПолучитьНазначившегоВрача(Услуга_.Документ);
        ОбластьШапка_.Параметры.МедицинскаяКарта = Услуга_.Документ.МедицинскаяКарта.НомерКартыПредставление;
        ТабличныйДокумент_ = Новый ТабличныйДокумент;
        ТабличныйДокумент_.Вывести(ОбластьШапка_);
        
        ОбластьСтрока.Параметры.Заполнить(Услуга_);
        
        ТабличныйДокумент_.Вывести(ОбластьСтрока);
        
        Если Не ЭтотОбъект.Результат.ПроверитьВывод(ТабличныйДокумент_) тогда
            ЭтотОбъект.Результат.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ЭтотОбъект.Результат.Вывести(ТабличныйДокумент_);
    КонецЦикла;
КонецПроцедуры
 
 
   Eg0rkas
 
1 - 20.05.19 - 15:36
как вариант, завести переменную, в которую заносим значение ФИО, потом делаем условие, если ДанныеПациента_.ФИО = нашапеременнаясФИО, тогда не создаем новый табличный документ, а просто заполняем новыми параметрами

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.