8.х ВПФ

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

  1. TopicStarter Overlay
    mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Ситуация следующая, имеется две ВПФ. Обе ПФ внешние и загружены в справочник "Внешние обработки". Создаю ВПФ со следующим кодом
    Код:
    Функция Печать(СуммыВРублях = Ложь) Экспорт
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Чек_Накладная";
    
    Макет = ПолучитьМакет("Чек_Накладная");
    
    // НАКЛАДНАЯ
    // Ищем документ накладная
    Обработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Расходная накладная");
    
    ТабличныйДокумент = ЗапуститьОбработку(Обработка);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Накладная");
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ОбластьМакета.Вывести(ТабличныйДокумент);
    ТабДокумент.Вывести(ОбластьМакета);
    
    // ЧЕК
    // Ищем документ накладная
    Обработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Товарный чек");
    
    ТабличныйДокумент = ЗапуститьОбработку(Обработка);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Чек");
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ОбластьМакета.Вывести(ТабличныйДокумент);
    ТабДокумент.Вывести(ТабличныйДокумент);
    
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДокумент.АвтоМасштаб = истина;
    
    Возврат ТабДокумент;
    
    КонецФункции
    
    Функция ЗапуститьОбработку(Обработка)
    
    Попытка
    
    ИмяФайла = ПолучитьИмяВременногоФайла();
    ДвоичныеДанные = Обработка.ХранилищеВнешнейОбработки.Получить();
    ДвоичныеДанные.Записать(ИмяФайла);
    
    ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла);
    ВнешняяОбработка.СсылкаНаОбъект = СсылкаНаОбъект;
    
    ТабличныйДокумент = ВнешняяОбработка.Печать();
    
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    
    УдалитьФайлы(ИмяФайла);
    
    Исключение
    
    КонецПопытки;
    
    Возврат ТабличныйДокумент;
    
    КонецФункции
    
    
    т.е. в один макет у которого есть примитивно две области пытаюсь выкинуть два табличных документа для вывода на один лист. Как результат 1С пытается сопоставить колонки 1-го и 2-го макета, и оба макета выходят сикось-накось, кто боролся с данной проблемой, прошу просветить.
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Врят ли чего путного из этого получится, надо подгонять макеты так, чтобы были одинаковые колонки. Или еще можно попробовать сделать второй макет с основными колонками, как у первого, а остальные со смещением.
  3. TopicStarter Overlay
    mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Не вариант. Макеты переписаны и очень сложны по своей структуре.
  4. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    не понял в чем сложность... расположите 2 макета в 1ой ВПФ и заполняйте лист так как вам угодно
    Код:
    
    ТабДок = Новый ТабличныйДокумент;
    
    МакетПервый = ПолучитьМакет(МакетПервый);
    МакетВторой  = ПолучитьМакет(МакетВторой);
    
    ОбластьМакетаПервого = МакетПервый.ПолучитьОбласть("НазваниеОбласти");
    ОбластьМакетаВторого = МакетВторой.ПолучитьОбласть("НазваниеОбласти");
    
    ТабДок.Вывести(ОбластьМакетаПервого);
    ТабДок.Вывести(ОбластьМакетаВторого);
    
    Возврат ТабДок;
    
    
    писал без проверки на синтаксис
  5. TopicStarter Overlay
    mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Мтак, прочитайте сначала задачу, примитивный код составления макета меня не интересует, макеты в одну ВПФ я собрать не могу. И изучите перед тем как писать, код, Вам предоставленный. Я макет вывожу, каждый в своём обработчике формируется, макеты сложные с перекомплектацией и определением состава партии. Попробуйте два абсолютно разных по колонкам макета вывести в один табличный документ, тогда и поймете в чем сложность.
  6. TopicStarter Overlay
    mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Мтак, вариантов тьма, какой бы выбрать :unsure:
  7. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    А если попробовать получить вначале табличный документ 1 и отдельно табличный документ 2. А затем сделать их построчный вариант в итоговый документ? Ведь разные колонки система в принципе нормально ест. ТОРГ12 тому яркий пример.

    Интересная задача.
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Угу, это правильный ответ.


    Есть еще геморное решение с настройко формата колонок - но оно того не стоит, уж поверьте на слово :)
    Проще вывести в PDF на один лист и его распечатать.
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Давеча, пробовали вывести две области на один лист. Остановились на том, что необходимо делать как вертикальные области, так и горизонтальные, пусть даже область(и) находятся в одном макете.

    Мож, тут такая же ситуация? Добавьте в оба макета по горизонтальной области и выводите потом через "Присоединить".

    p.s. я лично не представляю, как можно вывести две разных таблицы в один документ, т.к. ширина строк и столбцов не совпадает по определению(когда совпадает - частный случай), следовательно, excel тут как бы сразу не подходит.....
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    В отличии от Excel 1С умеет делать разную ширину колонок в разных строках.
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    колонок - да, но вот со строками будет проблема.
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    через "пустую строку" пытались выводить две области? Колонки так же "подстраиваются"? в пустой колонке ширина столбцов - "авто" ?

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