Оптимизация разработки. Шаблоны

22.11.21

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

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

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

Наименование Файл Версия Размер
Оптимизация разработки. Шаблон
.st 37,60Kb
44
.st 1 37,60Kb 44 Скачать

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

 

 

Существует типовой шаблон, предоставляемый в поставке платформы. Типовой шаблон недоступен для редактирования (Описание на ИТС) . Подключение типового шаблона для использования в конфигурации выполняется через опцию "Сервис" – "Шаблоны текста" – "Действия" – "Настройка шаблонов" - "Использовать стандартные шаблоны".

Шаблон представляет собой набор конструкций, которые можно вставить в код следующим образом:

  • Вызовом через сочетание (Ctrl + Q);
  • При вызове контекстного меню (Ctrl+space),  если включена соответствующая опция;
  • Перетащить из шаблона в тело модуля.

Конструкция шаблона состоит из:

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

 

 

  • Включать в контекстное меню - опция, которая добавляет выбор шаблона в контекстное меню (Ctrl+Space) 
  • Текста шаблона (Текст шаблона) - Представляет собой конструкцию, которая будет подставлена в результате. Текст шаблона поддерживает динамическое взаимодействие с пользователем. Подробнее - Описание функциональности шаблонов текста 

По умолчанию, в настройках конфигурации выключена возможность использования шаблонов из контекстного меню, а большинстве конструкций в типовом шаблоне не включена опция "Включать в контекстное меню", поэтому использование шаблонов при разработке возможно только через сочетание клавиш (Ctrl + Q).

Для того, чтобы исправить ситуацию необходимо: 

  • Включить возможность использования в контекстном меню в параметрах "Сервис" - "Параметры" - "Модули" - "КонтекстнаяПодсказка" - "ВключитьШаблоныВСписокПодсказок"

 

 

  • Включить опцию у шаблона "Включать в контекстное меню".

 

 

Но типовой шаблон нельзя изменять. Для этого мы сделаем следующее:

  • Для избежания конфликтов можно отключить использование типового шаблона - "Сервис" – "Шаблоны текста" – "Действия" – "Настройка шаблонов" - "Использовать стандартные шаблоны" снять галочку;
  • Скопируем типовой шаблон (C:\Program Files\1cv8\8.3.15.1778\bin\gentempl_ru.st)
  • Переименуем и подключим к нашей конфигурации. "Сервис" – "Шаблоны текста" – "Действия" – "Настройка шаблонов" - "Добавить";

 

 

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

 

 

Чтобы адаптировать шаблоны для своего практического использования я сделал следующее:

  • Удалил лишние конструкции из типового шаблона;
  • Установил маски для замены в коде;
  • Добавил конструкции из БСП.

Состав шаблона с типовыми конструкциями получился следующим (Изменил маски и опцию подстановки):

  • Управляющие операторы (Условия, Циклы)
  • Процедуры и функции (НаКлиенте, НаСервере, СКомментариями)
  • Обработка попытки
  • Выделение области
  • В шаблонах прикладных объектов оставил только открытие форм с параметрами
  • Для прочих операций оставил "Запросы", "Сообщение" и "Проверка типов"

Состав шаблона с шаблонами БСП (Отличная статья по методам БСП):

  • Общие:
    • Значение реквизита, реквизитов на клиенте и сервере
    • Проверка свойства объекта
  • Строковые:
    • Подставить параметр в строку
    • Разложить строку в массив подстрок
  • Фоновые задания:
    • Выполнение на клиенте с обработкой результата
  • Диалоги:
    • Вопрос да/нет с обработкой результата
  • Файлы:
    • Открыть файл
    • Загрузить файл
  • Списки
    • Наложить отбор на динамический список
  • Коллекции
    • Выгрузить колонку
    • Заполнить дерево на форме на основании другого дерева
  • Внешние отчеты и обработки
    • Сведения о внешних отчетах/обработках/печатных формах
    • Печать внешней печатной формы (полный шаблон)

Как это может выглядеть на практике:

  • Создание внешних обработок/отчетов/печатных форм или установка сведений в существующих:

 

  • Добавление процедур, вопрос, обработка данных в форме:

 

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

Проверено на платформе 8.3.15.1778.

Шаблоны Шаблон Код Программирование Автозамена Оптимизация

См. также

SALE! 20%

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

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

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

10000 8000 руб.

02.09.2020    122391    673    389    

716

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7342    22    6    

39

SALE! 20%

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

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

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

10000 8000 руб.

10.11.2023    3638    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177835    1074    0    

852

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

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

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

5000 руб.

07.02.2018    99379    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18138    6    8    

40

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28121    3    10    

15

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

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

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

2400 руб.

24.09.2019    23610    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. olololeg 23.11.21 15:25 Сейчас в теме
Не боитесь ли вы, что с течением времени, шаблонов будет такое кол-во, что потом поиск нужного превратиться в поиск по БСП?) А так довольно идея хорошая.
IgorS; RustIG; +2 Ответить
2. RustIG 1382 23.11.21 15:36 Сейчас в теме
(0) интересная разработка....
вы озвучили проблему - не помним какой метод БСП и по какому пути искать....
хорошее предложили решение....

но есть проблема, что нет поиска по вашим шаблонам - об этом я писал давным давно вот тут https://infostart.ru/public/89310/

это было на обычных формах....
сейчас для управляемых форм я реализовал вот что https://infostart.ru/public/1444273/

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

рано или поздно все столкнутся с какой-либо проблемой этих шаблонов....
примечательно то, что лучше поиска в интернете пока что ничего не придумали
3. AnryMc 849 23.11.21 17:39 Сейчас в теме
(2)
что лучше поиска в интернете пока что ничего не придумали
9. mrChOP93 96 24.11.21 10:50 Сейчас в теме
(2)
примечательно то, что лучше поиска в интернете пока что ничего не придумали

Мне для поиска по БСП очень помогает турбопоиск в TurboConf (не реклама)
Прикрепленные файлы:
Gadzhalik; RustIG; +2 Ответить
10. RustIG 1382 24.11.21 11:41 Сейчас в теме
4. AnryMc 849 23.11.21 17:45 Сейчас в теме
То же вёл свой шаблон.
"Дёргал" в него разный код...

Потом перестал понимать где искать...
И бросил его вести...

З.Ы. Главный недостаток (ИМХО) отсутствие категорий (ключевых слов)....
5. МимохожийОднако 141 23.11.21 17:58 Сейчас в теме
Не важно какие и в каком количестве ведёт шаблоны разработчик.
Сократить объем всего этого добра позволяет только ПОНИМАНИЕ поведения объектов,их свойств и методов.
Многие умеют копипастить и вести свои библиотеки наработанных кодов, но только реальные профессионалы понимают, что это в определенный момент становится не нужным )
Знакомство, знание, умение, навык, понимание...Вот такая цепочка
6. muskul 24.11.21 03:56 Сейчас в теме
Есть целых 11 %вставить нужное% нужно объединить их и сделать едиными и однообразными. Появилось 12 %вставить нужное%
pavlov_dv; +1 Ответить
7. quazare 3587 24.11.21 08:05 Сейчас в теме
шаблоны имеют свойство быстро устаревать, товарищи
8. Yashazz 4709 24.11.21 10:34 Сейчас в теме
Допиливание шаблона "по месту" быстро становится менее выгодным, чем хлопоты с шаблоном как таковым. Ну и портируется хуже.

Скорее уж разумно делать малые универсалы, процедуры-функции, и их таскать с места на место копипастом, и тюнинговать параметрами.

А что до публикации, так это должно было быть во встроенной справке платформы, и жаль, что нету.
Touch_Of_Soul; Ekovichev; +2 Ответить
11. zqzq 23 24.11.21 15:44 Сейчас в теме
Пользуюсь шаблонами Чистова. Удобно для рутинных/частых/типовых операций, типа набрать "Если" и шаблон сам подставит обёртку "Если Тогда КонецЕсли;". Там только встроенный язык, поэтому не устаревает и объём небольшой.
12. RustIG 1382 24.11.21 16:04 Сейчас в теме
(11)
Если Тогда КонецЕсли;"

не велика выгода

иногда часами думаешь как механизм запилить, а вы тут
(11)
Если Тогда КонецЕсли
Chizhik2020; +1 Ответить
13. RustIG 1382 24.11.21 16:05 Сейчас в теме
(11)я к тому , что выигрыш от этих шаблонов, тогда, когда сложный алгоритм копипастим - чтобы с нуля его не писать....
15. zqzq 23 25.11.21 10:51 Сейчас в теме
(13) Так выше и писали, что шаблоны не для этого, и я согласен. Храню несколько кусков запросов (вроде генерации всех дней в периоде) в Образцах программы CLCL. А шаблоны платформы как раз для мелочи нужны, типа начал набирать, а шаблон дополнил конструкцию.
16. RustIG 1382 25.11.21 11:51 Сейчас в теме
(15) я , к большому сожалению 1с и всем кто причастен к стандартным шаблонам, ими не пользуюсь....
я часы трачу чтобы изучить их код, придумать обход (решение для клиента), их шаблоны - это копейки
14. CheBurator 3119 24.11.21 23:57 Сейчас в теме
на ИС
https://infostart.ru/public/199364/
.
есть еще на ИС библиотека шаблонов в облаке, с интеграцией в конфигуратор (вроде)
17. Дмитрий74Чел 234 25.11.21 17:35 Сейчас в теме
18. RustIG 1382 27.11.21 13:37 Сейчас в теме
(17) после просмотра я изменил свое отношение к шаблонам.

для тех, кто забыл, как вызвать в конфигураторе Шаблоны: ctrl+shift+T
19. RustIG 1382 27.11.21 14:25 Сейчас в теме
(0)
типовой шаблон, предоставляемый в поставке платформы. Типовой шаблон недоступен для редактирования


Копируете файл шаблона в свою папку, подключаете в меню шаблонов и редактируете... все возможно...
Прикрепленные файлы:
21. Ekovichev 813 29.11.21 14:17 Сейчас в теме
(19)
недоступен для редактирования


Что и описано во второй части публикации
23. RustIG 1382 29.11.21 14:39 Сейчас в теме
(21) да, я потом внимательно прочитал
20. triviumfan 93 29.11.21 10:31 Сейчас в теме
Откуда столько плюсов? Неужели шаблоны первый раз увидели...
22. Ekovichev 813 29.11.21 14:19 Сейчас в теме
(20) Использование шаблонов не освещается широко. Пользуются ими единицы и даже, если и знали об этой возможности, то со временем забывают. Вероятно, для кого-то публикация полезна.
24. RustIG 1382 29.11.21 14:41 Сейчас в теме
(22) меня ваша публикация сподвигла пересмотреть алгоритм парсера шаблонов.
все не зря...
25. RustIG 1382 29.11.21 16:26 Сейчас в теме
Оставьте свое сообщение