Что умеет Русский Фокс?

30.09.19

Разработка - Языки и среды

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

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

Наименование Файл Версия Размер
Что умеет Русский Фокс ?:
.rar 26,39Mb
1
.rar 26,39Mb 1 Скачать

    Цель создания своего языка программирования – это желание создать удобный для себя объектноориентированный, русскоязычный и легко читабельный язык, внутри которого будет встроена полноценная справочная система. Все библиотеки и русскоязычные операторы и объекты  используются мной в реальных проектах на FoxPro9, которые я пишу для своих клиентов. А чтоб ими могли пользоваться и другие программисты, я начал разрабатывать данный язык программирования. К тому же мне, при выполнении каких то действий не всегда удобно запускать громоздкий FoxPro 9. Гораздо удобнее использовать маленький интерпретатор (менее 30 мб) на флешке, который не требует инсталляции.

     Данный проект позволяет мне после усвоения нового материала создавать новые функции и объекты в Русском Фоксе (РФокс). Таким образом, РФокс для меня своего рода конспект, в котором я попытаюсь объединить опыт работы с другими языками программирования и развивать русскоязычную библиотеку для FoxPro9, так как библиотека РФокса полностью совместима в FoxPro.

     РФокс – это один из самых простых свободно распространяемых языков для освоения начинающими. Легко создаются экранные формы для ввода информации, сохраняются в простых DBF таблицах и легко формируются отчеты на основе шаблонов Excel и LibreOffice (OpenOffice). Для начального изучения программированию, в том числе объектно ориентированному, самое то. Можно его без особых затрат сделать и многоязычным. Была идея сделать единственный в мире башкирскоязычный язык программирования, но пока не нашел в Башкирии желающих популяризировать башкирский язык и обучать детей в национальных школах программированию на башкирском.

     К сожалению, следует признать, что это пока единственный достаточно объемный объектно ориентированный русскоязычный язык программирования в мире. 1С и OneScript не позволяют создавать объекты, потому их не учитываем. Но на Украине, благодаря стараниям Сергея Рогаткина, уже появился конкурент (но в реальности соратник) в иной весовой категории //infostart.ru/public/1101638/ , на котором заодно можно создавать DLL-файлы, чтоб подключать их в РФоксе. Кроме того, разработанный редактор языка программирования Перфолента подходит и для программирования на РФоксе. Автор Перфоленты добавил возможность открывать для редактирования и последующего запуска файлы РФокса и OneScript. Но кроме редактора Перфолента вы можете использовать и NotePad++. Описание по настройкам есть в документации и на видео. 

      Я умышленно создал базовые функции для РФокса аналогичными, как в 1С, так как сам программирую на 1С. Кстати, и Перфолента имеет такие русскоязычные функции. Потому пользователю будет легко программировать в РФокс, в Перфолента, в OneScript и в 1С. Надо только учитывать, что в РФокс знак «;» означает перевод команды на следующую строку, а не окончание команды, как в 1С, в OneScript и Перфолента. К этому придется привыкнуть. 

      Сразу скажу, что РФокс – это 32-разрядный язык программирования и работает только под Windows (лично меня это пока устраивает), но на нем можно генерировать пока простой PHP-код, а так же будет генерация кодов для других языков программирования. РФокс уже содержит объекты для генерации HTML и CSS кода.

    В отличие от FoxPro9, кодировка исходного текста которого может быть только Win1251, РФокс, кроме кодировки Win1251, понимает и UTF8-BOOM, поэтому вы можете писать код для РФокс на современных редакторах.

     РФокс, как наследник FoxPro9, обладает практически всей мощью языка FoxPro9. Вы можете смешивать англоязычное программирование на FoxPro9 с программированием на РФокс в одном коде и, например, написать так: 

    IF Значение=ИСТИНА  ТОГДА

          MESSAGEBOX(«Высвечиваю сообщение из MessageBox()»)

          Предупреждение(«Высвечиваю сообщение из Предупреждение()»)

     КОНЕЦЕСЛИ;

    Так что справочник и документация по FoxPro вам так же будет полезна.

    Кроме того, как промежуточный файл компиляции генерируется файл PRG в кодировке win1251, а затем исполняемый код для FoxPro9 с расширением fxp, который можно запускать без первоначального исходного текста. Экранные формы, меню и модули fxp, созданные в среде FoxPro, вы можете подключать и в РФоксе. Но зачем вам возиться с англоязычным FoxPro, когда у вас есть Русский Фокс ?

     Встроенные объекты РФокс существенно расширяют возможности FoxPro9. Функции в РФоксе бывают свободными (С) и большинство функций находятся в составе объектов. Часть свободных функций являются аналогами 1С. В справочной системе они обозначены как (1С). Большинство функций сгруппированы в объектах. Каждый объект имеет свойство Помощь() (возвращает строку с помощью по объекту) и ПоказатьПомощь() (высвечивает на экран помощь по объекту).  Если в помощи объекта при описании функции стоит знак (С), то это значит, что функция имеет свободный аналог, то есть может быть вызвана без создания объекта. А если стоит знак (1С), то эта свободная функция работает аналогично, как в системе 1С, то есть для изучения этой функции можно смотреть руководство по 1С. Часть объектов в РФокс являются предопределенными, то есть создаются при запуске вашего модуля: ОбъектСтрока (содержит функции по работе со строками), ОбъектДата (работа с датами), ОбъектЧисло, ОбъектФайл, ОбъектСистема, ОбъектДиалог, ОбъектРабочийСтол, ОбъектИсследование, RusFox (объект с кратким описанием объектов в РФокс).  Функции заключенные в предопределенных объектов можно вызывать, не создавая объекта.  Например, посмотреть на экране помощь по объекту:  ОбъектСтрока.ПоказатьПомощь().  Если же объект не предопределен, то следует сначала создать объект:

      CSS = НовыйОбъект(«Генератор_CSS»)

      CSS. ПоказатьПомощь()

  

   Если запустить RusFox.exe без параметров, то откроется окно, в котором вы можете получить на экран помощь по всем объектам РФокса и скопировать этот текст в любой редактор.  Список объектов постоянно пополняется, а так же появляются новые функции в объектах.

    Чтоб поверхностно понять нынешние возможности РФокса можно ознакомиться со списком существующих объектов в РФоксе версии 5.13: Диск, ЗапускПрогWindows, ЭкспортИмпорт, ПросмотрКурсора, КаталогиWindows, Реестр, ФункцииDBF, ФайлDBF, Курсор, Массив, ОбъектМассив, RepOpenOffice, Excel, ТабличныйОтчет, Перфолента, PHP,  clickermann, Интернет, ВебКлиентPHP, ВебКлиентMySQL, ВебКлиент, ВебСервер, Сеть, Shell,  ФормаГлавная, ФормаОкно, Коллекция, Редактор, Флажок, СтрокаВвода, Надпись, Кнопка, КомбинированныйСписок СписокСтрок Таймер Страницы ГруппаКнопок      ГруппаПереключателей, Изображение, Спиннер, Фигура, ТаблицаКарточки, HTML5, Генератор_CSS.   К этому можно добавить документацию по FoxPro9. Все объекты существующие в FoxPro9 так же могут быть созданы. Объекты Коллекция … - Фигура – это наследники аналогичных объектов из  FoxPro9.

     В каталогах РФокс содержатся примеры программирования и примеры различных программ на РФоксе, которые позволят вам быстрее освоить программирование на РФоксе.

     РФокс пока не создает exe и dll файлов, но умеет подключать dll файлы от windows, а так же типовой стандарт dll файлов C#, Перфоленты и т.п. Умеет запускать статические и динамические методы объектов из dll-файлов.

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

     Думаю, РФокс полезен для системных администраторов (см. функции объекта Сеть), работающих с Windows, которым некогда серьезно изучать программирование, но есть потребность автоматизировать рутинные операции.  С Linux так же можно создать канал для работы, используя объект ВебСервер и ВебКлиент. ВебСервер генерируется на PHP объектом ВебСервер и данный файл server.php помещается в каталог ВебСервера. Он может принимать, отдавать файлы и запускать программы. Правда я пока не занимался вопросами безопасности и шифрования для такого соединения, так как пока не было надобности.

 

     Так как проект не коммерческий и я занимаюсь им в свободное от основной работы время, то прошу не сильно критиковать меня за обнаруженные дефекты, но сообщать о них. Желающие могут помочь в развитии объектов РФокса. Например, знатоки PHP могут развить объект PHP. А знатоки Python, JavaScript, Java и т.д. могут помочь в создании соответствующих объектов по аналогии с объектом PHP.

РФокс РусскийФокс FoxPro ООП

См. также

Зачем нам 1С:Элемент

Мобильная разработка Языки и среды Бесплатно (free)

Flutter может быть использован с 1С:Предприятием для разработки кроссплатформенных мобильных приложений, обеспечивая единый интерфейс и функциональность на устройствах под управлением iOS и Android. Это позволяет создавать приложения с высокой производительностью благодаря использованию собственного движка рендеринга Flutter. Интеграция Flutter с 1С:Предприятием позволяет создавать мобильные приложения любого уровня сложности, интегрировать их в корпоративные информационные системы, а также реализовывать бизнес-логику

19.03.2024    6877    ROk_dev    56    

37

(Не) Строгая типизация 1С

Языки и среды Платформа 1С v8.3 Бесплатно (free)

Существует множество языков программирования, и каждый имеет свои особенности по работе с типами данных. Слабые, явные, динамические и другие... Но кто же здесь 1С и почему с приходом "строгой" типизации EDT 1С-программистам стоит задуматься над изменением своих привычек.

16.01.2024    4221    SeiOkami    21    

55

Простое приложение на Dart

Языки и среды Бесплатно (free)

Пример небольшого приложения, с которого можно начать изучать язык программирования Dart.

08.08.2023    3195    acvatoris    6    

13

Статический анализатор кода 1С на Си

Языки и среды Платформа 1С v8.3 Россия Бесплатно (free)

Написание статического анализатора для 1С традиционным способом на Си.

30.06.2023    2983    prohorp    15    

12

Сквозная задача на Исполнителе - часть первая (IMAP)

Языки и среды Абонемент ($m)

Поставили нам задачу - вынести на отдельный сервер функционал получения заказов от клиентов по электронной почте, парсинг полученных XLS в приемлемый вид и трансформация заказов в красивый JSON, понятный нашей учетной системе на 1С. Всю эту красоту желательно запустить в отдельном докер - контейнере, по возможности не тратя лицензии, поэтому отдельно стоящую конфигурацию на БСП отвергаем сразу. Можно было бы собрать всё на Apache Airflow или Apache NiFi, но решили попробовать реализовать всю логику без Open Source, будем делать свой ETL, с Исполнителем, который в версии 3.0 научился взаимодействовать с электронной почтой по IMAP. Начнем с середины - сначала напишем скрипты, а потом соберем их в рабочую конструкцию

1 стартмани

01.06.2023    1895    0    kembrik    2    

7

1С# - Расширяем код 1С кодом на C#

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

Вставки кода на C# внутри кода на 1С.

7 стартмани

07.04.2023    9287    4    SerVer1C    56    

43

Независимая разработка совместимых компонент на ORM 1С – миф или истина где-то в аннотациях Java?

Языки и среды Платформа 1С v8.3 Бесплатно (free)

При работе с 1С ORM (object relation mapping) все время преследует ощущение постоянного создания монолитного приложения — один раз привязался к какой либо сущности (например, справочник Контрагенты), и весь код заполнен ссылками на эту конкретную реализацию. Можно ли независимо разрабатывать в ORM совместимые между собой справочник «Контрагентов» и использующий его документ «Платежное поручение», но при этом избежать жестких зависимостей? Спасут ли нас микросервисы? Пример на аннотациях Java демонстрирует, как это возможно делать.

13.03.2023    1024    1CUnlimited    0    

2

xPath в 1С

Файловый обмен (TXT, XML, DBF), FTP Языки и среды Платформа 1С v8.3 Бесплатно (free)

Опыт работы методами языка xPath в 1С.

04.03.2023    4937    DemetrKlim    40    

46
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Perfolenta 204 30.09.19 13:16 Сейчас в теме
слежу за РусФоксом с самого начала... язык развивается и уже вполне может быть полезен... например, там где еще используется ХР, или 1С-никами, которые раньше работали с FoxPro...
думаю, что для того, что бы РусФоксом стали пользоваться больше людей, автору надо публиковать полезные скрипты, которые будут соответствовать принципу "взял, использовал и получил пользу"...
это же и моей Перфоленты касается...
утюгчеловек; Fox-trot; +2 Ответить
2. andreosh 103 30.09.19 13:34 Сейчас в теме
Полезные скрипты представлены в Ютубе на видеоканале и в каталоге программы. Можно еще выполнять заказы и пожелания читателей на разработку скриптов и выкладывать их.
3. Perfolenta 204 30.09.19 14:11 Сейчас в теме
(2) переименуйте файл для скачивания, а то не понятно, что предлагается скачать...
4. andreosh 103 30.09.19 20:21 Сейчас в теме
(3) Осталось понять, как это сделать. В реальности там файл РФокс версии 5.13 https://f2h.io/2dxs9iteia9o
5. acanta 30.09.19 21:19 Сейчас в теме
Обычно возникает вопрос как будут распространяться разработки - в виде плагинов, библиотек или готовых приложений.
6. andreosh 103 30.09.19 21:50 Сейчас в теме
(5) РФокс производит исполняемый код с расширением fxp (FoxPro9). Он может исполняться из РФокса (указывается файл в качестве параметра). Либо запускается файл RUS (указывается файл в качестве параметра) с текстом программы, но каждый раз все равно формируется fxp и запускается на исполнение, то есть запуск будет медленней. Можно создавать fxp-модули и подключать их в своих проектах (в каталоге программы и на видео в Ютубе есть примеры). Но РФокс вам придется передавать клиенту. РФокс (RusFox.exe и dll-файлы от FoxPro9) свободно распространяемый.
Perfolenta; +1 Ответить
7. Steelvan 302 30.09.19 22:45 Сейчас в теме
(6) Для суровых челябинских программистов.
Нужно ну ооочень хотеть это программировать.
Но плюсик поставил для поддержки :)
11. Perfolenta 204 01.10.19 09:54 Сейчас в теме
(7) вы правы, нужно быть энтузиастом, что бы тратить на это свое время... к сожалению, мы все вынуждены зарабатывать деньги и на энтузиазм сил и времени хватает не у многих... но без энтузиастов новое не пробьется...
pvlunegov; утюгчеловек; +2 Ответить
19. pvlunegov 157 19.04.20 18:59 Сейчас в теме
(6) Андрей, вы написали что РФокс свободно распространяемый. У вас на странице Github какая то очень старая версия. Там нет документации и очень мало примеров.
Прошу вас обновить вашу публикацию на GitHub, если возможно.
Ваш проект меня очень заинтересовал, хочется заценить, потестить, примерить в работе.
Заранее спасибо за ваши огромные труды!
20. andreosh 103 19.04.20 20:52 Сейчас в теме
https://www.youtube.com/watch?v=7JF5lgQcob8&list=PLo4sldcUomOqQ746OpzoD04Eaj7uBO9-U&index=2
Самые свежие версии в комментариях к последнему видео.
На GitHab запрещено exe и DLL выкладывать.
Последняя версия здесь https://f2h.io/bvi255a8a92a
8. acanta 30.09.19 23:58 Сейчас в теме
Нда. Если относиться к индусскому инглишу как к латыни в ботанике или итальянскому в музыке то вообще никаких шансов нет даже у 1с.
Но пока так к программированию не относятся, лет прошло мало.
Конечно, ленточки от советских печатных машинок на японские матричные принтеры это не вернет, а лазерники с картриджами это тааак сложно.. инструкций нет, в институте не изучают... Пичалька.
10. Perfolenta 204 01.10.19 09:07 Сейчас в теме
(8) на самом деле проблема только в неверии в свои силы... как вы думаете была ли "печалька" у Линуса Торвальдса, когда он первую версию в дохлый по тем временам интернет закинул? А изучали ли в институте первые версии Питона, например? Дело в том что нашлись в достаточном количестве энтузиасты, которые не ныли, а брали на себя часть трудностей автора... совершенствовали и распространяли... а у нас, со времен Петра Первого, распространяется какое-то западопоклонство... "вот немец-то голова, не то что наши!"
Русский язык отлично подходит для программирования, ни чуть не хуже английского... просто развивать надо свое, а не на заграницу молиться...
acanta; olejnikov_m; andreosh; утюгчеловек; +4 Ответить
12. Steelvan 302 01.10.19 12:23 Сейчас в теме
(10) западопоклонство самим Западом же здесь и распространяется, согласен
16. for_sale 971 20.10.19 11:04 Сейчас в теме
(12) да, согласен, везде агенты госдепа!!!11адинадин
13. acanta 01.10.19 16:04 Сейчас в теме
(10) проблема не в энтузиазме, а в терпении.
Норбеков и бизнес-молодость это тоже энтузиасты.
Но Фидо проиграло интернету потому что бабло заменяет энтузиазм и его в принципе можно напечатать, в отличие от божьей искры. У энтузиазма есть один роковой недостаток - он негибкий. Если клиенты морально не готовы ещё или наоборот, выявили какие то проблемы, есть необходимость развивать - энтузиаста практически невозможно поправить.
14. Perfolenta 204 01.10.19 18:15 Сейчас в теме
(13) не знаю причем тут Норбеков...
терпение необходимо автору, т.к. разработка может быть длительной, а успех совсем не очевидным...
а энтузиасты нужны на начальном этапе жизненного цикла, что бы морально поддержать автора и создать начальную экосистему... а в уже существующую экосистему могут потянуться и расчетливые "бизнесмены"...
да, вместо энтузиастов вполне пойдут реклама и маркетинг, но как известно, это не всем авторам по карману...
энтузиасты не могут, не станут и не должны обслуживать клиентов, это из другого мира...
Энтузиасты это люди с хорошей душой, которые видят, что если подставить плечо, то птичка полетит и это будет здорово....
17. Bassgood 1425 22.10.19 12:58 Сейчас в теме
(13)
бизнес-молодость это тоже энтузиасты.

Это самые крупные инфоцыгане, которые льют море воды и зарабатывают на этом кучу денег, а не энтузиасты...
Все они "бизнесмены", но почему то о их "бизнесах" поисковики ничего путевого не выдают, да и сами они ничего конкретного о них не рассказывают, ибо их в реальности и не существует ;)
9. andreosh 103 01.10.19 07:53 Сейчас в теме
Для написания прикладной программы в РФоксе нужно: 1) Хранить данные (dbf-файлы), 2) Отображать данные (создание экранных форм) 3) Обрабатывать и выводить данные на печать (отчеты).
Для хранения в РФоксе удобно использовать объект "ФункцииDBF",
Для отображения объекты: ФормаГлавная ФормаОкно Редактор Флажок СтрокаВвода Надпись Кнопка КомбинированныйСписок СписокСтрок Таймер Страницы ГруппаКнопок
ГруппаПереключателей Изображение Спиннер Фигура ТаблицаКарточки
Для отчетов - "ТабличныйОтчет", благодаря которому формировать отчеты на основании шаблонов Excel или LibreOffice (в зависимости, какой из этих объектов укажешь объекту "ТабличныйОтчет")
Кроме этого, с помощью объектов "ВебКлиентPHP" и "ВебСервер" можно организовать обмен файлами между приложениями по сети интернет или по локальной сети, а так же обновлять версии программ у пользователей через ВебСервер.
У РФокса самый низкий порог вхождения в программирование по сравнению с другими языками программирования.
pvlunegov; +1 Ответить
15. andreosh 103 11.10.19 15:02 Сейчас в теме
Создаем ВебСервер и работаем из РФокса через него с таблицами MySQL
https://youtu.be/1wZqFeNtDtk
РФокс версии 5.17 от 11.10.2019 https://f2h.io/munalzxsufoe
pvlunegov; +1 Ответить
18. acanta 22.10.19 13:29 Сейчас в теме
Коммерческий аналог службы занятости населения. Интересные тренинги проводят.
21. CXY 393 27.08.20 18:00 Сейчас в теме
Русская версия FoxPro была ещё в 90-х годах под DOS, и называлась она КАРАТ М. Работала безотказно и быстро на любой технике, а тогда это было очень важно.
Оставьте свое сообщение