romVsen
Гость
|
|
« : 23-03-2005 08:49 » |
|
Задача такая: Вызвать ИЗ ВНЕШНЕГО приложения отчет 1С с заданными параметрами и сохранить отчет в файл.
Я полагаю должна быть как-то так: 1. поднимаю объект 1С 2. Создаю некий ОБЪЕКТ отчет. у него есть методы и параметры. 3. Заполняю параметры, вызываю метод созджания отчета. 4. Вызываю метод сохранить в файл.
Проблема в том, что мне сейчас для решения этой проблемы приходиться создавать в глобальный модуле НОВУЮ функцию под каждый отчет. В нее переносится код "модуля формы" нужного отчета, НЕКОТОРЫЕ "параметры формы" заменяются на параметры этой новой функции, а другие "параметры формы" заменяются на новые переменные, кторые заполняются из БД 1С по переданным параметрам.
Короче на каждый отчет -- куча работы.
Спасибо, Роман
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #1 : 25-03-2005 15:31 » |
|
Используй внешние обработки и вызывай их так: ОткрытьФорм
|
|
|
Записан
|
|
|
|
romVsen
Гость
|
|
« Ответ #2 : 23-05-2005 13:33 » |
|
Правильно ли я понял что для того, чтобы вызвать стандартный 1С отчет "Оборотно-сальдовая ведомость" я должен
1. во внешнем приложенни вызвать такой кусок кода: Dim params as String [объект1С].ОткрытьФормуМодально("Оборотно-сальдовая ведомость", params, "ПутьКОбработке\Обработка.ert")
2. Предварительно написать файл Обработка.ert с одной функциеей
Процедура ПриОткрытии() Форма.сохранитьКак( <парамеиры куда сохранять и формат> ); Форма.Закрыть(); КонецПроцедуры
Остался вопрос в каком виде парамертры передать (навпример период за который формировать эту ведомость)?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #3 : 24-05-2005 14:33 » |
|
Не правильно. Чтобы открыть отчет, входящий в состав конфигурации нужен другой вариант вызова (тоже описан в хелпе):
Dim params as String [объект1С].ОткрытьФормуМодально("Отчет.ОборотноСальдоваяВедомость", params)
Как передать в нее параметр - смотри в этом самом отчете процедуру ПриОткрытии (она разгребает переданные параметры и делает то, что нужно) Возможно ее придется модифицировать, т.к. насколько я знаю возможность сохранить результат и выйти в ней не предусмотрена
|
|
|
Записан
|
|
|
|
romVsen
Гость
|
|
« Ответ #4 : 24-05-2005 14:42 » |
|
Спасибо огромное! Начинаю понимать!
А ОткрытьФорм
|
|
|
Записан
|
|
|
|
romVsen
Гость
|
|
« Ответ #5 : 24-05-2005 14:47 » |
|
А блин... Все равно неувязочка... Править сам отчет "Оборотносальдовая ведомость" не хочется (а ты вроде об этом и говоришь).
Сейчас я обхожу это тем, что копирую полностью (форму, модуоль, таблицу...) в новый отчет и там уже правлю код. Это все равно геморно. Хотелось бы вызвать этот отчет с переданными парамтерами и сохранить результат в файл.
Ладно, будем дальше копать...
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #6 : 31-05-2005 13:46 » |
|
Если это не было предусмотрено при программировании отчета (в твоем случае не было), то решить это можно только используя внешние "хакерские" компоненты. Например которые при появлении окна с некоторым названием заполнят его параметры, нажмут "Сформировать", а потом при появлении окна таблицы - сохранаят ее в файл. Геморно это, но возможно... Ищи в области "внешние компоненты, работающие с окнами"
|
|
|
Записан
|
|
|
|
|