Имя: Пароль:
1C
 
Внешняя печатная форма УФ
0 LeoKeyn
 
26.01.18
10:41
Здравствуйте. Пытаюсь написать внешнюю печатную форму в УФ. Все вроде делаю правильно, но в массивОбъектов как будто не передаются данные(ссылка пустая). Через форму все работает, следовательно проблема в регистрации обработки в системе.







Все данные, которые достаются с помощью ссылки пустые, поскажите что не так:-) Заранее благодарю!
1 LeoKeyn
 
26.01.18
10:42
(0) Функция Получить Таблицу Команд()

   // Создадим пустую таблицу команд и колонки в ней
   Команды = Новый Таблица Значений;

   // Как будет выглядеть описание печатной формы для пользователя
   Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

   // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
   Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

   // Тут задается, как должна вызваться команда обработки
   // Возможные варианты:
   // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
   // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
   // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
   Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

   // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
   Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

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

//Создает в таблице команд новую строку

Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор= Идентификатор;
    НоваяКоманда.Использование= Использование;
    НоваяКоманда.ПоказыватьОповещение= ПоказыватьОповещение;
    НоваяКоманда.Модификатор= Модификатор;
КонецФункции
2 LeoKeyn
 
26.01.18
10:43
+(0)


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



И Сама процедура печати:


&НаКлиенте
Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт
    
Для Каждого ФизЛицо Из МассивОбъектов Цикл
    
        СобратьМакет(ФизЛицо);
        
    КонецЦикла;
КонецПроцедуры
3 LeoKeyn
 
26.01.18
10:52
Ни кто не в курсе?:-)
4 LeoKeyn
 
26.01.18
10:53
МассивОбъектов как будто пустой. Но почему понять не могу, все сделано вроде правильно
5 LeoKeyn
 
26.01.18
11:05
Вопрос Исчерпан, ступил в коде и перезаписывал ссылку, извините! :-)
Ошибка? Это не ошибка, это системная функция.