[РЕШЕНО] Внешняя обработка

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

  1. TopicStarter Overlay
    ифкпфт009
    Offline

    ифкпфт009 Опытный в 1С

    Регистрация:
    23 апр 2014
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Подскажите пожалуйста
    Хочу сделать такую штучку - есть процедура в модуле объекта внешней обработки - Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
    Потом создаю форму, помещаю кнопочку печать, и при нажатии срабатывала процедура печати с модуле объекта.
    Код

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


    Код:
    Процедура ПечатьНаСервере();
    
        МояОбработка = РеквизитФормыВЗначение("Объект");
        МояОбработка.Печать();
       
    КонецПроцедуры
    Процедура Печать(Команда)
       
    //ЭтотОбъект=РеквизитФормыВЗначение("Объект");
        ПечатьНаСервере();   
    КонецПроцедуры
    
    Но ничего не работает, что не так?
    --- Объединение сообщений, 30 сен 2016 ---
    Тоесть когда я обработку загружаю в 1с, захожу в документ, там она появляется в печати, нажимаю, формируется макет и все зашибись, а хотелось бы чтобы через саму обработку так делалось)
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    хотя бы в процедуру Печать(Команда) заходит?
  3. TopicStarter Overlay
    ифкпфт009
    Offline

    ифкпфт009 Опытный в 1С

    Регистрация:
    23 апр 2014
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    ууу, ну значит читаем С-П :)
  5. TopicStarter Overlay
    ифкпфт009
    Offline

    ифкпфт009 Опытный в 1С

    Регистрация:
    23 апр 2014
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Ну вообщем решилось все тем что дописал сверху & на сервере, & на клиенте
    --- Объединение сообщений, 30 сен 2016 ---
    щас на печать() ругается, недостаточно факт. параметров
    --- Объединение сообщений, 30 сен 2016 ---
    Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
    это вот эти 4 параметра нужно передать?
  6. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Да, все параметры нужно передавать. Можете в типовых посмотреть, каким образом передаются, вернее их заполнение.
  7. 1с-ник
    Online

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

    Регистрация:
    5 окт 2014
    Сообщения:
    314
    Симпатии:
    51
    Баллы:
    54
  8. TopicStarter Overlay
    ифкпфт009
    Offline

    ифкпфт009 Опытный в 1С

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

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