Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как выполнить внешний отчет через ОЛЕ
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
chukhin
Есть объект ОЛЕ:
ОЛЕ=СоздатьОбъект("V77S.Application");

Объект инициализируется, база открывается.
Как теперь выполнить внешний отчет в этой базе?
В контексте отчету нужно передать НачДата, КонДата и СтрокаНаименование (или ЭлементСправочника).

Как проще всего это сделать? Кто что подскажет?
XBrut
БазаГуртБух = СоздатьОбъект("V77.Application");
Состояние("Підключення до бази Гурт бух...");
Открыта = БазаГуртБух.Initialize(БазаГуртБух.RMTrade, "/d\\192.168.100.23\buh_gurt /NИмяПользователя    /P777","NO_SPLASH_SHOW");
Если Открыта = 0 Тогда
    Предупреждение("Помилка відкриття інформаційної бази");  
    БазаГуртБух=0;
    Возврат;
КонецЕсли;
Состояние("Розрахунок залишків в бух базі Гурт..");  
сзТам        =БазаГуртБух.CreateObject("СписокЗначений");  
сзТам.Установить("ВыбДата",ВыбДата);      
ИмяФайла    =БазаГуртБух.КаталогИБ()+"Extforms\Обработки\ПолучитьОстаткиБухДляЛюды.ert";
БазаГуртБух.ОткрытьФормуМодально("Отчет",сзТам,ИмяФайла);  
тзТамБух    =сзТам.Получить("тз");

нате кусок рабочего кода ровно по теме
chukhin
Цитата(XBrut @ 16.03.12, 19:51) необходимо зарегистрироваться для просмотра ссылки
нате кусок рабочего кода ровно по теме


Ну примерно так я и пытался сделать.
Только вот строку так и не получилось передать во внешний отчет.
    Если ЕстьПодключение<>0 Тогда
        Сообщить("База открыта");
        СписокПриемник = СоздатьОбъект("СписокЗначений");
        СписокИсточник = ОЛЕ.CreateObject("СписокЗначений");
        СписокИсточник.Установить("НачДата", НачДата);
        СписокИсточник.Установить("КонДата", КонДата);
        СписокИсточник.Установить("Номер", Строка(СокрЛП(СпрАвто.Код))); //эта строка НЕ передается через ОЛЕ

        Сообщить(СписокИсточник.Получить("НачДата"));
        Сообщить(СписокИсточник.Получить("КонДата"));
        Сообщить(СписокИсточник.Получить("Номер")); //здесь сообщает правильный Номер
        
    Иначе
        Сообщить("Не могу открыть базу " + Путь);
        ОЛЕ = 0;
        Возврат;
    КонецЕсли;


ИмяФайла = ОЛЕ.КаталогИБ()+"ExtForms\История Авто внешний.ert";
ОЛЕ.ОткрытьФормуМодально("Отчет", СписокИсточник, ИмяФайла); //запускается отчет и не находит строку - номер (значение пустое)


Пытался и сокращать пробелы и преобразовывать в строку (как видно из кода) и заключать в двойные кавычки - нифига...
XBrut
можно открыть отладчик оле-базы и посмотреть что там происходит буквально.
не такая уж цаца строка в списке , чтоб ей не работать через ОЛЕ
я достаю из ОЛЕ базы целую таблицу значений со строками и числами. и всё норм.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.