|
"Печатная форма недоступна" (внешняя обработка) | ☑ | ||
---|---|---|---|---|
0
Надяша
14.01.20
✎
15:08
|
Печатная форма недоступна
|
|||
1
Надяша
14.01.20
✎
15:09
|
//**********************************************************
Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; МассивНазначений.Добавить("Документ.ИндексацияЗаработка"); ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", "Дополнительное соглашение индексация заработка"); ПараметрыРегистрации.Вставить("Версия", "2.0"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); ПараметрыРегистрации.Вставить("Информация", "Внешняя печатная форма «Дополнительное соглашение индексация заработка» для документа «Индексация заработка»"); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Дополнительное соглашение индексация заработка", "Дополнительное соглашение индексация заработка", "ВызовСерверногоМетода", Истина, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции // СведенияОВнешнейОбработке() Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры // ПРОЦЕДУРЫ И ФУНКЦИИ ФОРМИРОВАНИЯ ПЕЧАТНЫХ ФОРМ Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Дополнительное соглашение индексация заработка") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Дополнительное соглашение индексация заработка", "Дополнительное соглашение индексация заработка", СформироватьПечатнуюФормуДополнительногоСоглашения(МассивОбъектов, ОбъектыПечати)); КонецЕсли; //КоллекцияПечатныхФорм = СформироватьПечатнуюФормуДополнительногоСоглашения(МассивОбъектов, ОбъектыПечати); КонецПроцедуры Функция СформироватьПечатнуюФормуДополнительногоСоглашения(МассивОбъектов, ОбъектыПечати) УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.РазмерКолонтитулаСверху = 0; ТабличныйДокумент.РазмерКолонтитулаСнизу = 0; ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; Макет = ПолучитьМакет("ПФ_MXL_ДополнительноеСоглашение"); ДанныеДляПечати = ДанныеДляПечатиДополнительногоСоглашения(МассивОбъектов); ВывестиДанныеДополнительногоСоглашенияВТабличныйДокумент(Макет, ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати); Возврат ТабличныйДокумент; КонецФункции Функция ДанныеДляПечатиДополнительногоСоглашения(МассивОбъектов) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Документ.Ссылка КАК Ссылка, | Документ.Номер КАК Номер, | Документ.Организация КАК Организация, | Документ.Дата КАК ДатаНачала, //ДатаПриказа, //| Документ.МесяцИндексации КАК МесяцИндексации, | Документ.Руководитель.Пол КАК РуководительПол, | Документ.Руководитель.ФИО КАК Руководитель, | Документ.ДолжностьРуководителя.Наименование КАК ДолжностьРуководителя, | ДолжностиДополнительныеРеквизиты.Значение КАК ДокументОснование |ИЗ | Документ.ИндексацияЗаработка КАК Документ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Должности.ДополнительныеРеквизиты КАК ДолжностиДополнительныеРеквизиты | ПО Документ.ДолжностьРуководителя = ДолжностиДополнительныеРеквизиты.Ссылка | И (ДолжностиДополнительныеРеквизиты.Свойство = &ДопСвойствоДолжность) |ГДЕ | Документ.Ссылка В(&МассивОбъектов) | |УПОРЯДОЧИТЬ ПО | Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Сотрудники.Ссылка КАК Ссылка, | Сотрудники.Сотрудник КАК Сотрудник, | Сотрудники.Сотрудник.Код КАК ТабНомер, | Сотрудники.ДатаИзменения КАК ДатаИзменения, | Сотрудники.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо, | ПоказателиСотрудников.Показатель КАК Показатель, | ПРЕДСТАВЛЕНИЕССЫЛКИ(ПоказателиСотрудников.Показатель) КАК ПоказательПредставление, | ПоказателиСотрудников.Значение КАК Размер, | ЕСТЬNULL(СотрудникиДополнительныеРеквизиты.Значение, ""-"") КАК ПунктДоговора, | ОсновныеДанныеКонтрактаДоговораСотрудника.ДатаДоговораКонтракта КАК ДатаДоговора, | ОсновныеДанныеКонтрактаДоговораСотрудника.НомерДоговораКонтракта КАК НомерДоговора |ИЗ | Документ.ИзменениеПлановыхНачислений.Сотрудники КАК Сотрудники | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ИзменениеПлановыхНачислений.ПоказателиСотрудников КАК ПоказателиСотрудников | ПО (ПоказателиСотрудников.ИдентификаторСтрокиСотрудника = Сотрудники.ИдентификаторСтрокиСотрудника) | И (ПоказателиСотрудников.Показатель В (ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.Оклад), ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ТарифнаяСтавкаДневная), &ОкладПоДнямПрочая)) | И Сотрудники.Ссылка = ПоказателиСотрудников.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники.ДополнительныеРеквизиты КАК СотрудникиДополнительныеРеквизиты | ПО Сотрудники.Сотрудник = СотрудникиДополнительныеРеквизиты.Ссылка | И (СотрудникиДополнительныеРеквизиты.Свойство = &ДопСвойствоСотрудник) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДанныеКонтрактаДоговораСотрудника КАК ОсновныеДанныеКонтрактаДоговораСотрудника | ПО Сотрудники.Сотрудник = ОсновныеДанныеКонтрактаДоговораСотрудника.Сотрудник.Ссылка |ГДЕ | Сотрудники.Ссылка В(&МассивОбъектов) | |УПОРЯДОЧИТЬ ПО | Ссылка, | Сотрудник |ИТОГИ ПО | Ссылка"; ХарактеристикаПунктДоговора = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя","ПунктДоговора"); ХарактеристикаДокументОснование = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя","ДокументОснование"); ОкладПоДнямПрочая = Справочники.ПоказателиРасчетаЗарплаты.НайтиПоРеквизиту("Идентификатор","ОкладПоДнямПрочая"); Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов); Запрос.УстановитьПараметр("ДопСвойствоДолжность",ХарактеристикаДокументОснование); Запрос.УстановитьПараметр("ДопСвойствоСотрудник",ХарактеристикаПунктДоговора); Запрос.УстановитьПараметр("ОкладПоДнямПрочая",ОкладПоДнямПрочая); Результат = Запрос.ВыполнитьПакет(); МассивРезультатов = Запрос.ВыполнитьПакет(); РезультатПоШапке = МассивРезультатов[0]; РезультатПоТабличнойЧасти = МассивРезультатов[1]; СтруктураДанныхДляПечати = Новый Структура("РезультатПоШапке, РезультатПоТабличнойЧасти ", РезультатПоШапке, РезультатПоТабличнойЧасти); Возврат СтруктураДанныхДляПечати; КонецФункции Процедура ВывестиДанныеДополнительногоСоглашенияВТабличныйДокумент(Макет, ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати) Если Макет <> Неопределено Тогда ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать(); МассивСотрудники = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить().ВыгрузитьКолонку("Сотрудник"); МассивФизическихЛиц = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить().ВыгрузитьКолонку("ФизическоеЛицо"); ВыборкаПоДокументам = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТекстСоглашения = Макет.ПолучитьОбласть("ТекстСоглашения"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьПодписи = Макет.ПолучитьОбласть("Подписи"); ПерваяСправка = Истина; Пока ДанныеПечати.Следующий() Цикл Сведения = Новый СписокЗначений; Сведения.Добавить("", "НаимЮЛПол"); Сведения.Добавить("", "НаимЮЛСокр"); Сведения.Добавить("", "ИННЮЛ"); Сведения.Добавить("", "КППЮЛ"); Сведения.Добавить("", "ОГРН"); Сведения.Добавить("", "АдрЮР"); ОргСведения = ЗарплатаКадрыБазовый.ПолучитьСведенияОбОрганизации(ДанныеПечати.Организация, ДанныеПечати.ДатаНачала, Сведения); //КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников( // Истина, // МассивСотрудники, // "ПриказОПриеме,ПриказОПриемеДата,ПриказОПриемеНомер", // ДанныеПечати.ДатаНачала); ДанныеФизическихЛиц = КадровыйУчет.КадровыеДанныеФизическихЛиц( Истина, МассивФизическихЛиц, "ФИОПолные,ФамилияИО,Фамилия,Имя,Отчество,ИНН,СтраховойНомерПФР,ДокументВид,ДокументСерия,ДокументНомер,ДокументДатаВыдачи,ДокументКемВыдан,ДокументКодПодразделения,АдресПоПропискеПредставление", ДанныеПечати.ДатаНачала); СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка); ВыборкаПоДокументам.Сбросить(); Если ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска) Тогда Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'В документе %1 отсутствуют сотрудники. Печать соглашения не требуется'"), ДанныеПечати.Ссылка); ОбщегоНазначенияКлиентСервер.СообщитьПользователю( Текст, ДанныеПечати.Ссылка); Продолжить; КонецЕсли; //ФИО и должность руководителя Руководитель = ДанныеПечати.Руководитель; ПолРуководителя = ФизЛицоПол(ДанныеПечати.РуководительПол,"мужской"); РуководительР = СклонениеПредставленийОбъектов.ПросклонятьФИО(Строка(Руководитель),2,,ПолРуководителя); РуководительФИО = ФизическиеЛицаКлиентСервер.ФамилияИнициалы(Строка(Руководитель)); ДолжностьРуководителя = Строка(ДанныеПечати.ДолжностьРуководителя); ДолжностьРуководителяР = СклонениеПредставленийОбъектов.ПросклонятьПредставление(ДолжностьРуководителя,2,); ДолжностьДокументОснованиеР = СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(ДанныеПечати.ДокументОснование),2,); ПараметрыМакета = ВыборкаПоДокументам.Выбрать(); Пока ПараметрыМакета.Следующий() Цикл //НайденныеКадровыеДанные = КадровыеДанные.НайтиСтроки(Новый Структура("Сотрудник", ПараметрыМакета.Сотрудник)); НайденныеДанныеФизическихЛиц = ДанныеФизическихЛиц.НайтиСтроки(Новый Структура("ФизическоеЛицо",ПараметрыМакета.ФизическоеЛицо)); //Если Не ЗначениеЗаполнено(НайденныеКадровыеДанные) Тогда // Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( // НСтр("ru = 'Кадровые данные сотрудника %1 отсутствуют.'"), // ПараметрыМакета.Сотрудник); // // ОбщегоНазначенияКлиентСервер.СообщитьПользователю( // Текст, // ДанныеПечати.Ссылка); // Продолжить; //КонецЕсли; Если Не ЗначениеЗаполнено(НайденныеДанныеФизическихЛиц) Тогда Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Документы физ.лица %1 отсутствуют.'"), ПараметрыМакета.ФизическоеЛицо); ОбщегоНазначенияКлиентСервер.СообщитьПользователю( Текст, ДанныеПечати.Ссылка); Продолжить; КонецЕсли; //СтруктураКадровыеДанные = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(НайденныеКадровыеДанные[0]); СтруктураДанныеФизическихЛиц = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(НайденныеДанныеФизическихЛиц[0]); НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; Если Не ПерваяСправка Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); Иначе ПерваяСправка = Ложь; КонецЕсли; ОбластьШапка.Параметры.НомерДопСоглашения = Формат(Год(ПараметрыМакета.ДатаИзменения),"ЧГ="); ОбластьШапка.Параметры.НомДоговора = Строка(СокрЛП(ПараметрыМакета.НомерДоговора)); ОбластьШапка.Параметры.ДатаДоговора = Формат(ПараметрыМакета.ДатаДоговора,"ДФ=dd.MM.yyyy"); ОбластьШапка.Параметры.ДатаПриказа = Формат(ПараметрыМакета.ДатаИзменения,"ДФ=dd.MM.yyyy"); ОбластьТекстСоглашения.Параметры.НазваниеОрганизации = Строка(СокрЛП(ОргСведения.НаимЮЛПол)); ОбластьТекстСоглашения.Параметры.ДолжностьРуководительР = Строка(ДолжностьРуководителяР); ОбластьТекстСоглашения.Параметры.РуководительР = Строка(РуководительР); ОбластьТекстСоглашения.Параметры.ДокументОснование = Строка(ДолжностьДокументОснованиеР); ОбластьТекстСоглашения.Параметры.Работник = СтруктураДанныеФизическихЛиц.ФИОПолные; ОбластьТекстСоглашения.Параметры.ДатаДоговора = Формат(ПараметрыМакета.ДатаДоговора,"ДФ=dd.MM.yyyy"); ОбластьТекстСоглашения.Параметры.НомДоговора = Строка(СокрЛП(ПараметрыМакета.НомерДоговора)); ОбластьТекстСоглашения.Параметры.ПунктДоговора = СокрЛП(Строка(ПараметрыМакета.ПунктДоговора)); ОбластьТекстСоглашения.Параметры.ДатаИзменения = Формат(ПараметрыМакета.ДатаИзменения,"ДФ=dd.MM.yyyy"); ОбластьТекстСоглашения.Параметры.Размер = Строка(Формат(ПараметрыМакета.Размер,"ЧЦ=10; ЧДЦ=2")); ОбластьПодвал.Параметры.НазваниеОрганизации = СокрЛП(Строка(ОргСведения.НаимЮЛПол)); ОбластьПодвал.Параметры.АдресОрганизацииСтроки = ПредставлениеАдреса(ОргСведения.АдрЮР); ОбластьПодвал.Параметры.ИНН = ОргСведения.ИННЮЛ; ОбластьПодвал.Параметры.ОГРН = ОргСведения.ОГРН; ОбластьПодвал.Параметры.КПП = ОргСведения.КППЮЛ; ОбластьПодвал.Параметры.Работник = СтруктураДанныеФизическихЛиц.ФИОПолные; ОбластьПодвал.Параметры.АдресРаботника = СтруктураДанныеФизическихЛиц.АдресПоПропискеПредставление; ОбластьПодвал.Параметры.Паспорт = Строка(СтруктураДанныеФизическихЛиц.ДокументСерия)+" "+ Строка(СтруктураДанныеФизическихЛиц.ДокументНомер); ОбластьПодвал.Параметры.ДатаВыдачи = Формат(СтруктураДанныеФизическихЛиц.ДокументДатаВыдачи,"ДФ=dd.MM.yyyy"); ОбластьПодвал.Параметры.КемВыдан = Строка(СтруктураДанныеФизическихЛиц.ДокументКемВыдан); ОбластьПодвал.Параметры.КодПодр = Строка(СтруктураДанныеФизическихЛиц.ДокументКодПодразделения); ОбластьПодвал.Параметры.ИННР = Строка(СтруктураДанныеФизическихЛиц.ИНН); ОбластьПодвал.Параметры.СПС = Строка(СтруктураДанныеФизическихЛиц.СтраховойНомерПФР); ОбластьПодвал.Параметры.ДолжностьРуководителя = Строка(ДолжностьРуководителя); ОбластьПодписи.Параметры.РуководительФИО = РуководительФИО; ОбластьПодписи.Параметры.РаботникФИО = СтруктураДанныеФизическихЛиц.ФамилияИО; ТабличныйДокумент.Вывести(ОбластьШапка); ТабличныйДокумент.Вывести(ОбластьТекстСоглашения); ТабличныйДокумент.Вывести(ОбластьПодвал); ТабличныйДокумент.Вывести(ОбластьПодписи); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ПараметрыМакета.Ссылка); КонецЦикла; КонецЦикла; КонецЕсли; КонецПроцедуры //Определяет код пола физлица: 1 - мужской, 2 - женский Функция ФизЛицоПол (Значение1,Значение2) Если НРег(Значение1) = Значение2 Тогда Пол=1; Иначе Пол=2; КонецЕсли; Возврат Пол; КонецФункции Функция ПредставлениеАдреса(СтрокаАдреса) Структура = РегламентированнаяОтчетностьКлиентСервер.РазложитьАдрес(СтрокаАдреса); ПредставлениеАдреса = ""; Первый = Истина; Для Каждого Строка Из Структура Цикл Если Строка.Ключ = "Страна" Тогда Продолжить; КонецЕсли; Если ЗначениеЗаполнено(Строка.Значение) Тогда ПредставлениеАдреса = ПредставлениеАдреса+?(Первый,"",", ")+Строка.Значение; Первый = Ложь; КонецЕсли; КонецЦикла; Возврат ПредставлениеАдреса; КонецФункции |
|||
2
АЛьФ
14.01.20
✎
15:09
|
Так ведь печатная форма недоступна.
|
|||
3
Масянька
14.01.20
✎
15:21
|
(1) Данных нет. Для вывода в печ. форму.
|
|||
4
Надяша
14.01.20
✎
15:37
|
не пойму где
|
|||
5
vicof
14.01.20
✎
15:46
|
(4) В базе данных
|
|||
6
unenu
14.01.20
✎
15:59
|
(4)
1. проверить в отладке сформирован ли документ результат - если нет, то будет такое сообщение 2. проверить в отладке процедуру Печать(), если она отходит от канонов БСП или косячная, то будет такое сообщение 3. проверить контексты регистрации и выполнения все, 4-го варианта нет. |
|||
7
Kigo_Kigo
14.01.20
✎
16:09
|
(6) Есть еще , как минимум 3
1 Пригласить программиста 2 Фото мол жел может ускорить процесс решения проблемы 3 найти удаленщика, возможно тут, но п 2 :) |
|||
8
yurikmellon2
14.01.20
✎
16:11
|
(7) пункт 2 был в декабре :)
|
|||
9
Kigo_Kigo
14.01.20
✎
16:12
|
(8) Что то я не помню там Надяшу :)
|
|||
10
Фрэнки
14.01.20
✎
16:15
|
Зависает внешняя печатная форма
для ТС - очень похожая ситуация с использованием ВПФ. Там сразу зависала, затем была недоступна, а в самом конце тот ТС все сделал |
|||
11
yurikmellon2
14.01.20
✎
16:16
|
(9) её и не было. Это я к тому, что тут только раз в году, в декабре пункт 2 реализуем. Всё остальное время другая часть тела работает, голова.
|
|||
12
Kigo_Kigo
14.01.20
✎
16:18
|
(11) В профиле ВР Sensored навесит ? :)))
|
|||
13
yurikmellon2
14.01.20
✎
16:19
|
(12) возможно. Но скорее всего просто отправит в страну вечной охоты
|
|||
14
Масянька
14.01.20
✎
16:20
|
(4) Если это по поводу (3), то: в процедуру формирования печ. формы не передан документ, элемент справочника и пр. (для чего печ. форма) (клиент - сервер и пр.).
|
|||
15
sqr4
14.01.20
✎
17:21
|
вот эту строку надо проверять
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Дополнительное соглашение индексация заработка") Тогда |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |