Имя: Пароль:
1C
1С v8
как при запуске 1с, автоматически запустить внешний отчет?
, , ,
0 cyx7
 
27.04.15
15:47
ут 10.3, в модуле обчыного приложения делаю так: "Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    ВнешниеОбработки.Ссылка
        |ИЗ
        |    Справочник.ВнешниеОбработки КАК ВнешниеОбработки
        |ГДЕ
        |    ВнешниеОбработки.Наименование = &Наименование";
        Запрос.УстановитьПараметр("Наименование","Дебиторка");
        Результат = Запрос.Выполнить().Выбрать();
        Пока Результат.Следующий() Цикл
            ВнешОбработка = Результат.Ссылка;
            Попытка
                ИмяФайла = ПолучитьИмяВременногоФайла();
                ДвоичныеДанные = ВнешОбработка.ХранилищеВнешнейОбработки.Получить();
                ДвоичныеДанные.Записать(ИмяФайла);
                Форма = ВнешниеОбработки.Создать(имяФайла);//.ПолучитьФорму(ИмяФайла);
                Форма.Активизировать();                
                УдалитьФайлы(ИмяФайла);
            Исключение
                Предупреждение("Выбранный файл не является внешней обработкой.
                |Либо, данная обработка не предназначена для
                |запуска в этой конфигурации.");
            КонецПопытки;
        КонецЦикла;
"

попадаю в исключение постоянно, во внешнем отчете настроек никаких задавать не нужно
1 ДенисЧ
 
27.04.15
15:49
в ОписаниеОшибки() чт написано?
2 cyx7
 
27.04.15
15:54
(1) нету ошибки, я какую то  фигню сделала,в переменной форма содержится путь врем файла и "этотОбъект". больше ничего. поэтому ничего и не происходит...
3 cyx7
 
27.04.15
16:11
(1) а я разобралась)
4 ДенисЧ
 
27.04.15
16:12
умничка )
5 cyx7
 
27.04.15
16:26
блин, а как его сформировать то сразу?((

делаю так ИмяФайла = ПолучитьИмяВременногоФайла();
                ДвоичныеДанные = ВнешОбработка.ХранилищеВнешнейОбработки.Получить();
                ДвоичныеДанные.Записать(ИмяФайла);
                
                Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
                Форма.ЭтотОбъект.ДействияФормыДействие();
                форма.Открыть(); процедура действияформыДействие - экспортная
6 AntonH851
 
27.04.15
16:32
(5) ДействияФормыДействие() - в модуле обработки у тебя?
7 cyx7
 
27.04.15
16:33
(6) нет, в модуле формы
8 AntonH851
 
27.04.15
16:35
(7) Тогда надо так
Форма.ДействияФормыДействие();
9 cyx7
 
27.04.15
16:41
(8) тоже не работает(
10 AntonH851
 
27.04.15
16:42
(9) А что в ДействияФормыДействие() написано?
11 cyx7
 
27.04.15
16:42
(10) Процедура ДействияФормыДействие(Кнопка) экспорт
    ЭлементыФормы.Результат.Очистить();
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Схема = ОтчетОбъект.СхемаКомпоновкиДанных;
    ЭтаФорма.ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    
    НастройкиКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки();
    //Если Не РольДоступна("ПолныеПрава") и НЕ РольДоступна("ПолныеПрава")и Не РольДоступна("ВсяДебиторка") Тогда //ограничим подразделения
    //    
    //    Отбор = НастройкиКомпоновкиДанных.Отбор.Элементы[0];

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

    
    
    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(
        Схема,
        НастройкиКомпоновкиДанных,
        ЭтаФорма.ДанныеРасшифровки
    );
    // Вставить содержимое обработчика.
    ВнешниеНаборыДанных = "";
//    ДоработатьКомпоновщикПередВыводом(ВнешниеНаборыДанных);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(
        МакетКомпоновки,,
        ЭтаФорма.ДанныеРасшифровки
    );
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
    ПроцессорВывода.НачатьВывод();
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
    //Результат.ФиксацияСверху = 9;
    //Результат.ФиксацияСлева = 1;
    ПроцессорВывода.ЗакончитьВывод();

КонецПроцедуры
12 AntonH851
 
27.04.15
16:44
(11) Вроде все правильно, а если на форме кнопку нажать нормально отрабатывает?
13 cyx7
 
27.04.15
16:45
(12) да, всё хорошо
14 cyx7
 
27.04.15
16:46
(12) в отладчике пишет что "Форма.ДействияФормыДействие() - обращение к процедуре как к функции"
15 Nuobu
 
27.04.15
16:49
Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
Форма.Открыть();                
Форма.ДействияФормыДействие();
16 AntonH851
 
27.04.15
16:50
(14) Перед этой строчкой точку с запятой ни где не пропустила?
17 AntonH851
 
27.04.15
16:51
+(16) Или после нее
18 cyx7
 
27.04.15
16:54
(17) нет, я скопировала оттуда(15) не помогло
19 AntonH851
 
27.04.15
16:56
(18) Форма хоть открывается?
20 cyx7
 
27.04.15
16:57
(19) да, открывается, но при этом сообщение выскакиевает из исключения
21 AntonH851
 
27.04.15
17:00
(20) Может вызов ДействияФормыДействие(); в событие формы "ПриОткрытии" поместить попробовать
22 cyx7
 
27.04.15
17:01
(21) сейчас попробую, а что мне в качестве параметра передать? ведь это процедура с кнопки
23 cyx7
 
27.04.15
17:04
(22) а ничего этой балде передавать и не нужно, я не внимательная ужас...
24 cyx7
 
27.04.15
17:04
(23) я сделала, спасибо Вам за помощь большое)
Программист всегда исправляет последнюю ошибку.