8.х Не получается создать и открыть внешнюю печатную форму в зуп2.5

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Nik02071, 23 июл 2014.

  1. TopicStarter Overlay
    Nik02071
    Offline

    Nik02071 Опытный в 1С

    Регистрация:
    12 ноя 2008
    Сообщения:
    347
    Симпатии:
    1
    Баллы:
    29
    У меня
    Зарплата и Управление Персоналом, редакция 2.5 (2.5.80.2)

    Создаю внешнюю обработку, доавляю реквизит СсылкаНаОбъект и макет

    Пишу в модуле объекта код:

    Код:
    Функция СформироватьЗапросДляПечатиТрудовогоДоговора() Экспорт
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    
    // Установим параметры запроса
    Запрос.УстановитьПараметр("СправочникСсылка", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Физлицо", СсылкаНаОбъект.Физлицо);
    Запрос.УстановитьПараметр("Организация", СсылкаНаОбъект.ОбособленноеПодразделение);
    Запрос.УстановитьПараметр("ДатаДокумента", СсылкаНаОбъект.ДатаДоговора);
    
    // Выберем (если есть доступ) ответственное физлицо
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо КАК Физлицо,
    | ОтветственныеЛицаОрганизацийСрезПоследних.Должность,
    | ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо.Наименование КАК НаименованиеФизлица,
    | ФизическиеЛица.Комментарий
    |ПОМЕСТИТЬ ВТОтветственноеЛицо
    |ИЗ
    | РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(
    | &ДатаДокумента,
    | ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)
    | И СтруктурнаяЕдиница = &Организация) КАК ОтветственныеЛицаОрганизацийСрезПоследних
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
    | ПО ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо = ФизическиеЛица.Ссылка";
    Запрос.Выполнить();
    
    Запрос.Текст =
    "ВЫБРАТЬ
    | ОтветственноеЛицоОрганизации.Должность КАК ДолжностьРуководителя,
    | ТрудовойДоговор.НомерДоговора КАК НомерДок,
    | ТрудовойДоговор.ДатаДоговора КАК ДатаДок,
    | ТрудовойДоговор.Организация.НаименованиеПолное КАК ПолноеНазваниеОрганизации,
    | ЕСТЬNULL(ФИООтветственныхЛиц.Фамилия + "" "" + ФИООтветственныхЛиц.Имя + "" "" + ФИООтветственныхЛиц.Отчество, ОтветственноеЛицоОрганизации.НаименованиеФизлица) КАК ФИОРуководителя,
    | ЕСТЬNULL(ФИОФизЛиц.Фамилия + "" "" + ФИОФизЛиц.Имя + "" "" + ФИОФизЛиц.Отчество, ТрудовойДоговор.Физлицо.Наименование) КАК ФИОРаботника,
    | ТрудовойДоговор.ДатаОкончания КАК ДатаУвольнения,
    | ТрудовойДоговор.ДатаНачала КАК ДатаПриема,
    | ТрудовойДоговор.Должность.Наименование КАК Должность,
    | ТрудовойДоговор.ЗанимаемыхСтавок,
    | ТрудовойДоговор.ИспытательныйСрок,
    | ТрудовойДоговор.ПодразделениеОрганизации.Наименование КАК Подразделение,
    | ВЫБОР
    | КОГДА ТрудовойДоговор.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
    | ТОГДА ""основной работе""
    | ИНАЧЕ ""совместительству""
    | КОНЕЦ КАК ВидЗанятости,
    | ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
    | ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
    | ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
    | ВЫРАЗИТЬ(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК СТРОКА(300)) КАК ДокументКемВыдан,
    | АдресРегистрации.Представление КАК АдресРегистрации,
    | ТелефонДомашний.Представление КАК Телефоны,
    | КонтактнаяИнформация.Представление КАК АдресОрганизации,
    | ТелефонОрганизации.Представление КАК ТелефоныОрганизации,
    | ТрудовойДоговор.Организация.Наименование КАК НазваниеОрганизации,
    | ТрудовойДоговор.Организация.ИНН + ""/"" + ТрудовойДоговор.Организация.КПП КАК ИНН,
    | ТрудовойДоговор.ГрафикРаботы.ВидГрафика КАК ВидГрафика,
    | ТрудовойДоговор.ГрафикРаботы.ДлительностьРабочейНедели КАК ДлительностьРабочейНедели,
    | ТрудовойДоговор.ВидРасчета,
    | ТрудовойДоговор.ТарифнаяСтавка,
    | ТрудовойДоговор.ВалютаТарифнойСтавки.Наименование КАК ВалютаТарифнойСтавки,
    | ТрудовойДоговор.ПерсональныеНадбавки.(
    | Ссылка,
    | НомерСтроки,
    | Надбавка КАК Надбавка,
    | Показатель1
    | )
    |ИЗ
    | Справочник.СотрудникиОрганизаций КАК ТрудовойДоговор
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТОтветственноеЛицо КАК ОтветственноеЛицоОрганизации
    | ПО (ИСТИНА)
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(
    | &ДатаДокумента,
    | Физлицо В
    | (ВЫБРАТЬ
    | Ответственные.Физлицо
    | ИЗ
    | ВТОтветственноеЛицо КАК Ответственные)) КАК ФИООтветственныхЛиц
    | ПО (ИСТИНА)
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаДокумента, Физлицо = &Физлицо) КАК ФИОФизЛиц
    | ПО (ИСТИНА)
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&ДатаДокумента, Физлицо = &Физлицо) КАК ПаспортныеДанныеФизЛицСрезПоследних
    | ПО (ИСТИНА)
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК АдресРегистрации
    | ПО ТрудовойДоговор.Физлицо = АдресРегистрации.Объект
    | И (АдресРегистрации.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица))
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ТелефонДомашний
    | ПО ТрудовойДоговор.Физлицо = ТелефонДомашний.Объект
    | И (ТелефонДомашний.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонФизЛица))
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    | ПО ТрудовойДоговор.Организация = КонтактнаяИнформация.Объект
    | И (КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресОрганизации))
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ТелефонОрганизации
    | ПО ТрудовойДоговор.Организация = ТелефонОрганизации.Объект
    | И (ТелефонОрганизации.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонОрганизации))
    |ГДЕ
    | ТрудовойДоговор.Ссылка = &СправочникСсылка";
    
    Возврат Запрос.Выполнить();
    
    КонецФункции // СформироватьЗапросДляПечати()
    
    
    
    Функция Печать() Экспорт
    
    ИмяМакета="ТрудовойДоговорЗаводаЭластик";
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТрудовойДоговор_Печать";
    
    // получаем данные для печати
    Выборка = СформироватьЗапросДляПечатиТрудовогоДоговора().Выбрать();
    
    // получаем макет
    Макет = СсылкаНаОбъект.ПолучитьОбъект().ПолучитьМакет(ИмяМакета);
    Сообщить(Макет);
    
    // выводим данные
    Если Выборка.Следующий() Тогда
    Макет.Параметры.Заполнить(Выборка);
    
    КонецЕсли;
    
    
    // выводим готовый документ
    ТабДокумент.Записать(Макет);
    ТабДокумент.Показать(Макет);
    
    Возврат ТабДокумент;
    
    КонецФункции

    Подключаю как внешнюю печатную форму к справочнику сотрудники.
    При попытке запуска она не открывается. В чем моя ошибка?
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.982
    Симпатии:
    398
    Баллы:
    104
    Код в теги оформляйте. Киньте внешнюю печатную форму.
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    1.А у справочника точно есть макет ТрудовойДоговорЗаводаЭластик
    Почему бы Вам этот макет нет в самой ВПФ создать?
    2. У макета есть области - вы их где получаете . Ведь получаете макет, потом его область, заполняете параметры и выводите область. Областей у вас не вижу по коду

    3. Вот это к чему
    // выводим готовый документ
    ТабДокумент.Записать(Макет);
    ТабДокумент.Показать(Макет);

Поделиться этой страницей