8.х Не выводятся значения параметров в ВПФ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем НиколайН, 26 мар 2015.

  1. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Всем добрый день! Ребят подскажите пожалуйста в чем может быть причина. Создал ВПФ(управляемую) подключил к базе, когда вывожу на печать, то ни один параметр не выводится, смотрю с помощью отладчика все значения параметры принимают какие нужно. А вот при печати не выводится, ошибок тоже никаких не выдает. В чем может быть причина?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Это происходит потому, что привычные методы отладки, доступные в режиме обычного приложения, не работают в режиме управляемого приложения.
    Подключать ВПФ необходимо в модели клиента и ссылку на текущий документ необходимо получать из владельца формы, по другому даже и не работает, однако, если не ошибаюсь.
  3. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Я использую обработку для отладки внешних печатных форм для управляемых приложений. И когда попадаю в отладчик, проверяю какие значения у меня получаю параметры, все правильно получается.
    А когда я подключаю эту ВПФ к базе и печатаю из базы, то получается, что макет печатной формы выходит, но с незаполненными параметрами.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Каким образом заполняются параметры?
  5. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Запросом получаю данные, затем пишу:
    Код:
    Шапка=Макет.ПолучитьОбласть("Шапка");
        Шапка.Параметры.Заполнить(Шапка);
        СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка_запрос.Организация, Шапка_запрос.ДатаСоставления);
        Адрес = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес");
        Телеф = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе, "Телефоны");
        Шапка.Параметры.ПредставлениеОрганизации = СсылкаНаОбъект.Организация.НаименованиеСокращенное + "  "+Адрес+"  "+Телеф;
        Шапка.Параметры.ОрганизацияПоОКПО        = СведенияОПокупателе.КодПоОКПО;
        Шапка.Параметры.НомерДокумента           = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Шапка_запрос.Номер);
        Шапка.Параметры.ПредставлениеПодразделения = Шапка_запрос.СкладНаименование;
       
    ТабДок.Вывести(Шапка);
    
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Странно как минимум вот это:
    Код:
    Шапка=Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(Шапка);
  7. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Почему странно?? Я убирал:

    Код:
    Шапка.Параметры.Заполнить(Шапка);
    И все равно не выводятся.
    --- Объединение сообщений, 26 мар 2015 ---
    До этого всегда так делал и все выводилось.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Может все же так должно быть:
    Код:
    Шапка=Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(Шапка_Запрос);
    ?
    Если поставить точку останова на строке Шапка.Параметры.Заполнить(Шапка), то что будет содержаться в переменной Шапка, если сделать "Вычислить"?
  9. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Ваш вариант тоже не помог. Я проверил если к примеру я напишу:

    Код:
    Шапка.Параметры.НомерДокумента = 1;
    То все выводится. Выходит, что запрос у меня пустой?? Но в отладчике почему тога все нормально??
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Как запрос узнает про документ, с которого нужно сделать печатную форму?
  11. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Устанавливаю параметр в запросе:

    Код:
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    Только что я определил, что ВПФ не определяет СсылкуНаОбъект.
    Я все закомментировал и через функцию Сообщить(СсылкаНаОбъект.Номер)
    попытался вывести номер документа и он ничего не вывел. Получается, что не определяется СсылкаНаОбъект??
  12. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Почему может не определяться СсылкаНаОбъект??
  13. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Потому что механизм работы с ВПФ в режиме управляемого приложения несколько отличается от механизма работы с ВПФ в режиме обычного приложения.
    Ссылка на текущий документ хранится во владельце формы.
  14. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    А можете пожалуйста пример привести, как это реализуется.
  15. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    На форуме есть пример.
  16. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Можно попробовать отладить ВПФ на управляемых формах также, как и в обычных (через файл-открыть).
    Для этого создаем упр. форму для ВПФ и в форме располагаем реквизит объекта "СсылкаНаОбъект".
    Добавляем команду "ПроверкаПечати" на форму.
    Код:
    &НаКлиенте
    Процедура ПечатьДокумента(Команда)
        ТабДок = ПечатьДокументаНаСервере();
        ТабДок.Показать();
    КонецПроцедуры
    
    &НаСервере
    Функция ПечатьДокументаНаСервере()
        МассивОбъектов = Новый Массив;
        МассивОбъектов.Добавить(Объект.СсылкаНаОбъект);   
        ПараметрыПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПеремещениеТоваров_ТОРГ13";
        КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("МаршрутныйЛист");   
        ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
        ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
            ТабДок = РеквизитФормыВЗначение("Объект").СформироватьПечатнуюФормуМаршрутныйЛист(МассивОбъектов, МассивОбъектов);
            Возврат ТабДок;
        КонецФункции
    
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Объект.СсылкаНаОбъект = Документы.длРейс.НайтиПоНомеру("143",ТекущаяДата());
    КонецПроцедуры
    
    Тут "СформироватьПечатнуюФормуМаршрутныйЛист()" это экспортная функция объекта-обработки
  17. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое! Только что разобрался. Все оказалось в том, что в функции которая формировала саму печатную форму

    Код:
    Функция ПечатьДокумента(МассивОбъектов, ОбъектыПечати)
    Нужно было параметр "МассивОбъектов" заменить на параметр "СсылкаНаОбъект".

    Спасибо Всем, кто откликнулся!

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