Парсер шаблонов конфигурации .st

05.03.22

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

Шаблоны конфигурации + Регулярные выражения = Парсер шаблонов.

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

Наименование Файл Версия Размер
Парсер шаблонов конфигурации .st
.epf 17,28Kb
5
.epf 17,28Kb 5 Скачать
Парсер шаблонов конфигурации .st + поддержать автора 1см
.epf 17,28Kb
0
.epf 17,28Kb Скачать

Всем привет!

1. Реализован парсер шаблонов текста конфигурации через регулярные выражения - смотрите видео ниже.

2. Парсер реализован через внешнюю обработку на обычных формах. Генератор дерева использует рекурсию.

3. Внешняя обработка содержит макет текстового документа, в который надо скопировать шаблон конфигурации (продемонстрировано на видео).

4. Адаптация на обход файлов шаблонов или обход нескольких макетов текстового документа - дело времени.

5. Адаптация на управляемые формы и добавление поиска по ключевым словам будет производиться на основе //infostart.ru/public/1444273/

Разработка велась на платформе 1С:Предприятие 8.3 (8.3.18.1289) на конфигурации на обычных формах Управление торговлей, ред.10.3 (10.3.28.1) - конфигурация не имеет значения в данном случае.

 

Предыстория от 06.09.2011г:

+ реализован парсер с посимвольным обходом обрабатываемого текста - долго, некачественно и топорно - //infostart.ru/public/89310/

+ на основании обработки 2011г разработан алгоритм поиска по ключевым словам по всем строкам дерева - неуниверсально, поскольку алгоритм поиска затрагивает только 3 или 4 уровня подчиненных узлов дерева

***

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

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

 
 Про регулярные выражения в 1С

 

***

Другие авторские публикации:

Оцифровка и визуализация склада

Про деньги фрилансера

парсер шаблонов кода текста конфигурации регулярные выражения парсинг дерево рекурсия

См. также

SALE! 20%

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

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

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

12000 9600 руб.

02.09.2020    101316    560    385    

602

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

Инструментарий разработчика DevOps и автоматизация разработки DevOps для 1С Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11417    3    2    

142

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    172779    1076    0    

813

SALE! 25%

Infostart PrintWizard

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

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

18000 14400 руб.

06.10.2023    3429    3    0    

17

SALE! 20%

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

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

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

10000 8000 руб.

10.11.2023    1342    3    1    

19

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

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

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

5000 руб.

07.02.2018    97520    236    97    

287

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

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

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

2400 руб.

24.09.2019    22342    14    15    

27

SALE! 10%

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

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

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    13797    5    9    

12
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. echo77 1843 29.11.21 16:28 Сейчас в теме
Я не понял для чего это все :-/
2. RustIG 1756 29.11.21 16:42 Сейчас в теме
(1) Александр, а ты свои наработки где хранишь? в каком формате? а наработки коллег как вы храните? у вас может облачная база знаний есть? я не говорю про синтаксис языка, я говорю про готовые механизмы...
3. echo77 1843 29.11.21 16:47 Сейчас в теме
(2) Я храню в файликах, файлики в Я.Диске. Потом не просто что-то найти, если не помнишь где это делал, если ты про это :-)
4. ixijixi 1686 29.11.21 16:55 Сейчас в теме
(3) Яндекс , кстати, оч. качественно ищет по своему ЯДиску. Как-то фоткал шкаф, через пару лет искал в галерее - не нашел, а поиском в ЯД с телефона сразу нужную фотку подкинул, хотя я ее даже не подписывал.
6. RustIG 1756 29.11.21 17:07 Сейчас в теме
(4) Как я ищу:
1) синтаксис языка я смотрю сначала в справке 1с
2) если не хватает, то в Методической поддержке - которая вызывается также из справки из помощника (там гиперссылка имеется на нужный раздел)
3) если инфы нет, то через яндекс-поиск...
но яндекс выдает в поисковой выдаче кучу мусора и индексирует ежегодно по новому - то есть тот алгоритм, который я в прошлом году использовал, в этом году уже вряд ли найду....
4) в итоге "самое-самое" храню у себя в шаблонах - вопрос с поиском решен
5. RustIG 1756 29.11.21 17:03 Сейчас в теме
(3)
Потом не просто что-то найти, если не помнишь где это делал

это ключевая проблема хранения большого кол-ва файликов - трудно найти ....
я эту проблему решил - по крайней мере для себя....
я храню в своих шаблонах, реализовал поиск по ключевому слову...
данная обработка - для тех у кого "горит" подобная задача....
7. RustIG 1756 02.12.21 14:18 Сейчас в теме
Протестировал построение дерева из строки JSON - через рекурсию по аналогии с алгоритмом из данной публикации:

Процедура СоздатьДерево(Кнопка)
	
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ЭлементыФормы.ПолеТекстовогоДокумента1.ПолучитьТекст());
	Данные = ПрочитатьJSON(Чтение);
	
	Дерево = Новый ДеревоЗначений;
	Дерево.Колонки.Добавить("Параметр");
	Дерево.Колонки.Добавить("Значение");
	
	ТекУзел = Дерево;
		
	ДобавитьУзел(ТекУзел, Данные);
	
	ЭлементыФормы.Дерево.СоздатьКолонки();	

КонецПроцедуры

Процедура ДобавитьУзел(ТекУзел, СтруктураДерева)
		
	Для Каждого ЭлСтруктуры Из СтруктураДерева Цикл
		
		Если ТипЗнч(СтруктураДерева)=Тип("Структура") Тогда			
 
			ПодчиненныйУзел = ТекУзел.Строки.Добавить();
			ПодчиненныйУзел.Параметр = ЭлСтруктуры.Ключ;
			
			Если ТипЗнч(ЭлСтруктуры.Значение)=Тип("Структура") 
				ИЛИ ТипЗнч(ЭлСтруктуры.Значение)=Тип("Массив") Тогда
				ДобавитьУзел(ПодчиненныйУзел, ЭлСтруктуры.Значение);
			Иначе
				ПодчиненныйУзел.Значение = ЭлСтруктуры.Значение;
			КонецЕсли; 		
			
		Иначе //массив
			
			//ПодчиненныйУзел = ТекУзел.Строки.Добавить();
			//ПодчиненныйУзел.Параметр = ЭлСтруктуры;
			
			Если ТипЗнч(ЭлСтруктуры)=Тип("Структура") 
				ИЛИ ТипЗнч(ЭлСтруктуры)=Тип("Массив") Тогда
				ДобавитьУзел(ТекУзел, ЭлСтруктуры);
			Иначе
				ПодчиненныйУзел.Значение = ЭлСтруктуры;
			КонецЕсли; 		
			
		КонецЕсли;
			
	КонецЦикла;
		
КонецПроцедуры
Показать
Прикрепленные файлы:
Оставьте свое сообщение