Имя: Пароль:
1C
 
Парсер действий пользователя в интерфейсе
0 Garykom
 
гуру
11.03.16
13:55
Для одной задачи требуется записать и распарсить действия пользователя в интерфейсе любой конфы 1С.

Нечто вроде "записи макроса" в офисе.

К примеру пользователь открывает форму списка справочника, создает новый элемент и заполняет некоторые реквизиты в форме, нажимает записать.

Нужно сделать преобразовать это в нечто вроде "скрипта заполнения" - кода на языке 1С.

Как бы это попроще сделать?
Менять конфу нельзя.
1 Ranger_83
 
11.03.16
14:00
(0) В конфигураторе  "сервис" -> "Запустить для записи журнала действий пользователя" ?
2 Garykom
 
гуру
11.03.16
14:02
(1) даже что конфигуратора нету представим и платформа может быть любая в т.ч. 1С 7.7
3 Timon1405
 
11.03.16
14:03
4 Garykom
 
гуру
11.03.16
14:03
(2)+ точнее в 7ке то понимаю как сделать через spy++

но вот 8ка?
5 Garykom
 
гуру
11.03.16
14:05
(3) нет задача совсем не тестирование - эмуляция действий пользователя

это скорее по действиям пользователя построить функцию заполнения (на коде 1С без использования интерфейса) и выполнить ее нужное число раз с требуемыми параметрами
т.е. по действиям пользователя понять в какие метаданные нужно будет писать
6 Лефмихалыч
 
11.03.16
14:13
(0) результат того, что дает ключ командной строки /logui смотрел?
7 Лефмихалыч
 
11.03.16
14:15
8 Карупян
 
11.03.16
14:17
Выгрузи все объекты по ТЖ за период
9 Карупян
 
11.03.16
14:17
Опять же пользователь ввел номенклатуру, а рассчиталась вся строка.
А сама процедура в форме и все приплыли
10 patapum
 
11.03.16
14:19
(0) мне кажется, дешевле опросить пользователя лично, чем писать такой парсер.
11 Лефмихалыч
 
11.03.16
14:22
(10) и получить список того, что пользователь смог описать словами, из того, что вспомнил.
Кому на что эта инфа потом?..
12 Garykom
 
гуру
11.03.16
14:24
(6) как вариант пойдет, есть минус что файл не сразу обновляется а  только после закрытия 1С
13 Garykom
 
гуру
11.03.16
14:26
(9) мне нужно узнать куда сейчас пользователь тыкнул, в какой элемент какой формы какого объекта
14 Garykom
 
гуру
11.03.16
14:28
Кому интересно цель написать "тупой КД для полного пользователя", с очень ограниченным функционалом зато простейший
15 Кирпич
 
11.03.16
14:54
(14) что такое "тупой КД для полного пользователя"?
16 Garykom
 
гуру
11.03.16
15:00
(15)
1. открываешь одну конфу, открываешь справочник контрагентов, любого контрагента
2. открываешь другую конфу, открываешь контрагентов, создаешь нового контрагента
3. переносишь копированием значения (наименование, инн и т.д.) с выбором в том числе если перечисления или галочки
4. нажимаешь записать в другой конфе - создается "скрипт записи"

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

К примеру если отметили ИП Иванов, сняли отметку ООО Сидоров - оно поняло что ИП нуна перенести а ООО нет.
Но простым отчетом проще, хотя "интеллектуальный выбор по образцам/примерам" прикольнее
17 Кирпич
 
11.03.16
15:01
(12) можно отлавливать запись в файл логов действий пользователя
18 Кирпич
 
11.03.16
15:02
который logui.txt
19 Кирпич
 
11.03.16
15:03
а вообще вопрос из серии "как мне попроще сделать невозможное"
20 Garykom
 
гуру
11.03.16
15:15
(19) ну да

(17)(18) там момент записи в этот файл непонятный, оно не сразу пишется после действий пользователя а после закрытия предприятия или может при некотором объеме
проблематично сопоставить будет два лога
21 Кирпич
 
11.03.16
15:20
(20) я так понял тебе это нужно что-бы юзеры тыкая мышкой за тебя кодили, а ты деньги получал. ты не оборзел? :)
22 Кирпич
 
11.03.16
15:24
(20) а я чота вообще этот logui.txt не вижу. где его искать то?
23 Garykom
 
гуру
11.03.16
15:31
(22) у меня тут c:\Users\Gary\AppData\Roaming\1C\1Cv82\7ce9d2b8-d410-4a3b-8563-d90879454e67\

с ключиком /logui если запустить
24 Garykom
 
гуру
11.03.16
15:32
(21) ага! ;) лучше пару месяцев потратить чем потом тратить несколько лет по паре минут каждую неделю или даже день
25 Кирпич
 
11.03.16
15:44
чота в этом  logui.txt какая то хрень записана. что с ней делать вообще можно то. там вроде и данных нету. только мышка клик да клавиша нажал.
26 Garykom
 
гуру
11.03.16
15:46
(25) "11.03.2016 14:22:57","Event LClick","Form Документ.Рассылка.Форма.ФормаДокумента","Type TextBox","Name ТекстСообщения","t=53961","beg"

вполне хватает для анализа
27 Garykom
 
гуру
11.03.16
15:49
(26)+ меня для задачи не сами данные интересуют а их месторасположения

но пока полностью еще не представляю как все сделать, только пути ищу
28 Кирпич
 
11.03.16
15:50
(26) и чего ты напишешь в своем скрипте, глядя на эту строку из logui.txt?
29 Garykom
 
гуру
11.03.16
15:56
(28) Документ.Рассылка.Форма.ФормаДокумента - TextBox - ТекстСообщения

далее из анализа конфы можно понять что "ТекстСообщения" это реквизит "Документ.Рассылка"
30 Garykom
 
гуру
11.03.16
16:00
(29)+ еще давно в школе делал нечто подобное

в графическом редакторе (типа paint) человек рисует картинку
а эта картинка преобразовывалась в набор графических операторов basic

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

главный плюс можно масштаб менять и крутить как хочешь так как картинка векторная (это обычно разные схемы были в т.ч. по физике, химии и т.д.)
31 Кирпич
 
11.03.16
16:16
так тебе просто названия реквизитов надо и всё чтоли?
32 Garykom
 
гуру
11.03.16
16:18
(31) ага ))
33 Лефмихалыч
 
11.03.16
16:18
(16) ты затеял что-то неведомое. Проснись.
34 Garykom
 
гуру
11.03.16
16:20
(33) это ладно... хочу на основе этого сделать копирование через буфер обмена (CTRL+C -> CTRL+V) целиком объектов между разными конфами 1С ))
35 Garykom
 
гуру
11.03.16
16:22
(34)+ потом еще допом сделать

а что удобно же, нашли контрагента или документ в одной базе, скопировали из списка, в другой базе просто вставили
и оно со всеми реквизитами заполнено ))
36 Карупян
 
11.03.16
16:23
Но  зачем через реквизиты, а не просто через xml весь объект?
37 Карупян
 
11.03.16
16:23
Выгрузить в хмл в 2 строчки кода делается
38 Карупян
 
11.03.16
16:24
Хотя если по гуидам нет соответствия, н тогда можно через КД, тоже не сложно
39 Garykom
 
гуру
11.03.16
16:24
(35)+ И еще более офигительная идея "Двухпанельного Объектного Менеджера" в стиле Total Commander или Far для конвертации (переноса) данных между различными базами данных (любыми)
40 Alexor
 
11.03.16
16:25
(35) Вот глюков то словишь.
Чем универсльный обмен XML и правила в КД не устраивают?
41 Garykom
 
гуру
11.03.16
16:25
(36) чтобы правила сопоставления (конвертации/трансформации данных) юзер сам указал на примере переноса одного или нескольких объектов ручками
42 Garykom
 
гуру
11.03.16
16:26
(40) меня КД устраивает, пользователей/клиентов не устраивает и слишком часто дергают
43 Карупян
 
11.03.16
16:26
Если переносить по реквизитам, то может статься что некоторых ссылочных объектов нет, Как быть?
44 Карупян
 
11.03.16
16:26
(42) Напиши обертку
45 Карупян
 
11.03.16
16:27
(41) чтоб пользователь сам - изначально мертвая идея.
46 Garykom
 
гуру
11.03.16
16:28
(43) до этого еще не дошел

(44) не прокатит слишком много разных оберток писать, и если пользователь может ручками перебить между базами что угодно, то сказать какой реквизит какому сопоставить никак не может
47 Garykom
 
гуру
11.03.16
16:29
(45) ммм, когда то операторы ЭВМ ходили в белых халатах и с ВО инженерами числилися...

а вспомните современные смартфоны? как много людей передавая фотку в инстаграмм догадываются "как это сложно" ?
48 Лефмихалыч
 
11.03.16
16:30
(34) а какая половая религия мешает без гамака и не на болоте делать это при помощи ctrl+C  и ctrl+v?
49 Карупян
 
11.03.16
16:32
(46) между любыми базами не всегда может быть соответствие 1 к 1.
зять ут: партнер + контрагент, а в БП только контрагент
50 Garykom
 
гуру
11.03.16
16:34
(48) э? так я и хочу чтобы для любой пары конф пользователь сам делает один раз этот  ctrl+C и ctrl+V для всех реквизитов

а затем оно можно целиком на объектах и даже на списках выделенных объектов!
51 Карупян
 
11.03.16
16:34
(50) В итоге это выльется в новую кд.
Есть такие примеры на ис
52 Garykom
 
гуру
11.03.16
16:35
(49) да поэтому сильно урезанное поначалу будет

затем можно некий ИИ накрутить который поймет что если из 1 в 2 места скопировали между конфами то так и далее надо

или наоборот из 2 в 1
53 Карупян
 
11.03.16
16:36
Опять же на форме может быть поле а заполнение его из регистра.
Ты пользователю будешь предлагать понимать где какой регистр?
54 Карупян
 
11.03.16
16:37
В любой конфе на БСП стопицот полей не видимых на форме. от которых зависит очень многое, всякие ключи связей и тп
55 Fragster
 
гуру
11.03.16
16:38
не взлетит
56 Garykom
 
гуру
11.03.16
16:51
(55) возможно