×
×
+ Ответить в теме
Показано с 1 по 2 из 2
  1. #1
    doshe_rak
    Гость

    Информация 1C Документооборот, ВПФ.

    Доброго времени суток!
    Столкнулся с проблемой в коде обработки внешней печатной формы.
    Сразу скажу, что азы программирования в 1с я только постигаю, и не владею им как некоторые на этом форуме.
    Собственно перейду к сути, печатная форма выводит список сотрудников, дату регистрации документа, номер, и наименование.

    Последняя функция и немного текста кода из последней процедуры добавлены мной.
    Функцию добавил в конце с целью с помощью неё добавить вывод наименования документа, что напишет пользователь при его создании, на данную печатную форму, что бы его не пришлось писать в ручкой на бумаге.

    Знаю что можно как то добавить параметр в коде, и наименование документа будет выводится, но как именно пока не понял.

    Строки в последней функции которые я закомментировал, взяты были с другого примера, и вместо них нужно что-то другое, насчёт пути к справочнику, и элементу формы тоже не уверен, правильно ли я его написал.

    Во вложении скриншот того, как форма выводится на печать, без наименования и других реквизитов.

    Вот сам код обработки:

    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", ВернутьОбъектыНазначенияПФ());
    ПараметрыРегистрации.Вставить("Наименование", "Указатель рассылки");

    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.01");
    ПараметрыРегистрации.Вставить("Информация", "УказательРассылки");

    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(ТаблицаКоманд, "Указатель рассылки", "УказательРассылки", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;




    КонецФункции

    Функция ВернутьОбъектыНазначенияПФ()

    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Справочник.ВнутренниеДокументы");

    Возврат МассивНазначений;

    КонецФункции


    Функция ПолучитьТаблицуКоманд()

    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));

    Возврат Команды;

    КонецФункции

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

    КонецПроцедуры

    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    ВнДокумент = МассивОбъектов[0];
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ШаблоныОзнакомленияИсполнители.НомерСтроки КАК НомерСтроки,
    | ШаблоныОзнакомленияИсполнители.Исполнитель КАК Исполнитель,
    | КомплексныйПроцессПредметы.Ссылка.Автор КАК Автор
    |ИЗ
    | Справочник.ШаблоныОзнакомления.Исполнители КАК ШаблоныОзнакомленияИсполнители
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы
    | ПО ШаблоныОзнакомленияИсполнители.Ссылка.ВладелецШаблона = КомплексныйПроцессПредметы.Ссылка
    | И (КомплексныйПроцессПредметы.Предмет = &Предмет)";

    Запрос.УстановитьПараметр("Предмет", ВнДокумент);
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    ТабДок = Новый ТабличныйДокумент;
    Макет = ЭтотОбъект.ПолучитьМакет("УказательРассылки");
    ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");

    ВидДокумента = "";

    Если ВнДокумент.ВидДокумента.Наименование = "Приказы" Или ВнДокумент.ВидДокумента.Наименование = "Приказы по административно-хозяйственной деятельности" Или ВнДокумент.ВидДокумента.Наименование = "Приказы по вопросам основной деятельности" Тогда
    ВидДокумента = "приказу";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Распоряжения (общезаводские)" ИЛИ ВнДокумент.ВидДокумента.Наименование = "Распоряжения (по подразделению)" Тогда
    ВидДокумента = "распоряжению";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Локальные нормативные акты" Тогда
    ВидДокумента = "локально-нормативному акту";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Служебные записки" Тогда
    ВидДокумента = "служебной записке";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Акт" Тогда
    ВидДокумента = "акту";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Акт о несоответствии" Тогда
    ВидДокумента = "акту о несоответствии";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Доверенности" Тогда
    ВидДокумента = "доверенности";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Договор" Тогда
    ВидДокумента = "договору";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Должностная инструкция" Тогда
    ВидДокумента = "должностной инструкции";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Протоколы совещаний" Тогда
    ВидДокумента = "протоколу совещаний";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Расписка" Тогда
    ВидДокумента = "расписке";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Протокол разногласий к договору" Тогда
    ВидДокумента = "протоколу разногласий к договору";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Положение" Тогда
    ВидДокумента = "положению";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Заявка на оплату заказа" Тогда
    ВидДокумента = "заявке на оплату заказа";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Заявка на открытие ззказа" Тогда
    ВидДокумента = "заявке на открытие заказа";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Дополнительное соглашение к договору" Тогда
    ВидДокумента = "дополнительному соглашению к договору";
    ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Бланк замены" Тогда
    ВидДокумента = "бланку замены";
    КонецЕсли;


    ОбластьМакетаШапка.Параметры.ВидДокумента = ВидДокумента;
    Табдок.Вывести(ОбластьМакетаШапка);
    ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");

    Для Каждого Стр Из РезультатЗапроса Цикл
    ОбластьМакетаСтрока.Параметры.НомерПП = Стр.НомерСтроки;
    ОбластьМакетаСтрока.Параметры.Ответственный = ?(Стр.Исполнитель = "Автор процесса", Стр.Автор, Стр.Исполнитель);
    Табдок.Вывести(ОбластьМакетаСтрока);
    КонецЦикла;

    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УказательРассылки", "Указатель рассылки", ТабДок);

    КонецПроцедуры

    Функция ПолучитьНаименованиеДокумента(Заголовок)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    //| ФизическиеЛицаУдалитьТрудоваяДеятельность.Ссылка КАК Ссылка,
    //| ФизическиеЛицаУдалитьТрудоваяДеятельность.Должность КАК Должность
    |ИЗ
    | Справочник.ВнутренниеДокументы.Форма.ФормаЭлемента.Заголовок КАК Заголовок
    |ГДЕ
    //| ФизическиеЛицаУдалитьТрудоваяДеятельность.Ссылка = &ФизЛицо";

    Запрос.УстановитьПараметр("Заголовок", Заголовок);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    Возврат ВыборкаДетальныеЗаписи.Заголовок;
    КонецЕсли;

    КонецФункции
    Поделиться с друзьями

  2. #2
    Клерк
    Регистрация
    01.06.2005
    Адрес
    Новочеркасск
    Сообщений
    8,055
    Боюсь, программирование здесь будет офф-топик.
    Попробуйте написать где-нибудь здесь: http://forums.kuban.ru/f1040/, https://forum.infostart.ru/, https://buh.ru/forum/forum18376/

+ Ответить в теме

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы можете создавать новые темы
  • Вы можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •