alturgrey
15.05.2014, 10:10
Помогите добавить в код:
Процедура Кнопка4 - формирует отчет исходя из: сотрудника и ведомого им контрагента. Выдав в виде таблицы всех пациент из базы, проходящих по этому контрагенту за период.
Процедура Кнопка1 - формирует другой отчет в общем виде: сотрудники и ведомые за ними контрагенты.
Можно ли пересчитать количество пациентов, проходящих по контрагенту, и падающих в отчет по Кнопке4, в дополнительный столбец общего отчета : (кнопка1)
ИИ
Здесь код обеих процедур, но куда добавить цикл, считающий пациентов ?
Процедура Кнопка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', КонПериода, КонецДня(КонПериода)));
НастройкаПериода.Редактир� �ватьКакИнтервал = Истина;
НастройкаПериода.Редактир� �ватьКакПериод = Истина;
НастройкаПериода.ВариантН� �стройки = ВариантНастройкиПериода.П� �риод;
Если НастройкаПериода.Редактир� �вать() Тогда
НачПериода = НастройкаПериода.Получить� �атуНачала();
КонПериода = НастройкаПериода.Получить� �атуОкончания();
КонецЕсли;
КонецПроцедуры
НачПериода = НачалоМесяца(ТекущаяДата()) ;
КонПериода = ТекущаяДата();
Процедура Кнопка4 - формирует отчет исходя из: сотрудника и ведомого им контрагента. Выдав в виде таблицы всех пациент из базы, проходящих по этому контрагенту за период.
Процедура Кнопка1 - формирует другой отчет в общем виде: сотрудники и ведомые за ними контрагенты.
Можно ли пересчитать количество пациентов, проходящих по контрагенту, и падающих в отчет по Кнопке4, в дополнительный столбец общего отчета : (кнопка1)
ИИ
Здесь код обеих процедур, но куда добавить цикл, считающий пациентов ?
Процедура Кнопка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', КонПериода, КонецДня(КонПериода)));
НастройкаПериода.Редактир� �ватьКакИнтервал = Истина;
НастройкаПериода.Редактир� �ватьКакПериод = Истина;
НастройкаПериода.ВариантН� �стройки = ВариантНастройкиПериода.П� �риод;
Если НастройкаПериода.Редактир� �вать() Тогда
НачПериода = НастройкаПериода.Получить� �атуНачала();
КонПериода = НастройкаПериода.Получить� �атуОкончания();
КонецЕсли;
КонецПроцедуры
НачПериода = НачалоМесяца(ТекущаяДата()) ;
КонПериода = ТекущаяДата();