8.х Запуск печати ТОРГ-12 из внешней обработки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Danik95, 29 мар 2009.

  1. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    Привет всем!!!
    сделал внешнюю печатную форму ТОРГ-12 на поступление ПТУ.
    Мне нужно чтобы фнукция печати вызывалась с внешней обработки т.е не регестрировать печатную форму в документе ПТУ а чтоб печатная форма формировалась после нажатия кнопки например "Торг-12"
    я сделал след:
    1. создал форму:полеввода -ссылка на ПТУ(тот документ на который печатается ТОРГ-12)
    2.добавил в модуль формы функцию печать()
    3 вставил кнопку "ТОРГ-12" и при нажатии след процедура:
    Код:
    Процедура ТОРГНажатие(ТабДокумент);
    Печать();
    
    КонецПроцедуры
    
    
    что я сделал не так???
    кто может, ответьте пожалуйста сегодня, очень нужно
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Пункт 2 не нужен.
    Предположим, что есть внешняя печатная форма в виде внешней обработки в файле D:\Обработки\Торг12.epf
    Тогда в пункте 3 должна быть примерно такая процедура:
    Код:
    Процедура ТОРГНажатие(Кнопка)
    ТабДокумент = Неопределено;
    Обработка = ВнешниеОбработки.Создать("D:\Обработки\Торг12.epf");
    Обработка.СсылкаНаОбъект = ПолеВвода;
    ТабДокумент = Обработка.Печать();
    ТабДокумент.Показать();
    КонецПроцедуры
    
  3. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Ну, если печатная форма показалась, только данные в ней не заполнены, значит обработка запустилась нормально. Надо проверять что попадает здесь "Обработка.СсылкаНаОбъект = ПолеВвода;" в ссылку. Может у Вас поле ввода имя другое имеет или просто документ не выбран в нем. Отладчиком посмотрите что туда попадает.
  5. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    Ссылка на объект = Документ.Ссылка (Документ это название поля ввода)
    я правильно сделал??
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    "Ссылка на объект" - это что?
    Если
    Код:
    Обработка.СсылкаНаОбъект = Документ.Ссылка;
    
    тогда правильно, хотя ".Ссылка" можно и убрать
  7. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    а зачем нужна строка Обработка = ВнешниеОбработки.Создать("D:\Обработки\Торг12.epf");???
  8. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Чтобы на выполнение внешнюю печатную форму открыть.
    Я, наверно, задачу понял неправильно. Я думал, что у Вас есть обработка из которой нужно напечатать ВПФ. А Вы, видимо, форму в саму ВПФ добавили, и реквизит с кнопкой в нее впихнули.
    Тогда процедура действия кнопки должна так выглядеть:
    Код:
    Процедура ТОРГНажатие(Кнопка)
    СсылкаНаОбъект = Документ;
    ТабДокумент = Неопределено;
    ТабДокумент = Печать();
    ТабДокумент.Показать();	
    КонецПроцедуры
    
  9. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Вы что-то опасное делаете. Если вы хотите какую-то свою печать, то надо написать соответствующую процедуру печати. Если же надо просто вызвать стандартную печать, то надо использовать экспортную процедуру объекта
    Код:
    // СсылкаНаОбъект	 - реквизит обработки
    ДокументОбъект = СсылкаНаОбъект.ПолучитьОбъект();	   // только тогда будет метод печати
    ДокументОбъект.Печать("ТОРГ12");   // печатаем документ
    

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