1
0
mirror of https://github.com/salexdv/bsl_console.git synced 2024-11-30 08:57:08 +02:00
bsl_console/docs/parse_snippets.md

6.5 KiB

Функция parseSnippets

Назначение функции

Функция для загрузки шаблонов кода (сниппетов) в формате 1С:Предприятия

Параметры функции

  • stData - string, текстовое содержимое файла шаблона .st
  • unionSnippets - boolean, признак объединения ранее загруженных или стандартных шаблонов кода с шаблонами, переданными для загрузки. Значение по умолчанию: false

Пример вызова

// Загрузка шаблонов с полной заменой
parseSnippets('{0,{"Пока",0,0,"Пока","Пока <?""Условие""> Цикл......');
// Загрузка шаблонов с объединением
parseSnippets('{0,{"Пока",0,0,"Пока","Пока <?""Условие""> Цикл......', true);

Особенности реализации

  1. В списке подсказок появляются только те шаблоны кода, у которых в 1С заполнено поле Автоматически заменять строку.
  2. В стандартных шаблонах 1С для списка выбора есть возможность указывать представление значение и само вставляемое значение, например, так:
<?"", ВыборВарианта, "Основная таблица", "<?>", "СрезПервых", ".СрезПервых(<?>)", "СрезПоследних", ".СрезПоследних(<?>)">

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

  1. Шаблон ДатаВремя всегда преобразуется в текущую дату в формате dd.MM.yyyy HH:mm:ss
  2. Шаблоны, предназначенные для выбора объекта метаданных, такие как Справочник, Документ, РегистрСведений и подобные преобразуются в список выбора соответствующих объектов. Если метаданные ранее не были загружены через функцию updateMetadata, тогда при активизации сниппета в списке подсказок происходит генерация события EVENT_GET_METADATA после обработки которого в 1С следует дополнительно вызвать метод updateSnippetByGUID
  3. Синтаксис шаблона ОбъектМетаданных поддерживается частично, а именно поддерживается выбор только "корневых" объектов метаданных, предназначенных для хранения какой-либо информации, а именно Справочник, Документ, РегистрСведений и т.п. Ниже приведены шаблоны с выбором объекта метаданных в формате 1С, а также конечный результат, получаемый при загрузке в редактор:
// Преобразуется к выбору регистра сведений
<?"", ОбъектМетаданных, "РегистрСведений">
// Преобразуется к выбору всех справочников и документов
<?"", ОбъектМетаданных, "Справочник", "Документ">

// Табличные части, формы, измерения/ресурсы регистров и прочие объекты не обрабатываются
// Преобразуется к выбору всех справочников
<?"", ОбъектМетаданных, "Справочник", "Документ.ТабличнаяЧасть">
// В указанных ниже шаблонах будет подставлено слово "ОбъектМетаданных"
<?"", ОбъектМетаданных, "Справочник.ТабличнаяЧасть", "Документ.ТабличнаяЧасть"> 
<?"", ОбъектМетаданных, "Справочник.Форма", "Справочник.Макет">
<?"", ОбъектМетаданных, "Стиль", "ПодпискаНаСобытие", "ОпределяемыйТип">
  1. При выборе шаблона ТекстЗапроса происходит генерация события EVENT_QUERY_CONSTRUCT.
  2. При выборе шаблона ФорматнаяСтрока происходит генерация события EVENT_FORMAT_CONSTRUCT.
  3. При выборе шаблона ВыборТипа происходит генерация события EVENT_TYPE_CONSTRUCT.
  4. При выборе шаблона КонструкторОписанияТипов происходит генерация события EVENT_TYPEDESCRIPTION_CONSTRUCT.
  5. Перечисленные ниже шаблоны никак не обрабатываются, а просто вставляются в код с аналогичным именем переменной:
  • ВыборТипа
  • ЖурналДокументов
  • ЗначениеПеречисления
  • ИмяПользователя
  • ПолноеИмяПользователя
  • ИмяПользователяХранилищаКонфигурации
  • КонструкторОписанияТипов
  • КритерийОтбора
  • Перерасчет
  • ПланВидовРасчетаПредопределенныеДанные
  • ПланВидовХарактеристикПредопределенныеДанные
  • ПланСчетовПредопределенныеДанные
  • Последовательность
  • СправочникПредопределенныеДанные