Помогите добавить в код:
Процедура Кнопка4 - формирует отчет исходя из: сотрудника и ведомого им контрагента. Выдав в виде таблицы всех пациент из базы, проходящих по этому контрагенту за период.
Процедура Кнопка1 - формирует другой отчет в общем виде: сотрудники и ведомые за ними контрагенты.
Можно ли пересчитать количество пациентов, проходящих по контрагенту, и падающих в отчет по Кнопке4, в дополнительный столбец общего отчета : (кнопка1)
ИИ
Здесь код обеих процедур, но куда добавить цикл, считающий пациентов ?

PHP код:
Процедура Кнопка4Нажатие(Элемент)
    
    
ТабДок Новый ТабличныйДокумент();    
    
Макет ПолучитьМакет("Макет");    
    
    
Область Макет.ПолучитьОбласть("Шапка");    
    
Область.Параметры.УслП "Отчет по оказанным услугам юр. лицам за период с " Строка(НачПериода) + " по " Строка(КонПериода) ;
    
    
Если ПолеВвода1.Пустая() Тогда
        Область
.Параметры.Стр2 "По всем организациям";
    
Иначе
        Область
.Параметры.Стр2 "Организация: " Строка(ПолеВвода1);        
    
КонецЕсли;    
    
    
Если ПолеВвода3.Пустая() Тогда
        Область
.Параметры.Стр3 "";
    
Иначе
        Область
.Параметры.Стр3 "Менеджер по продажам: " Строка(ПолеВвода3);        
    
КонецЕсли;    
    
    
Если ПолеВвода4.Пустая() Тогда
        Область
.Параметры.Стр4 "";
    
Иначе
        Область
.Параметры.Стр4 "Менеджер поддержки: " Строка(ПолеВвода4);        
    
КонецЕсли;    
    
    
ТабДок.Вывести(Область);    
    
    
    
Запрос Новый Запрос;
    
Запрос.Текст =
         
"ВЫБРАТЬ
         |    СУММА(НазначениеНаОсмотр.СуммаДокумента) КАК СуммаДокумента,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Код КАК Код,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Наименование КАК Владелец,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка КАК ВладелецСсылка,
         |    НазначениеНаОсмотр.Организация.Ссылка,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам КАК МенПрод,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки КАК МенПодд
         |ИЗ
         |    Документ.НазначениеНаОсмотр КАК НазначениеНаОсмотр
         |ГДЕ
         |    НазначениеНаОсмотр.Дата >= &ДатаНач
         |    И НазначениеНаОсмотр.Дата <= &ДатаКон
         |    И НазначениеНаОсмотр.Проведен = &Истина
         |    И НазначениеНаОсмотр.ВыставитьКОплате = &Ист
         |    И НазначениеНаОсмотр.ОсновнойДоговор.ВидДоговора = &ВидДог"
;
         
         
         
        
Если не ПолеВвода1.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.Организация.Ссылка = &Орг" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Орг"ПолеВвода1);
        
        
Если не ПолеВвода2.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка = &Контрагент" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Контрагент"ПолеВвода2);
        
        
Если не ПолеВвода3.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам = &Мен1" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен1"ПолеВвода3);
        
        
Если не ПолеВвода4.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки = &Мен2" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен2"ПолеВвода4);
         
         
         
        
Запрос.Текст Запрос.Текст +                   
        
"
         |СГРУППИРОВАТЬ ПО
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Код,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Наименование,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка,
         |    НазначениеНаОсмотр.Организация.Ссылка,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки
         |
         |УПОРЯДОЧИТЬ ПО
         |    Владелец"
;
        
         
        
Запрос.УстановитьПараметр("ДатаНач"НачПериода);
        
Запрос.УстановитьПараметр("ДатаКон"КонПериода);    
        
Запрос.УстановитьПараметр("Истина"Истина);    
        
Запрос.УстановитьПараметр("Ист"Ложь);
        
Запрос.УстановитьПараметр("ВидДог"Перечисления.ВидДоговора.Предприятие);        
    
    
        
Результат Запрос.Выполнить().Выбрать();
        
        
н 1;
        
СумОбщ 0;
        
Пока Результат.Следующий() цикл
            
            Область 
Макет.ПолучитьОбласть("Строка");    
            
Область.Параметры.н н;        
            
Область.Параметры.КонтрагентП Результат.Владелец;
            
Область.Параметры.СуммаП Результат.СуммаДокумента;
            
Область.Параметры.МенПродП Результат.МенПрод;            
            
Область.Параметры.ЭкономистП Результат.МенПодд;                        
            
СумОбщ СумОбщ Результат.СуммаДокумента;
            
            
ТабДок.Вывести(Область);
            
н н 1;
            
        
КонецЦикла;
        
        
Область Макет.ПолучитьОбласть("Подвал");    
        
Область.Параметры.СумОбщП =  СумОбщ;
        
ТабДок.Вывести(Область);
            
        
Табдок.Показать("Краткий финансовый отчет");        
    
КонецПроцедуры

Процедура ПриОткрытии
()
    
    
Орг Справочники.Организации.Выбрать();
    
Пока Орг.Следующий() Цикл 
        Если Орг
.Основная Истина Тогда
                
            ПолеВвода1 
Орг.Ссылка;
            
Прервать;
            
        
КонецЕсли;
    
КонецЦикла;
    
ЭлементыФормы.Флажок1.Значение Ложь;
    
КонецПроцедуры




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

Процедура ВыбПериодНажатие
(Элемент)
    
НастройкаПериода Новый НастройкаПериода;
    
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01'КонПериодаКонецДня(КонПериода)));
    
НастройкаПериода.РедактироватьКакИнтервал Истина;
    
НастройкаПериода.РедактироватьКакПериод Истина;
    
НастройкаПериода.ВариантНастройки ВариантНастройкиПериода.Период;
    
Если НастройкаПериода.Редактировать() Тогда
        НачПериода 
НастройкаПериода.ПолучитьДатуНачала();
        
КонПериода НастройкаПериода.ПолучитьДатуОкончания();
    
КонецЕсли;
КонецПроцедуры


НачПериода 
НачалоМесяца(ТекущаяДата());
КонПериода ТекущаяДата();