VM1C - виртуальная машина для 1С

Публикация № 190148

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

Демонстрация возможностей виртуальной машины для 1С. Создаем и выполняем код модулей в режиме Предприятия в реальном времени.


Представляю свой экспериментальный проект VM1C. VM1C - это виртуальная машина, которая позволяет на лету компилировать и выполнять любые процедуры и функции, а также целые модули.

По сути, это недостающая в 1С возможность полноценного Reflection, которая присутствует на других платформах, например на .NET и позволяющая там делать по истине умопомрачительные вещи. 

Для тех, кто не знаком с Reflection: Wikipedia

 

Описание работы


VM1C работает без использования каких-либо внешних компонент, используя только штатные возможности 1C, не зависит от платформы и конфигурации. Может добавляться в конфигурацию как в виде обработки, так и в виде общего модуля.


В состав VM1C входят:


Компилятор в промежуточный код   VM1C_IL_Compiler (Intemediate Language Compiler)
Компилятор в понятный 1С код VM1C_JIT_Compiler (Just-in-time Compiler)
Сама виртуальная машина VM1C_VM (Virtual Machine)


Рассмотрим каждый компонент отдельно

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

Например следующий код


Для н=1 По 100 Цикл
 
н = н+1;
 
КонецЦикла;
 
Возврат н;


будет преобразован в набор инструкций


push 1
stloc 0
push 100
stloc 1
br ~IL_1
~IL_2: ldloc 0
push 1
add
stloc 0
ldloc 0
push 1
add
stloc 0
~IL_1: ldloc 0
ldloc 1
ble ~IL_2
~IL_0: nop
ldloc 0
ret


Это сделано, для того, что бы

  1. ускорить дальнейшую обработку кода в реальном времени. Так как сам процесс компиляции  занимает относительно много времени
  2. обеспечить возможность создавать и выполнять процедуры и функции в режиме 1С Предприятия


vm1C_IL_Compiler = Обработки._VM1C_IL_Compiler.Создать();
текстМодуля = ЗагрузитьКодИзФайла("Модули\РаботаСТоварами");
модуль = vm1C_IL_Compiler.КомпилироватьМодуль(текстМодуля);


После того как у нас есть промежуточный код (далее IL-код), мы можем выполнять его в виртуальной машине.

Виртуальная машина VM1C позволяет, на лету, посредством JIT компилятора, скомпилировать модуль из IL-кода  обратно в код понятный 1С. Скомпилированный код оптимизируется, сохраняется в кэш, для дальнейшего повторного использования и может быть выполнен.


vm1C_VM = Обработки._VM1C_VM.Создать();
vm1C_VM.ДобавитьМодуль("РаботаСТоварами", модуль);
параметры = Новый Массив();
параметры.Добавить("00000453");
Результат = vm1C_VM.ВызватьМетод("РаботаСТоварами", "ПолучитьЦену", параметры);

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

...
methodInfo = vm1C_VM.GetCurrentMethodInfo();
параметры = methodInfo["Параметры"];
...

получить код функции

байтКод = methodInfo["БайтКод"];

изменить его, добавить параметры и заново вызвать уже в измененном виде и т.д.


Заключение

 

Проект сейчас на стадии сырой альфа версии, поэтому выкладываю только его описание и демо-ролик.


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


Если, кого-то заинтересовала данная разработка, прошу обязательно сообщить!


Демонстрация работы

http://www.youtube.com/watch?v=4I9yZIu1bj4


С уважением,

разработчик m.bolsun

 

(c) 2013-2014 VM1C



Update: публикация долго была в черновиках, т.к. кроме академического интереса, сразу не нашлось практического применения данному проекту. Но недавно мне удалось использовать его возможности на практике и было решено вернуть публикацию. Уже скоро технологии из этого проекта будут использоваться в новой версии Code Inspector.

Благодаря новому полноценному компилятору, Инспектор получит статический анализ и соответсвенно ряд новых возможностей:

Проверка того, что условие всегда Истинно или Ложно и что функция возвращает одно и тоже значение. Проверка не только последних неиспользованных значений переменных, но и промежуточных присвоений, с учетом циклов и ветвлений. Анализ кода в соответствии с инструкциями препроцессора (НаСервере, НаКлиенте и т.д.). Ну и многое другое. 

 

 

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Рейтинг всех уровней
4. vano-ekt 727 07.06.13 16:58 Сейчас в теме
(3) ага, фильтруем должников... И хоп!

Для Каждого Рег Из РегистрыСведений Цикл
нз = Рег.СоздатьНаборЗаписей();
нз.Записать();
КонецЦикла;
1. vano-ekt 727 07.06.13 16:26 Сейчас в теме
не, я лучше в конфигураторе, по старинке :-)
2. m.bolsun 736 07.06.13 16:33 Сейчас в теме
(1) vano-ekt, надеюсь это была шутка, т.к. цель ролика вовсе не показать супер возможности IDE "ПолеТекстовогоДокумента" :)
Конечно, штука не для типовых конфигураций. А для авторских разработок.
3. m.bolsun 736 07.06.13 16:40 Сейчас в теме
Навскидку, что можно сделать. Не держать текст модуля в конфигурации или обработке, а загружать его динамически. Например с сайта. Обновил у себя, и у всех клиентов применилось :)
Думаю, много чего можно сделать, лишь бы фантазия позволяла.
5. m.bolsun 736 07.06.13 17:00 Сейчас в теме
(4) vano-ekt, а что смущает?
все можно настроить, запретить и т.д.
ну и я же не настаиваю на этом применении, это так для примера :)
6. m.bolsun 736 07.06.13 18:26 Сейчас в теме
(4) vano-ekt, пока ехал домой придумал защиту от этого сценария
генерируешь пару ключей,
публичный помещаешь в обработку,
приватным на сервере подписываешь
в обработке получаешь,
проверяешь что модуль не модифицирован
выполняешь

как то так :)
7. m.bolsun 736 07.06.13 20:17 Сейчас в теме
Что-то с видео не так, не показывается в публикации :(
Вставил ссылку на ролик
8. tormozit 5791 07.06.13 21:04 Сейчас в теме
С академической точки зрения - круто. Но практического применения не вижу, т.к. вызов метода становится очень неудобным.
9. m.bolsun 736 07.06.13 21:10 Сейчас в теме
(8) tormozit, но когда необходимо получить какой то конкретный результат от модуля или действие, по моему этого достаточно
Вот я и хочу, чтобы разработчики подумали, а что можно сделать, используя это. Я думаю, есть потенциал.
10. amon_ra 3 07.06.13 23:47 Сейчас в теме
(9) не ну так-то интересно, но как применить не понятно
11. kapustinag 08.06.13 09:46 Сейчас в теме
(3) Действительно, круто; пытаюсь придумать практическое применение - а вот с этим тяжеловато. Скажем, в Вашем примере в комменте номер 3 - такое без проблем делается и без VM1C. Например, в каком-то меню есть вызов обработки из справочника "Внешние обработки". Если Вы изменили эту внешнюю обработку, то осталось ее разослать по клиентам и загрузить файл - и это сразу начнет работать, без перезахода клиента в 1С.
А уж "разослать и загрузить" - эта задача решается кучей способов.
12. m.bolsun 736 08.06.13 10:26 Сейчас в теме
(11) kapustinag, можно расширить синтаксис языка
например добавить атрибуты модулей и методов как в .NET
типа
//[Test]
процедура Выгрузка()
...
конецпроцедуры


и в зависимости от атрибутов разное поведение

или

//[ВидОбработки=Анализ]
процедура ОбработатьДанные()
...
конецпроцедуры
13. m.bolsun 736 08.06.13 10:42 Сейчас в теме
Ну и если фантазировать дальше, то мини IDE в режиме предприятия, с расширенным синтаксисом языка, типа операторов ++, +=, лямбды, перегрузка методов и разным синтаксическим сахаром
Ну это уж так, понесло меня :)
14. vano-ekt 727 08.06.13 11:44 Сейчас в теме
не ну вообще, по поводу новизны подхода - есть консоль кода, еще Г1С по-моему писанная в дветысячилохматом году
насчет практического применения... Можно действительно так распространять обновления кода. Выложил на фтп/вэбсервис/вэбсайт - клиент проверил версию, обновил. Хранение таких модулей организовать в справочнике. Опять же, все это можно организовать через существующий в ТР справочник внешних обработок.
15. DitriX 1802 08.06.13 14:16 Сейчас в теме
Я до конца не смг понять - в чем фишка?
Есть же функция в 1с Выполнить, это ее аналог?
Если да, то в чем приимущество? В Скорости? Тогда какое и на сколько?
16. m.bolsun 736 08.06.13 16:41 Сейчас в теме
(15) DitriX, c Выполнить такое не получится.
Идея в том, что можно на лету создавать целые модули или методы и вызывать их. получать какую-то дополнительную информацию о структуре метода, о его параметрах и т.д. Изменять их прямо на ходу.
Вообщем Reflection
http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0­%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80­%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)#C.23
17. DitriX 1802 08.06.13 17:32 Сейчас в теме
(16) понял, но тут очень много НО :)
18. m.bolsun 736 08.06.13 17:51 Сейчас в теме
(17) DitriX, кстати тут больше вопросов опять же к разработчикам 1С, что мешает им сделать возможность Reflection как в других языках с байт кодом. Наверное то же, что мешает сделать API для конфигуратора.
19. DitriX 1802 08.06.13 19:06 Сейчас в теме
(18) то что вы делаете - интересно, спору нет.
Но 1С стала такой популярной, за счет того, что программистам не надо знать отличия между абстракными класами, или смещение регистра АХ. Они не парятся о том, какое наследование и какие уровни инкапсуляции.
Мы просто пишем код, код, который решает задачи по автоматизации бизнесс процесов.

В чем приимущество вашего подхода?
При обновлениях - приимуществ нету, даже хуже будет.
Файлики находяться где то в левом месте, их тоже надо бэкапить, если хранить их в 1с, то опять таки,в каком объекте? В хранилище, ну допустим, как с ним работать?

Как вызывать контексты? Как работать отладчиком? Как быть в серверном режиме работы? А вэб? А мобильник? А линукс?

А теперь перенесите это все на 1С и ваши вопросы?

Зачем вам апи работы с конфигуратором? Ну честно. Что вы хотите из него вытягивать?
Аналог апи - веб сервисы, и работайте как хотите и безопастно :)
20. m.bolsun 736 08.06.13 19:34 Сейчас в теме
(19) DitriX, да я в общем то не предлагаю никакого подхода
Просто люблю экспериментировать, и решил попробовать расширить штатные возможности. Может кто-то еще любит экспериментальные разработки.
Вот поэтому и опубликовал этот прототип, обсудить так сказать...

А API к Конфигуратору мне бы очень пригодился в проекте TurboConf, да думаю не только мне
21. ILM 238 10.06.13 18:32 Сейчас в теме
Меня заинтересовала. Можно сложные алгоритмы работы делать помодульными и собирать как кубики Лего. Но скорость откомпилированных кусков требует проверки.
При отладке также можно будет остановиться на строке исполняемого модуля?
22. m.bolsun 736 10.06.13 19:19 Сейчас в теме
(21) ILM, скорость, конечно будет медленнее чем в обычном режиме, т.к. работа идет через стек, но оптимизатор по возможности, старается это дело преобразовать обратно к нормальному виду, например
push 1
stloc.0
будет преобразовано в loc0=1 и т.д.
Есть определенные ситуации, где без стека е обойтись, например вызовы внутренних функций или возврат значений.
Какое будет окончательное падение скорости, пока сказать сложно, но думаю не критичное.

Режим отладки есть, но отлаживать в Конфигураторе пока сложно, т.к. вместо имен переменных используются их индексы. Но это дело поправимо, можно настроить режиме отладки, чтобы использовались родные имена. Или на крайний случай, написать обработку отладчик. Тогда можно будет отлаживать вообще не останавливая режим Предприятия.
23. ILM 238 11.06.13 23:07 Сейчас в теме
Лишь бы был реальный компилятор с шифрованием...
24. CratosX 107 13.06.13 16:56 Сейчас в теме
Не совсем оно же, но бОльшую часть потребности перекрывает
DVD-дисковод:\1CIts\EXE\EXTREPS\UNIREPS82\UniversalSelection\Универсальны­еПодборИОбработкаОбъектов.epf
Прикрепленные файлы:
25. awa 2525 13.06.13 20:39 Сейчас в теме
(0) Интересная разработка.
Но лично мне многое непонятно.
Компилятор в промежуточный код VM1C_IL_Compiler (Intemediate Language Compiler)

Что такое промежуточный код? Это 1Совский байт-код или какая-то система команд собственной разработки?
Виртуальная машина VM1C позволяет, на лету, посредством JIT компилятора, скомпилировать модуль из IL-кода обратно в код понятный 1С.

Что такое понятный 1С код? Это байт-код 1С или исходный текст 1С? В связи с этим непонятно, как на самом деле происходит выполнение? Пошаговое выполнение своей виртуальной машиной своих команд, или все же каким-то образом код выполняет сама 1С (типа Выполнить)? С какими контекстами происходит выполнение? Т.е. можно ли писать модули, являющиеся расширением модуля объекта, например?
26. m.bolsun 736 13.06.13 20:50 Сейчас в теме
(25) awa, промежуточный код - своя система команд, похожая на байткод .NET

потом этот байткод, по мере необходимости, переводится обратно в язык 1С. Чтобы обеспечить выполнение локальных функций, возвраты результатов и т.д. используются различные приемы

и уже этот код, являющийся снова родным для 1С выполняется посредством Выполнить

upd: сначала написал, что контекст используется вызываемого модуля, но подумал и понял, что это не так

контекст используется модуля, где расположены методы ВМ
но думаю, можно подшаманить, чтобы использовался контекст модуля
27. awa 2525 13.06.13 21:13 Сейчас в теме
(26) Вот теперь понятно, спасибо. Итак, как я понял:
  • VM1C_IL_Compiler - это компилятор с языка 1С (или в будущем с расширенного языка 1С) в собственный байт-код
  • VM1C_JIT_Compiler - это декомпилятор из собственного байт-кода в исходный код 1С, но не для чтения человеком, а для исполнения, с использованием массива-стека.
  • VM1C_VM - Команда Выполнить() с небольшими наворотами для передачи/получения параметров и результатов.
28. m.bolsun 736 13.06.13 21:29 Сейчас в теме
(27) awa, да все верно
только еще в функции VM1C_VM входит обработка вызовов локальных функций, вызов JIT компилятора и управление кэшем скомпилированных фрагментов, а так же функции отладки
29. PiccaHut001 14.06.13 10:41 Сейчас в теме
Не совсем понятно, как оно работает, но всё равно замечательная весчь, на ней можна запилить ООП как 1с++ в 7.7 ?
30. m.bolsun 736 14.06.13 11:25 Сейчас в теме
(29) PiccaHut001, думаю вполне можно
но вот нужно ли :)
31. orefkov 1989 15.06.13 00:38 Сейчас в теме
А вот в С++ нет рефлекшенов - и нечего, обходимся.
Честно говоря, хотелось бы реальный пример полезности перевода кода с языка 1С на язык 1С (при чем более медленный) через промежуточный тарабарский. Потом, вы уверены, что идеально скопировали парсер кода 1С со всеми его заморочками?
32. m.bolsun 736 15.06.13 07:37 Сейчас в теме
На счет реального применения хотелось бы как раз мнение разработчиков узнать.
Уверен.
33. m.bolsun 736 15.06.13 09:21 Сейчас в теме
Теоретические возможные применения

Реализация Dependency Injection (Inversion of Control, IoC)
Реализация Fluent Interface
Реализация интерфейсов (ООП)
Unit Testing, Mock и т.д.
34. Evil Beaver 6697 18.06.13 10:23 Сейчас в теме
Очень интересно, думал сам что-то подобное сделать, но у вас далеко вперед шагнуло, я покурю в стороночке :)
Ну и раз проект чисто академический, может и исходники будут?
35. m.bolsun 736 18.06.13 11:02 Сейчас в теме
(34) Evil Beaver, еще не решил, какое будет дальнейшее развитие проекта, поэтому об открытии исходников говорить пока рано
36. speshuric 1163 19.02.14 18:02 Сейчас в теме
(0) а лексер/парсер на чем и как сделаны?
37. m.bolsun 736 20.02.14 09:16 Сейчас в теме
(36) speshuric, первая версия написана в 1С, сейчас сделал версию на С# для других моих проектов на .NET
38. eugen91 03.04.14 17:26 Сейчас в теме
Кто уже попробовал ?
Есть такие?
опишите пожалуйста свой опыт. Нам очень интересно!
39. m.bolsun 736 03.04.14 20:51 Сейчас в теме
(38) eugen91, VM1C еще не был выпущен для публичного теста. Если сможете описать сценарий использования этой технологии, я бы мог попробовать довести проект до ума. Я пока придумал только как применять эти разработки в своих продуктах.
40. Steelvan 16.06.14 10:54 Сейчас в теме
На этом деле можно поднять сервер защиты.
Выделяется в сети комп, при обращении к нему VM1C проверяет разрешение на работу обратившемуся и обрабатывает обращение если проверка прошла.
В ответ отправляет результат выполнения или отказ.

Я бы на этом деле такую штуку поднял, ого-го.

С подсчетом количества лицензий и прочее.
41. m.bolsun 736 16.06.14 10:59 Сейчас в теме
(40) Steelvan, ну вот сегодняшняя публикация по Нетленке это и делает, только не в локальной сети и через интернет. Основа взята из VM1C
42. dvsidelnikov 13 24.10.14 00:41 Сейчас в теме
Прально! Давно пора написать искусственный интеллект и заменить всех этих бухгалтеров =)))
43. baton_pk 401 13.03.17 13:39 Сейчас в теме
(0) три года прошло. Если забросили проект, может, выложите исходники? Мы б их с удовольствием поковыряли.
44. m.bolsun 736 29.03.17 06:15 Сейчас в теме
(43) К сожалению, исходники выложить не могу, проект не опенсорсный.
45. SergeyFirst 70 19.09.17 11:07 Сейчас в теме
Закрытость платформы 1С имеет много отрицательных сторон. Такие проекты как этот расширяют стандартные возможности и показывают разработчиками 1С направления возможного дальнейшего развития. Если сделать данный проект опенсорсным, то из него могло бы вырасти много интересных идей.
46. AllexSoft 02.07.19 13:32 Сейчас в теме
Интересная разработка, как средство защиты своего когда, компилим в байт-код, кладем байт-код в макет, дальше из макета читаем содержимое и выдаем на исполнение... собственно если нет исходника то делать в таком скомпилированном модуле нечего, копаться с байт-кодом никто не будет. Где скачать разработку то?
Оставьте свое сообщение

См. также

Подсистема "Инструменты разработчика" v5.34 Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

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

23.09.2007    474904    4340    tormozit    2649    

Шпаргалка. Автоматическое тестирование внешних отчетов и обработок в нескольких информационных базах

Прочие инструменты разработчика v8 Бесплатно (free)

Используем Автоматизированное тестирование на практике. Простой код для обновления и запуска внешних отчетов и обработок в нескольких ИБ. Создаем рабочее решение с нуля.

02.05.2020    2669    0    pparshin    21    

Универсальные инструменты 1С

Универсальные обработки Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

21.01.2020    17644    294    cprit    84    

EDT + УТ 11.4 + БП 3.0 + Расширения. ЧАСТЬ 03

EDT v8 Бесплатно (free)

Групповая разработка в EDT.

21.01.2020    3316    0    abc120000    3    

Легкий способ обновления измененной конфигурации Промо

Инструментарий разработчика v8 Бесплатно (free)

Легкий способ обновления измененной конфигурации. Сервис подготовки расширения конфигурации

25.10.2017    21974    0    avk72    63    

EDT + УТ 11.4 + БП 3.0 + Расширения. Часть 02

EDT v8 Бесплатно (free)

Продолжение "путевых заметок" про EDT...

09.01.2020    4902    0    abc120000    30    

EDT + УТ 11.4 + БП 3.0 + Расширения. ЧАСТЬ 01

EDT v8 Бесплатно (free)

...продолжаем мучить(ся с) EDT

28.12.2019    5295    0    abc120000    8    

EDT 1.16. Первые 20 часов работы

EDT v8 Россия Бесплатно (free)

Первое знакомство с 1C:Enterprise Development Tools, версия 1.16.0.363.

25.12.2019    9314    0    abc120000    11    

Универсальная функция для программного выполнения СКД Промо

Инструментарий разработчика Универсальные функции v8::СКД 1cv8.cf Бесплатно (free)

Часто встречаются вопросы на форумах о программном формировании СКД. Вроде и информации много по этому поводу, но... Все как всегда :) Собственно, в описании без лишних слов выложен текст общей функции, в которую, для выполнения отчета, нужно передать (минимум 2 параметра): СКД и ТабличныйДокумент.

20.05.2015    29227    0    dj_serega    18    

Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

Практика программирования Инструментарий разработчика v8::УФ Бесплатно (free)

Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

23.12.2019    10435    0    TitanLuchs    23    

Мониторим производительность с помощью 1С RAS

Инструментарий разработчика Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Подключаемся и анализируем данные через 1С RAS. Необходимо выполнить 5 пунктов и серьезный инструмент мониторинга будет у вас в руках.

19.12.2019    8537    0    ivanov660    16    

Разбор любого JSON-объекта в соответствующую структуру

Инструментарий разработчика WEB v8 1cv8.cf Бесплатно (free)

Данная публикация предназначена разработчикам 1С, которым приходиться разбирать данные формата JSON. Выложенный пример кода создает объект типа Структура, полностью повторяющий структуру данных формата JSON.

13.11.2019    6141    0    user665435_al.windstorm    14    

Перевод интерфейса конфигурации с использованием программы 1С:Переводчик Промо

Инструментарий разработчика v8 Бесплатно (free)

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

09.02.2015    31643    0    boogie    21    

Git для 1С-ника и другие технологии групповой разработки

Инструментарий разработчика Git (GitHub, GitLab, BitBucket) v8 1cv8.cf Россия Бесплатно (free)

У многих специалистов в отношении Git сложились стереотипы, мешающие начать работу с этим прекрасным и удобным инструментом. Почему его не стоит бояться, и чем он может упростить жизнь 1С-никам, рассказал архитектор ГК «Невада» Станислав Ганиев.

28.10.2019    11110    0    stas_ganiev    16    

Про ТабДок или TabDoc Pro

Практика программирования Инструментарий разработчика v8 Бесплатно (free)

Табличный документ – всем знакомый и привычный компонент продукта 1С. Про оптимизацию работы табличного документа, его проблемы и недостатки в своем докладе на конференции Infostart Event 2019 Education рассказал ведущий программист BIA-Technologies Князьков Алексей.

11.09.2019    5466    0    AKnyazkov    26    

FastCode - сервис поиска кода 1С

Инструментарий разработчика v8 Бесплатно (free)

Добавляйте свои шаблоны кода или ищите готовые шаблоны других разработчиков. Оставляйте отзывы и лайки, добавляйте понравившиеся фрагменты в свою библиотеку. Ищите по БСП или по общим модулям своей конфигурации.

10.09.2019    8668    0    m.bolsun    22    

Генерация кода управляемой формы (декомпиляция элементов) Промо

Инструментарий разработчика Практика программирования Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Изменение форм типовых конфигураций лучше выполнять программно. Эта обработка упрощает добавление элементов на форму, генерируя код создания элементов, реквизитов и команд формы.

29.09.2014    98944    0    ekaruk    127    

Как мы разрабатываем в EDT

EDT Инструментарий разработчика v8 Бесплатно (free)

EDT – это новая среда разработки, на которую сейчас перешли разработчики фирмы «1С». Однако до сих пор существует ряд «белых пятен», касающихся как теоретической, так и практической части применения этого инструмента. Про опыт перехода на разработку в EDT на конференции INFOSTART EVENT 2018 EDUCATION рассказал начальник сектора разработки в компании «Группа Полипластик» Владимир Крючков.

23.08.2019    10373    0    ivanov660    24    

Быстрый ввод кода

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Упрощение рутинного ввода кода.

19.08.2019    4128    0    ranis888    13    

1С:EDT. Первые шаги… или есть ли альтернатива конфигуратору?

EDT v8 Бесплатно (free)

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

15.08.2019    18835    0    ellavs    104    

Сервис обмена кодом Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Бывало так, что вам нужно быстро показать кому-то свой код, но опубликовать его негде, так как популярные сервисы просто не поддерживают раскраску кода 1С? Теперь решение есть!

26.06.2015    19608    0    Infactum    23    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    9467    0    IvanAT1981    14    

Шаблон теста правил регистрации

Инструментарий разработчика v8 1cv8.cf Россия Бесплатно (free)

Шаблон на базе, которого можно написать тест правил регистрации. Тесты запускаются с использованием инструмента xddTestRunner framework Vanessa-ADD.

26.07.2019    1705    0    milut    0    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    28001    0    ids79    27    

1C:Enterprise Development tools (EDT) или кодим в Eclipse Промо

EDT v8 Бесплатно (free)

Как и выход мобильной платформы был для оооочень большого числа разработчиком открытием, так и я уверен, что и о новом конфигураторе - тоже мало кто слышал. Поэтому давайте попробуем пробежаться по новому конфигуратору. (Много больших картинок)

11.04.2015    75286    0    DitriX    297    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    18270    0    Evil Beaver    33    

Групповая обработка (Управляемая консоль отчетов)

Обработка документов Инструментарий разработчика Обработка справочников v8 v8::УФ v8::Запросы 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Статья предназначена тем, кто понимает, зачем нужна групповая обработка в консоли запросов. Рассматривается групповая обработка в консоли Управляемая консоль отчетов.

13.05.2019    8215    0    Evg-Lylyk    10    

Перенос и резервное копирование настроек конфигуратора

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Удобный перенос между рабочими местами и резервное копирование настроек конфигуратора через подсистему "Инструменты разработчика".

14.04.2019    8578    0    tormozit    18    

TurboConf:Шаблоны - сервис для поиска и хранения фрагментов кода Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Сервис добавляет в Конфигуратор возможность поиска и хранения фрагментов кода. Делитесь своими шаблонами с другими разработчиками или используйте уже готовые!

13.08.2014    21755    0    m.bolsun    68    

Как добавить типовую форму для СКД (для начинающих) (1С 8.3, управляемые формы)

Инструментарий разработчика Работа с интерфейсом v8 v8::УФ v8::СКД Бесплатно (free)

Кастомизация СКД, нестандартная расшифровка, загрузка параметров и другие действия требуют наличия формы отчета. При создании СКД отчета по умолчанию форма не создается, в большинстве случаев это и не требуется. Однако при ситуациях, перечисленных выше, форму все же нужно создать. Это простая инструкция по созданию такой типовой формы.

25.03.2019    11230    0    ellavs    9    

Git + 1С. Часть 2. Реализация Git workflow в 1С-разработке по шагам

Инструментарий разработчика Управление проектом v8 1cv8.cf Бесплатно (free)

В этой части мы рассмотрим наиболее распространённую схему workflow при групповой разработке с использованием Git. Как приступить к доработке по поставленной задаче; исправить ошибку, обнаруженную на этапе тестирования; отправить свой код на слияние в предстоящий релиз; и т.д. Постараемся охватить большинство задач, составляющих основной цикл разработки

28.01.2019    15390    0    stas_ganiev    25    

Автоматизация тестирования с помощью WinAutomationUI

Инструментарий разработчика v8 Бесплатно (free)

Рассматривается использование инструмента WinAutomationUI для создания автоматизированных сценарных тестов на примере 1 + 1 = 2.

11.12.2018    6204    0    AlexKo    30    

Подсистема "COMExchange": консоль запросов в режиме «Консоль кода». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

Описана возможность использования обработки «Консоль запросов 1С+ADO» в качестве «консоли кода». При этом имеется возможность помещения результатов вычислений в «табло формул». Кроме результатов вычислений в это «табло» можно также вывести время выполнения и описание обработанных ошибок времени исполнения.

03.04.2014    25318    0    yuraos    2    

[8.3] Анализ планов запросов (Управляемая консоль отчетов)

Консоль запросов v8 1cv8.cf Бесплатно (free)

Новый инструмент! Позволяет удобно работать с планами запросов, анализ планов в файловой базе.

19.11.2018    18127    0    Evg-Lylyk    6    

Метрики, графики, статистика = Prometheus + Grafana

Инструментарий разработчика v8 v8::ОУ Россия Бесплатно (free)

Снятие метрик из базы данных 1С с хранением в Phrometheus и красивое оформление на основе Grafana. Или как мы создавали комфортные условия административному персоналу на отдельно взятом складе.

23.10.2018    15870    0    freewms    75    

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

Инструментарий разработчика Управление проектом v8 1cv8.cf Бесплатно (free)

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    57209    0    stas_ganiev    73    

Подсистема "COMExchange", "Консоль запросов 1C + ADO" - сервис обработки выборки запроса: грузим курс «бакса» ЦБРФ из файла *.dbf или *.xlsx. Промо

Консоль запросов v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

На примере загрузки курса валюты продемонстрированы возможности консоли запросов в составе подсистемы "COMExchange" для обработки данных из внешних файлов и их синхронизации с данными информационной базы 1С.

10.03.2013    32621    0    yuraos    3    

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час

Практика программирования Инструментарий разработчика v8::СКД Бесплатно (free)

Сергей Наумов делится опытом нестандартного использования системы компоновки данных. Он рассказывает о построении сложных отчетов с помощью функций СКД, описывает преимущества использования компоновки в коде для значительного сокращения строк кода и времени на решение задач, а также рассказывает про отладку компоновки и возможности оптимизации ее работы.

03.09.2018    41298    0    SergeyN    26    

Одновременное использование хранилища и расширений

Практика программирования Инструментарий разработчика v8 Бесплатно (free)

Шастун Алексей поднимает вопрос одновременного использования хранилища и расширений. В статье рассмотрены плюсы и минусы хранилища и расширений, а также возможные варианты их использования. Также автор описывает два практических кейса по организации одновременного использования хранилища и расширений 1С в проектной группе из трех и более разработчиков.

23.08.2018    9004    0    shaa2    3    

Подсистема "COMExchange", консоль запросов, сервис обработки выборки запроса: корректируем регистры или «Берём банк, кассу, экспроприируем экспроприаторов». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

На примере шуточного примера продемонстрированы не шуточные возможности консоли запросов в составе подсистемы "COMExchange" для работы с регистрами, подчинёнными регистратору («обнуление» регистров, ввод начальных итогов (сведений), корректировка итогов).

31.03.2013    21905    0    yuraos    7    

Взгляд на практику разработки в EDT из зазеркалья

EDT v8 1cv8.cf Бесплатно (free)

В данной статье расскажем о практическом опыте использования разработки в EDT: немного про интерфейс, командную разработку и GIT.

26.07.2018    22576    0    ivanov660    114    

Практика применения инструментов продвинутого разработчика 1С

Инструментарий разработчика v8 Бесплатно (free)

Статья адресована разработчикам. Будет чуть-чуть теории, будут воспоминания, и потом пойдет практика.

23.07.2018    24164    0    artbear    24    

Лайфхак: исходники внешних обработок и отчетов 1С - это просто.

Инструментарий разработчика v8 Бесплатно (free)

Важно: статья далеко на любителя всяких таких git'ов, gitlab'ов и oscript'ов.

22.06.2018    10300    0    new_user    12    

Разработка скрипта для проекта Снегопат Промо

Снегопат, openconf v8 1cv8.cf Россия Бесплатно (free)

Подробное пошаговое описание порядка создания скрипта для проекта Снегопат (http://snegopat.ru) на примере скрипта "Авторские комментарии". Затрагивает ключевые особенности объектной модели, реализуемой Снегопатом.

12.02.2012    19008    0    kuntashov    50    

Создание поставки конфигурации

Инструментарий разработчика v8 Бесплатно (free)

Пошаговая демонстрация создания поставки конфигурации, файлов обновления и настройка для обновления через FTP.

27.02.2018    17720    0    Vladimir_412    7    

Групповая разработка конфигураций в крупном холдинге

Инструментарий разработчика v8 Бесплатно (free)

О чем мы сегодня поговорим? • О становлении и развитии групповой разработки конфигураций 1С в крупном холдинге с использованием хранилища конфигураций. • Обсудим практически все аспекты использования хранилища в командной разработке. • Я расскажу про те методы и идеи, которые мы пробовали использовать, какие используем до сих пор, от каких отказались и почему.

15.08.2017    20256    0    stas_ganiev    15    

Автоматизация процесса 1С-разработки

Инструментарий разработчика v8 Бесплатно (free)

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

07.06.2017    25290    0    ekaruk    9    

Скрипты для проекта Снегопат: автоматизация работы в Конфигураторе Промо

Снегопат, openconf v8 1cv8.cf Россия Бесплатно (free)

Снегопат (http://snegopat.ru) – это проект по расширению возможностей конфигуратора 1С:Предприятия 8.2 как среды разработки прикладных решений. Для знакомых с ОпенКонфом, можно коротко сказать, что Снегопат – это ОпенКонф и Телепат, только для 1С:Предприятия 8.2 и уже на сегодня заметно круче :). Кроме специализированного функционала, который добавляется в Конфигуратор при использовании Снегопата, разработчики могут добавлять новый функционал самостоятельно, создавая свои собственные скрипты, автоматизирующие работу в Конфигураторе. Предлагаю вам обзор возможностей существующих на сегодня скриптов для Снегопата с короткими, но наглядными видеоиллюстрациями их работы.

16.01.2012    25949    0    kuntashov    34    

Консоль запросов для УФ с возможностью передачи готовой ТЗ в качестве параметра

Консоль запросов v8 v8::УФ Россия Бесплатно (free)

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

11.07.2016    14340    0    vadim1011985    7    

Поиск несериализуемых значений при помещении в хранилище

Инструментарий разработчика Практика программирования Универсальные функции v8 Бесплатно (free)

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

02.03.2016    23431    0    balanton    2    

Подсветка синтаксиса 1С в текстовых редакторах Atom, Sublime Text, VS Code

Инструментарий разработчика Разработка внешних компонент v8 1cv8.cf Бесплатно (free)

Пакеты, добавляющие поддержку синтаксиса языка 1С:Предприятие 8 в текстовые редакторы Atom, Sublime Text и VS Code. И не только.

02.02.2016    26315    0    nixel    38    

Дай дернуть! О веб-сервисах, Linux'ах и добрых поисковых сайтах

Инструментарий разработчика Администрирование данных 1С WEB v8 1cv8.cf Бесплатно (free)

О веб-сервисах, апачах и *nix'ах. - установим на новенький убунту старенький апач с php. - дернем сервис из php-скрипта. - создадим приложение, позволяющее дергать произвольный сервис с произвольными данными. - ну и что там получится по пути в лес...

30.12.2015    25484    0    starik-2005    4