Имя: Пароль:
1C
1С v8
Как натянуть макет на форму.
0 Slava685
 
31.08.16
11:14
Создал печатную форму. Создал макет. Теперь мне нужно этот макет обрабатывать через форму.И в этом и есть проблема:)Я не знаю что писать:) Я так понимаю весь код ,основной, будет в форме?
Так же не понимаю как запилить кнопку печати на форме.Помогите, кто может.Если есть ссылки на подобную тему, то прошу на сцену :)
1 Fish
 
31.08.16
11:17
(0) "мне нужно этот макет обрабатывать через форму.И в этом и есть проблема:)Я не знаю что писать:)" - Смотря как ты хочешь обрабатывать этот макет, то и пиши.
2 Неверный Параметр И
 
31.08.16
11:18
3 Slava685
 
31.08.16
11:20
Мне нужно:
1.Вывести макет на экран через форму обработки
2.Заполнить макет данными и вывести его на просмотр(Я так понимаю на просмотр на форме?)
3.Вывести макет на экран в стандартном окне результата печатной формы.
4 Fish
 
31.08.16
11:22
(3) Так посмотри, как в типовых сделано.
5 Неверный Параметр И
 
31.08.16
11:28
Чувствуется дыхание сентября, призывающее к получению знаний. Пока это отдельные движения песчинок, обеспокоеных своей судьбой, но скоро грянет буря! Страшный в своей слепой силе вал слепцов, не умеющих и не хотящих читать учебники, сомнет своим страшным методом тыка последние бастионы здравого смысла.
Но 1С устоит. Не в первый раз.
6 Неверный Параметр И
 
31.08.16
11:29
"Страшный - страшным". Некрасиво получилось, да.
7 Неверный Параметр И
 
31.08.16
11:30
"Слепой - слепцов"... Надо сходить на форум писателей, пожалуй.
8 Slava685
 
31.08.16
11:33
Fish. Спасибо) Не допёр кстати как-то))Пошёл ковыряться)
9 batman69
 
31.08.16
11:38
(4) Ты гениален, сразу помог )))
10 _stay true_
 
31.08.16
11:42
(3) (8) Я делал так недавно.

Нужно было реализовать печать всех выделенных РКО в одной форме "Печать документов". На*овнокодил)))

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


&НаСервере
Функция СформироватьДанныеДляПечати(МассивОбъектов,ОбъектыПечати)    
    
    //Сформируем коллекцию печатных форм
    КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ",,"ИмяВРЕГ");
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета",,"ИмяМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяФайлаПечатнойФормы",,"ИмяФайлаПечатнойФормы");
    КоллекцияПечатныхФорм.Колонки.Добавить("Картинка",,"Картинка");
    КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету",,"ПолныйПутьКМакету");
    КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета",,"СинонимМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров",,"Экземпляров");
    КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент",,"ТабличныйДокумент");
    
    НовСтр = КоллекцияПечатныхФорм.Добавить();
    НовСтр.ИмяВРЕГ     = "РКО";
    НовСтр.ИмяМакета   = "РКО";
    НовСтр.Экземпляров = 1;
    НовСтр.ПолныйПутьКМакету = "ОбщийМакет.ПФ_MXL_КО2";
    НовСтр.СинонимМакета = "Расходный кассовый ордер";
    ТабДокРезультирующий = Новый ТабличныйДокумент;

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

    Запрос.УстановитьПараметр("РасходнаяНакладная", РасходнаяНакладная);

    Результат = Запрос.Выполнить();

    ТекОбласть = ТекМакет.ПолучитьОбласть("СтрокаОтчета");
    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ЗаполнитьЗначенияСвойств(ТекОбласть.Параметры,ВыборкаДетальныеЗаписи);
        ТекТабличныйДокумент.Вывести(ТекОбласть);
    КонецЦикла;

  
   ТекТабличныйДокумент.Показать();

КонецПроцедуры
12 _stay true_
 
31.08.16
11:43
+ (10) это в БП 3.0
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший