Печатная форма БСП формируется пустой документ
В модуль менеджере документа создал
В форму документа добавил
В Общий модуль "УправлениеПечатьюПереопределяемый" добавил
В Общие модули "УправлениеПечатьюКлиент" и "УправлениеПечатьюСервер" добавил команды для печати
Но при всём этом формируется пустой документ Word
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "СЭ_УправлениеПечатьюКлиент.Г_ПечатьДокументДоговорОПолнойМатОтв";
КомандаПечати.МенеджерПечати = "";
КомандаПечати.Идентификатор = "ПФ_DOC_ДоговорОПолнойИндивидуальнойМатериальнойОтветственно стиMicrosoftWord_ru";
КомандаПечати.Представление = НСтр("ru = '(Г) Договор о полной индивидуальной материальной ответственности (Microsoft Word)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецПроцедуры
ПоказатьВ форму документа добавил
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
Показать&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
В Общий модуль "УправлениеПечатьюПереопределяемый" добавил
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
СписокОбъектов.Добавить(Документы.СЭ_ДоговорМОЛ_Индивидуальный);
КонецПроцедуры
В Общие модули "УправлениеПечатьюКлиент" и "УправлениеПечатьюСервер" добавил команды для печати
#Область Документ_ПолнаяИндивидуальнаяМатОтв_
Функция Г_ПечатьДокументДоговорОПолнойМатОтв(ОписаниеКоманды) Экспорт
Если ОписаниеКоманды.Идентификатор = "ПФ_DOC_ДоговорОПолнойИндивидуальнойМатериальнойОтветственно стиMicrosoftWord_ru" Тогда
Г_ПечатьОбИндивидМатОтвMicrosoftWord(ОписаниеКоманды);
КонецЕсли;
КонецФункции
Функция Г_ПечатьОбИндивидМатОтвMicrosoftWord(ОписаниеКоманды)
Для Каждого ДокументСсылка Из ОписаниеКоманды.ОбъектыПечати Цикл
Попытка
ИмяМакета = "ПФ_DOC_ДоговорОПолнойИндивидуальнойМатериальнойОтветственно стиMicrosoftWord_ru";
ТипМакета = "doc";
Прогресс = 1;
Состояние(НСтр("ru = 'Выполняется формирование печатных форм'"), Прогресс);
МакетИДанныеОбъекта = СЭ_УправлениеПечатьюСервер.МакетыИДанныеОбъектовДляПечати("Документ.СЭ_ДоговорМОЛ_Индивидуальный", ИмяМакета, ОписаниеКоманды.ОбъектыПечати);
ДанныеОбъекта = МакетИДанныеОбъекта.ДанныеОбъекта;
ДвоичныеДанныеМакетов = МакетИДанныеОбъекта.Макеты.ДвоичныеДанныеМакетов;
Области = МакетИДанныеОбъекта.Макеты.ОписаниеСекций;
ОчиститьСообщения();
Макет = УправлениеПечатьюКлиент.ИнициализироватьМакетОфисногоДокумента(ДвоичныеДанныеМакетов[ИмяМакета], ТипМакета, ИмяМакета);
ПечатнаяФорма = УправлениеПечатьюКлиент.ИнициализироватьПечатнуюФорму(ТипМакета, Макет.НастройкиСтраницыМакета, Макет);
Прогресс = 20;
Состояние(НСтр("ru = 'Выполняется формирование печатных форм'"), Прогресс);
//Вколонтитул
Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["ВерхнийКолонтитул"]);
УправлениеПечатьюКлиент.ПрисоединитьОбласть(ПечатнаяФорма, Область, Ложь);
//Заголовок
Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["Заголовок"]);
УправлениеПечатьюКлиент.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта.ДанныеЗаголовка, Ложь);
Прогресс = 50;
Состояние(НСтр("ru = 'Выполняется формирование печатных форм'"), Прогресс);
//ОбщийТекст1
//Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["ОбщийТекст1"]);
//УправлениеПечатьюКлиент.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта.ДанныеОбщийТекст1, Ложь);
//
////СтрокаРуководительПодразделения
//Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["СтрокаРуководительПодразделения"]);
//УправлениеПечатьюКлиент.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта.СтрокаРуководительПодразделения, Ложь);
//
////СтрокаКоммиссии
//Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["СтрокаЧленовКоммиссии"]);
//УправлениеПечатьюКлиент.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеОбъекта.СтруктураЧК, Ложь);
Прогресс = 100;
Состояние(НСтр("ru = 'Формирование печатной формы завершено'"), Прогресс);
УправлениеПечатьюКлиент.ПоказатьДокумент(ПечатнаяФорма);
ОчиститьСообщения();
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
УправлениеПечатьюКлиент.ОчиститьСсылки(ПечатнаяФорма);
УправлениеПечатьюКлиент.ОчиститьСсылки(Макет);
Возврат Ложь;
КонецПопытки;
УправлениеПечатьюКлиент.ОчиститьСсылки(ПечатнаяФорма, Ложь);
УправлениеПечатьюКлиент.ОчиститьСсылки(Макет);
КонецЦикла;
КонецФункции
#КонецОбласти
ПоказатьФункция ПолучитьДанныеОбъектаПоМакетуПечатьОбИндивидОтв(МассивОбъектов, ИмяМакета)
СсылкаНаОбъект = МассивОбъектов[0];
Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.СЭ_ДоговорМОЛ_Индивидуальный") Тогда
Объект = СсылкаНаОбъект;
ДанныеОбъекта = Новый Структура;
СЭ_Номер = "№ " + Объект.Номер;
ДанныеЗаголовка = Новый Структура;
ДанныеЗаголовка.Вставить("Дата", Формат(Объект.Дата, "ДФ=dd.MM.yyyy"));
ДанныеЗаголовка.Вставить("Номер", СЭ_Номер);
ФИОСотрудника = СЭ_ПолучитьСклонение(Объект.Сотрудник,"ПД=Родительный", Ложь);
ФИОСотрудникаИн = СЭ_ПолучитьСклонение(Объект.Сотрудник,"ПД=Дательный", Ложь);
ДанныеЗаголовка.Вставить("ФИОСотрудника", СЭ_ФамилияИнициалы(ФИОСотрудника));
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПрогулНеявка.Сотрудник.ФизическоеЛицо.Пол КАК СотрудникФизическоеЛицоПол
|ИЗ
| Документ.ПрогулНеявка КАК ПрогулНеявка
|ГДЕ
| ПрогулНеявка.Сотрудник.ФизическоеЛицо.Пол = &Пол";
Запрос.УстановитьПараметр("Пол",Объект.Сотрудник.ФизическоеЛицо.Пол);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
ПолЗапрос = Строка(Объект.Сотрудник.ФизическоеЛицо.Пол);
ПолМ = "Мужской";
Если ПолЗапрос = ПолМ Тогда
ДанныеЗаголовка.Вставить("Согл","Согласен");
Иначе
ДанныеЗаголовка.Вставить("Согл","Согласна");
КонецЕсли;
//ДокументОснования
//ДокументОснование = "";
//НомерСтроки = 1;
//Для каждого СтрокаТЗ ИЗ Объект.СЭ_ОснованияДляПриказа Цикл
// Если НЕ ПустаяСтрока(СтрокаТЗ.ТекстДляПечати) Тогда
// СЭ_Шаблон = СокрЛП(НомерСтроки) + ". " + СтрокаТЗ.ТекстДляПечати;
// Если ЗначениеЗаполнено(СтрокаТЗ.НомерОснования) Тогда
// СЭ_Шаблон = СЭ_Шаблон + " № " + СтрокаТЗ.НомерОснования;
// КонецЕсли;
// Если ЗначениеЗаполнено(СтрокаТЗ.ДатаОснования) Тогда
// СЭ_Шаблон = СЭ_Шаблон + " от " + Формат(СтрокаТЗ.ДатаОснования, "ДФ=dd.MM.yyyy");
// КонецЕсли;
// ДокументОснование = ДокументОснование + СЭ_Шаблон + "." + Символы.ПС;
// НомерСтроки = НомерСтроки + 1;
// КонецЕсли;
//КонецЦикла;
//ДанныеЗаголовка.Вставить("ДокументОснование", СокрП(ДокументОснование));
//ДанныеСотрудника
ДанныеСотрудника = "";
МассивСотрудников = Новый Массив;
МассивСотрудников.Добавить(Объект.Сотрудник);
КЛ = СотрудникиФормы.КлючиСтруктурыТекущихКадровыхДанныхСотрудника();
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудников, КЛ, Объект.Дата,,Ложь);
Если КадровыеДанные.Количество() > 0 Тогда
КадрДанные = КадровыеДанные[0];
ПредставлениеИмени = СЭ_ПолучитьСклонение(Объект.Сотрудник,"ПД=Винительный", Ложь);
ПредставлениеИмени = ПреобразоватьФамилиюВВерхнийРегистр(ПредставлениеИмени);
СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Объект.Сотрудник.Код, Истина, Истина);
Если ПустаяСтрока(СЭ_ТабНомер) Тогда
СЭ_ТабНомер = СокрЛП(Объект.Сотрудник.Код);
СЭ_ТабНомер = УбратьНечисловые(СЭ_ТабНомер);
КонецЕсли;
Должность = СЭ_ПолучитьСклонение(КадрДанные.ТекущаяДолжность,"ПД=Винительный");
СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(Объект.Сотрудник, Объект.Дата);
СотрудникКатегория = Лев(СотрудникКатегория, СтрДлина(СотрудникКатегория) - 1);
Подразделение = " " + СЭ_ПолучитьСклонение(КадрДанные.ТекущееПодразделение,"ПД=Родительный");
ДанныеСотрудника = ПредставлениеИмени + ", таб. № " + СЭ_ТабНомер + " - " + Должность + СотрудникКатегория + Подразделение;
ДанныеЗаголовка.Вставить("ДанныеСотрудника", ДанныеСотрудника);
ДанныеЗаголовка.Вставить("СтрокаРуководительПодразделения", Рук);
ДанныеЗаголовка.Вставить("Подразделение", Подразделение);
КонецЕсли;
ДанныеЗаголовка.Вставить("Сотрудник" , ФизическиеЛицаКлиентСервер.ФамилияИнициалы(Объект.Сотрудник.Наименование));
//ИнСот = СЭ_ПолучитьСклонение(,"ПД=Дательный");
ДанныеЗаголовка.Вставить("СотИн" ,СЭ_ФамилияИнициалы(ФИОСотрудникаИн));
ДанныеОбъекта.Вставить("ДанныеЗаголовка", ДанныеЗаголовка);
Возврат ДанныеОбъекта;
КонецЕслИ;
КонецФункции
#КонецОбласти
ПоказатьНо при всём этом формируется пустой документ Word
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот