РусскийФокс и ClickerMann заносят данные в 1С

21.07.18

Разработка - Инструментарий разработчика

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . РусскийФокс создает сценарии для Clickermann. Сценарий заполняет справочник в 1С.

Скачать файлы

Наименование Файл Версия Размер
РусскийФокс версия 1.07
.rar 5,94Mb
1
.rar 1.07 5,94Mb 1 Скачать

  Бывает так, что надо заполнить справочники в программе, а импортировать нет возможности или лень программировать. Тогда можно попросить робота Clickermann перенести данные из электронной таблицы в программу. Пусть робот за вас нажимает на клавиши. Но писать типовые сценарии для Clickermann удобнее из Русского Фокса, а не в Clickermann.

    В прилагаемом файле имеется пример составления такого сценария (см.файл Lesson13.rus из RusFox_v1_07.rar).  Я же дам краткие пояснения к примеру и предоставлю учебное видео.

Программа ClickerMann.exe генерирует нажатия клавиатуры по программному сценарию, имитируя работу пользователя. Это можно использовать для заполнения справочников в различных программах. Например, в уроке 13 показано, как в Русском Фоксе формировать сценарий к программе ClickerMann для создания новых карточек по основным средствам для программы 1С. У меня возникла необходимость ввести более 13000 карточек в программе 1С, при этом данные для заполнения полей в карточках содержатся в таблице Calc OpenOffice. ClickerMann выполнит эту работу, а РусскийФокс напишет ему сценарий для выполнения.

Создаем два объекта (см. Lesson13.rus)

Офис = НовыйОбъект("RepOpenOffice")

Об = НовыйОбъект("clickermann")

 

Объект «Офис» будет читать данные из таблицы Calc, а объект «Об» будет формировать файл со сценарием для ClickerMann.exe.

Об.НачатьЗаписьСценария("test","Больница")

 

Здесь test – это задаваемое нами имя файла со сценарием (он будет иметь расширение “.cms”). Больница — это слово, которое содержится в заголовке окна открытой программы 1С. В программе 1С мы должны сами открыть справочник «Основные средства» до запуска сценария. ClickerMann, выполняя наш сценарий, сам активизирует окно 1С (в заголовке которого есть слово «Больница»), так как в сценарии будут соответствующие команды.

Используя объект «Офис» мы получаем содержимое нужных нам ячеек и заполняем нужные переменные.

Наименование = Офис.ПолучитьСтрокуИзЯчейки(1, Начало)

Нужные переменные мы передаем в функцию

ДобавитьОсновноеСредство(Наименование,ИнвНомер,Сумма,Номер,Об)

Данная функция производит запись команд в файл сценария (“test.cms”), которые произведут создание новой карточки в программе 1С, внесут в нее нужные данные и нажмут кнопку «Записать». Таким образом, нужные данные попадут в справочник 1С.

Имитируя нажатие клавиши INS, робот ClickerMann создаст новую карточку основного средства в списке основных средств.

Об.КлавишаINS()

После этой команды, на всякий случай, сделаем задержку 500 миллисекунд, чтоб команда нормально отработала (для надежности я делаю заведомо большую задержку).

Об.Задержка(500)

После создания новой карточки курсор будет находится в поле «Наименование». В это поле мы заносим наше значение.

Об.ПечататьСтроку(Наименование)

Теперь нам надо перейти на поле для ввода инвентарного номера. Для этого надо нажать три раза клавишу TAB

Об.КлавишаTAB()

После задержки вставляем нужные данные в это поле. Затем вновь нажимаем TAB. Вводим норму амортизации (в данном случае во всех карточках вводим 100). После этого вновь нажимаем TAB. Вносим количество часов работы оборудования в год (во всех карточках 1925). Затем нажимаем 9 раз клавишу TAB, чтоб попасть на строку «Примечание». В нее записываем порядковый номер карточки. Вновь нажмем TAB и окажемся на кнопке «Записать». Чтоб «нажать» кнопку вводим команду

Об.КлавишаВВОД()

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

Для закрытия файла «test.cms» после окончательной записи сценария вызываем

Об.ЗакончитьЗапись()

После выполнения данной программы мы получим файл сценария для ClickerMann.exe в файле test.cms. Запустив данный сценарий мы увидим, как робот ClickerMann будет создавать новые записи в программе 1С и заносить в них наши данные.

 

РусскийФокс Clickermann 1C Макрос

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122268    673    389    

715

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7323    22    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3567    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177771    1074    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99364    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18128    6    8    

40

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28115    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    23605    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. grumagargler 723 22.07.18 05:09 Сейчас в теме
Если еще будет стоять похожая задача с подобным желанием её решить, попробуйте одну из систем сценарного тестирования, например через Тестер это можно было бы сделать на обычном 1С, думаю другие системы тоже имеют похожий функционал.
2. andreosh 103 22.07.18 05:24 Сейчас в теме
Тестер у 1С слишком сложный и описаний хороших по работе с ним не попадалось. Может подскажете, что почитать ? Есть такое понятие "порог вхождения". Задача РусскийФокс снизить порог вхождения. ClickerMann так же достаточно простая прога. В clickermann есть еще хорошая функция - это считывание цвета в любой точке экрана. Например, чтоб убедится, что карточка открылась, я могу проанализировать изменился ли цвет точки в определенном месте. Если цвет точки не равен требуемому, то значит что-то пошло не так, возможно произошла какая-то ошибка и выполнение сценария следует остановить. Я еще не тестировал эту возможность, но позже включу нужные методы в объект "clickermann"
3. grumagargler 723 22.07.18 05:28 Сейчас в теме
4. andreosh 103 22.07.18 05:34 Сейчас в теме
"Запуск Тестера и тестируемой конфигурации желательно производить на одном компьютере. Для запуска программ на разных компьютерах, необходимо настроить порт и адрес тестируемого приложения в справочнике Приложения." (https://habr.com/post/331532/) Это же усложнение требований, не говоря уж об установке тестера. А Clickermann может работать с любой прогой или вебсайтом без установки. Возможно, что у тестера 1С возможностей поболее, но в описанной мной задаче можно обойтись без дополнительных возможностей. Простую проблему надо решать просто.
5. andreosh 103 22.07.18 05:40 Сейчас в теме
(3)
test1c.com
Достаточно почитать минусы тестера, чтоб понять, что в данной задаче РусскийФокс лучше.
6. grumagargler 723 22.07.18 05:54 Сейчас в теме
(5)
Достаточно почитать минусы тестера, чтоб понять, что в данной задаче РусскийФокс лучше.

Мда...ну лучше, значит лучше, я ведь не утверждал обратное, а только предложил попробовать.
Удачи.
7. andreosh 103 22.07.18 06:40 Сейчас в теме
За предложение Спасибо ! Во всяком случае, почитал про тестер 1С.
8. Ta_Da 22.07.18 08:17 Сейчас в теме
(5)
в данной задаче РусскийФокс лучше

В задаче по переносу данных из справочника в 1С в электронную табличку, путем эмуляции нажатий клавиш и копирования данных наугад из одного окна в другое с помощью программы, которая сама по себе имеет язык сценариев и может это все сделать без кириллического посредника? Вполне возможно что лучше. Но что-то мне подсказывает, что никто в реальной жизни таким образом эту задачу решать не будет.
9. andreosh 103 22.07.18 08:34 Сейчас в теме
Но я решил вчера ее именно таким образом. Запустил на ночь и занес клиенту 5000 карточек основных средств в удаленный сервер (облако). Задержки я поставил большие, потому заносится 1000 записей за полтора часа. Это быстрее, чем ковыряться в сценариях. Сценарий же должен брать записи из Calc OpenOffice.
10. user928779 22.07.18 18:18 Сейчас в теме
(9)
Это быстрее, чем ковыряться в сценариях.

Это характеризует разработчика, а не механизм.
11. andreosh 103 23.07.18 00:00 Сейчас в теме
Чем больше разнообразных способов решения проблемы, тем лучше. А каким способом решать, каждый сам выберет.
12. Perfolenta 204 26.07.18 11:19 Сейчас в теме
(11) Мне кажется, что вы выбрали не верный путь для раскручивания своего языка... Вы в основном демонстрируете какие-то очень частные решения мелких проблем, причем для решения каждой из этих задач вы внедряете в "язык" какой-то объект... Я думаю это не правильно... По-моему, Вам надо отделить язык от прикладных библиотек, показать мощь и красоту самого языка в чистом виде, а затем подумать над стандартной библиотекой полезных функций и объектов в обобщенном виде и поразить воображение богатством возможностей...
Пока все выглядит хаотичным метанием без какого-либо плана....
Это дружеская критика, если что... т.к. сам сейчас размышляю о плане "выхода в люди" :)
13. andreosh 103 26.07.18 11:54 Сейчас в теме
Вы предлагаете большую системную работу, но пока на нее нет времени, приходится еще делать и то за что платят деньги. Я пишу язык для своих разработок (это будет типа внешних обработок к моим прогам). А так я на нащупываю потребности других людей, чтоб развивать язык в востребованном направлении. Во многих языках усложняют, то что можно сделать просто. Я пробую создать простой для усвоения язык программирования. Пока, к сожалению, это единственный русскоязычный ОО язык программирования.
15. Perfolenta 204 26.07.18 15:16 Сейчас в теме
(13) я в такой же ситуации, мне так же необходимо в первую очередь заработать на жизнь, а потом любое хобби, вроде языка программирования... :) но если уж я делаю серьезный язык, то нужна некая академичность в разумных пределах, а иначе будет сарай с прицепом....
Вы часто делаете упор на то, что Русский Фокс это единственный ОО язык, вот сюда и толкайте, покажите красоту и привлекательность того, что это ООП... что бы читающий и смотрящий заразился этой красотой и сказал: "да, это красиво и элегантно!"...
Следующим шагом можно очертить круг задач, в решении которых ваш язык будет эффективен, например, как это сделал ОСкрипт, очертив для себя нишу скриптов администрирования вокруг 1С... Как пример, "Русский Фокс позволяет легко прикрутить к своей программе на другом языке внешние отчеты"... и покажите, вот структура отчета, вот так он программируется...вот так его можно прикрутить к 1С, а вот так к C#, а вот так к языку Н...
Это конечно не простая работа, но иначе мы с вами работаем, что называется в стол...
18. andreosh 103 26.07.18 17:57 Сейчас в теме
(15) В ближайшее время опишу способы создания экранных форм, покажу формирование более сложного отчета по шаблону OpenOffice, работу с DBF-файлами (индексы и соединение файлов), экспорт и импорт в XML. Затем уже перейду на MySQL, командную строку Windows (администрирование через командную строку, объекты на Русском Фоксе будут запускать командные строки Windows и разбирать возвращаемый результат), дальнейшее развитие взаимодействия с Clickermann (он обладает функциями своего рода экранного зрения, то есть может сравнивать изображения на экране, чтоб анализировать открылось окно или что-то пошло не так).
19. Perfolenta 204 27.07.18 16:16 Сейчас в теме
(18)
Clickermann
это не очень серьезно... я за свою жизнь много работал с подобными штуками... они регулярно глючат по разным неожиданным причинам... например, кошка пробежала по клавиатуре... или антивирус не во время выдал окно поверх других окон и еще миллион событий... мне ребенок как-то выключил компьютер и я потерял несколько часов работы.... на любой ваш сценарий найдется непредвиденная ситуация.... иногда, конечно без него не обойтись, если у какой-то программы нет возможности управлять ей из кода... но если есть, как у 1С, то лучше избежать использования кликера...
работа с ДБФ по идее должна быть сильной стороной Фокса, хотя я с ним не работал, не знаю... может вы меня и присадите на него немного :)
20. andreosh 103 27.07.18 16:48 Сейчас в теме
(19) Clickerman хорош тем, что обладает экранным зрением, то есть вы можете его запрограммировать, чтоб он сравнивал цвет пикселей в разных частях экрана (позже я добавлю в РусскийФокс эти возможности). Тогда если кошка пробежала по клавиатуре, то сценарий остановится, так как цвет пикселей в ключевых точках не будет соответствовать ожидаемому. Так же возможно сравнение и нахождение на экране изображений (областей экрана), сравнивая его с эталонным, записанным в файле. Конечно, программировать на Clickermann можно и без Русского Фокса, но проще начать с Русским Фоксом. Конечно, РусскийФокс хорош пока для начинающих программистов или сисадминов, так как профессионал предпочтет писать прогу на языке оригинала без переводчика типа РусскогоФокса, но и времени потратит на решение некоторых задач больше.
14. andreosh 103 26.07.18 12:12 Сейчас в теме
(12) В принципе я двигаюсь разными путями. Но основная цель - это не раскрутить, а развить в востребованном направлении. Для этого надо прислушиваться к различным мнениям. Кроме этого, есть потребность объединить свои знания различных языков программирования (FoxPro, php, javascript, CSS и т.д.) в одном русскоязычном языке программирования.
16. Perfolenta 204 26.07.18 15:31 Сейчас в теме
(14) развить в востребованном направлении это хорошо, но без раскрутки оно в массы не пойдет... если посмотреть на список не взлетевших русскоязычных языков программирования, то можно удивиться, что о большинстве из них мы даже не слышали... а автор сварился в собственном соку... если обратите внимание, то еще ни одно из ваших видео на Ютубе не собрало более 100 просмотров... и только 3 из них превысили 50... без раскрутки все умрет в забвении... я просто сам об этом размышляю, вот и вас стараюсь направить, как мне кажется, в правильном направлении... мне просто давно хочется, что бы русскоязычные языки программирования были... может быть мой не выстрелит, так пусть еще чей-то... радуюсь успехам ОСкрипта и надеюсь, что он уже не умрет, кажется он живет и растет, но у него была огромная фора, т.к. он простая копия языка 1С... у нас с вами этой форы нет, хотя и мы идем как рыбы прилипалы за некоторой совместимостью с языком 1С, т.к. надеемся в начале пути на крохи от его популярности...
17. andreosh 103 26.07.18 17:47 Сейчас в теме
(16) 1С просто задал первоначальный стандарт, которому имеет смысл следовать.
Оставьте свое сообщение