Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 06:15

Обратиться к документу из модуля объекта

Автор Dirijabl, 04 фев 2016, 23:53

0 Пользователей и 1 гость просматривают эту тему.

Dirijabl

Доброго времени суток. Подскажите пожалуйста, как из модуля объекта ВПФ обратиться к документу, из которого эта печатная форма вызывается?

Luzer1C

Обычно добавляю реквизит в обработку с именем "СсылкаНаОбъект" и типом этого документа.
И в модуле обработки обратиться можно как "СсылкаНаОбъект".
Всё просто.
Халамбалам.

Dirijabl

В модуле формы- да. Но нужно именно из модуля объекта, где процедура формирования печатной формы. Если ВПФ просто вызывается из документа по кнопке Печать, а не как отдельная обработка, разве Ссылка на объект заполняется и в принципе модуль формы используется? Ну или у меня почему-то не заполняется...

Rasty

вот пример

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

ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();

ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Ложь;

МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Справочник.Сотрудники"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

ПараметрыРегистрации.Вставить("Наименование", "Справка в свободной форме (3 месяца)[Антивор]"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Справка в свободной форме (3 месяца)[Антивор]'");
НоваяКоманда.Идентификатор = "СправкаВСвободнойФорме";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";

Возврат ПараметрыРегистрации;
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт


УстановитьПривилегированныйРежим(Истина);

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

УстановитьПривилегированныйРежим(Ложь)

КонецПроцедуры // Печать()

Функция  СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати)
  тут заполняете пф
КонецФункции

Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Dirijabl

Все примерно так, как в образце, но... конкретнее опишу проблему. Есть Процедура ЗаполнитьРеквизитыПодвалаУПД(ОбластьПодвала, ДанныеПечати, СведенияОбОрганизации, СведенияОКонтрагенте), которая потом вызывается в процедуре Сформировать печатную форму. В первой процедуре есть запрос, где надо установить параметр - ссылку на документ, из которого вызывается печатная форма. Можно было бы написать Запрос.УстановитьПараметр("Документ",ДанныеПечати.Ссылка), но в туда попадает то нужный документ реализация, то счет-фактура. А мне нужна именно реализация, из которой впф вызывается! В связи с чем вопрос, можно ли обратиться к документу как-то по-другому? СсылкаНаОбъект срабатывает если открывать через файл-открыть, есть ли какой-то аналог для модуля объекта?

   

Rasty

МассивОбъектов -  массив с документами которые выводятся на печать, передавайте его между процедурами
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Luzer1C

Нда... Как всегда условие задачи непонятно. Сперва была ВПФ и модуль объекта, а потом уже обычная процедура в модуле объекта. Ты уж определись что конкретно нужно.:dfbsdfbsdf:
Халамбалам.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск