1 +Скрипт <b>"Шаблоны кода"</b> (snippets.js)
2 +
3 +Предназначен для расширения возможностей штатного механизма шаблонов кода конфигуратора 1С:Предприяти 8.
4 +
5 +<h2>Возможности скрипта</h2>
6 +
7 +<h3>Вставка шаблонов из списка шаблонов</h3>
8 +
9 +Штатный механизм шаблонов включает все шаблоны в список контекстной подсказки, что не для всех удобно.
10 +Скрипт "Шаблоны кода" содержит макрос "Выполнить подстановку шаблона", который позволяет отдельный открыть список доступных
11 +шаблонов.
12 +
13 +После выбора шаблона будет произведен его парсинг и вставка в текущую позицию курсора (или вместо выделенного текста,
14 +если было установлено выделение).
15 +
16 +<h3>При помощи скрипта шаблон "применять" к текущему выделению.</h3>
17 +
18 +Любые шаблоны, содержащие в себе штатную конструкцию "Установка курсора" (<?>) могут быть не просто вставлены
19 +в текст модуля в текущую позицию, но и "применены" к выделенному тексту.
20 +
21 +Это означает, что выделенный текст перед вставкой шаблона будет подставлен в текст шаблона вместо управляющей конструкции
22 +"Установка курсора" (<?>), а затем полученный код будет вставлен в текст модуля вместо выделенного текста.
23 +
24 +<h3>Возможность указывать альтернативную позицию установки курсора</h3>
25 +
26 +В шаблоне, который предполагается использовать одновременно для создания нового кода и для "применения" к выделенному тексту
27 +можно указать альтернативную позицию установки курсора.
28 +
29 +Например, шаблон "Если" может быть настроен таким образом, чтобы когда шаблон применяется к выделению, выделенный текст обрамляется
30 +конструкцией "Если", а курсор устанавливается в позицию, обозначенную |:
31 +
32 +<verbatim>
33 +Если | Тогда
34 + // Здесь будет выделенный текст
35 +КонецЕсли;
36 +</verbatim>
37 +
38 +Для указания в шаблоне места альтернативной установки курсора используется штатная управляющая конструкция
39 +"Произвольный запрос" (<?"">), подсказка которого начинается с символа "|" (например, <?"|Условие">).
40 +
41 +Для приведенного примера шаблон будет выглядеть следующим образом:
42 +
43 +<verbatim>
44 +Если <?"|Условие"> Тогда
45 + <?>
46 +КонецЕсли;
47 +</verbatim>
48 +
49 +Если такой шаблон вставляется "традиционно" - без выделения, то место вставки курсора будет определяться управляющей конструкцией <?>,
50 +иначе будет использована альтернативная позиция.
51 +
52 +<h3>Возможность задавать шаблонам индивидуальные горячие клавиши</h3>
53 +
54 +Шаблоны, которым вы хотите назначить индивидуальный хоткей, должны первой строчкой содержать следующую управляющую конструкцию:
55 +<verbatim><%Макрос "<Имя макроса шаблона>"></verbatim>
56 +
57 +где <Имя макроса шаблона> - имя, под которым макрос для вставки этого шаблона появится в списке макросов скрипта "Шаблоны кода".
58 +
59 +Назначение хоткея такому макросу осуществляется в окне настройки горячих клавиш Снегопата.
60 +
61 +Перед вставкой шаблона при помощи "Шаблоны кода" строка с управляющей конструкцией будет удалена.
62 +
63 +Индивидуальные макросы можно использовать для реализации шаблонов - "авторских комментариев". Пример такого шаблона:
64 +<verbatim>
65 +<%Макрос "Авторский комментарий: Добавление">;
66 +//{Добавлено - Начало. <?"", ИмяПользователяХранилищаКонфигурации> - <?"", ДатаВремя, "ДФ=гггг-ММ-дд">
67 +<?>
68 +//}Добавлено - Конец.
69 +</verbatim>
70 +
71 +При наличии такого шаблона в макросы "Шаблоны кода" будет добавлен макрос с именем "Вставить шаблон Авторский комментарий: Добавление", которому можно будет назначить свою горячую клавишу.
72 +
73 +<h3>Дополнительные управляющие конструкции для использования в шаблонах</h3>
74 +
75 +Скрипт "Шаблоны кода" добавляет поддержку дополнительных управляющих конструкций для вставки значений свойств основной конфигурации,
76 +а также для вставки имени пользователя операционной системы, в сеансе которого запущен конфигуратор.
77 +
78 +Назначение каждой конструкции понятно из ее представления:
79 +
80 +<verbatim>
81 +<%Конфигурация.Имя>
82 +<%Конфигурация.Синоним>
83 +<%Конфигурация.Комментарий>
84 +<%Конфигурация.Поставщик>
85 +<%Конфигурация.Версия>
86 +<%Конфигурация.АвторскиеПрава>
87 +<%Конфигурация.КраткаяИнформация>
88 +<%Конфигурация.ПодробнаяИнформация>
89 +<%Конфигурация.АдресИнформацииОКонфигурации>
90 +<%Конфигурация.АдресИнформацииОПоставщике>
91 +<%ИмяПользователяОС>
92 +</verbatim>
93 +
94 +Обратите внимание, что в отличии от штатных управляющих конструкций дополнительные конструкции используют немного отличающийся синтаксис:
95 +<ul>
96 +<li>вместо знака вопроса(?) используют знак процента (%)</li>
97 +<li>указание подсказки для пользователя писать не надо, т.к. она не нужна, потому что никаких запросов у пользователя не делается</li>
98 +</ul>
99 +
100 +Для вставки этих управляющих конструкций в шаблон при его редактировании штатным редактором шаблонов "1С:Предприятия 8" используйте макрос
101 +скрипта "ВставитьРасширеннуюУправляющуюКонструкцию".
102 +
103 +<h3>Скрипт использует штатный формат файлов шаблонов 1С (*.st)</h3>
104 +
105 +Скрипт полностью совместим по формату хранения шаблонов со штатным механизмом и не требует конвертации уже имеющихся шаблонов.
106 +Расширение управляющих конструкций не "ломает" штатные шаблоны (все расширение укладывается в рамки существующего синтаксиса),
107 +поэтому "расширенные" и "обычные" шаблоны можно использовать одновременно.
108 +
109 +Для редактирования шаблонов можно использовать штатный редактор шаблонов.
110 +
111 +Начиная с версии 1.1.3.1 "Снегопата" расширенные конструкции работают в том числе и при вставке шаблонов штатными средствами 1С, например
112 +при перетаскивании шаблона в код из окна шаблонов мышкой или при использовании вставки шаблона из списка автодополнения и т.п.
113 +
114 +<h2>Ссылки:</h2>
115 + * [/finfo?name=snippets.js|История версий]
116 + * [http://snegopat.ru/forum/|Обсуждение на форуме]