Имя: Пароль:
1C
1С v8
Можно ли программно имитировать нажатие кнопки?
,
0 mrd2006
 
05.04.12
09:11
Делаю отчет с применением СКД. Сложилось такое мнение, что метод СкомпоноватьРезультат и действие по кнопке "сформировать" работают немного по разному. В общем хочу выполнить действие по кнопке сформировать программно. Это как-то можно сделать?
1 Maxus43
 
05.04.12
09:12
вызвать процедуру прикреплённую к этой кнопке?
2 Defender aka LINN
 
05.04.12
09:13
(1) Уууу, шаман!
3 dva1c
 
05.04.12
09:14
(1) Как-то так. )
(0) См. (1)
4 MaxisUssr
 
05.04.12
09:14
(0)
поищи информацию про Shell.SendKey (объект Shell, команда Sendkey)
5 n koretsky
 
05.04.12
09:15
(1) О_О
как ты это делаешь?
где можно посмотреть?
6 Maxus43
 
05.04.12
09:16
(5) 5 раз вокруг сервера с бубном и сальто назад. Профит
7 D_Pavel
 
05.04.12
09:18
(0)

// Процедура СформироватьОтчет
// Осуществляет вывод отчета в табличный документ
Процедура СформироватьОтчет() Экспорт

   // Очистим табличный документ - результат
   ЭлементыФормы.Результат.Очистить();

   // Сгенерируем макет компоновки данных при помощи компоновщика макета
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

   // В качестве схемы компоновки будет выступать схема самого отчета
   // В качестве настроек отчета - текущие настройки отчета
   // Данные расшифровки будем помещать в свойство расширения формы - ДанныеРасшифровки
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

   // Создадим и инициализируем процессор компоновки
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки);

   // Создадим и инициализируем процессор вывода результата
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);

   // Обозначим начало вывода
   ПроцессорВывода.НачатьВывод();

   // Основной цикл вывода отчета
   Пока Истина Цикл

           // Получим следующий элемент результата компоновки
       ЭлементРезультата = ПроцессорКомпоновки.Следующий();

       Если ЭлементРезультата = Неопределено Тогда
           // Следующий элемент не получен - заканчиваем цикл вывода
           Прервать;

       Иначе
           // Элемент получен - выведем его при помощи процессора вывода
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

       КонецЕсли;

   КонецЦикла;

   // Обозначем завершение вывода
   ПроцессорВывода.ЗакончитьВывод();

КонецПроцедуры
8 n koretsky
 
05.04.12
09:20
(6) бубен какойто особенный надо, или можно пойти взять у админов?
9 andrewks
 
05.04.12
09:21
пятнично
10 Necessitudo
 
05.04.12
09:28
Так короче однако:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Схема = ПолучитьМакет("Макет");
    Настройки = Схема.НастройкиПоУмолчанию;
   
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

    КомпоновщикМакета = Новый  КомпоновщикМакетаКомпоновкиДанных;
   
    Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
   
    ПроцессорКомпоновки  = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(Макет,,ДанныеРасшифровки);
   
    ПроцессорВывода  = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   
    ТабДок = ЭлементыФормы.ТабДок;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
   
КонецПроцедуры
11 Maxus43
 
05.04.12
09:40
пока не узнаем чо там за кнопка выполнить в (0) - непонятно. Если стандартная - то всё норм, а если как в (10) то надо (1)
12 mrd2006
 
05.04.12
09:43
(11) кнопка действия, процедура модуля на неё не навешивается
13 Maxus43
 
05.04.12
09:46
(12) откуда вывод что по разному рабоатет? настройки не подтягиваются или что?
14 mrd2006
 
05.04.12
16:32
(10) спасибо, помогло
15 y22-k
 
05.04.12
16:41
(10) еще короче

       ЭлементыФормы.Результат.Очистить();
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   ЭтотОбъект.СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);
16 Aswed
 
05.04.12
16:42
(1) Всю интригу сломал:(((
17 tridog
 
05.04.12
16:44
(0) Только черезх опу
18 mrd2006
 
05.04.12
17:13
(15) я нечто подобное пробовал, открывается в той же форме, хреновый способ, если открываешь в другом поле табличного документа, то там не срабатывает расшифровка, когда пытаюсь открыть документ.

Вообще стояла задача добиться, чтобы при нажатии кнопки в определенных ячейках автоматически срабатывала расшифровка по полю документ без вопросов, причем срабатывала бы именно так, как это делается интерактивно, когда выбираем действие и поле по которому делается расшифровка - при этом расшифровка открывается в отдельном окне и обработка расшифровки в обоих окнах продолжает работать корректно