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