Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вызвать ИЗ ВНЕШНЕГО приложения отчет 1С с заданными параметрами  (Прочитано 14151 раз)
0 Пользователей и 1 Гость смотрят эту тему.
romVsen
Гость
« : 23-03-2005 08:49 » 

Задача такая:
Вызвать ИЗ ВНЕШНЕГО приложения отчет 1С с заданными параметрами и сохранить отчет в файл.

Я полагаю должна быть как-то так:
1. поднимаю объект 1С
2. Создаю некий ОБЪЕКТ отчет. у него есть методы и параметры.
3. Заполняю параметры, вызываю метод созджания отчета.
4. Вызываю метод сохранить в файл.

 

Проблема в том, что мне сейчас для решения этой проблемы приходиться создавать в глобальный модуле НОВУЮ функцию под каждый отчет. В нее  переносится код "модуля формы" нужного отчета, НЕКОТОРЫЕ "параметры формы" заменяются на параметры этой новой функции, а другие "параметры формы" заменяются на новые переменные, кторые заполняются из БД 1С по переданным параметрам. 

Короче на каждый отчет -- куча работы.

 

Спасибо,
Роман

Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 31-05-2005 13:46 » new

Если это не было предусмотрено при программировании отчета (в твоем случае не было), то решить это можно только используя внешние "хакерские" компоненты. Например которые при появлении окна с некоторым названием заполнят его параметры, нажмут "Сформировать", а потом при появлении окна таблицы - сохранаят ее в файл.
Геморно это, но возможно... Ищи в области "внешние компоненты, работающие с окнами"
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines