Имя: Пароль:
1C
1С v8
Вопрос по использованию /LogUI и "Преобразование журнала действий пользователя"
, , ,
0 Живой Ископаемый
 
21.03.14
12:44
1. Глючная обработка, сейчас расскажу как исправить 0% (0)
2. Расскажу как из uilog получить XML 0% (0)
3. эта обработка конвертирует не uilog а ЖР 0% (0)
4. Все не так, сейчас расскажу как правильно 0% (0)
5. Что такое /LOGUI? 0% (0)
Всего мнений: 0

Кто использовал эту обработку? Как она работает вообще? Напомню, что при работе с ключем /LogUI записывается файл по пути типа
c:\Users\%USERNAME%\AppData\Roaming\1C\1cv8\bde05502-31ff-4cb4-b2cd-ed2e9374cd89\logui.txt

с содержанием типа

MainWindow","Type MainWindow","Name SectionsPanel","t=0","beg"
"21.03.2014 10:16:17","Event LClick","Form MainWindow","Type MainWindow","Name SectionsPanel","Detail Первый раздел","t=109","end"
"21.03.2014 10:16:18","Event LClick","Form MainWindow","Type MainWindow","Name ActionsPanel","t=873","beg"
"21.03.2014 10:16:18","Event FormActivate","Name Отчет.Знакомство.Форма","t=1263"
"21.03.2014 10:16:18","Event FormActivate","Name FormWindow","t=1263"
"21.03.2014 10:16:18","Event LClick","Form MainWindow","Type MainWindow","Name ActionsPanel","Detail 01 Знакомство","t=1279","end"
"21.03.2014 10:16:19","Event LClick","t=2152","beg"
"21.03.2014 10:16:20","Event LClick","t=2418","end"
"21.03.2014 10:16:20","Event LClick","Form Отчет.Знакомство.Форма","Type FormField.SpreadsheetDocumentField","Name Результат","t=3276","beg"
"21.03.2014 10:16:21","Event LClick","Form Отчет.Знакомство.Форма","Type FormField.SpreadsheetDocumentField","Name Результат","t=3385","end"
"21.03.2014 10:16:21","Event LClick","Form Отчет.Знакомство.Форма","Type FormField.SpreadsheetDocumentField","Name Результат","t=3728","beg"
"21.03.2014 10:16:21","Event LClick","Form Отчет.Знакомство.Форма","Type FormField.SpreadsheetDocumentField","Name Результат","t=3775","end"
"21.03.2014 10:16:22","Event LClick","Form MainWindow","Type MainWindow","Name SectionsPanel","t=4399","beg"
"21.03.2014 10:16:22","Event LClick","Form MainWindow","Type MainWindow","Name SectionsPanel","Detail Практикум №2","t=4492","end"
"21.03.2014 10:16:23","Event LClick","Form MainWindow","Type MainWindow","Name ActionsPanel","t=5382","beg"
"21.03.2014 10:16:23","Event FormActivate","Name Обработка.ПреобразованиеЖурналаДействийПользователя.Форма.ОсновнаяФорма","t=5725"
"21.03.2014 10:16:23","Event FormActivate","Name FormWindow","t=5725"
"21.03.2014 10:16:23","Event LClick","Form MainWindow","Type MainWindow","Name ActionsPanel","Detail Преобразование журнала действий пользователя","t=5756","end"
"21.03.2014 10:16:30","Event LClick","Type ToolBar","t=13026","beg"
"21.03.2014 10:16:30","Event LClick","Type


======


Далее, на WEB-ИТС есть вот такая вот обработка:
http://screencast.com/t/jYpTmCmpg
Вот так она выглядит:
http://screencast.com/t/6YzFl8uPmA1, вот справка которая в ней содержится:

====
"Обработка предназначена для преобразования журнала действий пользователя в программу на встроенном языке.

Обработка позволяет преобразовывать указанные файлы или непосредственно введённый текст. Выберите нужный вам вариант в переключателе "Преобразовывать".

Формирование программы возможно на английском или русском варианте встроенного языка. По умолчанию используется вариант языка используемый в конфигурации. При необходимости сгенерировать программу в другом варианте укажите необходимый в поле "Генерировать сценарий в варианте встроенного языка".

В поле "Имя основной процедуры" указывается имя процедуры, которая будет являться точкой входа в сценарий.

Если планируется использовать сгенерированную процедуру самостоятельно (например, во внешней обработке), имеется возможность сгенерировать код подключения к тестируемому клиенту, отметив флажок "Генерировать код подключения к клиенту". В противном случае для процедуры будет сформирован параметр ТестируемоеПриложение, в который при вызове будет необходимо передать существующий объект типа ТестируемоеПриложение, который уже установил соединение с тестируемым клиентом.

Для упрощения чтения получаемого кода сгенерированная программа разбивается по "границам" окон приложения на подпрограммы. Если отметить флажок "Разбивать результат на процедуры по "границам" окон" будет сформирована одна большая процедура.

Отметка флажка "Генерировать получение родительских объектов в иерархии" позволяет при вызове метода какого-либо объекта сгенерировать получение всех родительских тестируемых объектов, которые находятся между текущим тестируемым объектом и формой. Если флажок сброшен - генерируется поиск объектов непосредственно через объект тестируемой формы.
"

======




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


Так вот, когда я нажимаю кнопку "Преобразовать", получаю вот такую ошибку:

http://screencast.com/t/YP7UiQxSO

То есть обработка предполагает, что журнал действий пользователя - это ХМЛ.
Что и подтверждает текст внутри нее:
====

Функция Преобразовать(ТекстДляПреобразования) Экспорт

    Читатель = Новый ЧтениеXML();
    Читатель.УстановитьСтроку(ТекстДляПреобразования);

    СозданныеПроцедуры = Новый Массив();
    СозданныеВОкнеИФормеПеременные = Новый Соответствие();

    Писатель = Новый ТекстовыйДокумент();

    Читатель.ПерейтиКСодержимому();
    Отступ = 0;

    // Преобразовываем файл
    Если Читатель.ТипУзла = ТипУзлаXML.НачалоЭлемента И
        Читатель.Имя = "uilog" Тогда

        ПреобразоватьВСценарий(Читатель, Писатель);

    КонецЕсли;
    
    Возврат Писатель.ПолучитьТекст();

КонецФункции
=====

В тоже самое время очевидно, что журнал действий пользователя - это никакой не ХМЛ ни капли.

Возникают вопросы из голосовалки
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.