Вход | Регистрация

1С:Предприятие ::

Метки: 

УФ: внешняя обработка в режиме отладки

Я
   dft2014
 
23.01.18 - 18:47
УФ
Есть внешняя обработка, которая отлично формирует печатную форму из спр.Сотрудники. Но как ее можно запустить в режиме отладки?

В МодулеОбъекта написаны стандартные функции для ее регистрации в спр.Сотрудники:
Функция Получить Таблицу Команд()
Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
Функция СведенияОВнешнейОбработке() Экспорт





В МодулеФормы:

&НаСервере
Функция ПолучитьДанные(Сотрудник)
КонецФункции


&НаСервере
Функция ПолучитьМакетСервер()
    Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
КонецФункции


&НаКлиенте
Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт
    
    Для Каждого Сотрудник Из МассивОбъектов Цикл
        Макет = ПолучитьМакетСервер();
        Данные = ПолучитьДанные(Сотрудник);
    КонецЦикла;
    
КонецПроцедуры
 
 
   dft2014
 
1 - 23.01.18 - 18:48
Гуглила, что надо на форме создать реквизит, со ссылкой на спр.Сотрудники (в моем случае), а дальше как?
   Вафель
 
2 - 23.01.18 - 18:48
на ис миллион способов есть
   dft2014
 
3 - 23.01.18 - 18:50
В (0) как-то некрасиво (нечитаемо) код отобразился. Дублирую еще раз:


&НаСервере
Функция ПолучитьДанные(Сотрудник)
    // здесь мне надо кое-что отладить    

КонецФункции

&НаСервере
Функция ПолучитьМакетСервер()
    Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
КонецФункции

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

&НаКлиенте
Процедура Печать(Команда)
    
    //Этим способом все формы в одном табличном документе как в стандартном механизме печати,

    //При необходимости можно сделать чтобы было в разных

    КоллекцияПечатныхФормМассив = ПечатьНаСервере();
    УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФормМассив);

КонецПроцедуры


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

   dft2014
 
5 - 23.01.18 - 18:57
(4) Два непонятных момента:
- В моем коде из (3) есть тоже процедура Печать(). Поэтому, где вставлять ваш код?
- На форме обработки не надо создавать реквизит, со ссылкой на спр.Сотрудники?
   Вафель
 
6 - 23.01.18 - 19:00
на форму
2 поля: ссылка и ИмяПечФормы - строка
   dft2014
 
7 - 23.01.18 - 19:04
(6) ИмяПечФормы - это имя макета на моей внешней обработки?
   dft2014
 
8 - 24.01.18 - 10:32
Ап!
   dft2014
 
9 - 24.01.18 - 11:42
   dft2014
 
10 - 24.01.18 - 11:45
МодульФормы:
https://b.radikal.ru/b04/1801/a7/65bbdda8af98.jpg


МодульОбъекта:
https://a.radikal.ru/a32/1801/61/f1cdb7687b88.jpg


Оставила примитивный код, чтобы все-таки понять, как отлаживать внешние обработки для УФ. Подскажите пожалуйста!
 
 Рекламное место пустует
   Новиков
 
11 - 24.01.18 - 12:05
Ты заставишь себя поиском пользоваться или нет?

http://catalog.mista.ru/public/675934/
   dft2014
 
12 - 24.01.18 - 12:09
(11) У меня туда доступа нет, чтобы скачать пример.
   Вафель
 
13 - 24.01.18 - 12:11
так у тебя вызов клиентского метода. Просто открывай обработку через "Файл-Открыть" и отлаживай
   dft2014
 
14 - 24.01.18 - 12:43
(13) На форме нет ничего, кроме кода в (10).
   dft2014
 
15 - 24.01.18 - 12:44
Выложила обработку на https://yadi.sk/d/qECfNUzb3RjSKg
   dft2014
 
16 - 24.01.18 - 13:11
HELP!!!
   LordCMEPTb
 
17 - 24.01.18 - 13:27
А в чем проблема на форму кинуть ссылку на договор (или какой справочник нужно печатать), кинуть команду, в которой код будет похожим:
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(Договор);
Печать(Неопределено, МассивОбъектов);

   ildary
 
18 - 24.01.18 - 13:55
(16) я делал вот так - у обработки есть поле Ссылка типа ЗаказКлиента, выведенное на форму.

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

&НаКлиенте
Процедура ПечатьИзФормы(Команда)
    
    МассивТабличныхДокументов = ПечатьИзФормыНаСервере();
    
    Для Каждого ТабличныйДокумент Из МассивТабличныхДокументов Цикл
        
        Если ТабличныйДокумент <> Неопределено Тогда
            
            ТабличныйДокумент.Показать();
            
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует