8.х Внешняя печатная офрма - проблема: реквизит формы не виден в модуле объекта О_О

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Adara, 21 авг 2012.

  1. TopicStarter Overlay
    Adara
    Offline

    Adara

    Регистрация:
    21 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Доброго Всем!

    Возникла проблема: Как передать из модуля формы внешней обработки в модуль объекта этой же обработки какое-либо значение? Добавляла в реквизиты формы (СтрокаДанных ) - не видит в модуле объекта.Более того почему-то из модуля объекта реквизит "Объект" тоже не виден :blink:

    Может что-то не так делаю...всегда реквизиты были видны в модуле объекта, а уж основной тем более.

    Пробовала через Экспортную переменную в модуле объекта. Заполняла ее в модуле формы (отладчиком все заполнилось), при переходе в модуль объекта: "Неопределено".

    Возможно это из-за этого: сначала заполняю переменную в модуле формы обработки, потом открываю общую форму, а уже из нее перехожу в модуль объекта моей обработки...неужели после передачи управление общей форме, все реквизиты и переменные обнуляются?
  2. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Доброго Всем,
    Несколькими способами - как параметр процедуры, функции объекта модуля, при этом они должны быть экспортные, либо через реквизиты обработки
  3. TopicStarter Overlay
    Adara
    Offline

    Adara

    Регистрация:
    21 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Дело в том что перед тем как я обращаюсь в модуль моей внешней обработки, идет вызов открытия общей формы, а уже из нее (точнее из общего модуля) вызывается Печать() в модуле объекта моей обработки.

    Код такой:

    Код:
    //В модуле Формы:
    &НаКлиенте
    Процедура Печать(ИдентификаторКоманды,ОбъектыНазначенияМассив) Экспорт
    Объекты.ЗагрузитьЗначения(ОбъектыНазначенияМассив);
    //заполнение списка печатных форм в реквизит "Объект.КомплектПечатныхФормОсновной"
    
    //КоллекцияПечатныхФорм - ТаблицаЗначений с нужными Печатными формами
    
    Для Каждого ТекСтрока Из КоллекцияПечатныхФорм Цикл
    НоваяСтрока = Объект.КомплектПечатныхФормОсновной.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекСтрока);
    КонецЦикла;
    
    ПараметрыИсточника = Новый Структура;
    
    ПараметрыИсточника.Вставить("ИдентификаторКоманды", "СкладскаяНакладная");
    
    ПараметрыИсточника.Вставить("ОбъектыНазначения", МассивОбъектов);
    
    ПараметрыИсточника.Вставить("БезопасныйРежим", истина);
    
    ПараметрыОткрытия = Новый Структура("ИсточникДанных,ПараметрыИсточника");
    
    ПараметрыОткрытия.ИсточникДанных = ЭтаОбработка;
    
    ПараметрыОткрытия.ПараметрыИсточника = ПараметрыИсточника;
    
    КлючУникальности = Новый УникальныйИдентификатор;
    
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия,,КлючУникальности);
    
    //В модуле Объекта:
    
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено) Экспорт
    
    ПечатныеФормы = Объект.КомплектПечатныхФормОсновной;
    
    КонецПроцедуры

    Дописывать (менять) общую форму, общие модули и т.д. не могу, типовая на полной поддержке ( и снимать нельзя совсем).

    Поэтому как параметр не передать. В функции объекта модуля пыталась заполнять глобальную переменную модуля объекта. В самой функции заполняется, стоит уйти в общую форму - все - пустота.
  4. TopicStarter Overlay
    Adara
    Offline

    Adara

    Регистрация:
    21 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    После:
    Код:
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия,,КлючУникальности);
    Забыла дописать:
    Код:
    КонецПроцедуры;
  5. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Если Вам нужно подсунуть свою печатную форму, почему бы не пойти типовым путем, есть справочник "Внешние обработки", это в "Сервис" - "Дополнительные внешние печатные формы, обработки", там и добавляете свою обработку, печатную форму. У элемента справочника с видом "печатная форма" в табличной части можно указать какой документ использует печатную форму, при каких значениях реквизитов (т.е. есть отбор) и вместо какой печатной формы использовать вашу

    В справке к справочнику есть больше информации

    Да, плз укажите конфигурацию и версию платформы
  6. TopicStarter Overlay
    Adara
    Offline

    Adara

    Регистрация:
    21 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Действительно, забыла указать данные о платформе, извините.
    Конфигурация:УТ 11.0.8 , Платформа: 8.2.15.

    Да и проблема не заменить, а именно что реквизит формы "Объект" не виден из модуля обработки.

    Вопрос вот в чем, как мне передать одну строку в модуль объекта (пока работает через текстовый файл , но это слишком уж хардкорно). В строке записан адрес ХранилищаЗначения (там лежит ТЗ которая мне нужна в модуле объекта обработки). Вот как бы мне этот адрес записать в модуле формы, а в модуле объекта прочитать?

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