1c.js 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. /*
  2. Language: 1C:Enterprise
  3. Author: Stanislav Belov <stbelov@gmail.com>
  4. Description: built-in language 1C:Enterprise (v7, v8)
  5. Category: enterprise
  6. */
  7. function _1c(hljs) {
  8. // общий паттерн для определения идентификаторов
  9. const UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';
  10. // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword
  11. const v7_keywords =
  12. 'далее ';
  13. // v8 ключевые слова ==> keyword
  14. const v8_keywords =
  15. 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли '
  16. + 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';
  17. // keyword : ключевые слова
  18. const KEYWORD = v7_keywords + v8_keywords;
  19. // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword
  20. const v7_meta_keywords =
  21. 'загрузитьизфайла ';
  22. // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword
  23. const v8_meta_keywords =
  24. 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер '
  25. + 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед '
  26. + 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';
  27. // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях
  28. const METAKEYWORD = v7_meta_keywords + v8_meta_keywords;
  29. // v7 системные константы ==> built_in
  30. const v7_system_constants =
  31. 'разделительстраниц разделительстрок символтабуляции ';
  32. // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in
  33. const v7_global_context_methods =
  34. 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов '
  35. + 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя '
  36. + 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца '
  37. + 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид '
  38. + 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца '
  39. + 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов '
  40. + 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута '
  41. + 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта '
  42. + 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына '
  43. + 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента '
  44. + 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';
  45. // v8 методы глобального контекста ==> built_in
  46. const v8_global_context_methods =
  47. 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока '
  48. + 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение '
  49. + 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации '
  50. + 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода '
  51. + 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы '
  52. + 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации '
  53. + 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию '
  54. + 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла '
  55. + 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке '
  56. + 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку '
  57. + 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты '
  58. + 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы '
  59. + 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти '
  60. + 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы '
  61. + 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя '
  62. + 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты '
  63. + 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов '
  64. + 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя '
  65. + 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога '
  66. + 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией '
  67. + 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы '
  68. + 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения '
  69. + 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении '
  70. + 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения '
  71. + 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально '
  72. + 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа '
  73. + 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту '
  74. + 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения '
  75. + 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки '
  76. + 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение '
  77. + 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя '
  78. + 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса '
  79. + 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора '
  80. + 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса '
  81. + 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации '
  82. + 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла '
  83. + 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации '
  84. + 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления '
  85. + 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу '
  86. + 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы '
  87. + 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет '
  88. + 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима '
  89. + 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения '
  90. + 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути '
  91. + 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы '
  92. + 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю '
  93. + 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных '
  94. + 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию '
  95. + 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище '
  96. + 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода '
  97. + 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение '
  98. + 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока '
  99. + 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных '
  100. + 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени '
  101. + 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить '
  102. + 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс '
  103. + 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '
  104. + 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах '
  105. + 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации '
  106. + 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы '
  107. + 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим '
  108. + 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту '
  109. + 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных '
  110. + 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации '
  111. + 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения '
  112. + 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования '
  113. + 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима '
  114. + 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим '
  115. + 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией '
  116. + 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы '
  117. + 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса '
  118. + 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';
  119. // v8 свойства глобального контекста ==> built_in
  120. const v8_global_context_property =
  121. 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы '
  122. + 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль '
  123. + 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты '
  124. + 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений '
  125. + 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик '
  126. + 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок '
  127. + 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений '
  128. + 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа '
  129. + 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек '
  130. + 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков '
  131. + 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';
  132. // built_in : встроенные или библиотечные объекты (константы, классы, функции)
  133. const BUILTIN =
  134. v7_system_constants
  135. + v7_global_context_methods + v8_global_context_methods
  136. + v8_global_context_property;
  137. // v8 системные наборы значений ==> class
  138. const v8_system_sets_of_values =
  139. 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';
  140. // v8 системные перечисления - интерфейсные ==> class
  141. const v8_system_enums_interface =
  142. 'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий '
  143. + 'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы '
  144. + 'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы '
  145. + 'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя '
  146. + 'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение '
  147. + 'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы '
  148. + 'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания '
  149. + 'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки '
  150. + 'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы '
  151. + 'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева '
  152. + 'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы '
  153. + 'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме '
  154. + 'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы '
  155. + 'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы '
  156. + 'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы '
  157. + 'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска '
  158. + 'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования '
  159. + 'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта '
  160. + 'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы '
  161. + 'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы '
  162. + 'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы '
  163. + 'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы '
  164. + 'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы '
  165. + 'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском '
  166. + 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы '
  167. + 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта '
  168. + 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты '
  169. + 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения '
  170. + 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра '
  171. + 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения '
  172. + 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы '
  173. + 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки '
  174. + 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание '
  175. + 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы '
  176. + 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление '
  177. + 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы '
  178. + 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы '
  179. + 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления '
  180. + 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы '
  181. + 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы '
  182. + 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений '
  183. + 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы '
  184. + 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы '
  185. + 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы '
  186. + 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени '
  187. + 'форматкартинки ширинаподчиненныхэлементовформы ';
  188. // v8 системные перечисления - свойства прикладных объектов ==> class
  189. const v8_system_enums_objects_properties =
  190. 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса '
  191. + 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения '
  192. + 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';
  193. // v8 системные перечисления - планы обмена ==> class
  194. const v8_system_enums_exchange_plans =
  195. 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';
  196. // v8 системные перечисления - табличный документ ==> class
  197. const v8_system_enums_tabular_document =
  198. 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы '
  199. + 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента '
  200. + 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента '
  201. + 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента '
  202. + 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы '
  203. + 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента '
  204. + 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';
  205. // v8 системные перечисления - планировщик ==> class
  206. const v8_system_enums_sheduler =
  207. 'отображениевремениэлементовпланировщика ';
  208. // v8 системные перечисления - форматированный документ ==> class
  209. const v8_system_enums_formatted_document =
  210. 'типфайлаформатированногодокумента ';
  211. // v8 системные перечисления - запрос ==> class
  212. const v8_system_enums_query =
  213. 'обходрезультатазапроса типзаписизапроса ';
  214. // v8 системные перечисления - построитель отчета ==> class
  215. const v8_system_enums_report_builder =
  216. 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';
  217. // v8 системные перечисления - работа с файлами ==> class
  218. const v8_system_enums_files =
  219. 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';
  220. // v8 системные перечисления - построитель запроса ==> class
  221. const v8_system_enums_query_builder =
  222. 'типизмеренияпостроителязапроса ';
  223. // v8 системные перечисления - анализ данных ==> class
  224. const v8_system_enums_data_analysis =
  225. 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных '
  226. + 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений '
  227. + 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций '
  228. + 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных '
  229. + 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных '
  230. + 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';
  231. // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class
  232. const v8_system_enums_xml_json_xs_dom_xdto_ws =
  233. 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto '
  234. + 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs '
  235. + 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs '
  236. + 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs '
  237. + 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson '
  238. + 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs '
  239. + 'форматдатыjson экранированиесимволовjson ';
  240. // v8 системные перечисления - система компоновки данных ==> class
  241. const v8_system_enums_data_composition_system =
  242. 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных '
  243. + 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных '
  244. + 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных '
  245. + 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных '
  246. + 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных '
  247. + 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных '
  248. + 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных '
  249. + 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных '
  250. + 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных '
  251. + 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '
  252. + 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных '
  253. + 'использованиеусловногооформлениякомпоновкиданных ';
  254. // v8 системные перечисления - почта ==> class
  255. const v8_system_enums_email =
  256. 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения '
  257. + 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты '
  258. + 'статусразборапочтовогосообщения ';
  259. // v8 системные перечисления - журнал регистрации ==> class
  260. const v8_system_enums_logbook =
  261. 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';
  262. // v8 системные перечисления - криптография ==> class
  263. const v8_system_enums_cryptography =
  264. 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии '
  265. + 'типхранилищасертификатовкриптографии ';
  266. // v8 системные перечисления - ZIP ==> class
  267. const v8_system_enums_zip =
  268. 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip '
  269. + 'режимсохраненияпутейzip уровеньсжатияzip ';
  270. // v8 системные перечисления -
  271. // Блокировка данных, Фоновые задания, Автоматизированное тестирование,
  272. // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class
  273. const v8_system_enums_other =
  274. 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных '
  275. + 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';
  276. // v8 системные перечисления - схема запроса ==> class
  277. const v8_system_enums_request_schema =
  278. 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса '
  279. + 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';
  280. // v8 системные перечисления - свойства объектов метаданных ==> class
  281. const v8_system_enums_properties_of_metadata_objects =
  282. 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления '
  283. + 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование '
  284. + 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения '
  285. + 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита '
  286. + 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных '
  287. + 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи '
  288. + 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении '
  289. + 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений '
  290. + 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение '
  291. + 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '
  292. + 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности '
  293. + 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов '
  294. + 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса '
  295. + 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов '
  296. + 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования '
  297. + 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса '
  298. + 'типномерадокумента типномеразадачи типформы удалениедвижений ';
  299. // v8 системные перечисления - разные ==> class
  300. const v8_system_enums_differents =
  301. 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения '
  302. + 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки '
  303. + 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак '
  304. + 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога '
  305. + 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных '
  306. + 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения '
  307. + 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных '
  308. + 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter '
  309. + 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';
  310. // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)
  311. const CLASS =
  312. v8_system_sets_of_values
  313. + v8_system_enums_interface
  314. + v8_system_enums_objects_properties
  315. + v8_system_enums_exchange_plans
  316. + v8_system_enums_tabular_document
  317. + v8_system_enums_sheduler
  318. + v8_system_enums_formatted_document
  319. + v8_system_enums_query
  320. + v8_system_enums_report_builder
  321. + v8_system_enums_files
  322. + v8_system_enums_query_builder
  323. + v8_system_enums_data_analysis
  324. + v8_system_enums_xml_json_xs_dom_xdto_ws
  325. + v8_system_enums_data_composition_system
  326. + v8_system_enums_email
  327. + v8_system_enums_logbook
  328. + v8_system_enums_cryptography
  329. + v8_system_enums_zip
  330. + v8_system_enums_other
  331. + v8_system_enums_request_schema
  332. + v8_system_enums_properties_of_metadata_objects
  333. + v8_system_enums_differents;
  334. // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type
  335. const v8_shared_object =
  336. 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs '
  337. + 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема '
  338. + 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма '
  339. + 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания '
  340. + 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление '
  341. + 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom '
  342. + 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта '
  343. + 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs '
  344. + 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных '
  345. + 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла '
  346. + 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных '
  347. + 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных '
  348. + 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson '
  349. + 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs '
  350. + 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации '
  351. + 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных '
  352. + 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs '
  353. + 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom '
  354. + 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных '
  355. + 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных '
  356. + 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных '
  357. + 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml '
  358. + 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент '
  359. + 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml '
  360. + 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto '
  361. + 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows '
  362. + 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш '
  363. + 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент '
  364. + 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток '
  365. + 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs '
  366. + 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs '
  367. + 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs '
  368. + 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент '
  369. + 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла '
  370. + 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';
  371. // v8 универсальные коллекции значений ==> type
  372. const v8_universal_collection =
  373. 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура '
  374. + 'фиксированноесоответствие фиксированныймассив ';
  375. // type : встроенные типы
  376. const TYPE =
  377. v8_shared_object
  378. + v8_universal_collection;
  379. // literal : примитивные типы
  380. const LITERAL = 'null истина ложь неопределено';
  381. // number : числа
  382. const NUMBERS = hljs.inherit(hljs.NUMBER_MODE);
  383. // string : строки
  384. const STRINGS = {
  385. className: 'string',
  386. begin: '"|\\|',
  387. end: '"|$',
  388. contains: [ { begin: '""' } ]
  389. };
  390. // number : даты
  391. const DATE = {
  392. begin: "'",
  393. end: "'",
  394. excludeBegin: true,
  395. excludeEnd: true,
  396. contains: [
  397. {
  398. className: 'number',
  399. begin: '\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}'
  400. }
  401. ]
  402. };
  403. const PUNCTUATION = {
  404. match: /[;()+\-:=,]/,
  405. className: "punctuation",
  406. relevance: 0
  407. };
  408. // comment : комментарии
  409. const COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);
  410. // meta : инструкции препроцессора, директивы компиляции
  411. const META = {
  412. className: 'meta',
  413. begin: '#|&',
  414. end: '$',
  415. keywords: {
  416. $pattern: UNDERSCORE_IDENT_RE,
  417. keyword: KEYWORD + METAKEYWORD
  418. },
  419. contains: [ COMMENTS ]
  420. };
  421. // symbol : метка goto
  422. const SYMBOL = {
  423. className: 'symbol',
  424. begin: '~',
  425. end: ';|:',
  426. excludeEnd: true
  427. };
  428. // function : объявление процедур и функций
  429. const FUNCTION = {
  430. className: 'function',
  431. variants: [
  432. {
  433. begin: 'процедура|функция',
  434. end: '\\)',
  435. keywords: 'процедура функция'
  436. },
  437. {
  438. begin: 'конецпроцедуры|конецфункции',
  439. keywords: 'конецпроцедуры конецфункции'
  440. }
  441. ],
  442. contains: [
  443. {
  444. begin: '\\(',
  445. end: '\\)',
  446. endsParent: true,
  447. contains: [
  448. {
  449. className: 'params',
  450. begin: UNDERSCORE_IDENT_RE,
  451. end: ',',
  452. excludeEnd: true,
  453. endsWithParent: true,
  454. keywords: {
  455. $pattern: UNDERSCORE_IDENT_RE,
  456. keyword: 'знач',
  457. literal: LITERAL
  458. },
  459. contains: [
  460. NUMBERS,
  461. STRINGS,
  462. DATE
  463. ]
  464. },
  465. COMMENTS
  466. ]
  467. },
  468. hljs.inherit(hljs.TITLE_MODE, { begin: UNDERSCORE_IDENT_RE })
  469. ]
  470. };
  471. return {
  472. name: '1C:Enterprise',
  473. case_insensitive: true,
  474. keywords: {
  475. $pattern: UNDERSCORE_IDENT_RE,
  476. keyword: KEYWORD,
  477. built_in: BUILTIN,
  478. class: CLASS,
  479. type: TYPE,
  480. literal: LITERAL
  481. },
  482. contains: [
  483. META,
  484. FUNCTION,
  485. COMMENTS,
  486. SYMBOL,
  487. NUMBERS,
  488. STRINGS,
  489. DATE,
  490. PUNCTUATION
  491. ]
  492. };
  493. }
  494. export { _1c as default };