Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внешняя печатная форма в 1с 8.3
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
qwert111
Пытаюсь создать внешнию печатную форму "АктПриёмаПередачи" к документу Операция Бух. Создал внешнюю печатную форму прикрепил с помощью ссылка на документ к документу операция бух. создал макет АктПриёмаПередачи. начал работу с модулем, вот примеры кода:
 Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ОперацияБух");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");  
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "АктПриёмаПередачи");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Печать актов");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Акт приёма передачи", "АктПриёмаПередачи", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

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


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


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

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

Конецфункции // Печать()

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

    ТабличныйДокумент.Вывести("Подвал");
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    
    Конецфункции



Делал по примерам из интернета, в программирование не силен.
Посмотрите если можете.
Заранее спасибо.


 ! 

необходимо зарегистрироваться для просмотра ссылки: 7, 9
 
Vofka
qwert111, вы бы написали что не так. Телепатирую, что в функции СформироватьПечатнуюФорму последней строкой надо написать

Возврат ТабличныйДокумент;


И обратите внимания на правила.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.