Шаблоны текста (Ctrl+Shift+T) в режиме 1С:Предприятие


Реализован поиск и отбор шаблонов текста по ключевым словам.

Мне понравилась статья «Начало автоматизации»: http://avprog.ru/public/84784/ . Как продолжение статьи я хотел бы представить свою разработку, помогающую мне быстро программировать.

Обработка напоминает шаблон кода, открываемый в конфигураторе (рис.1).

Просматривать коды, алгоритмы, различные описания механизмов можно после возведения флажка «показывать шаблон кода» (рис.2).

Самое ценное, для чего и создавалась обработка – это реализованный ПОИСК и ОТБОР ШАБЛОНОВ по ключевым словам (рис.3).

Идея реализации заключается в том, что теперь все шаблоны *.st надо хранить внутри обработки в объекте метаданных «Макет» (рис. 4). Поэтому ниже по тексту вы встретите такой термин как «макет шаблонов» или «макет-шаблон». Есть определенные правила по хранению шаблонов в макете: соблюдайте порядок полей, высоту макета, соответствие названий колонок и др. мелочи.

Разрабатывая эту обработку, я столкнулся с двумя сложными алгоритмами: 1) как заполнять макеты шаблонами, если уже накоплены шаблоны *.st. Не переносить же их вручную. Решение – создать парсер шаблонов *.st, с помощью которого будет создаваться нужный макет.
2) При поиске не должны отображаться группы, в которых нет подходящих подчиненных веток.

В результате разработанный алгоритм парсера несет в себе определенные ограничения:
1.    Шаблоны *.st (в том числе названия и автозамены шаблонов) не должны содержать фигурных скобок – поэтому я заменяю фигурные скобки на квадратные
2.    Шаблоны *.st (в том числе названия и автозамены шаблонов) не должны содержать запятых – поэтому я заменяю запятые на точку с запятой
Эти изменения вы увидите внутри шаблона, сохранившегося в макете. За это можно не переживать, так как типовой «поиск и замена» конфигуратора восстановят любой код за считанные секунды.

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

Вкратце, загрузка шаблона *.st производится по кнопке «Загрузить из файла».
Далее, нажимайте на «Создать макет». Макет шаблонов будет создан (рис. 5 и 6). Прикрепляете его к обработке, обработку сохраняете.

Дополнительно вы самостоятельно можете запрограммировать отбор по макетам-шаблонам, по которым нужно производить поиск ключевых слов. Для этого я реализовал коллекцию макетов (см. предыд. рис. 4).

...По поводу ограничений алгоритма «Отбор групп с подходящими шаблонами» – я не реализовал универсальный механизм -  я пробегаюсь лишь по двум первым уровням групп дерева - этого достаточно для удобного поиска (рис. 3).

...У меня обработка весит 400 Кб при хранении большого количества шаблонов.

...Теперь вы, описывая свою разработку на Инфостарте, можете дополнительно выкладывать макеты шаблонов своих алгоритмов – для обмена шаблонами друг с другом. Во многом самым ценным в наших разработках являются алгоритмы, и теперь у нас появилась возможность удобного накопления их, быстрого поиска нужного среди архива алгоритмов.

...При выкладывании обработки я удалил макеты шаблонов, взятых из книг Радченко, Энциклопедии, Габеца из-за соблюдения авторских прав. Прошу прощения за обращение к авторам по фамилии.
В качестве примера использования шаблонов я представляю библиотеку функций Fixin'а (http://nashe1c.ru/materials-view.jsp?id=196). В качестве своих примеров - накидал парочку шаблонов.

Обработка разработана под 8.1, но ничего не мешает вам открыть ее под 8.2...


ОБНОВЛЕНИЕ (Расширен функционал)

Появилось редактирование прикрепленного шаблона-макета:
1) Вызов режима редактирования производится через кнопку "Редактирование".
2) В открывшемся окне надо будет выбрать один из прикрепленных шаблонов-макетов.
3) Слева-вверху - в дереве узлов - надо выбрать редактируемый узел.
4) Справа появится окно кода для редактирования.
5) Используйте кнопку "Записать изменения" для сохранения текущего шаблона-макета.
6) С деревом узлов можно "играться": создавать новый узел, удалять узел, изменять родителя.  Просмотр результата производится в нижней таблице.


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

А также....

В ответ на комментарий mtv:) дополнительно выкладываю базу знаний (dt-шник). В свое время начинал развивать идею шаблонов с этой разработки базы, собирал полезную информацию. В дальнейшем использовать ее стало неудобно, и тогда я реализовал шаблоны в режиме 1С:Предприятие. В базе собраны как ссылки на интернет-ресурсы, так и статьи (в том числе с Инфостарта). В базе знаний я старался сохранять ссылку на авторство или на открытый ресурс. Надеюсь соблюсти авторские права и не обидеть авторов. Полагаю, что для стартаперов 1С база знаний будет полезна. По имеющейся информации база знаний максимально урезана, так как цель ее распространения - показать возможную структуру хранения информации для баз знаний.

Тел.: 8919-6-230-470, 8927-442-03-16.

-