При переходе на клиент-сервер перестали формироваться внешние печатные формы.
При переходе на клиент-сервер перестали формироваться внешние печатные формы. Выдает ошибку "Значение не является значением объектного типа (Наименование)". Тип макета Табличный документ.
Функция СведенияОВнешнейОбработке() Экспорт
// Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
ПараметрыРегистрации = Новый Структура;
// Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
// Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
// Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Наименование", "ОписьЛичногоДела");
// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
// Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "ОписьЛичногоДела");
// Создадим таблицу команд (подробнее смотрим ниже)
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
"ОписьЛичногоДела",
"ОписьЛичногоДела",
"ВызовСерверногоМетода", //Использование. Варианты: "ОткрытиеФормы", "ВызовКлиентскогоМетода", "ВызовСерверногоМетода"
Ложь,//Показывать оповещение. Варианты Истина, Ложь
"ПечатьMXL");//Модификатор
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Функция ПолучитьТабличныйДокументСоглашение(Макет, МассивОбъектов, ОбъектыПечати, ВыводитьТорговыеТочки = Истина)
ДокументРезультат = Новый ТабличныйДокумент;
НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1;
ДокументРезультат.КлючПараметровПечати = "ПараметрыПечати_ОписьЛичногоДела";
МассивДанныхЗаполнения = ПолучитьДанныеДляПечатиСоглашение(МассивОбъектов);
ВывестиДанныСоглашениеВТабличныйДокумент(Макет, ДокументРезультат, МассивДанныхЗаполнения, ОбъектыПечати);
Возврат ДокументРезультат;
КонецФункции
Показать
(6)
Процедура ВывестиДанныСоглашениеВТабличныйДокумент(Макет, ТабличныйДокумент, МассивДанныхЗаполнения, ОбъектыПечати)
Если Макет <> Неопределено Тогда
ПервыйДокумент = Истина;
Для каждого ПараметрыМакета Из МассивДанныхЗаполнения Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Иначе
ПервыйДокумент = Ложь;
КонецЕсли;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
Макет.Параметры.Заполнить(ПараметрыМакета);
ТабличныйДокумент.Вывести(Макет);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ПараметрыМакета.Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево;
КонецЕсли;
КонецПроцедуры
Показать
(7)
Функция ПолучитьДанныеДляПечатиСоглашение(МассивОбъектов)
МассивСотрудников = Новый Массив;
МассивФизическихЛиц = Новый Массив;
Если ТипЗнч(МассивОбъектов[0]) = Тип("ДокументСсылка.ПриемНаРаботу") Тогда
Для каждого ПриемНаРаботу Из МассивОбъектов Цикл
МассивСотрудников.Добавить(ПриемНаРаботу.Сотрудник);
МассивФизическихЛиц.Добавить(ПриемНаРаботу.Сотрудник.ФизическоеЛицо);
КонецЦикла;
ИначеЕсли ТипЗнч(МассивОбъектов[0]) = Тип("СправочникСсылка.Сотрудники") Тогда
Для каждого Сотрудник Из МассивОбъектов Цикл
МассивСотрудников.Добавить(Сотрудник);
МассивФизическихЛиц.Добавить(Сотрудник.ФизическоеЛицо);
КонецЦикла;
КонецЕсли;
МассивПараметров = Новый Массив;
РеквизитыОрганизаций = Новый Соответствие;
ДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Ложь, МассивСотрудников, "Должность,ФИОПолные,ИНН,Пол,ДатаПриема,ДатаУвольнения, Организация", ТекущаяДатаСеанса());
ДанныеФизическихЛиц = КадровыйУчет.КадровыеДанныеФизическихЛиц(Ложь, МассивФизическихЛиц, "ДокументПредставление,СтраховойНомерПФР, АдресПоПропискеПредставление", ТекущаяДатаСеанса());
Для каждого Сотрудник Из МассивСотрудников Цикл
ПараметрыСотрудника = ПараметрыДанныеСотрудника();
ПараметрыСотрудника.Ссылка = Сотрудник;
ДанныеСотрудника = ДанныеСотрудников.Найти(Сотрудник, "Сотрудник");
ЗаполнитьЗначенияСвойств(ПараметрыСотрудника, ДанныеСотрудника);
ДанныеФизЛица = ДанныеФизическихЛиц.Найти(Сотрудник.ФизическоеЛицо, "ФизическоеЛицо");
ЗаполнитьЗначенияСвойств(ПараметрыСотрудника, ДанныеФизЛица);
Если НЕ ЗначениеЗаполнено(ДанныеСотрудника.Организация) Тогда
Сообщение = Новый СообщениеПользователю;
СообщениеТекст = НСтр("ru='У сотрудника %Замена% не удалось определить организацию'");
СообщениеТекст = СтрЗаменить(СообщениеТекст, "%Замена%", Сотрудник);
Сообщение.Текст = СообщениеТекст;
Сообщение.Сообщить();
Продолжить;
КонецЕсли;
РеквизитыОрганизации = ПолучитьРеквизитыОрганизации(РеквизитыОрганизаций, ДанныеСотрудника.Организация, ТекущаяДатаСеанса());
ЗаполнитьЗначенияСвойств(ПараметрыСотрудника, РеквизитыОрганизации);
МассивПараметров.Добавить(ПараметрыСотрудника);
КонецЦикла;
Возврат МассивПараметров;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот