7.7 Сохранение печатных форм документа с помощью объекта "Сервис"

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем vsia, 13 авг 2014.

  1. TopicStarter Overlay
    vsia
    Offline

    vsia

    Регистрация:
    12 авг 2014
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток. Помогите советом. Задача - отправить по электронной почте приложения к накладным по отдельно выбранной организации. С помощью FormEx, обработка открывает нужные накладные, запускает процедуру формирования печатной формы приложения к ТТН и закрывает накладную. На экране остается печатная форма. Каким образом сохранить и закрыть печатную форму?
    Код:
    Процедура СформироватьТТН()
    перем конт;
        Сервис = СоздатьОбъект("Сервис");
        Док=СоздатьОбъект("Документ.НакладнаяЭкспедитору");
        Док.ВыбратьДокументы(Дата1,Дата1);  
        Пока Док.ПолучитьДокумент()=1 цикл
        Если Док.Получатель=Орг тогда
              ОткрытьФорму(Док.ТекущийДокумент(), Конт, 1);
              ИмяФ=СокрЛП(Строка(Док.НомерДок));
              Сервис.ВыполнитьПроцедуру(Конт, "Приложение", );
              Конт.Форма.Закрыть(0);
    
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Эмулировать нажатие клавиш через WSH можно... А почему так сложно?
    Нельзя вытащить обработку печати в вашу процедуру? Тогда вообще никакого гемора нет
  3. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.441
    Симпатии:
    374
    Баллы:
    104
    в 7.7 кажется при закрытии печатной формы можно было настроить чтоб сохранять в файл
    --- Объединение сообщений, 13 авг 2014 ---
    да и при формировании можно записать
    Код:
    Записать(<?>,);
    Синтаксис:
    Записать(<ИмяФайла>,<ТипФайла>)
    Назначение:
    Записать таблицу в файл.
    Параметры:
    <ИмяФайла> - имя файла.
    <ТипФайла> - необязательный параметр. Числовое или строковое выражение, определяющее тип файла:
    · отсутствует, 0 или ''MXL'' - формат 1C;
    · 1 или ''XLS'' - формат Ms Excel;
    · 2 или ''HTM'' или ''HTML'' - формат HTML;
    · 3 или ''TXT'' - формат TXT.
    Замечание:
    Метод может использоваться при работе с таблицей в режиме ввода данных.
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Сие д.б. прописано в процедуре модуля документа... Иначе зачем весь огород городить? Проще вытащить процедуру печати во внешнюю обработку. Ну или ее вызов (если форма внешняя - вообще никаких проблем)
  5. TopicStarter Overlay
    vsia
    Offline

    vsia

    Регистрация:
    12 авг 2014
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Можно и вытащить, данная задача сейчас именно так и решается, но проблемы возникают при изменении шаблона самого приложения в ТТН. Согласен, изменения происходят крайне редко, однако если процедура написна в одном месте, зачем дублировать в ее другом месте?

    Дело в том, что я не знаю как обратиться к этой самой печатной форме. Переменная Конт содержит данные самого документа ТТН, Конт.Форма.Закрыть(0) закрывает сам документ, а печатная форма получается в результате выполнения процедуры и связать ее с Конт у меня не получается. Бухгалтерский угодник прав на счет самого простого решения, но уж больно заманчиво было бы решить сию головоломку. Мне от предшественников немало дублирующих процедур досталось (по каждой на цех, цехов много, обработка документов одинакова).
    Ради эксперимента добавлял в код строчки:
    Код:
    ФормаРасш = СоздатьОбъект("РасширениеФормы");
    ФормаРасш.УстановитьФорму(Конт.Форма);
    Сообщить(ФормаРасш.ПолныйТипОбъекта());
    Сообщить(ФормаРасш.ПолныйПуть());
    Сообщить(ФормаРасш.ПолучитьИменаТаблиц());
    Кроме прочего получил именах всех таблиц документа. Возможно с помощью этой информации можно связать приложение с ИсходнаяТаблица()?
    Или каким то образом можно сразу напрямую обратить с текущей активной печатной форме?
    Последнее редактирование: 13 авг 2014
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Можно вообще обойтись без FormEx
    1) В обработке октывайте документ с передачей параметра
    2) В процедуре ПриОткрытии Документа анализируйте параметр (вызов процедуры Печать() с сохранением формы)
Похожие темы
  1. IlichTM
    Ответов:
    4
    Просмотров:
    1.477
Загрузка...

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