РусскийФокс — 1С-подобный язык программирования

03.07.18

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

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

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

Наименование Файл Версия Размер
РусскийФокс — 1С-подобный язык программирования.:
.rar 5,40Mb
1
.rar 1.0 5,40Mb 1 Скачать

Язык программирования РусскийФокс — это интерпретатор для исполнения в среде Windows (WinXP и далее). Программа (платформа) представлена в виде одного файла RusFox.exe и нескольких DLL-файлов (итого объем около 14 Мбайт). В качестве первого параметра при запуске следует передавать текстовый файл с расширением rus, в котором должна содержаться программа на 1С-подобном языке программирования РусскийФокс, но удобней настроить, чтоб расширение RUS запускал RusFox.exe.

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

Закачать нужные файлы (саму программу, DLL-файлы, примеры, учебник) можно с https://github.com/UfaScript/RusFox .

На данный момент из синтакс-помошника учебной версии 1С реализованы все функции работы со строками, все функции работы со значениями типа Дата, функции преобразования значений (число, строка, дата). Пока отсутствует отладчик, но реализованы операторы ПОПЫТКА, ИСКЛЮЧЕНИЕ, КОНЕЦПОПЫТКИ;, которые могут помочь в отладке. Отсутствует интерактивная среда разработки. Создание отладчика и среды разработки — это слишком объемный труд для одного человека. Первоначальной целью создания своего языка программирования было желание предоставить пользователю возможность формировать собственные отчетные формы в моих прикладных программах. Для удобства работы я расскажу, как настроить редактор Notepad++ для подсветки синтаксиса.

Урок 01. Знакомство с языком программирования РусскийФокс.

Программы записываются в текстовый файл в кодировке Windows-1251. Комментарий начинается символом «//». В файле должна быть обязательная процедура запуска программы Старт. Традиционная программа «Привет, Мир !» будет выглядеть так:

// Программа Привет, Мир - это комментарий

ПРОЦЕДУРА Старт

Сообщить(«Привет, Мир!») // Это другой вид комментария в продолжении строки

КОНЕЦПРОЦЕДУРЫ

Как видите, ключевые слова ПРОЦЕДУРА и КОНЕЦПРОЦЕДУРЫ пишутся в верхнем регистре. Внутри процедуры «Старт» Располагается ваша 1С-подобная программа. 1С-подобная не означает, что язык программирования полностью идентичен программированию в 1С. При написании команд не используется точка с запятой «;», которая используется в 1С. Пока только в двух ключевых словах точка с запятой обязательна (КОНЕЦЦИКЛА; КОНЕЦЕСЛИ; ).

Мы можем определить переменную типа строка, присвоив ей текст «Привет, Переменная !»

Переменная = "Привет, Переменная !"

Тогда текст нашей программы будет выглядеть так:

ПРОЦЕДУРА Старт

Переменная = "Привет, Переменная !"

Сообщить(Переменная)

КОНЕЦПРОЦЕДУРЫ

Запуск программы производится через командную строку командой

RusFox Lesson01.rus

либо удобно установить для типа файла с расширением RUS программу для запуска RusFox.exe

В функции Сообщить можно высвечивать не только строки, но и число:

Число=23

Сообщить(Число)

Но если вы в сообщении используете строку или строковую переменную, то число следует преобразовывать функцией Строка()

Число = 23

Число2 = 7

Сообщить("Это число 23+7="+Строка(Число+Число2))

При написании программы вы можете использовать условные операторы.

Условный оператор ЕСЛИ может использоваться без слова ТОГДА (в 1С слово ТОГДА обязательно), но нельзя, как в 1С, располагать операторы в одной строке. Каждый оператор должен располагаться в новой строке. Оператор «КОНЕЦЕСЛИ;» нельзя использовать без точки с запятой в конце.

Число=21

ЕСЛИ Число=23 ТОГДА

        Сообщить("Число=23")

ИНАЧЕ

          Сообщить("Число не равно 23")

КОНЕЦЕСЛИ;

Вы можете комбинировать несколько условий после оператора «ЕСЛИ», используя при этом булевые операции И, ИЛИ, НЕ.

ЕСЛИ Число>Число2 И Число<>20

        Сообщить("Число больше Число2 и Число не равно 20")

ИНАЧЕ

         Сообщить("Условие не выполнено")

КОНЕЦЕСЛИ;

Строки можно соединять между собой знаком «+». Команды могут переносится на другую строку, если в конце не завершенной команды поставить знак «;». Это отличает данный язык программирования от 1С-программирования. В 1С знак «;» означает окончание команды.

Фамилия="Ошнуров"

Имя = "Андрей"

Отчество = "Михайлович"

ФИО = Фамилия+" "+Имя+" "+;

Отчество

Сообщить(ФИО)

В примере строку «Отчество» мы перенесли на новую строку, для этого переноса использовали символ «;»

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

ПРОЦЕДУРА Старт

Сообщить(СложитьЧисла(10,12))

КОНЕЦПРОЦЕДУРЫ

 

ФУНКЦИЯ СложитьЧисла

ПАРАМЕТРЫ Число1, Число2

КОНЕЦФУНКЦИИ Число1+Число2

Здесь «СложитьЧисла» - это функция, которой передаются параметры Число1, Число2. Затем числа переданные в этих параметрах складываются и результат возвращается.

Функцию можно написать и так:

ФУНКЦИЯ УмножитьЧисла(Число1, Число2)

КОНЕЦФУНКЦИИ Число1*Число2

Здесь число в параметре Число1 будет умножено на число в параметре Число2.

Для организации циклов используется набор операторов ДЛЯ, ПО, КОНЕЦЦИКЛА; . Использование точки с запятой в конце оператора КОНЕЦЦИКЛА; является обязательным.

ДЛЯ Номер=1 ПО 3

      Сообщить(Номер)

КОНЕЦЦИКЛА;

В результате выполнения данного примера высветится 3 раза окно, в котором последовательно отобразятся цифры от 1 до 3.

Программирование РускийФокс 1С

См. также

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

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

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

19.03.2024    6783    ROk_dev    56    

38

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

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

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

16.01.2024    4210    SeiOkami    21    

55

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

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

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

08.08.2023    3190    acvatoris    6    

13

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

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

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

30.06.2023    2982    prohorp    15    

12

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

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

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

1 стартмани

01.06.2023    1892    0    kembrik    2    

7

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

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

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

7 стартмани

07.04.2023    9282    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    4932    DemetrKlim    40    

46
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. 79123890854 03.07.18 11:08 Сейчас в теме
На чём написан интерпретатор?
5. andreosh 103 03.07.18 11:36 Сейчас в теме
2. Steelvan 302 03.07.18 11:17 Сейчас в теме
Сдается мне, что такие отличия в синтаксисе связаны с анализатором, насколько автор смог его написать :)
3. Steelvan 302 03.07.18 11:19 Сейчас в теме
Ключевые слова заглавными подтверждают догадку почти наверняка.
9. andreosh 103 03.07.18 14:26 Сейчас в теме
Заглавными, чтоб улучшить отличия операторов. Могу сделать и без учета регистра. Но мне, кажется, что так лучше дисциплинирует. Тем более, что весь отладчик состоит из команды Сообщить(). С отладчиком пока проблемы, Хотя я сам отладчиками мало пользуюсь.
10. Steelvan 302 03.07.18 15:34 Сейчас в теме
(9) Вы за пользователя принимаете решение, что ему лучше, исходя из собственного восприятия мира.
Это накладывает ограничение, что производит недовольство конечного программиста.
12. andreosh 103 03.07.18 15:46 Сейчас в теме
приходится так делать, так как свобода увеличивает себестоимость разработки. Продукт не коммерческий, пока на скудном самофинансировании, а задумано сделать много. меня подобные ограничения в других языках не напрягают, а вот отсутствие ООП в других языках напрягает.
16. Steelvan 302 03.07.18 17:35 Сейчас в теме
(12) Ограничения приводят к тому, что вместо мыслей о программировании, пользователь думает об ограничениях.

И таки да, надо учитывать целевую аудиторию. Это 1Сники.
Если они привыкли писать Цикл и КонецЦикла с одной заглавной большой, то они будут плеваться на необходимость включать написание заглавными.

У меня нет цели критики, это наоборот.
18. andreosh 103 03.07.18 19:13 Сейчас в теме
Это не сложно. Сделаю еще и "КонецЦикла" в следующей версии. По возможности надо приспосабливаться к 1С-никам.
41. user928779 07.07.18 15:12 Сейчас в теме
(9)
Хотя я сам отладчиками мало пользуюсь.
Разработка нового языка программирования без отладчика - это мощно. Внушает уровень.
43. andreosh 103 07.07.18 17:38 Сейчас в теме
В будущем будет и отладчик. Просто отладчик создавать - это отдельная тема. Пока сделал сообщения об ошибках, но не обо всех.
4. Steelvan 302 03.07.18 11:35 Сейчас в теме
Поставлю плюс как единомышленнику в подобном направлении :)
Perfolenta; +1 Ответить
29. Perfolenta 204 04.07.18 23:56 Сейчас в теме
(4) вы тоже пишите свой язык?
34. Steelvan 302 05.07.18 22:27 Сейчас в теме
(29) Да, мы ведем работы в этом направлении.
35. Perfolenta 204 05.07.18 23:48 Сейчас в теме
(34) если не секрет, что это будет? Интерпретатор или компилятор? На базе какой технологии?
6. Aphanas 92 03.07.18 12:16 Сейчас в теме
Объектно-ориентированный? Покажите как объявлять классы.
sergathome; +1 Ответить
8. andreosh 103 03.07.18 12:34 Сейчас в теме
Позже опишу. Уверяю, что здесь все будет нормально, так как фактически будет руссифицировано FoxPro-шная технология. Моей заслуги тут особой нет. Можете принять участие советом, как лучше руссифицировать. Пишите на UfaScript@mail.ru
13. andreosh 103 03.07.18 15:49 Сейчас в теме
Кстати, на Ютубе буду выкладывать более полную инфу о развитии языка программирования РусскийФокс. Так что следите там.
7. sergathome 4 03.07.18 12:26 Сейчас в теме
+1. Автор - трёх китов - в студию !
CyberCerber; +1 Ответить
11. Jimbo 9 03.07.18 15:38 Сейчас в теме
напуркуа это изобретение велосипеда ?
Ta_Da; user928779; Plotks2017; +3 Ответить
14. andreosh 103 03.07.18 15:50 Сейчас в теме
Это велосипед с реактивным двигателем ;-)
15. Идальго 226 03.07.18 16:38 Сейчас в теме
17. andreosh 103 03.07.18 17:39 Сейчас в теме
Шоб было. Пригодится. А если серьезно, то планирую объединить свои наработки на разных языках программирования (FoxPro, PHP, JavaScript,CSS, 1C, 1Script) в одном языке программирования. К тому же это будет единственный русскоязычный объектно-ориентированный язык программирования. Планирую реализовать в виде русскоязычных функций командную строку Windows. Одним словом, все фантазии не опишешь кратко, хватило бы времени. Но уже сейчас данный язык я использую в своих программах на FoxPro в виде подобия внешних обработок 1С. Видео будет на моем канале в Ютубе. (подписывайтесь).
26. Perfolenta 204 04.07.18 23:11 Сейчас в теме
(17) Не волнуйтесь, единственным русскоязычным ООП языком не будет... :)
у меня вот тоже руки чешутся опубликовать свой вариант... только всё хочется прилизать поприличней перед первым выходом в свет... но долго уже не стерплю... :) пару месяцев максимум...
Steelvan; +1 Ответить
28. Perfolenta 204 04.07.18 23:52 Сейчас в теме
(17) посмотрел документацию и примеры... интересно замечать, как многие мысли совпали :)... в моем языке, который скоро так же выйдет в свет, тоже можно не ставить точки с запятой и не писать ключевые слова Тогда и Цикл... :)
с одной стороны, простые конструкции у меня больше приближены к языку 1С, чем у вас, а с другой, у меня очень много отличий из-за того, что мой язык типизированный и со статической проверкой типов...
1Script в этом выигрышней выглядит, т.к. пытается соблюсти максимальную совместимость с 1С.... но из-за этого много ограничений у него...
Честно говоря много нас таких стало, изобретателей волшебной палочки, но мне кажется, что это хорошо! Вам удачи в разработке и популяризации!
19. Неопределено 90 04.07.18 06:51 Сейчас в теме
Я правильно понял, что
Вопрос()
вызывает вывод окна с вашим текстом, заголовок которого будет "Вопрос!!!"?
24. andreosh 103 04.07.18 18:09 Сейчас в теме
Для вас могу сделать, чтоб заголовок менялся. я просто копировал 1С-функции.
20. zekrus 151 04.07.18 07:43 Сейчас в теме
Доброе утро!
Тема весьма актуальная.
Особенно на русском языке.
Вот работа коллеги:
http://www.gendoc.ru/
С уважением
27. Perfolenta 204 04.07.18 23:14 Сейчас в теме
(20) а я на каком-то форуме читал сообщение автора КОНЦЕПТа, что проект закрыт, т.к. он не почувствовал спроса...
30. Steelvan 302 04.07.18 23:57 Сейчас в теме
(27)

26 ноября 2017г.
Проект КОНЦЕПТ закончен. Все материалы этого сайта останутся в открытом доступе.

Вероятно потому, что использование символа гадского $ многими нормальными людьми воспринимается негативно (правильно).
21. joynik 04.07.18 11:29 Сейчас в теме
Обязательно требую наличие нескучных обоев!
fuser; user928779; ltfriend; +3 Ответить
22. sansys 76 04.07.18 15:19 Сейчас в теме
Как известно, майкрософт прекратила поддержку Visual Foxpro, следовательно напрашивается вопрос: Для чего создавать продукты на языке вышедшем из употребления?
23. andreosh 103 04.07.18 18:05 Сейчас в теме
Потому что FoxPro - это уникальный язык, который даже майкрософт недооценила. Они может его и приобрели, чтоб убить. Это самый интерпретируемый интерпретатор, который может исполнять в полной мере куски своего кода сформированные программно при этом сохраняя полный доступ ко всем переменным программного кода.
39. sansys 76 07.07.18 13:15 Сейчас в теме
(23) Безусловно, идеи заложенные в FoxPro опередили своё время. Это был мой самый любимый язык с 1991 по 2006 год но король умер и другого пока не видно. Ваша задумка с РуссимФоксом заслуживает высшей степени уважения но пока сам интерпретатор закрыт и не развивается существует огромный риск с выходом новых ОС получить не рабочую систему.
40. andreosh 103 07.07.18 13:45 Сейчас в теме
FoxPro развивается с DOS-версий. Возможно, что какие-то функции могут стать не рабочими, но сомневаюсь, что это случится с самим ядром. К тому же я планирую не просто FoxPro, а иной идеологический подход к программированию. Пока это сложно объяснить. Проще показать. В любом случае порог вхождения в РусскийФокс самый низкий: нужен только exe-файл и несколько DLL-файлов, без всяких инсталляций и заморочек. Сразу начинаешь программировать и смотреть результат. Это лучше, чем изучать устаревший Паскаль на уроках информатики, тем более, что на Русском Фоксе можно изучать ООП.
42. user928779 07.07.18 16:17 Сейчас в теме
(40)
я планирую не просто FoxPro, а иной идеологический подход к программированию. Пока это сложно объяснить. Проще показать.

Подобные объяснения вашего продукта тревожат память Виктора Ивановича Петрика и Дениса Попова. К тому же, сказанное в (8):
Уверяю, что здесь все будет нормально, так как фактически будет руссифицировано FoxPro-шная технология. Моей заслуги тут особой нет.
навевает очень сильные сомнения в "продукте".

Будьте добры, соберитесь с силами и расскажите простыми словами о ваших "прорывных" идеях.
44. andreosh 103 07.07.18 17:50 Сейчас в теме
https://infostart.ru/public/861373/
Собрался силами и описал, как создавать объекты. Но раньше времени лучше не рассказывать о планах, которые еще не оформлены, так как придется долго объяснять скептикам, как это будет сделано. На это уйдет много сил. Особо прорывных технологий не планируется, просто будет максимально удобный продукт, особенно для начинающих программистов. Так же планирую объединить свои знания других языков программирования (JavaScript, PHP, CSS, 1C, NodeJS, плюс командная строка Windows). В ближайшее время опишу формирование отчетов по шаблонам OpenOffice (LibreOffice), затем Excel, если будет потребность, потом работа с MySQL и создания экранных форм.
25. andreosh 103 04.07.18 18:30 Сейчас в теме
К тому же, РусскийФокс - это пока единственный объектно-ориентированный русскоязычный язык программирования. В следующей статье я пока жу, как создавать объекты. РусскийФокс удобен для начального обучения, так как не требует инсталляции, занимает всего 14 Мб. Если найду переводчика, то еще сделаю башкирскоязычный язык программирования для национальных школ. Изучать РусскийФокс можно по учебникам 1С. То есть я снижаю планку вхождения в 1С программирование. Надо опустить эту планку ниже плинтуса, чтоб дети могли учится программировать.
31. CheBurator 3119 05.07.18 11:09 Сейчас в теме
Видимо, автор не видел ПОБЕДИТ.
русскоязычный интепретируемый. со своей средой, оконными функциями и прочими. приятная вещь была (или есть)
32. Perfolenta 204 05.07.18 13:14 Сейчас в теме
(31) похоже уже нет... сайт не работает... версия 5.5 много лет уже не обновлялась...
33. CheBurator 3119 05.07.18 13:24 Сейчас в теме
(32) угу, а продукт мог получиться приятственный для своей ниши...
36. Steelvan 302 06.07.18 10:42 Сейчас в теме
Интерпретатор. Из 1С в js. Для работы на клиенте в обозревателе и на сервере в среде node.js.

Компиляторы давно устаревшая и тупиковая технология.

Сейчас купцам для решения их задач нужна работа в обозревателях (настольных и мобильных), а это только js код.
37. andreosh 103 06.07.18 13:08 Сейчас в теме
У Русского Фокса будет Web-интерфейс наподобие того, что я делал для OneScript см.мой канал на Ютубе. Русский Фокс будет ганератором JavaScript, PHP и CSS-кодов. Будет генерация шаблона для Joomla и взаимодействие с РусскийФокс через технологию Ajax. Это уже опробировано на OneScript. Но сначала я опишу примеры работы с объектом OpenOffice, так как РусскийФокс я применяю в своих программах, предоставляя пользователям писать подобие внешних компонент для генерации произвольных отчетов по шаблонам OpenOffice.
38. andreosh 103 06.07.18 13:11 Сейчас в теме
NodeJS оправдан, если много обращений к серверу, так как поддерживает асинхронную обработку запросов. Им я займусь после Joomla, так как Joomla пока больше распространена.
45. Ta_Da 07.07.18 21:55 Сейчас в теме
Не совсем понимаю все-таки - напуркуа? Как демонстрацию "смотри как могу" - понимаю, реальное использование в каких-либо проектах - не верю.
Для автоматизации уже есть русскоязычный 1С. С закрытым кодом платформы, но открытым кодом бизнес-логики и кучей уже написанных решений.
Для сценариев есть 1script (осознанно сделанный максимально похожим по синтаксису с 1С) - с открытым кодом и кучей уже написанных решений.

А для этого языка какая ЦА?
46. andreosh 103 08.07.18 07:31 Сейчас в теме
Перечисленные языки уже имеют многолетнюю историю развития. А данный язык только три месяца, как появился, но уже ООП. Считаю, что на первых порах - это наиболее удобный язык для начального обучения. Дальше, время покажет. Я то по любому его буду развивать, так как использую в своих программах в качестве встроенного языка для создания внешних компонент.
49. Perfolenta 204 11.07.18 13:18 Сейчас в теме
(45) не знаю, помните ли вы словесные баталии на тему зачем нужен русский язык в программировании когда вышла 1с 7... тогда интернет мало у кого был... а программистов пишущих код по русски вообще не было... всем было не удобно и не привычно... в том числе мне... тем не менее, спустя 20 лет существует множество программистов пишущих только по русски и у них не возникает вопрос "напуркуа"... 1С всем хорош, но не универсален, он сосредоточен на задачах управления бизнесом... на нем много чего не напишешь, либо костыль получится, медленный и кривой... а ведь хорошо бы иметь язык хотя бы уровня C#... мне это надо, думаю и другие, кому это надо найдутся... я желаю удачи всем, кто работает над своими версиями русского языка программирования...
50. andreosh 103 11.07.18 17:19 Сейчас в теме
На базе С# сделан русскоязычный 1Script, но у него проблемы с ООП и интерфейсом. В Русском Фоксе не будет проблем с ООП и интерфейсом, но будет проблема с многоплатформенностью (Русский Фокс только под Windows)
47. pakko 10 10.07.18 13:13 Сейчас в теме
Работы ещё непочатый край, однако уже большой плюс ставлю.
В студенчестве писал подобный интерпретатор аж на паскале, однако забил, забыл, потерял файл.
Спасибо, теперь будем ждать интерфейс
48. andreosh 103 10.07.18 22:12 Сейчас в теме
https://youtu.be/bXQqFr32Rds
Исследования объектов в РусскийФокс
Оставьте свое сообщение