Ответить в теме: 1C Документооборот, ВПФ.
Для входа нажмите здесь
Вы можете выбрать иконку, характеризующую сообщение
Преобразит www.example.com в [URL]http://www.example.com[/URL].
Боюсь, программирование здесь будет офф-топик. Попробуйте написать где-нибудь здесь: http://forums.kuban.ru/f1040/, https://forum.infostart.ru/, https://buh.ru/forum/forum18376/
Доброго времени суток! Столкнулся с проблемой в коде обработки внешней печатной формы. Сразу скажу, что азы программирования в 1с я только постигаю, и не владею им как некоторые на этом форуме. Собственно перейду к сути, печатная форма выводит список сотрудников, дату регистрации документа, номер, и наименование. Последняя функция и немного текста кода из последней процедуры добавлены мной. Функцию добавил в конце с целью с помощью неё добавить вывод наименования документа, что напишет пользователь при его создании, на данную печатную форму, что бы его не пришлось писать в ручкой на бумаге. Знаю что можно как то добавить параметр в коде, и наименование документа будет выводится, но как именно пока не понял. Строки в последней функции которые я закомментировал, взяты были с другого примера, и вместо них нужно что-то другое, насчёт пути к справочнику, и элементу формы тоже не уверен, правильно ли я его написал. Во вложении скриншот того, как форма выводится на печать, без наименования и других реквизитов. Вот сам код обработки: Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); ПараметрыРегистрации.Вставить("Назначение", ВернутьОбъектыНазначенияПФ()); ПараметрыРегистрации.Вставить("Наименование", "Указатель рассылки"); ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ); ПараметрыРегистрации.Вставить("Версия", "1.01"); ПараметрыРегистрации.Вставить("Информация", "УказательРассылки"); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Указатель рассылки", "УказательРассылки", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ВернутьОбъектыНазначенияПФ() МассивНазначений = Новый Массив; МассивНазначений.Добавить("Справочник.ВнутренниеДокументы"); Возврат МассивНазначений; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ВнДокумент = МассивОбъектов[0]; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ШаблоныОзнакомленияИсполнители.НомерСтроки КАК НомерСтроки, | ШаблоныОзнакомленияИсполнители.Исполнитель КАК Исполнитель, | КомплексныйПроцессПредметы.Ссылка.Автор КАК Автор |ИЗ | Справочник.ШаблоныОзнакомления.Исполнители КАК ШаблоныОзнакомленияИсполнители | ВНУТРЕННЕЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы | ПО ШаблоныОзнакомленияИсполнители.Ссылка.ВладелецШаблона = КомплексныйПроцессПредметы.Ссылка | И (КомплексныйПроцессПредметы.Предмет = &Предмет)"; Запрос.УстановитьПараметр("Предмет", ВнДокумент); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); ТабДок = Новый ТабличныйДокумент; Макет = ЭтотОбъект.ПолучитьМакет("УказательРассылки"); ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка"); ВидДокумента = ""; Если ВнДокумент.ВидДокумента.Наименование = "Приказы" Или ВнДокумент.ВидДокумента.Наименование = "Приказы по административно-хозяйственной деятельности" Или ВнДокумент.ВидДокумента.Наименование = "Приказы по вопросам основной деятельности" Тогда ВидДокумента = "приказу"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Распоряжения (общезаводские)" ИЛИ ВнДокумент.ВидДокумента.Наименование = "Распоряжения (по подразделению)" Тогда ВидДокумента = "распоряжению"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Локальные нормативные акты" Тогда ВидДокумента = "локально-нормативному акту"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Служебные записки" Тогда ВидДокумента = "служебной записке"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Акт" Тогда ВидДокумента = "акту"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Акт о несоответствии" Тогда ВидДокумента = "акту о несоответствии"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Доверенности" Тогда ВидДокумента = "доверенности"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Договор" Тогда ВидДокумента = "договору"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Должностная инструкция" Тогда ВидДокумента = "должностной инструкции"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Протоколы совещаний" Тогда ВидДокумента = "протоколу совещаний"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Расписка" Тогда ВидДокумента = "расписке"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Протокол разногласий к договору" Тогда ВидДокумента = "протоколу разногласий к договору"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Положение" Тогда ВидДокумента = "положению"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Заявка на оплату заказа" Тогда ВидДокумента = "заявке на оплату заказа"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Заявка на открытие ззказа" Тогда ВидДокумента = "заявке на открытие заказа"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Дополнительное соглашение к договору" Тогда ВидДокумента = "дополнительному соглашению к договору"; ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Бланк замены" Тогда ВидДокумента = "бланку замены"; КонецЕсли; ОбластьМакетаШапка.Параметры.ВидДокумента = ВидДокумента; Табдок.Вывести(ОбластьМакетаШапка); ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка"); Для Каждого Стр Из РезультатЗапроса Цикл ОбластьМакетаСтрока.Параметры.НомерПП = Стр.НомерСтроки; ОбластьМакетаСтрока.Параметры.Ответственный = ?(Стр.Исполнитель = "Автор процесса", Стр.Автор, Стр.Исполнитель); Табдок.Вывести(ОбластьМакетаСтрока); КонецЦикла; УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УказательРассылки", "Указатель рассылки", ТабДок); КонецПроцедуры Функция ПолучитьНаименованиеДокумента(Заголовок) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ //| ФизическиеЛицаУдалитьТрудоваяДеятельность.Ссылка КАК Ссылка, //| ФизическиеЛицаУдалитьТрудоваяДеятельность.Должность КАК Должность |ИЗ | Справочник.ВнутренниеДокументы.Форма.ФормаЭлемента.Заголовок КАК Заголовок |ГДЕ //| ФизическиеЛицаУдалитьТрудоваяДеятельность.Ссылка = &ФизЛицо"; Запрос.УстановитьПараметр("Заголовок", Заголовок); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.Заголовок; КонецЕсли; КонецФункции
Правила форума