Всем привет.
У меня есть некоторые условия в запросе, и если они не выполняются, тогда соответственно запрос пустой и я возвращаю ТабДок. Но у меня выводится пустой табличный документ, что логично. А мне нужно, чтобы выводилось "Печатная форма недоступна", но не сообщением пользователю, а стандартным средством. Как это сделать? Что нужно вернуть?
У меня есть некоторые условия в запросе, и если они не выполняются, тогда соответственно запрос пустой и я возвращаю ТабДок. Но у меня выводится пустой табличный документ, что логично. А мне нужно, чтобы выводилось "Печатная форма недоступна", но не сообщением пользователю, а стандартным средством. Как это сделать? Что нужно вернуть?
По теме из базы знаний
- Печатные формы КС-2 и КС-3 в "1С:Бухгалтерия 3.0"
- Внешние печатные формы Т-60 и Т-61. Только кадровые данные без вывода начислений. Конфигурации ЗУП 3.1.9.ххх / ERP 2.4.7.ххх
- Конвертируем печатную форму pdf в картинку (jpg, gif, png и прочие) на сервере
- Автоматическое сохранение печатных форм подписанных входящих документов 1С:ЭДО для 1С:Бухгалтерии 3.0 с отметками ЭП при подписании получателем
- Печатная форма реестра платежей по обязательствам перед контрагентами
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6) Да, действительно, у меня высота > 0, только не пойму, где это происходит. У меня по сути, он никак нигде не заполняется, если под условия не подходит..
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Назначение.Добавить("Документ.ПриемНаРаботу");
ПараметрыРегистрации.Назначение.Добавить("Документ.ПриемНаРаботуСписком");
ПараметрыРегистрации.назначение.Добавить("Документ.КадровыйПеревод");
ПараметрыРегистрации.назначение.Добавить("Документ.КадровыйПереводСписком");
// Блок описания команд
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Согласие на передачу ПД_ВЭ Софт бизнес'");
НоваяКоманда.Идентификатор = "Макет";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
// Интерфейс для выполнения команд обработки.
//
// ВХОДЯЩИЕ:
// МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать.
//
// ИСХОДЯЩИЕ:
// КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы.
// ОшибкиПечати - Список значений - Ошибки печати (значение - ссылка на объект, представление - текст
// ошибки).
// ОбъектыПечати - Список значений - Объекты печати (значение - ссылка на объект, представление - имя
// области в которой был выведен объект).
// ПараметрыВывода - Структура - Параметры сформированных табличных документов.
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Макет") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"Макет",
НСтр("ru = 'Макет'"),
СформироватьТабличныйДокумент(МассивОбъектов[0], ОбъектыПечати, ЭтотОбъект.ПолучитьМакет("Макет")),
,
);
КонецЕсли;
КонецПроцедуры
Функция СформироватьПечатнуюФорму (МассивОбъектов) Экспорт
ОбъектыПечати = Новый СписокЗначений;
ПараметрыВывода = Неопределено;
ТабДок = СформироватьТабличныйДокумент(МассивОбъектов[0], ОбъектыПечати, ЭтотОбъект.ПолучитьМакет("Макет"));
Возврат ТабДок;
КонецФункции
Функция СформироватьТабличныйДокумент(МассивОбъектов, ОбъектыПечати, Макет)
СсылкаНаОбъект = МассивОбъектов;
ТабДок = Новый ТабличныйДокумент;
БизнесНаправлениеАТП = Справочники.ЗначенияСвойствОбъектов.ПолучитьСсылку(Новый УникальныйИдентификатор("763f9631-c849-11e6-9dcd-5ef3fce043ff"));
ГКСельта = Справочники.Организации.ПолучитьСсылку(Новый УникальныйИдентификатор("3301aff8-e398-11dc-9a43-00304834307b"));
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЕСТЬNULL(ПриемНаРаботу.ФизическоеЛицо.ФИО, """") КАК ФизическоеЛицоФИО,
| ВЫБОР
| КОГДА ДополнительныеСведения.Значение = &БизнесНаправлениеАТП
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК БизнесНаправлениеАТП,
| ВЫБОР
| КОГДА Организации.Ссылка = &ГКСельта
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ГКСельта
|ИЗ
| Документ.ПриемНаРаботу КАК ПриемНаРаботу
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
| ПО (ВЫРАЗИТЬ(ДополнительныеСведения.Объект КАК Справочник.Организации).Ссылка = ПриемНаРаботу.Ссылка.Организация)
| И (ДополнительныеСведения.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.БизнесНаправление))
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО ПриемНаРаботу.Организация.ГоловнаяОрганизация = Организации.Ссылка
|ГДЕ
| ПриемНаРаботу.Ссылка = &Ссылка";
Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.ПриемНаРаботуСписком") Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Документ.ПриемНаРаботу КАК ПриемНаРаботу", "Документ.ПриемНаРаботуСписком.Сотрудники КАК ПриемНаРаботуСпискомСотрудники");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПриемНаРаботу.Организация", "ПриемНаРаботуСпискомСотрудники.Ссылка.Организация");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПриемНаРаботу.", "ПриемНаРаботуСпискомСотрудники.");
ИначеЕсли ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.КадровыйПеревод") Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПриемНаРаботу", "КадровыйПеревод");
ИначеЕсли ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.КадровыйПереводСписком") Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Документ.ПриемНаРаботу КАК ПриемНаРаботу", "Документ.КадровыйПереводСписком.Сотрудники КАК КадровыйПереводСпискомСотрудники");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПриемНаРаботу.Организация", "КадровыйПереводСпискомСотрудники.Ссылка.Организация");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПриемНаРаботу.", "КадровыйПереводСпискомСотрудники.");
КонецЕсли;
Запрос.УстановитьПараметр("Ссылка" , СсылкаНаОбъект);
Запрос.УстановитьПараметр("ГКСельта" , ГКСельта);
Запрос.УстановитьПараметр("БизнесНаправлениеАТП", БизнесНаправлениеАТП);
Результат = Запрос.Выполнить();
Область = Макет.ПолучитьОбласть("Данные");
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.БизнесНаправлениеАТП Или Выборка.ГКСельта Тогда
Область.Параметры.ФИОСотрудника = Выборка.ФизическоеЛицоФИО;
ТабДок.Вывести(Область);
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
Иначе
ТекстСообщения = "Вывод печатной формы возможен только для организаций с бизнес-направлением ""АТП"" или для организаций, с головной организацией ГК ""Сельта"".";
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
Возврат ТабДок;
КонецЕсли;
КонецЦикла;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.АвтоМасштаб = Истина;
Возврат ТабДок;
КонецЕсли;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот