New the layout and output processing
Closed this issue · 2 comments
pozitr0n commented
Tasks:
- Create the layout
- Create the output processing
- Create the right request to get the ДолжностьДоПеревода
- Combine all the fields
- Test the layout and processing
pozitr0n commented
Some modules:
#Если Клиент Тогда
Функция Печать() Экспорт
АктивныйДокумент = ПолучитьМакет("ПФ_DOC_ПереводСотрудника").Получить();
ПечатьВВорд(СсылкаНаОбъект.ПолучитьОбъект(), АктивныйДокумент);
КонецФункции
Процедура ПечатьВВорд(Объект, КомОбъект, НаПринтер = Ложь, Ворд = Неопределено) Экспорт
//Проверка документа
Если Объект.ЭтоНовый() Тогда
Предупреждение("Документ можно распечатать только после его записи");
Возврат;
ИначеЕсли Не УправлениеПользователями.РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен) Тогда
Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
Возврат;
КонецЕсли;
Если Не РаботаСДиалогами.ПроверитьМодифицированность(Объект) Тогда
Возврат;
КонецЕсли;
//------------------
Попытка
СоответствиеРеквизитов = Новый Соответствие;
СоответствиеРеквизитов = ДополнитьРеквизитами_МН(Объект.Ссылка, СоответствиеРеквизитов);
Для Каждого ЭлементСоответствия Из СоответствиеРеквизитов Цикл
//Сообщить(Строка(ЭлементСоответствия.Ключ) + " - " + Строка(ЭлементСоответствия.Значение));
ЗначениеВЗакладку(КомОбъект, ЭлементСоответствия.Ключ, ЭлементСоответствия.Значение);
КонецЦикла;
//Вывод документа
КомОбъект.Application.Visible=1;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Функция ДополнитьРеквизитами_МН(Документ, Результат)
Перем НоваяСтрока;
//////////////
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
| РаботникиОрганизацийСрезПоследних.Должность
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ПараметрДата, ) КАК РаботникиОрганизацийСрезПоследних";
Запрос.УстановитьПараметр("ПараметрДата", Документ.Дата - 1);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;
//////////////
Результат = Новый Соответствие;
Результат.Вставить("ДатаПриказа",Формат(Документ.ДатаПриказа, "Дф=dd.MM.yyyy"));
Если ЗначениеЗаполнено(Документ.ПриказНомерСквозной) Тогда
НомерПриказа = "N " + Документ.ПриказНомерСквозной + "-к";
Результат.Вставить("НомерПриказа", НомерПриказа);
КонецЕсли;
Результат.Вставить("ФИО_Сотрудника",ОбщегоНазначенияЛокализация.Падеж(Строка(Документ.ФизЛицо),2,3,"123"));
Результат.Вставить("ФИО_Сотр", ОбщегоНазначенияЛокализация.Падеж(Строка(Документ.ФизЛицо),-2,"123"));
Результат.Вставить("Сотрудника_ФИО", ОбщегоНазначенияЛокализация.Падеж(Строка(Документ.ФизЛицо),-1,"123"));
// Вывод основных данных: до и после перевода
//
//Данные до перевода
Результат.Вставить("ДолжностьДоПеревода", "заместителя директора");
Результат.Вставить("МагазинДоПеревода", Документ.ПодразделениеИсходное.Наименование);
Результат.Вставить("АдресМагазинаДоПеревода", Документ.ПодразделениеИсходное.АдресПодразделения);
//Данные после перевода
Результат.Вставить("ДолжностьПослеПеревода", Документ.Должность);
Результат.Вставить("МагазинПослеПеревода", Документ.ПодразделениеОрганизации);
Результат.Вставить("АдресМагазинаПослеПеревода", Документ.ПодразделениеОрганизации.АдресПодразделения);
Результат.Вставить("ДатаПеремещения", Формат(Документ.ДатаПеремещения,"Дф=dd.MM.yyy"));
Результат.Вставить("ДатаЗаявления", Формат(Документ.ДатаПриказа, "Дф=dd.MM.yyy"));
Результат.Вставить("ДатаТрудовогоДоговора", Формат(Документ.ДатаТрудовогоДоговора, "Дф=dd.MM.yyy"));
Результат.Вставить("НомерТрудовогоДоговора", Документ.НомерТрудовогоДоговора);
Результат.Вставить("ФамилияОзнакомлен", "_____________ " + ОбщегоНазначенияЛокализация.Падеж(Строка(Документ.ФизЛицо),-2,"123"));
Результат.Вставить("ДатаОзнакомлен", "__________.2016");
Возврат Результат;
КонецФункции
Процедура ЗначениеВЗакладку(Документ, Закладка, Значение) Экспорт
Попытка
Документ.Bookmarks(СокрЛП(Закладка)).Select();
Врем=СокрЛП(Значение);
Документ.Application.Selection.Text = Врем;
Исключение
//Сообщить("Не найдена закладка! "+Закладка,СтатусСообщения.Важное);
//Сообщить(ОписаниеОшибки(),СтатусСообщения.Важное);
КонецПопытки;
КонецПроцедуры
#КонецЕсли
pozitr0n commented
Finished!