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