mirror of
https://github.com/salexdv/bsl_console.git
synced 2024-11-28 08:48:48 +02:00
72 lines
6.5 KiB
Markdown
72 lines
6.5 KiB
Markdown
# Функция *parseSnippets*
|
|
|
|
## Назначение функции
|
|
|
|
Функция для загрузки шаблонов кода (сниппетов) в формате 1С:Предприятия
|
|
|
|
## Параметры функции
|
|
|
|
* **stData** - *string*, текстовое содержимое файла шаблона .st
|
|
* **unionSnippets** - *boolean*, признак объединения ранее загруженных или стандартных шаблонов кода с шаблонами, переданными для загрузки. Значение по умолчанию: `false`
|
|
|
|
## Пример вызова
|
|
|
|
```javascript
|
|
// Загрузка шаблонов с полной заменой
|
|
parseSnippets('{0,{"Пока",0,0,"Пока","Пока <?""Условие""> Цикл......');
|
|
// Загрузка шаблонов с объединением
|
|
parseSnippets('{0,{"Пока",0,0,"Пока","Пока <?""Условие""> Цикл......', true);
|
|
```
|
|
|
|
## Особенности реализации
|
|
|
|
1. В списке подсказок появляются только те шаблоны кода, у которых в 1С заполнено поле `Автоматически заменять строку`.
|
|
2. В стандартных шаблонах 1С для списка выбора есть возможность указывать представление значение и само вставляемое значение, например, так:
|
|
|
|
```bsl
|
|
<?"", ВыборВарианта, "Основная таблица", "<?>", "СрезПервых", ".СрезПервых(<?>)", "СрезПоследних", ".СрезПоследних(<?>)">
|
|
```
|
|
|
|
При выборе значения `Основная таблица` в код фактически не вставляется ничего, а просто происходит перемещение курсора в текущую позицию. К сожалению, редактор не позволяет реализовать такую схему, поэтому указанный выше шаблон преобразуется в выбор из двух значений, а именно `СрезПервых` и `СрезПоследних`.
|
|
|
|
3. Шаблон `ДатаВремя` всегда преобразуется в текущую дату в формате `dd.MM.yyyy HH:mm:ss`
|
|
4. Шаблоны, предназначенные для выбора объекта метаданных, такие как `Справочник`, `Документ`, `РегистрСведений` и подобные преобразуются в список выбора соответствующих объектов. Если метаданные ранее не были загружены через функцию [`updateMetadata`](update_metadata.md), тогда при активизации сниппета в списке подсказок происходит генерация события [`EVENT_GET_METADATA`](get_metadata_event.md) после обработки которого в 1С следует дополнительно вызвать метод [`updateSnippetByGUID`](update_snippet_guid.md)
|
|
5. Синтаксис шаблона `ОбъектМетаданных` поддерживается частично, а именно поддерживается выбор только "корневых" объектов метаданных, предназначенных для хранения какой-либо информации, а именно `Справочник`, `Документ`, `РегистрСведений` и т.п.
|
|
Ниже приведены шаблоны с выбором объекта метаданных в формате 1С, а также конечный результат, получаемый при загрузке в редактор:
|
|
|
|
```bsl
|
|
// Преобразуется к выбору регистра сведений
|
|
<?"", ОбъектМетаданных, "РегистрСведений">
|
|
// Преобразуется к выбору всех справочников и документов
|
|
<?"", ОбъектМетаданных, "Справочник", "Документ">
|
|
|
|
// Табличные части, формы, измерения/ресурсы регистров и прочие объекты не обрабатываются
|
|
// Преобразуется к выбору всех справочников
|
|
<?"", ОбъектМетаданных, "Справочник", "Документ.ТабличнаяЧасть">
|
|
// В указанных ниже шаблонах будет подставлено слово "ОбъектМетаданных"
|
|
<?"", ОбъектМетаданных, "Справочник.ТабличнаяЧасть", "Документ.ТабличнаяЧасть">
|
|
<?"", ОбъектМетаданных, "Справочник.Форма", "Справочник.Макет">
|
|
<?"", ОбъектМетаданных, "Стиль", "ПодпискаНаСобытие", "ОпределяемыйТип">
|
|
```
|
|
|
|
6. При выборе шаблона `ТекстЗапроса` происходит генерация события `EVENT_QUERY_CONSTRUCT`.
|
|
7. При выборе шаблона `ФорматнаяСтрока` происходит генерация события `EVENT_FORMAT_CONSTRUCT`.
|
|
8. При выборе шаблона `ВыборТипа` происходит генерация события `EVENT_TYPE_CONSTRUCT`.
|
|
9. При выборе шаблона `КонструкторОписанияТипов` происходит генерация события `EVENT_TYPEDESCRIPTION_CONSTRUCT`.
|
|
10. Перечисленные ниже шаблоны никак не обрабатываются, а просто вставляются в код с аналогичным именем переменной:
|
|
|
|
* ВыборТипа
|
|
* ЖурналДокументов
|
|
* ЗначениеПеречисления
|
|
* ИмяПользователя
|
|
* ПолноеИмяПользователя
|
|
* ИмяПользователяХранилищаКонфигурации
|
|
* КонструкторОписанияТипов
|
|
* КритерийОтбора
|
|
* Перерасчет
|
|
* ПланВидовРасчетаПредопределенныеДанные
|
|
* ПланВидовХарактеристикПредопределенныеДанные
|
|
* ПланСчетовПредопределенныеДанные
|
|
* Последовательность
|
|
* СправочникПредопределенныеДанные
|