diff --git a/src/test_compare.html b/src/test_compare.html deleted file mode 100644 index cdd1de0..0000000 --- a/src/test_compare.html +++ /dev/null @@ -1,18526 +0,0 @@ - - - - - Test BSL-editor - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - \ No newline at end of file diff --git a/src/test_snip.js b/src/test_snip.js deleted file mode 100644 index 695e472..0000000 --- a/src/test_snip.js +++ /dev/null @@ -1,3197 +0,0 @@ - -describe("Проверка автокомлита и подсказок редактора кода", function () { - - let urlParams = new URLSearchParams(window.location.search); - let slow = urlParams.get('slow'); - - if (slow) - mocha.slow(parseInt(slow)); - - let st1 = [ - '{1,', - '{3,', - '{"Стандартные",1,0,"",""},', - '{18,', - '{"Управляющие",1,0,"",""},', - '{0,', - '{"Если",0,0,"Если","Если Тогда', - '', - ' ', - '', - 'КонецЕсли;"}', - '},', - '{0,', - '{"ЕслиИначе",0,0,"Если","Если Тогда', - '', - ' ', - '', - 'Иначе', - '', - ' ', - '', - 'КонецЕсли;"}', - '},', - '{0,', - '{"Пока",0,0,"Пока","Пока Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Для",0,0,"Для","Для По Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Для каждого",0,0,"Для[ Каждого]","Для каждого Из Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Процедура",0,0,"Проц[едура]","Процедура ()', - '', - ' ', - '', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Процедура (с заголовком)",0,0,"Проц[едура]","// <Описание процедуры>', - '//', - '// Параметры:', - '// <Параметр1> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '// <Параметр2> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '//', - 'Процедура ()', - '', - ' ', - '', - 'КонецПроцедуры // ()', - '"}', - '},', - '{0,', - '{"Процедура модуля формы",0,0,"Проц[едура]","// <Описание процедуры>', - '//', - '// Параметры:', - '// <Параметр1> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '// <Параметр2> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '//', - '&', - 'Процедура ()', - '', - ' ', - '', - 'КонецПроцедуры // ()', - '"}', - '},', - '{0,', - '{"Процедура модуля команды",0,0,"Проц[едура]","// <Описание процедуры>', - '//', - '// Параметры:', - '// <Параметр1> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '// <Параметр2> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '//', - '&', - 'Процедура ()', - '', - ' ', - '', - 'КонецПроцедуры // ()', - '"}', - '},', - '{0,', - '{"Функция",0,0,"Функ[ция]","Функция ()', - '', - ' ', - '', - 'КонецФункции // ()', - '"}', - '},', - '{0,', - '{"Функция (с заголовком)",0,0,"Функ[ция]","// <Описание функции>', - '//', - '// Параметры:', - '// <Параметр1> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '// <Параметр2> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '//', - '// Возвращаемое значение:', - '// <Тип.Вид> - <описание возвращаемого значения>', - '//', - 'Функция ()', - '', - ' ', - '', - 'КонецФункции // ()', - '"}', - '},', - '{0,', - '{"Функция модуля формы",0,0,"Функ[ция]","// <Описание функции>', - '//', - '// Параметры:', - '// <Параметр1> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '// <Параметр2> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '//', - '// Возвращаемое значение:', - '// <Тип.Вид> - <описание возвращаемого значения>', - '//', - '&', - 'Функция ()', - '', - ' ', - '', - 'КонецФункции // ()', - '"}', - '},', - '{0,', - '{"Функция модуля команды",0,0,"Функ[ция]","// <Описание функции>', - '//', - '// Параметры:', - '// <Параметр1> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '// <Параметр2> - <Тип.Вид> - <описание параметра>', - '// <продолжение описания параметра>', - '//', - '// Возвращаемое значение:', - '// <Тип.Вид> - <описание возвращаемого значения>', - '//', - '&', - 'Функция ()', - '', - ' ', - '', - 'КонецФункции // ()', - '"}', - '},', - '{0,', - '{"Возврат",0,0,"","Возврат;"}', - '},', - '{0,', - '{"Попытка",0,0,"Попы[тка]","Попытка', - '', - ' ', - '', - 'Исключение', - '', - 'КонецПопытки;"}', - '},', - '{0,', - '{"Директива компиляции",0,0,"Дирек[тива]","&"}', - '},', - '{0,', - '{"Инструкция Если",0,0,"Инстр[укция]","#Если Тогда', - ' ', - '#КонецЕсли"}', - '},', - '{0,', - '{"Инструкция Область",0,0,"#Обл[асть]","#Область ', - ' ', - '#КонецОбласти"}', - '}', - '},', - '{18,', - '{"Прикладные",1,0,"",""},', - '{0,', - '{"Перечисление",0,1,"Переч[исление]","ПредопределенноеЗначение(""Перечисление."")"}', - '},', - '{2,', - '{"Функциональные опции",1,0,"",""},', - '{0,', - '{"Получить функциональную опцию",0,1,"Функ[циональная опция]","ПолучитьФункциональнуюОпцию("""")"}', - '},', - '{0,', - '{"Получить функциональную опцию интерфейса",0,1,"Функ[циональная опция]","ПолучитьФункциональнуюОпциюИнтерфейса("""")"}', - '}', - '},', - '{4,', - '{"Общие формы",1,0,"",""},', - '{0,', - '{"Открыть общую форму",0,0,"Открыть[Форму]","ОткрытьФорму(""ОбщаяФорма."");"}', - '},', - '{0,', - '{"Открыть общую форму (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""ОбщаяФорма."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить общую форму",0,0,"Получить[Форму]","ПолучитьФорму(""ОбщаяФорма."");"}', - '},', - '{0,', - '{"Получить общую форму (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""ОбщаяФорма."");', - '"}', - '}', - '},', - '{5,', - '{"Планы обмена",1,0,"",""},', - '{0,', - '{"Открыть форму плана обмена",0,0,"Открыть[Форму]","ОткрытьФорму(""ПланОбмена.."");"}', - '},', - '{0,', - '{"Открыть форму плана обмена (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""ПланОбмена.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму плана обмена",0,0,"Получить[Форму]","ПолучитьФорму(""ПланОбмена.."");"}', - '},', - '{0,', - '{"Получить форму плана обмена (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""ПланОбмена.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Обход элементов",0,0,"","Выборка = ПланыОбмена..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '}', - '},', - '{3,', - '{"Константы",1,0,"",""},', - '{0,', - '{"Получить/установить",0,0,"Конст[анты]","Константы..()"}', - '},', - '{0,', - '{"Установить",0,0,"","Константы..Установить();"}', - '},', - '{0,', - '{"Получить",0,0,"","Константы..Получить()"}', - '}', - '},', - '{6,', - '{"Справочники",1,0,"",""},', - '{0,', - '{"Открыть форму справочника",0,0,"Открыть[Форму]","ОткрытьФорму(""Справочник.."");"}', - '},', - '{0,', - '{"Открыть форму справочника (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""Справочник.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму справочника",0,0,"Получить[Форму]","ПолучитьФорму(""Справочник.."");"}', - '},', - '{0,', - '{"Получить форму справочника (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""Справочник.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Обход элементов",0,0,"","Выборка = Справочники..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Обход элементов иерархически",0,0,"","Выборка = Справочники..ВыбратьИерархически();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '}', - '},', - '{6,', - '{"Документы",1,0,"",""},', - '{0,', - '{"Открыть форму документа",0,0,"Открыть[Форму]","ОткрытьФорму(""Документ.."");"}', - '},', - '{0,', - '{"Открыть форму документа (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""Документ.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму документа",0,0,"Получить[Форму]","ПолучитьФорму(""Документ.."");"}', - '},', - '{0,', - '{"Получить форму документа (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""Документ.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Обход документов",0,0,"","Выборка = Документы..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Движения",0,0,"","Движения."}', - '}', - '},', - '{4,', - '{"Отчеты",1,0,"",""},', - '{0,', - '{"Открыть форму отчета",0,0,"Открыть[Форму]","ОткрытьФорму(""Отчет.."");"}', - '},', - '{0,', - '{"Открыть форму отчета (с параметрами)",0,0,"Открыть[Форму]","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""Отчет.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму отчета",0,0,"Получить[Форму]","ПолучитьФорму(""Отчет.."");"}', - '},', - '{0,', - '{"Получить форму отчета (с параметрами)",0,0,"Получить[Форму]","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""Отчет.."", ПараметрыФормы);', - '"}', - '}', - '},', - '{4,', - '{"Обработки",1,0,"",""},', - '{0,', - '{"Открыть форму обработки",0,0,"Открыть[Форму]","ОткрытьФорму(""Обработка.."");"}', - '},', - '{0,', - '{"Открыть форму обработки (с параметрами)",0,0,"Открыть[Форму]","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""Обработка.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму обработки",0,0,"Получить[Форму]","ПолучитьФорму(""Обработка.."");"}', - '},', - '{0,', - '{"Получить форму обработки (с параметрами)",0,0,"Получить[Форму]","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""Обработка.."", ПараметрыФормы);', - '"}', - '}', - '},', - '{5,', - '{"Планы видов характеристик",1,0,"",""},', - '{0,', - '{"Открыть форму плана видов характеристик",0,0,"Открыть[Форму]","ОткрытьФорму(""ПланВидовХарактеристик.."");"}', - '},', - '{0,', - '{"Открыть форму плана видов характеристик (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""ПланВидовХарактеристик.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму плана видов характеристик",0,0,"Получить[Форму]","ПолучитьФорму(""ПланВидовХарактеристик.."");"}', - '},', - '{0,', - '{"Получить форму плана видов характеристик (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""ПланВидовХарактеристик.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Обход видов характеристик",0,0,"","Выборка = ПланыВидовХарактеристик..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '}', - '},', - '{5,', - '{"Планы счетов",1,0,"",""},', - '{0,', - '{"Открыть форму плана счетов",0,0,"Открыть[Форму]","ОткрытьФорму(""ПланСчетов.."");"}', - '},', - '{0,', - '{"Открыть форму плана счетов (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""ПланСчетов.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму плана счетов",0,0,"Получить[Форму]","ПолучитьФорму(""ПланСчетов.."");"}', - '},', - '{0,', - '{"Получить форму плана счетов (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""ПланСчетов.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Найти по коду",0,0,"","ПланыСчетов..НайтиПоКоду()"}', - '}', - '},', - '{5,', - '{"Планы видов расчета",1,0,"",""},', - '{0,', - '{"Открыть форму плана видов расчета",0,0,"Открыть[Форму]","ОткрытьФорму(""ПланВидовРасчета.."");"}', - '},', - '{0,', - '{"Открыть форму плана видов расчета (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""ПланВидовРасчета.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму плана видов расчета",0,0,"Получить[Форму]","ПолучитьФорму(""ПланВидовРасчета.."");"}', - '},', - '{0,', - '{"Получить форму плана видов расчета (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""ПланВидовРасчета.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Обход видов расчета",0,0,"","Выборка = ПланыВидовРасчета..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '}', - '},', - '{5,', - '{"Бизнес-процессы",1,0,"",""},', - '{0,', - '{"Открыть форму бизнес-процесса",0,0,"Открыть[Форму]","ОткрытьФорму(""БизнесПроцесс.."");"}', - '},', - '{0,', - '{"Открыть форму бизнес-процесса (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""БизнесПроцесс.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму бизнес-процесса",0,0,"Получить[Форму]","ПолучитьФорму(""БизнесПроцесс.."");"}', - '},', - '{0,', - '{"Получить форму бизнес-процесса (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""БизнесПроцесс.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Обход бизнес-процессов",0,0,"","Выборка = БизнесПроцессы..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '}', - '},', - '{4,', - '{"Задачи",1,0,"",""},', - '{0,', - '{"Открыть форму задачи",0,0,"Открыть[Форму]","ОткрытьФорму(""Задача.."");"}', - '},', - '{0,', - '{"Открыть форму задачи (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""Задача.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму задачи",0,0,"Получить[Форму]","ПолучитьФорму(""Задача.."");"}', - '},', - '{0,', - '{"Получить форму задачи (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""Задача.."", ПараметрыФормы);', - '"}', - '}', - '},', - '{6,', - '{"Регистры сведений",1,0,"",""},', - '{0,', - '{"Открыть форму регистра сведений",0,0,"Открыть[Форму]","ОткрытьФорму(""РегистрСведений.."");"}', - '},', - '{0,', - '{"Открыть форму регистра сведений (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""РегистрСведений.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму регистра сведений",0,0,"Получить[Форму]","ПолучитьФорму(""РегистрСведений.."");"}', - '},', - '{0,', - '{"Получить форму регистра сведений (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""РегистрСведений.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Выборка записей регистра сведений",0,0,"","Выборка = РегистрСведений..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Выборка записей регистра сведений (по регистратору)",0,0,"","Выборка = РегистрСведений..ВыбратьПоРегистратору();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - '', - 'КонецЦикла;"}', - '}', - '},', - '{6,', - '{"Регистры накопления",1,0,"",""},', - '{0,', - '{"Открыть форму регистра накопления",0,0,"Открыть[Форму]","ОткрытьФорму(""РегистрНакопления.."");"}', - '},', - '{0,', - '{"Открыть форму регистра накопления (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""РегистрНакопления.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму регистра накопления",0,0,"Получить[Форму]","ПолучитьФорму(""РегистрНакопления.."");"}', - '},', - '{0,', - '{"Получить форму регистра накопления (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""РегистрНакопления.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Выборка записей регистра накопления",0,0,"","Выборка = РегистрСведений..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Выборка записей регистра накопления (по регистратору)",0,0,"","Выборка = РегистрСведений..ВыбратьПоРегистратору();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - '', - 'КонецЦикла;"}', - '}', - '},', - '{6,', - '{"Регистры бухгалтерии",1,0,"",""},', - '{0,', - '{"Открыть форму регистра бухгалтерии",0,0,"Открыть[Форму]","ОткрытьФорму(""РегистрБухгалтерии.."");"}', - '},', - '{0,', - '{"Открыть форму регистра бухгалтерии (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""РегистрБухгалтерии.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму регистра бухгалтерии",0,0,"Получить[Форму]","ПолучитьФорму(""РегистрБухгалтерии.."");"}', - '},', - '{0,', - '{"Получить форму регистра бухгалтерии (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""РегистрБухгалтерии.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Выборка записей регистра бухгалтерии",0,0,"","Выборка = РегистрСведений..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Выборка записей регистра бухгалтерии (по регистратору)",0,0,"","Выборка = РегистрСведений..ВыбратьПоРегистратору();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - '', - 'КонецЦикла;"}', - '}', - '},', - '{6,', - '{"Регистры расчета",1,0,"",""},', - '{0,', - '{"Открыть форму регистра расчета",0,0,"Открыть[Форму]","ОткрытьФорму(""РегистрРасчета.."");"}', - '},', - '{0,', - '{"Открыть форму регистра расчета (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'ОткрытьФорму(""РегистрРасчета.."", ПараметрыФормы);"}', - '},', - '{0,', - '{"Получить форму регистра расчета",0,0,"Получить[Форму]","ПолучитьФорму(""РегистрРасчета.."");"}', - '},', - '{0,', - '{"Получить форму регистра расчета (с параметрами)",0,0,"","ПараметрыФормы = Новый Структура;', - 'ПараметрыФормы.Вставить("""", );', - 'Форма = ПолучитьФорму(""РегистрРасчета.."", ПараметрыФормы);', - '"}', - '},', - '{0,', - '{"Выборка записей регистра расчета",0,0,"","Выборка = РегистрСведений..Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Выборка записей регистра расчета (по регистратору)",0,0,"","Выборка = РегистрСведений..ВыбратьПоРегистратору();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - '', - 'КонецЦикла;"}', - '}', - '}', - '},', - '{11,', - '{"Прочие",1,0,"",""},', - '{0,', - '{"Сообщение",0,1,"Сообщ[ение]","Сообщение = Новый СообщениеПользователю;', - 'Сообщение.Текст = """";', - 'Сообщение.Поле = """";', - 'Сообщение.УстановитьДанные();', - 'Сообщение.Сообщить();"}', - '},', - '{0,', - '{"Предупреждение",0,0,"Предупр[еждение]","Предупреждение();"}', - '},', - '{0,', - '{"Формат",0,0,"Формат","Формат(, """")"}', - '},', - '{0,', - '{"Форматная строка",0,1,"",""""""}', - '},', - '{0,', - '{"Создать структуру",0,0,"Струк[тура]","Новый Структура("""", )"}', - '},', - '{0,', - '{"Запрос",0,0,"","Запрос = Новый Запрос;', - 'Запрос.Текст = """";', - '', - 'Результат = Запрос.Выполнить();', - 'Выборка = Результат.Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;', - '"}', - '},', - '{0,', - '{"Запрос с параметром",0,0,"","Запрос = Новый Запрос;', - 'Запрос.Текст = """";', - '', - 'Запрос.УстановитьПараметр("""", );', - '', - 'Результат = Запрос.Выполнить();', - 'Выборка = Результат.Выбрать();', - '', - 'Пока Выборка.Следующий() Цикл', - '', - ' ', - '', - 'КонецЦикла;', - '"}', - '},', - '{0,', - '{"Вопрос",0,0,"Вопр[ос]","Вопрос("""", )"}', - '},', - '{0,', - '{"Вопрос с анализом результата",0,0,"Вопр[ос]","Вопрос("""", ) = "}', - '},', - '{0,', - '{"Проверка типа",0,0,"","Если ТипЗнч() = Тип("""") Тогда', - '', - ' ', - '', - 'КонецЕсли;"}', - '},', - '{0,', - '{"КонструкторОписанияТипов",0,0,"",""}', - '}', - '}', - '}', - '}'].join('\n'); - - let st2 = [ - '{1,', - '{21,', - '{"GROOVY (v8.3.21.12 от 15.03.21) ",1,0,"",""},', - '{0,', - '{"Есть мысли по развитию шаблонов? Телеграмм: https://t.me/st1c8",0,0,"","//Есть мысли по развитию шаблонов? https://t.me/st1c8"}', - '},', - '{0,', - '{"Описание",0,0,"","// Шаблоны для работы в конфигураторе с системами 1С:Предприятие версии 8.3', - '', - '// Последнюю версию шаблонов всегда можно найти тут: 1c.chistov.pro', - '', - '// С уважением, Павел Чистов"}', - '},', - '{0,', - '{"История изменений",0,0,"","#Область 2021_03_15', - ' //Добавлен шаблон модуля менеджера', - '#КонецОбласти ', - '', - '#Область 2021_02_25', - ' //Добавлен раздел ""Полезняшки"". В разделе нет автозамены.', - ' //Будет добавляться полезным кодом', - '#КонецОбласти ', - '', - '#Область 2020_06_23', - ' //Добавлен раздел Расширения', - ' //В раздел добавлены аннотации: Перед После, Вместо, ИзменениеИКонтроль', - '#КонецОбласти ', - '', - '#Область 2020_06_12', - ' //Добавлено сокращение ЗЗ (ЗаполнитьЗначенияСвойств)', - ' //Добавлен раздел Асинхронные вызовы, в раздео добавлены шаблоны описания оповещения', - ' //Добавлен шаблон помещения файла во временное хранилище (надоело набивать руками 4 процедуры)', - '#КонецОбласти ', - '', - '#Область 2018_08_06', - ' //ИсточникДанных заменен на ИсточникДанныхСКД, из-за конкуренции с объектом БлокировкаДанных', - '#КонецОбласти ', - '', - '#Область 2014_10_09', - ' //Добавлены шаблоны описывающие структуру модулей, Комментарии-Структура модулей, в автозамену не подключены', - ' //Изменен шаблон отчерка, вместо символов ""_"" используется ""="" и курсор помещается в начало отчерка, на основе рекомендации 1С', - ' //В шаблоне ""ТекущаяДата"" курсор устанавливается в конце метода, ранее устанавливался после пробела', - ' //Группы ""Комментарии"" и ""Области"" объединены', - ' //Начат раздел по СКД', - '#КонецОбласти ', - '', - '#Область 2014_02_13', - ' //Текст запроса в соответствующих шаблонах теперь начинается с новой строки', - '#КонецОбласти ', - '', - '#Область 2014_01_26', - ' //Изменен ""Отчерк"", теперь длина комментария 120 символов, по стандарту оформления 1С', - ' ', - ' //Добавлен шаблон ""нСтр""', - ' //Добавлен шаблон ""Фрагмент добавлен""', - ' //Добавлен шаблон ""Фрагмент удален""', - ' //Добавлен шаблон ""Комментарий модуля""', - '#КонецОбласти ', - '', - '#Область 2013_11_19', - ' //Исправлена ошибка в шаблоне ""Обл=""', - '#КонецОбласти ', - '', - '#Область 2013_10_02', - ' //Убран отчерк перед областью', - ' ', - ' //Добавлен прикладной шаблон ""ВидДвижения""', - ' // При наборе ВидДвижения= срабатывает шаблон на выбор видов движения регистров накопления и регистров бухгалтерии', - '#КонецОбласти ', - '', - '#Область 2013_09_15', - ' //Первая версия', - '#КонецОбласти ', - '"}', - '},', - '{8,', - '{"Управляющие",1,0,"",""},', - '{0,', - '{"Если",0,0,"Если","Если Тогда', - ' ', - 'КонецЕсли;"}', - '},', - '{0,', - '{"ИначеЕсли",0,0,"ИначеЕсли","ИначеЕсли Тогда"}', - '},', - '{0,', - '{"Пока",0,0,"Пока","Пока Цикл', - ' ', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Для",0,0,"Для","Для По Цикл', - ' ', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Для каждого",0,0,"Для[ Каждого]","Для каждого Из Цикл', - ' ', - 'КонецЦикла;"}', - '},', - '{0,', - '{"Попытка",0,0,"Попы[тка]","Попытка', - ' ', - 'Исключение', - ' //ОписаниеОшибки()', - 'КонецПопытки;"}', - '},', - '{7,', - '{"Процедура",1,0,"",""},', - '{0,', - '{"Процедура",0,0,"Проц[едура]","Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Процедура с заголовком",0,0,"Процедура","////////////////////////////////////////////////////////////////////////////////', - '//', - '// Процедура ', - '//', - '// Описание:', - '//', - '//', - '// Параметры (название, тип, дифференцированное значение)', - '//', - 'Процедура ()', - ' ', - 'КонецПроцедуры //', - '', - '"}', - '},', - '{0,', - '{"Процедура НаКлиенте",0,0,"Проц[едура]","&НаКлиенте', - 'Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Процедура НаСервереБезКонтекста",0,0,"Проц[едура]","&НаСервереБезКонтекста', - 'Процедура ()', - '', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Процедура НаСервере",0,0,"Проц[едура]","&НаСервере', - 'Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Процедура НаКлиентеНаСервереБезКонтекста (только модули упр.форм)",0,0,"Проц[едура]","&НаКлиентеНаСервереБезКонтекста', - 'Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Процедура НаКлиентеНаСервере (только модули команд)",0,0,"Проц[едура]","&НаКлиентеНаСервере', - 'Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '}', - '},', - '{7,', - '{"Функция",1,0,"",""},', - '{0,', - '{"Функция",0,0,"Функ[ция]","Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Функция с заголовком",0,0,"Функция","////////////////////////////////////////////////////////////////////////////////', - '//', - '// Функция ', - '//', - '// Описание:', - '//', - '//', - '// Параметры (название, тип, дифференцированное значение)', - '//', - '// Возвращаемое значение: ', - '//', - 'Функция ()', - ' ', - 'КонецФункции //', - '"}', - '},', - '{0,', - '{"Функция НаКлиенте",0,0,"Функ[ция]","&НаКлиенте', - 'Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Функция НаСервереБезКонтекста",0,0,"Функ[ция]","&НаСервереБезКонтекста', - 'Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Функция НаСервере",0,0,"Функ[ция]","&НаСервере', - 'Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Функция НаКлиентеНаСервереБезКонтекста (только модули упр.форм)",0,0,"Функ[ция]","&НаКлиентеНаСервереБезКонтекста', - 'Функция ()', - ' ', - 'КонецФункции"}', - '},', - '{0,', - '{"Функция НаКлиентеНаСервере (только модули команд)",0,0,"Функ[ция]","&НаКлиентеНаСервере', - 'Функция ()', - ' ', - 'КонецФункции"}', - '}', - '}', - '},', - '{8,', - '{"Прикладные",1,0,"",""},', - '{0,', - '{"Значение перечисления",0,0,"Переч[исления.]","Перечисления."}', - '},', - '{0,', - '{"ВыборСчетаДт",0,0,"СчетДт=","СчетДт = ;"}', - '},', - '{0,', - '{"ВыборСчетаКт",0,0,"СчетКт=","СчетКт = ;"}', - '},', - '{0,', - '{"Движение",0,0,"Движение=","Движение = Движения', - 'Движение.Период = Дата;"}', - '},', - '{0,', - '{"СубконтоДт",0,0,"СубконтоДт","СубконтоДт[] = ;"}', - '},', - '{0,', - '{"СубконтоКт",0,0,"СубконтоКт","СубконтоКт[] = ;"}', - '},', - '{0,', - '{"Граница",0,0,"Граница=","Граница = Новый Граница(, );"}', - '},', - '{2,', - '{"ВидДвижения",1,0,"",""},', - '{0,', - '{"РегистрыНакопления",0,0,"ВидД[вижения=]","ВидДвижения = ;"}', - '},', - '{0,', - '{"РегистрыБухгалтерии",0,0,"ВидД[вижения=]","ВидДвижения = ;', - '"}', - '}', - '}', - '},', - '{16,', - '{"Раскладка клавиатуры",1,0,"",""},', - '{0,', - '{">",0,0,"Ю",">"}', - '},', - '{0,', - '{"<",0,0,"Б","<"}', - '},', - '{0,', - '{"<>",0,0,"БЮ","<>"}', - '},', - '{0,', - '{"<=",0,0,"Б=","<="}', - '},', - '{0,', - '{">=",0,0,"Ю=",">="}', - '},', - '{0,', - '{"ЕстьТгдд",0,0,"ЕстьТгдд","ЕСТЬNULL("}', - '},', - '{0,', - '{"NULL",0,0,"тгдд","NULL"}', - '},', - '{0,', - '{"[]",0,0,"хъ","[]"}', - '},', - '{0,', - '{"|",0,0,"\ ","| "}', - '},', - '{0,', - '{"\'",0,0,"ээ","\'\'"}', - '},', - '{0,', - '{"&",0,0,"? ","&"}', - '},', - '{0,', - '{"WebЦвета",0,0,"цуицвета","WebЦвета"}', - '},', - '{0,', - '{"?НаКлиенте",0,0,"?наКлиенте","&НаКлиенте"}', - '},', - '{0,', - '{"?НаСервере",0,0,"?НаСер[вере]","&НаСервере"}', - '},', - '{0,', - '{"?НаСервереБезКонтекста",0,0,"?НаСер[вереБезКонтекста]","&НаСервереБезКонтекста"}', - '},', - '{0,', - '{"?НаКлиентеНаСервереБезКонтекста",0,0,"?НаКлиенте[НаСервереБезКонтекста]","&НаКлиентеНаСервереБезКонтекста"}', - '}', - '},', - '{6,', - '{"Коллекции значений",1,0,"",""},', - '{0,', - '{"ТЗ",0,0,"ТЗ=","ТЗ = Новый ТаблицаЗначений;', - '"}', - '},', - '{0,', - '{"СЗ",0,0,"СЗ=","СЗ = Новый СписокЗначений;', - '"}', - '},', - '{0,', - '{"Структура",0,0,"Структура=","Структура = Новый Структура;', - '"}', - '},', - '{0,', - '{"Соответствие",0,0,"Соответствие=","Соответствие = Новый Соответствие;', - '"}', - '},', - '{0,', - '{"ДеревоЗначений",0,0,"ДеревоЗначений=","ДеревоЗначений = Новый ДеревоЗначений;', - '"}', - '},', - '{0,', - '{"Массив",0,0,"Массив=","Массив = Новый Массив();"}', - '}', - '},', - '{10,', - '{"Запросы",1,0,"",""},', - '{0,', - '{"Запрос с конструктором",0,0,"Запрос=","Запрос = Новый Запрос;', - 'Запрос.Текст = ', - '"""";', - 'Запрос.УстановитьПараметр("""", );', - 'РезультатЗапроса = Запрос.Выполнить();', - '', - '"}', - '},', - '{0,', - '{"Запрос вручную",0,0,"Запрос=","Запрос = Новый Запрос;', - 'Запрос.Текст = ', - '""ВЫБРАТЬ', - '| ', - '|', - '|', - '|', - '|', - '|', - '|', - '|', - '|"";', - '', - 'Запрос.УстановитьПараметр("""", );', - 'РезультатЗапроса = Запрос.Выполнить();', - '"}', - '},', - '{0,', - '{"Документ",0,0,"Документ.","Документ."}', - '},', - '{0,', - '{"Справочник",0,0,"Справочник.","Справочник."}', - '},', - '{0,', - '{"РегистрСведений",0,0,"Рег[истрСведений.Справочник]","РегистрСведений."", ""СрезПервых"", "".СрезПервых()"", ""СрезПоследних"", "".СрезПоследних()"">"}', - '},', - '{0,', - '{"РегистрСведений",0,0,"Рег[истрСведений.]","РегистрСведений."", ""СрезПервых"", "".СрезПервых()"", ""СрезПоследних"", "".СрезПоследних()"">"}', - '},', - '{0,', - '{"РегистрНакопления",0,0,"Рег[истрНакопления.]","РегистрНакопления."", ""Остатки"", "".Остатки()"", ""Обороты"", "".Обороты()"", ""ОстаткиИОбороты"", "".ОстаткиИОбороты()"">"}', - '},', - '{0,', - '{"РегистрБухгалтерии",0,0,"Рег[истрБухгалтерии.]","РегистрБухгалтерии."", ""Субконто"", "".Субконто"", ""ДвиженияССубконто"", "".ДвиженияССубконто()"", ""Остатки"", "".Остатки()"", ""Обороты"", "".Обороты()"", ""ОстаткиИОбороты"", "".ОстаткиИОбороты()"", ""ОборотыДтКт"", "".ОборотыДтКт()"">"}', - '},', - '{0,', - '{"РегистрРасчета",0,0,"Рег[истрРасчета.]","РегистрРасчета."}', - '},', - '{0,', - '{"ЛЕВОЕ СОЕДИНЕНИЕ",0,0,"ЛЕВОЕ","ЛЕВОЕ СОЕДИНЕНИЕ"}', - '},', - '{0,', - '{"ПРАВОЕ СОЕДИНЕНИЕ",0,0,"ПРАВОЕ","ПРАВОЕ СОЕДИНЕНИЕ"}', - '}', - '},', - '{5,', - '{"Диалоговые",1,0,"",""},', - '{0,', - '{"НастройкаПериода",0,0,"НастройкаПериода=","НастройкаПериода = Новый НастройкаПериода;', - 'НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода=\'0001-01-01\', КонПериода, КонецДня(КонПериода)));', - 'НастройкаПериода.РедактироватьКакИнтервал = Истина;', - 'НастройкаПериода.РедактироватьКакПериод = Истина;', - 'НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;', - 'Если НастройкаПериода.Редактировать() Тогда', - ' НачПериода = НастройкаПериода.ПолучитьДатуНачала();', - ' КонПериода = НастройкаПериода.ПолучитьДатуОкончания();', - 'КонецЕсли;', - '"}', - '},', - '{3,', - '{"Предупреждение",1,0,"",""},', - '{0,', - '{"Предупреждение",0,0,"Пр[едупреждение]","ПоказатьПредупреждение(,, 60);"}', - '},', - '{0,', - '{"Предупреждение",0,0,"ПоказатьПр[едупреждение]","ПоказатьПредупреждение(,, 60);"}', - '},', - '{0,', - '{"Предупреждение c обработкой оповещения",0,0,"ПоказатьПр[едупреждение]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'ПоказатьПредупреждение(ОписаниеОповещения, , 60);', - '', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (ДополнительныеПараметры) Экспорт', - ' ', - 'КонецПроцедуры', - '"}', - '}', - '},', - '{6,', - '{"Вопрос",1,0,"",""},', - '{0,', - '{"Вопрос",0,0,"Ответ=","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'ПоказатьВопрос(ОписаниеОповещения, """",, 60);', - '', - ' ', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (РезультатВопроса, ДополнительныеПараметры) Экспорт', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Вопрос",0,0,"ПоказатьВо[прос]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'ПоказатьВопрос(ОписаниеОповещения, """",, 60);', - '', - ' ', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (РезультатВопроса, ДополнительныеПараметры) Экспорт', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Вопрос",0,0,"Воп[рос]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'ПоказатьВопрос(ОписаниеОповещения, """",, 60);', - '', - ' ', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (РезультатВопроса, ДополнительныеПараметры) Экспорт', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Вопрос с анализом результата",0,0,"Ответ=","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'ПоказатьВопрос(ОписаниеОповещения, """",, 60);', - '', - ' ', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (РезультатВопроса, ДополнительныеПараметры) Экспорт', - ' ', - ' Если РезультатВопроса ""> Тогда', - ' ', - ' КонецЕсли; ', - ' ', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Вопрос с анализом результата",0,0,"ПоказатьВо[прос]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'ПоказатьВопрос(ОписаниеОповещения, """",, 60);', - '', - ' ', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (РезультатВопроса, ДополнительныеПараметры) Экспорт', - ' ', - ' Если РезультатВопроса ""> Тогда', - ' ', - ' КонецЕсли; ', - ' ', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Вопрос с анализом результата",0,0,"Воп[рос]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'ПоказатьВопрос(ОписаниеОповещения, """",, 60);', - '', - ' ', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (РезультатВопроса, ДополнительныеПараметры) Экспорт', - ' ', - ' Если РезультатВопроса ""> Тогда', - ' ', - ' КонецЕсли; ', - ' ', - 'КонецПроцедуры"}', - '}', - '},', - '{2,', - '{"СообщениеПользователю",1,0,"",""},', - '{0,', - '{"Сообщение пользователю",0,0,"Сооб[щение]","Сообщение = Новый СообщениеПользователю;', - 'Сообщение.Текст = """";', - 'Сообщение.Сообщить();"}', - '},', - '{0,', - '{"Сообщение пользователю с привязкой к реквизитам",0,0,"Сооб[щение]","Сообщение = Новый СообщениеПользователю;', - 'Сообщение.Текст = """";', - 'Сообщение.Поле = """"; //имя реквизита ', - 'Сообщение.УстановитьДанные(); //Ссылка на объект ИБ', - 'Сообщение.Сообщить();"}', - '}', - '},', - '{2,', - '{"НачатьПомещениеФайла",1,0,"",""},', - '{0,', - '{"ПоместитьФайл",0,0,"ПоместитьФ[айл]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'НачатьПомещениеФайла(ОписаниеОповещения, , ,Истина, УникальныйИдентификатор);', - '', - '', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"ПоместитьФайл",0,0,"НачатьПо[мещениеФайла]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - 'НачатьПомещениеФайла(ОписаниеОповещения, , ,Истина, УникальныйИдентификатор);', - '', - '', - '//Вынести в отдельную процедуру', - '&НаКлиенте', - 'Процедура (Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт', - ' ', - 'КонецПроцедуры', - '"}', - '}', - '}', - '},', - '{3,', - '{"Табличный документ",1,0,"",""},', - '{0,', - '{"ТабДок",0,0,"ТабДок=","ТабДок = ;', - '"}', - '},', - '{0,', - '{"ПолучитьОбласть",0,0,"Обл=","Обл = .ПолучитьОбласть("""");"}', - '},', - '{0,', - '{"Макет",0,0,"Макет=","Макет = ПолучитьМакет(""Макет"");"}', - '}', - '},', - '{21,', - '{"Сокращения",1,0,"",""},', - '{0,', - '{"НачалоМесяца",0,0,"НМ","НачалоМесяца()"}', - '},', - '{0,', - '{"КонецМесяца",0,0,"КМ","КонецМесяца()"}', - '},', - '{0,', - '{"НачалоДня",0,0,"НД","НачалоДня()"}', - '},', - '{0,', - '{"КонецДня",0,0,"КД","КонецДня()"}', - '},', - '{0,', - '{"ТекущаяДата",0,0,"ТД","ТекущаяДата()"}', - '},', - '{0,', - '{"ПериодДействияНачало",0,0,"ПДН","ПериодДействияНачало"}', - '},', - '{0,', - '{"ПериодДействияКонец",0,0,"ПДК","ПериодДействияКонец"}', - '},', - '{0,', - '{"БазовыйПериодНачало",0,0,"БПН","БазовыйПериодНачало"}', - '},', - '{0,', - '{"БазовыйПериодКонец",0,0,"БПК","БазовыйПериодКонец"}', - '},', - '{0,', - '{"ПланыВидовХарактеристик",0,0,"ПВХ",""}', - '},', - '{0,', - '{"ПланыВидовРасчета",0,0,"ПВР",""}', - '},', - '{0,', - '{"ДобавитьМесяц",0,0,"ДМ","ДобавитьМесяц(,)"}', - '},', - '{0,', - '{"Неопределено",0,0,"Неоп[ределено]","Неопределено"}', - '},', - '{0,', - '{"УстановитьПараметр",0,0,"УП","УстановитьПараметр("""",);"}', - '},', - '{0,', - '{"Контрагент",0,0,"Конт[рагент]","Контрагент"}', - '},', - '{0,', - '{"Номенклатура",0,0,"Номе[нклатура]","Номенклатура"}', - '},', - '{0,', - '{"Количество",0,0,"Коли[чество]","Количество"}', - '},', - '{0,', - '{"Стоимость",0,0,"Стои[мость]","Стоимость"}', - '},', - '{0,', - '{"УстановитьЗначениеПараметра",0,0,"УЗП","УстановитьЗначениеПараметра("""",);"}', - '},', - '{0,', - '{"МоментВремени",0,0,"МВ","МоментВремени()"}', - '},', - '{0,', - '{"ЗаполнитьЗначенияСвойств",0,0,"ЗЗ","заполнитьЗначенияСвойств(, );"}', - '}', - '},', - '{4,', - '{"НаборЗаписей",1,0,"",""},', - '{0,', - '{"РегистрСведений",0,0,"НаборЗаписей=","НаборЗаписей = РегистрыСведений..СоздатьНаборЗаписей();', - '"}', - '},', - '{0,', - '{"РегистрНакопления",0,0,"НаборЗаписей=","НаборЗаписей = РегистрыНакопления..СоздатьНаборЗаписей();', - 'НаборЗаписей.Отбор.Регистратор.Установить();', - 'НаборЗаписей.Прочитать();"}', - '},', - '{0,', - '{"РегистрБухгалтерии",0,0,"НаборЗаписей=","НаборЗаписей = РегистрыБухгалтерии..СоздатьНаборЗаписей();', - 'НаборЗаписей.Отбор.Регистратор.Установить();', - 'НаборЗаписей.Прочитать();"}', - '},', - '{0,', - '{"РегистрРасчета",0,0,"НаборЗаписей=","НаборЗаписей = РегистрыРасчета..СоздатьНаборЗаписей();', - 'НаборЗаписей.Отбор.Регистратор.Установить();', - 'НаборЗаписей.Прочитать();"}', - '}', - '},', - '{7,', - '{"Прочие",1,0,"",""},', - '{0,', - '{"Формат",0,0,"Формат","Формат(, """")"}', - '},', - '{0,', - '{"Конструктор описания типов",0,1,"",""}', - '},', - '{0,', - '{"Проверка типа",0,1,"","Если ТипЗнч() = Тип("""") Тогда', - '', - ' ', - '', - 'КонецЕсли;"}', - '},', - '{0,', - '{"Шрифт",0,0,"Шрифт=","// КОНСТРУКТОР Имя шрифта, Размер, Жирный, Наклонный, Подчеркнутый, Зачеркнутый', - 'Шрифт = Новый Шрифт( , , , , , );"}', - '},', - '{0,', - '{"ЧислоПрописью",0,0,"Число[Прописью]","ЧислоПрописью(,,""рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2"")"}', - '},', - '{0,', - '{"Выборка",0,0,"Выборка=","Выборка = .Выбрать();', - 'Пока Выборка.Следующий() Цикл', - '', - 'КонецЦикла; "}', - '},', - '{0,', - '{"нСтр",0,0,"нСтр","нСтр(""ru=\'\'"", ""ru"")"}', - '}', - '},', - '{2,', - '{"Инструкции предпроцессору",1,0,"",""},', - '{0,', - '{"#Если",0,0,"№Если","#Если Тогда', - ' ', - '#КонецЕсли"}', - '},', - '{0,', - '{"#Если",0,0,"#Если","#Если Тогда', - ' ', - '#КонецЕсли"}', - '}', - '},', - '{4,', - '{"Блокировки",1,0,"",""},', - '{0,', - '{"Блокировка РегистрНакопления",0,0,"Блокировка=","Блокировка = Новый БлокировкаДанных;', - 'ЭлементБлокировки = Блокировка.Добавить(""РегистрНакопления."");', - 'ЭлементБлокировки.Режим = ;', - '//ЭлементБлокировки.ИсточникДанных = ;', - '//ЭлементБлокировки.ИспользоватьИзИсточникаДанных("""", """");', - '//ЭлементБлокировки.УстановитьЗначение("""", );', - 'Блокировка.Заблокировать(); ', - '"}', - '},', - '{0,', - '{"Блокировка РегистрБухгалтерии",0,0,"Блокировка=","Блокировка = Новый БлокировкаДанных;', - 'ЭлементБлокировки = Блокировка.Добавить(""РегистрБухгалтерии."");', - 'ЭлементБлокировки.Режим = ;', - '//ЭлементБлокировки.УстановитьЗначение(""Период"", Новый Диапазон( , ));', - '//ЭлементБлокировки.УстановитьЗначение(""Счет"", );', - 'Блокировка.Заблокировать(); ', - '"}', - '},', - '{0,', - '{"Блокировка РегистрСведений",0,0,"Блокировка=","Блокировка = Новый БлокировкаДанных;', - 'ЭлементБлокировки = Блокировка.Добавить(""РегистрСведений."");', - 'ЭлементБлокировки.Режим = ;', - '//ЭлементБлокировки.ИсточникДанных = ;', - '//ЭлементБлокировки.ИспользоватьИзИсточникаДанных("""", """");', - '//ЭлементБлокировки.УстановитьЗначение("""", );', - 'Блокировка.Заблокировать(); ', - '"}', - '},', - '{0,', - '{"Блокировка РегистрРасчета",0,0,"Блокировка=","Блокировка = Новый БлокировкаДанных;', - 'ЭлементБлокировки = Блокировка.Добавить(""РегистрРасчета."");', - 'ЭлементБлокировки.Режим = ;', - '//ЭлементБлокировки.ИсточникДанных = ;', - '//ЭлементБлокировки.ИспользоватьИзИсточникаДанных("""", """");', - '//ЭлементБлокировки.УстановитьЗначение("""", );', - 'Блокировка.Заблокировать(); ', - '"}', - '}', - '},', - '{1,', - '{"Запись",1,0,"",""},', - '{0,', - '{"ЗаписьРегистраРасчетов",0,0,"Запись=","Запись = Движения..Добавить();', - 'Запись.ПериодРегистрации = Дата;', - 'Запись.ПериодДействияНачало = ;', - 'Запись.ПериодДействияКонец = ;', - 'Запись.Сторно = Ложь;', - 'Запись.Сотрудник = ;', - 'Запись.Подразделение = ;', - 'Запись.График = ;', - 'Запись.Параметр = ;', - 'Запись.БазовыйПериодНачало = ;', - 'Запись.БазовыйПериодКонец = ;"}', - '}', - '},', - '{10,', - '{"Комментарии и области",1,0,"",""},', - '{0,', - '{"Отчерк",0,0,"/*","//======================================================================================================================"}', - '},', - '{0,', - '{"Группировка с комментарием ",0,0,"\хъ","//{', - '//}"}', - '},', - '{0,', - '{"Группировка с комментарием Открыть",0,0,"\х","//{"}', - '},', - '{0,', - '{"Группировка с комментарием Закрыть",0,0,"\ъ","//}"}', - '},', - '{0,', - '{"Фрагмент добавлен",0,0,"/+","//{[+](фрагмент ДОБАВЛЕН), ', - '', - '//} "}', - '},', - '{0,', - '{"Фрагмент удален",0,0,"/-","//{[-](фрагмент УДАЛЕН) ', - '', - '//} ', - '"}', - '},', - '{0,', - '{"Фрагмент ИЗМЕНЕН",0,1,"","//{[*](фрагмент ИЗМЕНЕН), ', - '', - '//} "}', - '},', - '{0,', - '{"Заголовок модуля",0,0,"/ЗМ","////////////////////////////////////////////////////////////////////////////////', - '// МОДУЛЬ :', - '//', - '// -', - '//', - '//', - '////////////////////////////////////////////////////////////////////////////////"}', - '},', - '{5,', - '{"Структура модулей",1,0,"",""},', - '{0,', - '{"Общий модуль",0,0,"","////////////////////////////////////////////////////////////////////////////////', - '// <Заголовок модуля: краткое описание и условия применения модуля.>', - '// ', - '////////////////////////////////////////////////////////////////////////////////', - '#Область ПрограммныйИнтерфейс', - '', - '#КонецОбласти', - '', - '#Область СлужебныеПроцедурыИФункции', - '', - '#КонецОбласти"}', - '},', - '{0,', - '{"Модуль объекта",0,0,"","', - '////////////////////////////////////////////////////////////////////////////////', - '// <Заголовок модуля: краткое описание и условия применения модуля.>', - '// ', - '////////////////////////////////////////////////////////////////////////////////', - '', - '#Область ПрограммныйИнтерфейс', - '', - '#КонецОбласти', - '', - '#Область ОбработчикиПроведения', - '', - '#КонецОбласти', - '', - '#Область ОбработчикиСобытий', - '', - '#КонецОбласти', - '', - '#Область СлужебныеПроцедурыИФункции', - '', - '#КонецОбласти', - '', - '', - '"}', - '},', - '{0,', - '{"Модуль формы",0,0,"","////////////////////////////////////////////////////////////////////////////////', - '// <Заголовок модуля: краткое описание и условия применения модуля.>', - '// ', - '////////////////////////////////////////////////////////////////////////////////', - '', - '', - '#Область ОбработчикиСобытийФормы', - '', - '#КонецОбласти', - '', - '#Область ОбработчикиСобытийЭлементовШапкиФормы', - '', - '#КонецОбласти', - '', - '#Область ОбработчикиСобытийЭлементовТаблицыФормы<ИмяТаблицыФормы>', - '', - '#КонецОбласти', - '', - '#Область ОбработчикиКомандФормы', - '', - '#КонецОбласти', - '', - '#Область СлужебныеПроцедурыИФункции', - '', - '#КонецОбласти"}', - '},', - '{0,', - '{"Модуль бизнес-процесса",0,0,"","', - '////////////////////////////////////////////////////////////////////////////////', - '// <Заголовок модуля: краткое описание и условия применения модуля.>', - '// ', - '////////////////////////////////////////////////////////////////////////////////', - '', - '#Область ОбработчикиСобытийКартыМаршрута', - '', - '#КонецОбласти', - '', - '#Область ОбработчикиСобытийМодуля', - '', - '#КонецОбласти', - '', - '#Область ПрограммныйИнтерфейс', - '', - '#КонецОбласти', - '', - '#Область СлужебныеПроцедурыИФункции', - '', - '#КонецОбласти', - '"}', - '},', - '{0,', - '{"Модуль менеджера",0,0,"","////////////////////////////////////////////////////////////////////////////////', - '// <Заголовок модуля: краткое описание и условия применения модуля.>', - '// ', - '////////////////////////////////////////////////////////////////////////////////', - '', - '#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда', - '', - '#Область ПрограммныйИнтерфейс', - '', - '#КонецОбласти', - '', - '#Область СлужебныеПроцедурыИФункции', - '', - '#КонецОбласти', - '', - '#КонецЕсли', - '"}', - '}', - '},', - '{0,', - '{"Область",0,0,"Обла[сть]","#Область ', - '', - '#КонецОбласти"}', - '}', - '},', - '{4,', - '{"СКД - альфа версия",1,0,"",""},', - '{6,', - '{"НаборыДанных",1,0,"",""},', - '{0,', - '{"СхемаКомпоновки",0,0,"СКД=","СхемаКомпоновки = Новый СхемаКомпоновкиДанных;"}', - '},', - '{0,', - '{"ИсточникДанныхСКД",0,0,"Источник[ДанныхСКД]=","ИсточникДанных = СхемаКомпоновки.ИсточникиДанных.Добавить();', - 'ИсточникДанных.Имя = ""local"";', - 'ИсточникДанных.ТипИсточникаДанных = ""local"";', - '"}', - '},', - '{0,', - '{"Набор данных Запрос",0,0,"НаборД[анных=]","НаборДанных = СхемаКомпоновки.НаборыДанных.Добавить(Тип(""НаборДанныхЗапросСхемыКомпоновкиДанных""));', - 'НаборДанных.Имя = ""НаборДанных1"";', - 'НаборДанных.ИсточникДанных = ИсточникДанных.Имя;', - 'НаборДанных.Запрос = ;', - '"}', - '},', - '{0,', - '{"Набор данных Объект",0,0,"НаборД[анных=]","НаборДанных = СхемаКомпоновки.НаборыДанных.Добавить(Тип(""НаборДанныхОбъектСхемыКомпоновкиДанных""));', - 'НаборДанных.Имя = ""НаборДанных1"";', - 'НаборДанных.ИсточникДанных = ИсточникДанных.Имя;', - 'НаборДанных.ИмяОбъекта = ;', - '"}', - '},', - '{0,', - '{"Набор данных Объединение",0,0,"НаборД[анных=]","НаборДанных = СхемаКомпоновки.НаборыДанных.Добавить(Тип(""НаборДанныхОбъединениеСхемыКомпоновкиДанных""));', - 'НаборДанных.Имя = ""НаборДанных1"";', - 'НаборДанных.Элементы = ;', - '"}', - '},', - '{0,', - '{"ПолеСКД",0,0,"ПолеСКД=","ПолеСКД = НаборДанных.Поля.Добавить(Тип(""ПолеНабораДанныхСхемыКомпоновкиДанных""));', - 'ПолеСКД.Поле = """";', - 'ПолеСКД.ПутьКДанным = """";', - 'ПолеСКД.Роль.Измерение = Истина;', - '"}', - '}', - '},', - '{1,', - '{"Ресурсы",1,0,"",""},', - '{0,', - '{"РесурсСКД",0,0,"РесурсСКД=","РесурсСКД = СхемаКомпоновки.ПоляИтога.Добавить();', - 'РесурсСКД.ПутьКДанным = """"; ', - 'РесурсСКД.Выражение = ""Сумма()"";"}', - '}', - '},', - '{1,', - '{"Параметры",1,0,"",""},', - '{0,', - '{"ПараметрСКД",0,0,"ПараметрСКД=","ПараметрСКД = СхемаКомпоновки.Параметры.Добавить(); //Разные параметры надо описывать разными переменными!', - 'ПараметрСКД.Имя = ;', - 'ПараметрСКД.Заголовок = ;', - 'ПараметрСКД.ТипЗначения = ;', - 'ПараметрСКД.ВключатьВДоступныеПоля = Истина;', - 'ПараметрСКД.Использование = ИспользованиеПараметраКомпоновкиДанных.Авто;', - '"}', - '}', - '},', - '{10,', - '{"Настройки",1,0,"",""},', - '{0,', - '{"НастройкиСКД Новый вариант",0,0,"НастройкиСКД=","НастройкиСКД = СхемаКомпоновки.ВариантыНастроек.Добавить();"}', - '},', - '{0,', - '{"НастройкиСКД Настройки по умолчанию",0,0,"НастройкиСКД=","НастройкиСКД = СхемаКомпоновки.НастройкиПоУмолчанию;', - '"}', - '},', - '{0,', - '{"ГруппировкаСКД - новая группировка в корень",0,0,"ГруппировкаСКД=","ГруппировкаСКД = НастройкиСКД.Структура.Добавить(Тип(""""));', - 'ГруппировкаСКД.Использование = Истина;', - 'ПолеГруппировки = ГруппировкаСКД.ПоляГруппировки.Элементы.Добавить(Тип(""ПолеГруппировкиКомпоновкиДанных""));', - 'ПолеГруппировки.Использование = Истина;', - 'ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("""");', - '"}', - '},', - '{0,', - '{"ГруппировкаСКД - вложенная группировка",0,0,"ГруппировкаСКД=","ГруппировкаСКД = ГруппировкаСКД.Структура.Добавить(Тип(""""));', - 'ГруппировкаСКД.Использование = Истина;', - 'ПолеГруппировки = ГруппировкаСКД.ПоляГруппировки.Элементы.Добавить(Тип(""ПолеГруппировкиКомпоновкиДанных""));', - 'ПолеГруппировки.Использование = Истина;', - 'ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("""");', - '"}', - '},', - '{0,', - '{"ВыбранноеПолеСКД - АвтоПоле",0,0,"ВыбранноеПолеСКД=","ВыбранноеПолеСКД = ГруппировкаСКД.Выбор.Элементы.Добавить(Тип(""АвтоВыбранноеПолеКомпоновкиДанных""));', - 'ВыбранноеПолеСКД.Использование = Истина;', - '"}', - '},', - '{0,', - '{"ВыбранноеПолеСКД - Произольное поле",0,0,"ВыбранноеПолеСКД=","ВыбранноеПолеСКД = ГруппировкаСКД.Выбор.Элементы.Добавить(Новый ПолеКомпоновкиДанных(""""));', - 'ВыбранноеПолеСКД.Использование = Истина;', - '"}', - '},', - '{0,', - '{"ПолеСортировкиСКД - Авто",0,0,"ПолеСортировкиСКД=","ПолеСортировки = НастройкиСКД.Порядок.Элементы.Добавить(Тип(""АвтоЭлементПорядкаКомпоновкиДанных""));', - 'ПолеСортировки.Использование = Истина;', - '"}', - '},', - '{0,', - '{"ПолеСортировкиСКД - Произольное поле",0,0,"ПолеСортировкиСКД=","ПолеСортировки = НастройкиСКД.Порядок.Элементы.Добавить(Новый ПолеКомпоновкиДанных(""""));', - 'ПолеСортировки.Использование = Истина;', - '"}', - '},', - '{0,', - '{"ЗначениеПараметраСКД",0,0,"","ЗначениеПараметраСКД = НастройкиСКД.ПараметрыДанных.Элементы.Добавить();', - 'ЗначениеПараметраСКД.Использование = Истина;', - 'ЗначениеПараметраСКД.Параметр = Новый ПараметрКомпоновкиДанных("""");', - 'ЗначениеПараметраСКД.Значение = ;"}', - '},', - '{0,', - '{"ОтборСКД",0,0,"","ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип(""ЭлементОтбораКомпоновкиДанных""));', - 'ЭлементОтбора.Использование = Истина;', - 'ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("""");', - 'ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;', - 'ЭлементОтбора.ПравоеЗначение = ;', - '"}', - '}', - '}', - '},', - '{11,', - '{"Асинхронные вызовы",1,0,"",""},', - '{0,', - '{"Описание оповещения",0,0,"Опис[ание]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - '"}', - '},', - '{0,', - '{"Описание оповещения (с описанием обработчика)",0,0,"Опис[ание]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект);', - '', - '//==========Вынести в отдельную процедуру========', - '//', - '//Список аргументов зависит от контекста вызова!', - '//&НаКлиенте', - '//Процедура (ДополнительныеПараметры) Экспорт', - '// ', - '//КонецПроцедуры', - ' "}', - '},', - '{0,', - '{"Описание оповещения с обработчиком ошибки",0,0,"Опис[ание]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект, ,""ОбработкаОшибки"", ЭтотОбъект);', - '"}', - '},', - '{0,', - '{"Описание оповещения с обработчиком ошибки (с описанем обработчика)",0,0,"Опис[ание]","ОписаниеОповещения = Новый ОписаниеОповещения("""", ЭтотОбъект, ,""ОбработкаОшибки"", ЭтотОбъект);', - '', - '//==========Вынести в отдельную процедуру========', - '//', - '//Список аргументов зависит от контекста вызова!', - '//&НаКлиенте', - '//Процедура (ДополнительныеПараметры) Экспорт', - '// ', - '//КонецПроцедуры', - '', - '//&НаКлиенте', - '//Процедура ОбработкаОшибки(ДополнительныеПараметры) Экспорт', - '// ', - '//КонецПроцедуры', - ' "}', - '},', - '{2,', - '{"Помещение файла во временное хранилище",1,0,"",""},', - '{0,', - '{"Поместить файл",0,1,"","&НаКлиенте', - 'Процедура ПоместитьФайлКоманда(Команда)', - ' ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;', - ' ПараметрыДиалога.Заголовок = ""НачатьПомещениеФайлаНаСервер"";', - ' ПараметрыДиалога.МножественныйВыбор = Истина;', - ' ПараметрыДиалога.Фильтр = ""Все файлы|*.*"";', - ' //НСтр(""en = \'Excel (*.XLS, *.xlsx)|*.XLS;*.xlsx|\'; ru = \'Файл таблицы Excel (*.XLS, *.xlsx)|*.XLS;*.xlsx|\'"");', - ' //НСтр(""en = \'Text (*.txt)|*.txt|\'; ru = \'текстовый файл (*.txt)|*.txt|\'"");', - ' ЗавершениеОбратныйВызов = Новый ОписаниеОповещения(""ЗавершениеОбратныйВызов"", ЭтотОбъект);', - ' ПрогрессОбратныйВызов = Новый ОписаниеОповещения(""ПрогрессОбратныйВызов"", ЭтотОбъект);', - ' ПередНачалоОбратныйВызов = Новый ОписаниеОповещения(""ПередНачалоОбратныйВызов"", ЭтотОбъект);', - ' НачатьПомещениеФайлаНаСервер(ЗавершениеОбратныйВызов, ПрогрессОбратныйВызов, ПередНачалоОбратныйВызов, , ПараметрыДиалога);', - 'КонецПроцедуры', - '&НаКлиенте', - 'Процедура ЗавершениеОбратныйВызов(ОписаниеПомещенногоФайла, ДополнительныеПараметры) Экспорт', - ' Сообщить(""Помещение файла "" + ?(ОписаниеПомещенногоФайла.ПомещениеФайлаОтменено, ""отменено"", ""выполнено успешно""));', - ' Сообщить(""Адрес во временном хранилище: "" + ОписаниеПомещенногоФайла.Адрес);', - ' Сообщить(""Имя файла: "" + ОписаниеПомещенногоФайла.СсылкаНаФайл.Имя);', - ' Сообщить(""Размер файла, байт: "" + ОписаниеПомещенногоФайла.СсылкаНаФайл.Размер());', - 'КонецПроцедуры', - '&НаКлиенте', - 'Процедура ПрогрессОбратныйВызов(ПомещаемыйФайл, Помещено, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт', - ' Состояние(""Файл "" + ПомещаемыйФайл.Имя, Помещено, ""Файл имеет размер "" + ПомещаемыйФайл.Размер() + "" байт"", БиблиотекаКартинок.Документ);', - 'КонецПроцедуры', - '&НаКлиенте', - 'Процедура ПередНачалоОбратныйВызов(ПомещаемыйФайл, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт', - ' Сообщить(""Помещаемый файл - "" + ПомещаемыйФайл.Имя + "", размер = "" + ПомещаемыйФайл.Размер());', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Поместить файл АСИНХ",0,1,"","&НаКлиенте', - 'АСИНХ Процедура ПоместитьФайлКоманда(Команда)', - ' ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;', - ' ПараметрыДиалога.Заголовок = ""НачатьПомещениеФайлаНаСервер"";', - ' ПараметрыДиалога.МножественныйВыбор = Истина;', - ' ПараметрыДиалога.Фильтр = ""Все файлы|*.*"";', - ' //НСтр(""en = \'Excel (*.XLS, *.xlsx)|*.XLS;*.xlsx|\'; ru = \'Файл таблицы Excel (*.XLS, *.xlsx)|*.XLS;*.xlsx|\'"");', - ' //НСтр(""en = \'Text (*.txt)|*.txt|\'; ru = \'текстовый файл (*.txt)|*.txt|\'"");', - ' ПрогрессОбратныйВызов = Новый ОписаниеОповещения(""ПрогрессОбратныйВызов"", ЭтотОбъект);', - ' ПередНачалоОбратныйВызов = Новый ОписаниеОповещения(""ПередНачалоОбратныйВызов"", ЭтотОбъект);', - ' ОписаниеПомещенногоФайла = ЖДАТЬ НачатьПомещениеФайлаНаСервер(ПрогрессОбратныйВызов, ПередНачалоОбратныйВызов, , ПараметрыДиалога);', - ' Если ОписаниеПомещенногоФайла = Неопределено Тогда', - ' Возврат;', - ' КонецЕсли; ', - ' ', - ' Сообщить(""Помещение файла "" + ?(ОписаниеПомещенногоФайла.ПомещениеФайлаОтменено, ""отменено"", ""выполнено успешно""));', - ' Сообщить(""Адрес во временном хранилище: "" + ОписаниеПомещенногоФайла.Адрес);', - ' Сообщить(""Имя файла: "" + ОписаниеПомещенногоФайла.СсылкаНаФайл.Имя);', - ' Сообщить(""Размер файла, байт: "" + ОписаниеПомещенногоФайла.СсылкаНаФайл.Размер());', - '', - 'КонецПроцедуры', - '', - '&НаКлиенте', - 'Процедура ПрогрессОбратныйВызов(ПомещаемыйФайл, Помещено, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт', - ' Состояние(""Файл "" + ПомещаемыйФайл.Имя, Помещено, ""Файл имеет размер "" + ПомещаемыйФайл.Размер() + "" байт"", БиблиотекаКартинок.Документ);', - 'КонецПроцедуры', - '&НаКлиенте', - 'Процедура ПередНачалоОбратныйВызов(ПомещаемыйФайл, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт', - ' Сообщить(""Помещаемый файл - "" + ПомещаемыйФайл.Имя + "", размер = "" + ПомещаемыйФайл.Размер());', - 'КонецПроцедуры"}', - '}', - '},', - '{7,', - '{"Процедура",1,0,"",""},', - '{0,', - '{"Асинх Процедура",0,0,"Проц[едура]","Асинх Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Асинх Процедура с заголовком",0,0,"Процедура","////////////////////////////////////////////////////////////////////////////////', - '//', - '// Процедура ', - '//', - '// Описание:', - '//', - '//', - '// Параметры (название, тип, дифференцированное значение)', - '//', - 'Асинх Процедура ()', - ' ', - 'КонецПроцедуры //', - '', - '"}', - '},', - '{0,', - '{"Асинх Процедура НаКлиенте",0,0,"Проц[едура]","&НаКлиенте', - 'Асинх Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Асинх Процедура НаСервереБезКонтекста",0,0,"Проц[едура]","&НаСервереБезКонтекста', - 'Асинх Процедура ()', - '', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Асинх Процедура НаСервере",0,0,"Проц[едура]","&НаСервере', - 'Асинх Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Асинх Процедура НаКлиентеНаСервереБезКонтекста (только модули упр.форм)",0,0,"Проц[едура]","&НаКлиентеНаСервереБезКонтекста', - 'Асинх Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '},', - '{0,', - '{"Асинх Процедура НаКлиентеНаСервере (только модули команд)",0,0,"Проц[едура]","&НаКлиентеНаСервере', - 'Асинх Процедура ()', - ' ', - 'КонецПроцедуры', - '"}', - '}', - '},', - '{7,', - '{"Функция",1,0,"",""},', - '{0,', - '{"Асинх Функция",0,0,"Функ[ция]","Асинх Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Асинх Функция с заголовком",0,0,"Функция","////////////////////////////////////////////////////////////////////////////////', - '//', - '// Функция ', - '//', - '// Описание:', - '//', - '//', - '// Параметры (название, тип, дифференцированное значение)', - '//', - '// Возвращаемое значение: ', - '//', - 'Асинх Функция ()', - ' ', - 'КонецФункции //', - '"}', - '},', - '{0,', - '{"Асинх Функция НаКлиенте",0,0,"Функ[ция]","&НаКлиенте', - 'Асинх Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Асинх Функция НаСервереБезКонтекста",0,0,"Функ[ция]","&НаСервереБезКонтекста', - 'Асинх Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Асинх Функция НаСервере",0,0,"Функ[ция]","&НаСервере', - 'Асинх Функция ()', - ' ', - 'КонецФункции', - '"}', - '},', - '{0,', - '{"Асинх Функция НаКлиентеНаСервереБезКонтекста (только модули упр.форм)",0,0,"Функ[ция]","&НаКлиентеНаСервереБезКонтекста', - 'Асинх Функция ()', - ' ', - 'КонецФункции"}', - '},', - '{0,', - '{"Асинх Функция НаКлиентеНаСервере (только модули команд)",0,0,"Функ[ция]","&НаКлиентеНаСервере', - 'Асинх Функция ()', - ' ', - 'КонецФункции"}', - '}', - '},', - '{0,', - '{"(Асинх) Процедура",0,0,"Асинх[ Процедура]","Асинх Процедура ()', - ' ', - 'КонецПроцедуры', - ' "}', - '},', - '{0,', - '{"(Асинх) Функция",0,0,"Асинх[ Функция]","Асинх Функция ()', - ' ', - 'КонецПроцедуры', - ' "}', - '},', - '{0,', - '{"Обещание",0,0,"Обещание=","Обещание = Ждать ;"}', - '},', - '{6,', - '{"Вопрос",1,0,"",""},', - '{0,', - '{"Асинх Вопрос",0,0,"Ответ=","Ответ = Ждать ВопросАсинх("""",, 60);', - ' "}', - '},', - '{0,', - '{"Асинх Вопрос",0,0,"ПоказатьВо[прос]","Ответ = Ждать ВопросАсинх("""",, 60);', - '"}', - '},', - '{0,', - '{"Асинх Вопрос",0,0,"Воп[рос]","Ответ = Ждать ВопросАсинх("""",, 60);', - '"}', - '},', - '{0,', - '{"Асинх Вопрос с анализом результата",0,0,"Ответ=","Ответ = Ждать ВопросАсинх("""",, 60);', - ' ', - 'Если Ответ ""> Тогда', - ' ', - 'КонецЕсли; ', - '"}', - '},', - '{0,', - '{"Асинх Вопрос с анализом результата",0,0,"ПоказатьВо[прос]","Ответ = Ждать ВопросАсинх("""",, 60);', - ' ', - 'Если Ответ ""> Тогда', - ' ', - 'КонецЕсли; ', - '"}', - '},', - '{0,', - '{"Асинх Вопрос с анализом результата",0,0,"Воп[рос]","Ответ = Ждать ВопросАсинх("""",, 60);', - ' ', - 'Если Ответ ""> Тогда', - ' ', - 'КонецЕсли; ', - '"}', - '}', - '}', - '},', - '{4,', - '{"Расширения",1,0,"",""},', - '{0,', - '{"Расширения Удаление",0,0,"Уд[аление]","#Удаление', - ' ', - '#КонецУдаления"}', - '},', - '{0,', - '{"Расширения Вставка",0,0,"Вст[авка]","#Вставка', - ' ', - '#КонецВставки"}', - '},', - '{4,', - '{"Процедуры",1,0,"",""},', - '{0,', - '{"Расширения &Перед",0,0,"Проц[едура]","&Перед("""")', - 'Процедура ()', - ' ', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Расширения &После",0,0,"Проц[едура]","&После("""")', - 'Процедура ()', - ' ', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Расширения &Вместо",0,0,"Проц[едура]","&Вместо("""")', - 'Процедура ()', - ' ', - ' //ПродолжитьВызов();', - 'КонецПроцедуры"}', - '},', - '{0,', - '{"Расширения &ИзменениеИКонтроль",0,0,"Проц[едура]","&ИзменениеИКонтроль("""")', - 'Процедура ПРЕФИКС_()', - ' ', - 'КонецПроцедуры"}', - '}', - '},', - '{4,', - '{"Функции",1,0,"",""},', - '{0,', - '{"Расширения &Перед",0,0,"Функ[ция]","&Перед("""")', - 'Функция ()', - ' ', - 'Конецфункции"}', - '},', - '{0,', - '{"Расширения &После",0,0,"Функ[ция]","&После("""")', - 'Функция ()', - ' ', - 'Конецфункции"}', - '},', - '{0,', - '{"Расширения &Вместо",0,0,"Функ[ция]","&Вместо("""")', - 'Функция ()', - ' ', - ' //ПродолжитьВызов();', - 'Конецфункции"}', - '},', - '{0,', - '{"Расширения &ИзменениеИКонтроль",0,0,"Проц[едура]","&ИзменениеИКонтроль("""")', - 'Функция ПРЕФИКС_()', - ' ', - 'Конецфункции"}', - '}', - '}', - '},', - '{1,', - '{"Полезняшки",1,0,"",""},', - '{0,', - '{"Загрузка данных из Excel АСИНХ",0,0,"","&НаКлиенте', - 'АСИНХ Процедура ПоместитьФайлКоманда(Команда)', - ' ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;', - ' ПараметрыДиалога.Заголовок = ""НачатьПомещениеФайлаНаСервер"";', - ' ПараметрыДиалога.МножественныйВыбор = Истина;', - ' ПараметрыДиалога.Фильтр = НСтр(""en = \'Excel (*.XLS, *.xlsx)|*.XLS;*.xlsx|\'; ru = \'Файл таблицы Excel (*.XLS, *.xlsx)|*.XLS;*.xlsx|\'"");', - ' ПрогрессОбратныйВызов = Новый ОписаниеОповещения(""ПрогрессОбратныйВызов"", ЭтотОбъект);', - ' ПередНачалоОбратныйВызов = Новый ОписаниеОповещения(""ПередНачалоОбратныйВызов"", ЭтотОбъект);', - ' ОписаниеПомещенногоФайла = ЖДАТЬ ПоместитьФайлНаСерверАсинх(ПрогрессОбратныйВызов, ПередНачалоОбратныйВызов, , ПараметрыДиалога);', - ' Если ОписаниеПомещенногоФайла = Неопределено Тогда', - ' Возврат;', - ' КонецЕсли; ', - ' ', - ' Сообщить(""Помещение файла "" + ?(ОписаниеПомещенногоФайла.ПомещениеФайлаОтменено, ""отменено"", ""выполнено успешно""));', - ' Сообщить(""Адрес во временном хранилище: "" + ОписаниеПомещенногоФайла.Адрес);', - ' Сообщить(""Имя файла: "" + ОписаниеПомещенногоФайла.СсылкаНаФайл.Имя);', - ' Сообщить(""Размер файла, байт: "" + ОписаниеПомещенногоФайла.СсылкаНаФайл.Размер());', - '', - ' ОбработатьЗагруженныйФайл(ОписаниеПомещенногоФайла.Адрес);', - 'КонецПроцедуры', - '', - '&НаСервереБезКонтекста', - 'Процедура ОбработатьЗагруженныйФайл(Адрес)', - ' ', - ' ФайлНаДиске = ПолучитьИмяВременногоФайла(""xlsx""); ', - ' ДанныеФайла = ПолучитьИзВременногоХранилища(Адрес); ', - ' ДанныеФайла.Записать(ФайлНаДиске) ; ', - ' ', - ' ТабДок = Новый ТабличныйДокумент;', - ' ТабДок.Прочитать(ФайлНаДиске, СпособЧтенияЗначенийТабличногоДокумента.Значение);', - ' ', - ' ПостроительЗапроса = Новый ПостроительЗапроса;', - ' ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных (ТабДок.Область(""Лист1"")); //Здесть Лист1 - название листа экселя.', - ' ПостроительЗапроса.Выполнить();', - ' //В файле первой строчкой должны идти названия колонок. Если этого не будет, то построитель не вернет ТЗ, т.к. не будут заданы имена колонок.', - ' //Также нужно смотреть на типы ячеек файла. Типизация нормально отрабатывает, если заданы соответствующие типы. Иначе ""10.08.2017"" в экселе - это строка, а не дата.', - ' СтрокиТЗ = ПостроительЗапроса.Результат.Выгрузить(); //Выполняем запрос к источнику данных, автоматически выбирая все поля и получаем таблицу значений', - '', - ' Для каждого СтрокаТЗ Из СтрокиТЗ Цикл', - ' //Полученные данные', - ' КонецЦикла; ', - 'КонецПроцедуры ', - '', - '&НаКлиенте', - 'Процедура ПрогрессОбратныйВызов(ПомещаемыйФайл, Помещено, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт', - ' Состояние(""Файл "" + ПомещаемыйФайл.Имя, Помещено, ""Файл имеет размер "" + ПомещаемыйФайл.Размер() + "" байт"", БиблиотекаКартинок.Документ);', - 'КонецПроцедуры', - '', - '&НаКлиенте', - 'Процедура ПередНачалоОбратныйВызов(ПомещаемыйФайл, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт', - ' Сообщить(""Помещаемый файл - "" + ПомещаемыйФайл.Имя + "", размер = "" + ПомещаемыйФайл.Размер());', - 'КонецПроцедуры"}', - '}', - '}', - '}', - '}' - ].join('\n'); - - require(['editor'], function () { - - init('8.3.18.1'); - showStatusBar(true); - - parseSnippets(st1); - parseSnippets(st2, true); - - var assert = chai.assert; - var expect = chai.expect; - chai.should(); - - function getPosition(model) { - - let strings = model.getValue().split('\n'); - return new monaco.Position(strings.length, strings[strings.length - 1].length + 1); - - } - - function getModel(string) { - - return monaco.editor.createModel(string, 'bsl'); - - } - - function helper(string) { - let model = getModel(string); - let position = getPosition(model); - return new bslHelper(model, position); - } - - function helperToConsole(helper) { - - console.log('line number:', helper.column); - console.log('column:', helper.lineNumber); - console.log('word:', helper.word); - console.log('last operator:', helper.lastOperator); - console.log('whitespace:', helper.hasWhitespace); - console.log('last expr:', helper.lastExpression); - console.log('expr array:', helper.getExpressioArray()); - console.log('last raw expr:', helper.lastRawExpression); - console.log('raw array:', helper.getRawExpressioArray()); - console.log('text before:', helper.textBeforePosition); - - } - - function getModuleText() { - - return [ - '// Значение реквизита, прочитанного из информационной базы по ссылке на объект.', - '//', - '// Если необходимо зачитать реквизит независимо от прав текущего пользователя,', - '// то следует использовать предварительный переход в привилегированный режим.', - '//', - '// Параметры:', - '// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.', - '// - Строка - полное имя предопределенного элемента, значения реквизитов которого необходимо получить.', - '// ИмяРеквизита - Строка - имя получаемого реквизита.', - '// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя, и в случае,', - '// - если есть ограничение на уровне записей, то возвращается Неопределено;', - '// - если нет прав для работы с таблицей, то возникнет исключение.', - '// - если Ложь, то возникнет исключение при отсутствии прав на таблицу', - '// или любой из реквизитов.', - '//', - '// Возвращаемое значение:', - '// Произвольный - зависит от типа значения прочитанного реквизита.', - '// - если в параметр Ссылка передана пустая ссылка, то возвращается Неопределено.', - '// - если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка), ', - '// то возвращается Неопределено.', - '//', - 'Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь) Экспорт', - ' ', - ' Если ПустаяСтрока(ИмяРеквизита) Тогда ', - ' ВызватьИсключение НСтр("ru = \'Неверный второй параметр ИмяРеквизита: ', - ' |- Имя реквизита должно быть заполнено\'");', - ' КонецЕсли;', - ' ', - ' Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные);', - ' Возврат Результат[СтрЗаменить(ИмяРеквизита, ".", "")];', - ' ', - 'КонецФункции ', - '', - '// Проверяет наличие ссылок на объект в базе данных.', - '//', - '// Параметры:', - '// СсылкаИлиМассивСсылок - ЛюбаяСсылка, Массив - объект или список объектов.', - '// ИскатьСредиСлужебныхОбъектов - Булево - если Истина, то не будут учитываться', - '// исключения поиска ссылок, заданные при разработке конфигурации.', - '// Про исключение поиска ссылок подробнее', - '// см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок', - '// ДругиеИсключения - Массив - полные имена объектов метаданных, которые также', - '// требуется исключить из поиска ссылок.', - '//', - '// Возвращаемое значение:', - '// Булево - Истина, если есть ссылки на объект.', - '//', - 'Функция ЕстьСсылкиНаОбъект(Знач СсылкаИлиМассивСсылок, Знач ИскатьСредиСлужебныхОбъектов = Ложь, ДругиеИсключения = Неопределено) Экспорт', - ' ', - ' УстановитьПривилегированныйРежим(Истина);', - ' ТаблицаСсылок = НайтиПоСсылкам(МассивСсылок);', - ' Возврат ТаблицаСсылок.Количество() > 0;', - ' ', - 'КонецФункции', - '', - '// Производит замену ссылок во всех данных. После замены неиспользуемые ссылки опционально удаляются.', - '// Замена ссылок происходит с транзакциями по изменяемому объекту и его связям, не по анализируемой ссылке.', - '//', - '// Параметры:', - '// ПарыЗамен - Соответствие - Пары замен.', - '// * Ключ - ЛюбаяСсылка - Что ищем (дубль).', - '// * Значение - ЛюбаяСсылка - На что заменяем (оригинал).', - '// Ссылки сами на себя и пустые ссылки для поиска будут проигнорированы.', - '// ', - '// Параметры - Структура - Необязательный. Параметры замены.', - '// ', - '// * СпособУдаления - Строка - Необязательный. Что делать с дублем после успешной замены.', - '// "" - По умолчанию. Не предпринимать никаких действий.', - '// "Пометка" - Помечать на удаление.', - '// "Непосредственно" - Удалять непосредственно.', - '// ', - '// * УчитыватьПрикладныеПравила - Булево - Необязательный. Режим проверки параметра ПарыЗамен.', - '// Истина - По умолчанию. Проверять каждую пару "дубль-оригинал" (вызывается функция', - '// ВозможностьЗаменыЭлементов модуля менеджера).', - '// Ложь - Отключить прикладные проверки пар.', - '// ', - '// * ВключатьБизнесЛогику - Булево - Необязательный. Режим записи мест использования при замене дублей на оригиналы.', - '// Истина - По умолчанию. Места использования дублей записываются в режиме ОбменДанными.Загрузка = Ложь.', - '// Ложь - Запись ведется в режиме ОбменДанными.Загрузка = Истина.', - '// ', - '// * ЗаменаПарыВТранзакции - Булево - Необязательный. Определяет размер транзакции.', - '// Истина - По умолчанию. Транзакция охватывает все места использования одного дубля. Может быть очень ресурсоемко ', - '// в случае большого количества мест использований.', - '// Ложь - Замена каждого места использования выполняется в отдельной транзакции.', - '// ', - '// * ПривилегированнаяЗапись - Булево - Необязательный. Требуется ли устанавливать привилегированный режим перед запись.', - '// Ложь - По умолчанию. Записывать с текущими правами.', - '// Истина - Записывать в привилегированном режиме.', - '//', - '// Возвращаемое значение:', - '// ТаблицаЗначений - Неуспешные замены (ошибки).', - '// * Ссылка - ЛюбаяСсылка - Ссылка, которую заменяли.', - '// * ОбъектОшибки - Произвольный - Объект - причина ошибки.', - '// * ПредставлениеОбъектаОшибки - Строка - Строковое представление объекта ошибки.', - '// * ТипОшибки - Строка - Тип ошибки:', - '// "ОшибкаБлокировки" - при обработке ссылки некоторые объекты были заблокированы.', - '// "ДанныеИзменены" - в процессе обработки данные были изменены другим пользователем.', - '// "ОшибкаЗаписи" - не смогли записать объект, или метод ВозможностьЗаменыЭлементов вернул отказ.', - '// "ОшибкаУдаления" - не смогли удалить объект.', - '// "НеизвестныеДанные" - при обработке были найдены данные, которые не планировались к анализу, замена не реализована.', - '// * ТекстОшибки - Строка - Подробное описание ошибки.', - '//', - 'Функция ЗаменитьСсылки(Знач ПарыЗамен, Знач Параметры = Неопределено) Экспорт', - '', - ' Результат = Новый Структура;', - ' Результат.Вставить("ЕстьОшибки", Ложь);', - ' Результат.Вставить("Ошибки", ОшибкиЗамены);', - ' ', - ' Возврат Результат.Ошибки;', - '', - 'КонецФункции'].join('\n'); - - } - - let bsl = helper(''); - let bslLoaded = (bslGlobals != undefined); - - it("проверка загрузки bslGlobals", function () { - assert.equal(bslLoaded, true); - }); - - if (bslLoaded) { - - it("проверка существования глобальной переменной editor", function () { - assert.notEqual(editor, undefined); - }); - - it("проверка определения русского языка", function () { - assert.equal(bsl.hasRu('тест'), true); - }); - - it("проверка автокомплита для глобальной функции Найти", function () { - bsl = helper('най'); - let suggestions = []; - bsl.getCommonCompletion(suggestions, bslGlobals.globalfunctions, monaco.languages.CompletionItemKind.Function) - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка автокомплита для глобальной функции Найти обернутой в функцию", function () { - bsl = helper('СтрНайти(Най'); - let suggestions = []; - bsl.getCommonCompletion(suggestions, bslGlobals.globalfunctions, monaco.languages.CompletionItemKind.Function) - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка подсказки параметров для глобальной функции Найти(", function () { - bsl = helper('Найти('); - let suggestions = []; - let help = bsl.getCommonSigHelp(bslGlobals.globalfunctions); - expect(help).to.have.property('activeParameter'); - }); - - it("проверка подсказки параметров для глобальной функции Найти обернутой в функцию", function () { - bsl = helper('СтрНайти(Найти('); - let suggestions = []; - let help = bsl.getCommonSigHelp(bslGlobals.globalfunctions); - expect(help).to.have.property('activeParameter'); - }); - - it("проверка автокомплита для конструктора HTTPЗапрос", function () { - bsl = helper('Запрос = Новый HTTPЗа'); - assert.equal(bsl.requireClass(), true); - let suggestions = []; - bsl.getCommonCompletion(suggestions, bslGlobals.classes, monaco.languages.CompletionItemKind.Constructor) - expect(suggestions).to.be.an('array').that.not.is.empty; - expect(suggestions).to.have.deep.property('[0].label', 'HTTPЗапрос'); - }); - - it("проверка автокомплита для конструктора HTTPЗапрос обернутого в функцию", function () { - bsl = helper('СтрНайти(Новый HTTPЗа'); - assert.equal(bsl.requireClass(), true); - let suggestions = []; - bsl.getCommonCompletion(suggestions, bslGlobals.classes, monaco.languages.CompletionItemKind.Constructor) - expect(suggestions).to.be.an('array').that.not.is.empty; - expect(suggestions).to.have.deep.property('[0].label', 'HTTPЗапрос'); - }); - - it("проверка подсказки параметров для конструктора HTTPЗапрос", function () { - bsl = helper('Новый HTTPЗапрос('); - let suggestions = []; - let help = bsl.getClassSigHelp(bslGlobals.classes); - expect(help).to.have.property('activeParameter'); - }); - - it("проверка подсказки параметров для конструктора HTTPЗапрос обернутого в функцию", function () { - bsl = helper('СтрНайти(Новый HTTPЗапрос('); - let suggestions = []; - let help = bsl.getClassSigHelp(bslGlobals.classes); - expect(help).to.have.property('activeParameter'); - }); - - it("проверка автокомплита объекта HTTPЗапрос (список свойств и методов)", function () { - bsl = helper('HTTPЗапрос.'); - let suggestions = []; - bsl.getClassCompletion(suggestions, bslGlobals.classes); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "УстановитьПараметр"), false); - }); - - it("проверка автокомплита для экземпляра объекта HTTPЗапрос (список свойств и методов)", function () { - bsl = helper('Запрос = Новый HTTPЗапрос();\nЗапрос.'); - let suggestions = []; - bsl.getClassCompletion(suggestions, bslGlobals.classes); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "УстановитьПараметр"), false); - }); - - it("проверка автокомплита объекта HTTPЗапрос (список свойств и методов) обернутого в функцию", function () { - bsl = helper('Найти(HTTPЗапрос.'); - let suggestions = []; - bsl.getClassCompletion(suggestions, bslGlobals.classes); - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка автокомплита метода УстановитьИмяФайлаТела объекта HTTPЗапрос", function () { - bsl = helper('HTTPЗапрос.УстановитьИмя'); - let suggestions = []; - bsl.getClassCompletion(suggestions, bslGlobals.classes); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "УстановитьИмяФайлаТела"), true); - }); - - it("проверка автокомплита метода УстановитьИмяФайлаТела объекта HTTPЗапрос обернутого в функцию", function () { - bsl = helper('Найти(HTTPЗапрос.УстановитьИмя'); - let suggestions = []; - bsl.getClassCompletion(suggestions, bslGlobals.classes); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "УстановитьИмяФайлаТела"), true); - }); - - it("проверка автокомплита для объекта метаданных 'Справочники'", function () { - bsl = helper('Товар = Справоч'); - let suggestions = []; - bsl.getCommonCompletion(suggestions, bslGlobals.globalvariables, monaco.languages.CompletionItemKind.Class) - expect(suggestions).to.be.an('array').that.not.is.empty; - expect(suggestions).to.have.deep.property('[0].label', 'Справочники'); - }); - - it("проверка автокомплита для объекта метаданных 'Справочники.' обернутого в функцию", function () { - bsl = helper('Найти(Справочн'); - let suggestions = []; - bsl.getCommonCompletion(suggestions, bslGlobals.globalvariables, monaco.languages.CompletionItemKind.Class) - expect(suggestions).to.be.an('array').that.not.is.empty; - expect(suggestions).to.have.deep.property('[0].label', 'Справочники'); - }); - - it("проверка автокомплита для объекта метаданных 'Справочники.' (список справочников)", function () { - bsl = helper('Товар = Справочники.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка автокомплита для объекта метаданных 'Справочники.' (список справочников) обернутого в функцию", function () { - bsl = helper('Найти(Справочники.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка автокомплита для объекта метаданных 'Справочники.Товары.' (список функций менеджера)", function () { - bsl = helper('Товар = Справочники.Товары.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка автокомплита для объекта метаданных 'Справочники.Товары.' (список функций менеджера) обернутого в функцию", function () { - bsl = helper('Найти(Справочники.Товары.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка автокомплита для элемента справочника 'Товары.' (список реквизитов и функций объекта)", function () { - bsl = helper('Товар = Справочники.Товары.НайтиПоКоду(1);\nТовар.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Цена"), true); - }); - - it("проверка автокомплита для элемента справочника 'Товары.' (список предопределенных)", function () { - bsl = helper('Товар = Справочники.Товары.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Услуга"), true); - }); - - it("проверка автокомплита для элемента справочника 'Товары.' (список реквизитов и функций объекта) обернутого в функцию", function () { - bsl = helper('Товар = Справочники.Товары.НайтиПоКоду(1);\nНайти(Товар.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Цена"), true); - }); - - it("проверка подсказки параметров для метода 'Записать' документа 'АвансовыйОтчет'", function () { - bsl = helper('Док = Документы.АвансовыйОтчет.НайтиПоНомеру(1);\nДок.Записать('); - let suggestions = []; - let help = bsl.getMetadataSigHelp(bslMetadata); - expect(help).to.have.property('activeParameter'); - }); - - it("проверка получения существующего текста запроса", function () { - editor.setPosition(new monaco.Position(10, 1)); - assert.notEqual(getQuery(), null); - }); - - it("проверка получения несуществующего текста запроса", function () { - editor.setPosition(new monaco.Position(1, 1)); - assert.equal(getQuery(), null); - }); - - it("проверка очистки всего текста", function () { - let text = editor.getValue(); - eraseText(); - assert.equal(editor.getValue(), getText()); - editor.setValue(text); - assert.equal(text, getText()); - }); - - it("проверка обновления метаданных", function () { - let mCopy = JSON.parse(JSON.stringify(bslMetadata)); - assert.notEqual(updateMetadata(123), true); - let strJSON = '{"catalogs": {"АвансовыйОтчетПрисоединенныеФайлы": {"properties": {"Автор": "Автор","ВладелецФайла": "Размещение","ДатаМодификацииУниверсальная": "Дата изменения (универсальное время)","ДатаСоздания": "Дата создания","Зашифрован": "Зашифрован","Изменил": "Отредактировал","ИндексКартинки": "Индекс значка","Описание": "Описание","ПодписанЭП": "Подписан электронно","ПутьКФайлу": "Путь к файлу","Размер": "Размер (байт)","Расширение": "Расширение","Редактирует": "Редактирует","СтатусИзвлеченияТекста": "Статус извлечения текста","ТекстХранилище": "Текст","ТипХраненияФайла": "Тип хранения файла","Том": "Том","ФайлХранилище": "Временное хранилище файла","ДатаЗаема": "Дата заема","ХранитьВерсии": "Хранить версии","ИмяПредопределенныхДанных": "","Предопределенный": "","Ссылка": "","ПометкаУдаления": "","Наименование": ""}}}}'; - assert.equal(updateMetadata(strJSON), true); - bsl = helper('Отчет = Справочники.АвансовыйОтчетПрисоединенныеФайлы.НайтиПоКоду(1);\nОтчет.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ДатаМодификацииУниверсальная"), true); - bslMetadata = JSON.parse(JSON.stringify(mCopy)); - }); - - it("проверка обновления сниппетов", function () { - let sCopy = JSON.parse(JSON.stringify(snippets)); - assert.notEqual(updateSnippets(123), true); - let strJSON = '{"snippets": { "ЕслиЧто": { "prefix": "Если", "body": "Если ${1:Условие} Тогда\n\t$0\nКонецЕсли;", "description": "ЕслиЧто"}}}'; - assert.equal(updateSnippets(strJSON), true); - bsl = helper('ЕслиЧто'); - let suggestions = []; - bsl.getSnippets(suggestions, snippets, false); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.detail === "ЕслиЧто"), true); - snippets = JSON.parse(JSON.stringify(sCopy)); - }); - - it("проверка замены сниппетов", function () { - let sCopy = JSON.parse(JSON.stringify(snippets)); - let strJSON = '{"snippets": { "ЕслиЧто": { "prefix": "Если", "body": "Если ${1:Условие} Тогда\n\t$0\nКонецЕсли;", "description": "ЕслиЧто"}}}'; - assert.equal(updateSnippets(strJSON, true), true); - bsl = helper('Если'); - let suggestions = []; - bsl.getSnippets(suggestions, snippets, false); - assert.equal(suggestions.length, 1); - snippets = JSON.parse(JSON.stringify(sCopy)); - }); - - it("проверка всплывающей подсказки", function () { - let model = getModel("Найти("); - let position = new monaco.Position(1, 2); - bsl = new bslHelper(model, position); - assert.notEqual(bsl.getHover(), null); - model = getModel("НайтиЧтоНибудь("); - bsl = new bslHelper(model, position); - assert.equal(bsl.getHover(), null); - }); - - it("проверка получения существующей форматной строки", function () { - editor.setPosition(new monaco.Position(47, 33)); - assert.notEqual(getFormatString(), null); - }); - - it("проверка получения несуществующей форматной строки", function () { - editor.setPosition(new monaco.Position(47, 21)); - assert.equal(getFormatString(), null); - editor.setPosition(new monaco.Position(10, 1)); - assert.equal(getFormatString(), null); - }); - - it("проверка загрузки пользовательских функций", function () { - let strJSON = '{ "customFunctions":{ "МояФункция1":{ "name":"МояФункция1", "name_en":"MyFuntion1", "description":"Получает из строки закодированной по алгоритму base64 двоичные данные.", "returns":"Тип: ДвоичныеДанные. ", "signature":{ "default":{ "СтрокаПараметров":"(Строка: Строка): ДвоичныеДанные", "Параметры":{ "Строка":"Строка, закодированная по алгоритму base64." } } } }, "МояФункция2":{ "name":"МояФункция2", "name_en":"MyFuntion2", "description":"Выполняет сериализацию значения в формат XML.", "template":"МояФункция2(ВызовЗависимойФункции(${1:ПервыйЗависимыйПараметр}, ${2:ВторойЗависимыйПараметр}), ${0:ПараметрМоейФункции}))", "signature":{ "ЗаписатьБезИмени":{ "СтрокаПараметров":"(ЗаписьXML: ЗаписьXML, Значение: Произвольный, НазначениеТипа?: НазначениеТипаXML)", "Параметры":{ "ЗаписьXML":"Объект, через который осуществляется запись XML, полученный через зависимою функцию", "Значение":"Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация." } }, "ЗаписатьСПолнымИменем":{ "СтрокаПараметров":"(ЗаписьXML: ЗаписьXML, Значение: Произвольный, ПолноеИмя: Строка, НазначениеТипа?: НазначениеТипаXML)", "Параметры":{ "ЗаписьXML":"Объект, через который осуществляется запись XML.", "Значение":"Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.", "ПолноеИмя":"Полное имя элемента XML, в который будет записано значение.", "НазначениеТипа":"Определяет необходимость назначения типа элементу XML. Значение по умолчанию: Неявное." } }, "ЗаписатьСЛокальнымИменемИПространствомИмен":{ "СтрокаПараметров":"(ЗаписьXML: ЗаписьXML, Значение: Произвольный, ЛокальноеИмя: Строка, URIПространстваИмен: Строка, НазначениеТипа?: НазначениеТипаXML)", "Параметры":{ "ЗаписьXML":"Объект, через который осуществляется запись XML.", "Значение":"Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.", "ЛокальноеИмя":"Локальное имя элемента XML, в который будет записано значение.", "URIПространстваИмен":"URI пространства имен, к которому принадлежит указанное ЛокальноеИмя.", "НазначениеТипа":"Определяет необходимость назначения типа элементу XML. Значение по умолчанию: Неявное." } } } } } }'; - assert.notEqual(updateCustomFunctions(123), true); - assert.equal(updateCustomFunctions(strJSON), true); - }); - - it("проверка автокомплита для пользовательской функции МояФункция2", function () { - bsl = helper('мояфу'); - let suggestions = []; - bsl.getCommonCompletion(suggestions, bslGlobals.customFunctions, monaco.languages.CompletionItemKind.Function) - expect(suggestions).to.be.an('array').that.not.is.empty; - }); - - it("проверка подсказки параметров для пользовательской функции МояФункция2", function () { - bsl = helper('МояФункция2'); - let suggestions = []; - let help = bsl.getCommonSigHelp(bslGlobals.customFunctions); - expect(help).to.have.property('activeParameter'); - }); - - it("проверка подсказки переопределенных параметров для функции Состояние", function () { - let strJSON = '{ "Состояние": [ { "label": "(Первый, Второй)", "documentation": "Описание сигнатуры", "parameters": [ { "label": "Первый", "documentation": "Описание первого" }, { "label": "Второй", "documentation": "Описание второго" } ] } ] }'; - assert.equal(setCustomSignatures(strJSON), true); - let position = new monaco.Position(28, 12); - let model = editor.getModel(); - editor.setPosition(position); - bsl = new bslHelper(model, position); - let help = bsl.getCustomSigHelp(); - expect(help).to.have.property('activeParameter'); - assert.equal(setCustomSignatures('{}'), true); - }); - - it("проверка автокомплита для функции 'Тип'", function () { - bsl = helper('Тип("'); - assert.equal(bsl.requireType(), true); - let suggestions = []; - bsl.getTypesCompletion(suggestions, bslGlobals.types, monaco.languages.CompletionItemKind.Enum) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "СправочникСсылка"), true); - }); - - it("проверка автокомплита для функции 'Тип' обернутой в функцию", function () { - bsl = helper('Поиск = Найти(Тип("'); - assert.equal(bsl.requireType(), true); - let suggestions = []; - bsl.getTypesCompletion(suggestions, bslGlobals.types, monaco.languages.CompletionItemKind.Enum) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "СправочникСсылка"), true); - }); - - it("проверка автокомплита для функции 'Тип' с указанием конкретного вида метаданных", function () { - bsl = helper('Тип("СправочникСсылка.'); - assert.equal(bsl.requireType(), true); - let suggestions = []; - bsl.getTypesCompletion(suggestions, bslGlobals.types, monaco.languages.CompletionItemKind.Enum) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Товары"), true); - }); - - it("проверка загрузки пользовательских объектов", function () { - let strJSON = `{ - "customObjects":{ - "_СтруктураВыгрузки":{ - "ref": "classes.Структура", - "properties":{ - "Номенклатура":{ - "name":"Номенклатура", - "detail":"Ссылка на справочник номенклатуры", - "description":"Подбробное описание поля номенклатуры пользовательского объекта", - "ref":"catalogs.Товары" - }, - "Остаток":{ - "name":"Остаток" - } - }, - "methods":{ - "ВставитьВСтруктуру": { - "name": "ВставитьВСтруктуру", - "name_en": "InsertToStructure", - "description": "Устанавливает значение элемента структуры по ключу. Если элемент с переданным значением ключа существует, то его значение заменяется, в противном случае добавляется новый элемент.", - "signature": { - "default": { - "СтрокаПараметров": "(Ключ: Строка, Значение?: Произвольный)", - "Параметры": { - "Ключ": "Ключ устанавливаемого элемента. Ключ должен соответствовать правилам, установленным для идентификаторов: - Первым символом ключа должна быть буква или символ подчеркивания (_). - Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_).", - "Значение": "Значение устанавливаемого элемента." - } - } - } - }, - "КоличествоЗаписейВВыгрузке": { - "name": "КоличествоЗаписейВВыгрузке", - "name_en": "CountItemsToUpload", - "description": "Получает количество элементов структуры.", - "returns": "Тип: Число. " - } - }, - "detail":"Пользовательская структура выгрузка", - "description":"Подробное описание пользовательской структуры выгрузки" - }, - "_ОстаткиТовара":{ - "properties":{ - "Партия":{ - "name":"Партия", - "description":"Ссылка на приходный документ", - "ref":"documents.ПриходнаяНакладная" - }, - "Номенклатура":{ - "name":"Номенклатура", - "ref":"catalogs.Товары" - }, - "Оборот":{ - "name":"Оборот" - } - } - }, - "_ОбъектСВложениями":{ - "ref": "classes.Структура", - "properties":{ - "Товар":{ - "name":"Товар", - "description":"Ссылка на справочник номенклатуры", - "ref":"catalogs.Товары" - }, - "ВложенныйОбъект":{ - "name":"ВложенныйОбъект", - "description":"Вложенный объект", - "ref":"catalogs.Структура", - "properties":{ - "ПервыйРеквизитОбъекта":{ - "name":"ПервыйРеквизитОбъекта", - "ref":"documents.ПриходнаяНакладная" - }, - "ВторойРеквизитОбъекта":{ - "name":"ВторойРеквизитОбъекта", - "ref":"classes.Соответствие" - }, - "ТретийРеквизитОбъекта":{ - "name":"ТретийРеквизитОбъекта", - "ref":"classes.Структура", - "properties":{ - "Партия":{ - "name":"Партия", - "description":"Ссылка на приходный документ", - "ref":"documents.ПриходнаяНакладная" - }, - "Номенклатура":{ - "name":"Номенклатура", - "ref":"catalogs.Товары" - } - } - } - }, - "methods":{ - "ВложенныйМетод": { - "name": "ВложенныйМетод", - "name_en": "NestedMethod", - "description": "Устанавливает значение элемента структуры по ключу. Если элемент с переданным значением ключа существует, то его значение заменяется, в противном случае добавляется новый элемент.", - "ref": "customObjects._СтруктураВыгрузки", - "signature": { - "default": { - "СтрокаПараметров": "(Ключ: Строка, Значение?: Произвольный)", - "Параметры": { - "Ключ": "Ключ устанавливаемого элемента. Ключ должен соответствовать правилам, установленным для идентификаторов: - Первым символом ключа должна быть буква или символ подчеркивания (_). - Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_).", - "Значение": "Значение устанавливаемого элемента." - } - } - } - } - } - } - } - } - } - }`; - let res = updateMetadata(strJSON); - assert.equal(res, true); - bsl = helper('_ОстаткиТ'); - let suggestions = []; - bsl.getCustomObjectsCompletion(suggestions, bslMetadata.customObjects, monaco.languages.CompletionItemKind.Enum); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "_ОстаткиТовара"), true); - }); - - it("проверка подсказки для вложенного пользовательского объекта", function () { - bsl = helper('_ОбъектСВложениями.'); - let suggestions = []; - bsl.getCustomObjectsCompletion(suggestions, bslMetadata.customObjects, monaco.languages.CompletionItemKind.Enum); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ВложенныйОбъект"), true); - suggestions.forEach(function (suggestion) { - if (suggestion.label == "ВложенныйОбъект") { - let command = suggestion.command.arguments[0]; - contextData = new Map([ - [1, new Map([[command.name.toLowerCase(), command.data]])] - ]); - suggestions = []; - bsl = helper('_ОбъектСВложениями.ВложенныйОбъект.'); - bsl.getRefCompletion(suggestions); - assert.equal(suggestions.some(suggest => suggest.label === "ПервыйРеквизитОбъекта"), true); - contextData = new Map(); - } - }); - }); - - it("проверка подсказки методов, когда у пользовательского объекта явна задана ссылка", function () { - bsl = helper('_СтруктураВыгрузки.'); - let suggestions = []; - bsl.getCustomObjectsCompletion(suggestions, bslMetadata.customObjects, monaco.languages.CompletionItemKind.Enum); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Вставить"), true); - }); - - it("проверка подсказки собственных методов для пользовательского объекта", function () { - bsl = helper('_СтруктураВыгрузки.'); - let suggestions = []; - bsl.getCustomObjectsCompletion(suggestions, bslMetadata.customObjects, monaco.languages.CompletionItemKind.Enum); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "КоличествоЗаписейВВыгрузке"), true); - }); - - it("проверка подсказки ссылочных реквизитов", function () { - bsl = helper('_ОстаткиТовара.Номенклатура.'); - let suggestions = []; - contextData = new Map([ - [1, new Map([["номенклатура", { "ref": "catalogs.Товары", "sig": null }]])] - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "СтавкаНДС"), true); - suggestions = []; - bsl = helper('_ОстаткиТовара.Наминклатура.'); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.is.empty; - contextData = new Map(); - }); - - it("проверка подсказки для таблицы, полученной из результата запроса", function () { - bsl = helper('ОбъектЗапрос = Новый Запрос();\nРезультат = ОбъектЗапрос.Выполнить();\nТаблица = Результат.Выгрузить();\nТаблица.'); - let suggestions = []; - contextData = new Map([ - [2, new Map([["выполнить", { "ref": "types.РезультатЗапроса", "sig": null }]])], - [3, new Map([["выгрузить", { "ref": "classes.ТаблицаЗначений", "sig": null }]])] - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ВыгрузитьКолонку"), true); - contextData = new Map(); - }); - - it("проверка подсказки параметров для функции ВыгрузитьКолонку таблицы значений, полученной из другой таблицы", function () { - bsl = helper('Таблица1 = Новый ТаблицаЗначений();\nТаблица2 = Таблица1.Скопировать();\nТаблица2.ВыгрузитьКолонку('); - let suggestions = []; - let signature = { - "default": { - "СтрокаПараметров": "(Колонка: Число): Массив", - "Параметры": { - "Колонка": "Колонка, из которой нужно выгрузить значения. В качестве значения параметра может быть передан индекс колонки, имя колонки, либо колонка дерева значений." - } - } - }; - contextData = new Map([ - [2, new Map([["скопировать", { "ref": "classes.ТаблицаЗначений", "sig": null }]])], - [3, new Map([["выгрузитьколонку", { "ref": "classes.Массив", "sig": signature }]])] - ]); - let help = bsl.getRefSigHelp(); - expect(help).to.have.property('activeParameter'); - contextData = new Map(); - }); - - it("проверка подсказки для таблицы, полученной функцией НайтиПоСсылкам", function () { - bsl = helper('Таблица = НайтиПоСсылкам();\nТаблица.'); - let suggestions = []; - contextData = new Map([ - [1, new Map([["найтипоссылкам", { "ref": "classes.ТаблицаЗначений", "sig": null }]])] - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ВыгрузитьКолонку"), true); - contextData = new Map(); - }); - - it("проверка подсказки для таблицы, полученной из результата запроса в одну строку", function () { - bsl = helper('ОбъектЗапрос = Новый Запрос();\nТаблица = ОбъектЗапрос.Выполнить().Выгрузить().'); - let suggestions = []; - contextData = new Map([ - [2, new Map([["выполнить", { "ref": "types.РезультатЗапроса", "sig": null }]])], - [2, new Map([["выгрузить", { "ref": "classes.ТаблицаЗначений", "sig": null }]])] - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Скопировать"), true); - contextData = new Map(); - }); - - it("проверка подсказки переменных из параметров функции", function () { - bsl = helper('Функция МояФункция(Парам1, Парам2, Парам3)\nПар'); - let suggestions = []; - bsl.getVariablesCompetition(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Парам1"), true); - }); - - it("проверка подсказки для реквизитов составного типа", function () { - bsl = helper('_ОстаткиТовара.Номенклатура.'); - let suggestions = []; - contextData = new Map([ - [1, new Map([["номенклатура", { "ref": "catalogs.Товары, documents.ПриходнаяНакладная", "sig": null }]])] - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "СтавкаНДС") && suggestions.some(suggest => suggest.label === "СуммаДокумента"), true); - contextData = new Map(); - }); - - it("проверка подсказки объекта, полученного методом ПолучитьОбъект()", function () { - bsl = helper('СправочникСсылка = Справочник.Товары.НайтиПоКоду(1);\nСправочникОбъект = СправочникСсылка.ПолучитьОбъект();\nСправочникОбъект.'); - let suggestions = []; - contextData = new Map([ - [2, new Map([["получитьобъект", { "ref": "catalogs.Товары.obj", "sig": null }]])], - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Заблокирован"), true); - contextData = new Map(); - }); - - it("проверка подсказки ресурсов регистра", function () { - bsl = helper('Рег = РегистрыНакопления.ОстаткиТоваров.СоздатьНаборЗаписей();(1);\nРег.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Себестоимость"), true); - }); - - it("проверка подсказки определяемой по стеку для метаданных (первый потомок)", function () { - - let position = new monaco.Position(95, 17); - let model = editor.getModel(); - editor.setPosition(position); - bsl = new bslHelper(model, position); - let suggestions = []; - bsl.getStackCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ПодотчетноеЛицо"), true); - assert.equal(suggestions.some(suggest => suggest.label === "Заблокировать"), true); - - }); - - it("проверка подсказки определяемой по стеку для метаданных (второй потомок)", function () { - - let position = new monaco.Position(100, 19); - let model = editor.getModel(); - editor.setPosition(position); - let bsl = new bslHelper(model, position); - let suggestions = []; - bsl.getStackCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "СуммаДокумента"), true); - assert.equal(suggestions.some(suggest => suggest.label === "Заблокировать"), true); - - }); - - it("проверка подсказки определяемой по стеку для метаданных через ранее определенную ссылку", function () { - - let map = new Map(); - map.set('товарссылка', {list:[], ref: 'catalogs.Товары', sig: null}); - contextData.set(102, map); - - let position = new monaco.Position(104, 18); - let model = editor.getModel(); - editor.setPosition(position); - let bsl = new bslHelper(model, position); - let suggestions = []; - bsl.getStackCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Ставка"), true); - assert.equal(suggestions.some(suggest => suggest.label === "Заблокировать"), true); - - }); - - it("проверка подсказки определяемой по стеку для пользовательских объектов", function () { - - let position = new monaco.Position(107, 24); - let model = editor.getModel(); - editor.setPosition(position); - let bsl = new bslHelper(model, position); - let suggestions = []; - bsl.getStackCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "СтавкаНДС"), true); - - }); - - it("проверка подсказки определяемой по стеку для классов", function () { - - let position = new monaco.Position(114, 12); - let model = editor.getModel(); - editor.setPosition(position); - bsl = new bslHelper(model, position); - let suggestions = []; - bsl.getStackCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Следующий"), true); - - }); - - it("проверка подсказки свойтва объекта 'ОбменДанными'", function () { - - bsl = helper('Спр = Справочники.Товары.НайтиПоКоду(1);\nСпр2 = Спр.ПолучитьОбъект();\nСпр2.'); - let suggestions = []; - contextData = new Map([ - [2, new Map([["получитьобъект", { "ref": "catalogs.Товары.obj", "sig": null }]])], - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ОбменДанными"), true); - - bsl = helper('Спр = Справочники.Товары.НайтиПоКоду(1);\nСпр2 = Спр.ПолучитьОбъект();\nСпр2.ОбменДанными.'); - suggestions = []; - contextData = new Map([ - [3, new Map([["обменданными", { "ref": "types.ПараметрыОбменаДанными", "sig": null }]])], - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Загрузка"), true); - - }); - - it("проверка подсказки методов менеджера справочника", function () { - bsl = helper('Справочники.Товары.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ПервыйМетодМенеджера"), true); - }); - - it("проверка подсказки параметров для метода менеджера справочника", function () { - bsl = helper('Справочники.Товары.ПервыйМетодМенеджера('); - let help = bsl.getMetadataSigHelp(bslMetadata); - expect(help).to.have.property('activeParameter'); - }); - - it("проверка подсказки методов объекта справочника", function () { - - bsl = helper('Спр = Справочники.Товары.НайтиПоКоду(1);\nСпр2 = Спр.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ПервыйМетодМенеджера"), false); - - bsl = helper('Спр = Справочники.Товары.НайтиПоКоду(1);\nСпр2 = Спр.ПолучитьОбъект();\nСпр2.'); - suggestions = bsl.getCodeCompletion({triggerCharacter: ''}); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ПервыйМетодОбъекта"), true); - - }); - - it("проверка загрузки общего модуля (обычный и глобальный)", function () { - - let text = getModuleText(); - bslHelper.parseCommonModule('ОбщегоНазначения', text, false); - - bsl = helper('ОбщегоНазначения.'); - suggestions = bsl.getCodeCompletion({triggerCharacter: ''}); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ЗначениеРеквизитаОбъекта"), true); - - bsl = helper('ЗначениеРеквиз'); - suggestions = bsl.getCodeCompletion({triggerCharacter: ''}); - expect(suggestions).to.be.an('array').that.is.empty; - - bslHelper.parseCommonModule('ОбщегоНазначения', text, true); - - suggestions = bsl.getCodeCompletion({triggerCharacter: ''}); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ЗначениеРеквизитаОбъекта"), true); - - }); - - it("проверка загрузки модуля менеджера объекта метаданных", function () { - - let text = getModuleText(); - bslHelper.parseMetadataModule(text, 'documents.items.АвансовыйОтчет.manager'); - - bsl = helper('Документы.АвансовыйОтчет.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ЗаменитьСсылки"), true); - - }); - - it("проверка подсказки описания метаданных", function () { - - let position = new monaco.Position(151, 13); - let model = editor.getModel(); - editor.setPosition(position); - bsl = new bslHelper(model, position); - let suggestions = bsl.getCodeCompletion({triggerCharacter: ''}); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Автонумерация"), true); - assert.equal(suggestions.some(suggest => suggest.label === "ПолучитьИменаПредопределенных"), true); - - }); - - it("проверка подсказки по глобальной структуре метаданных", function () { - - bsl = helper('Структура.Метаданные.'); - let suggestions = []; - bsl.getMetadataDescription(suggestions); - expect(suggestions).to.be.an('array').that.is.empty; - - bsl = helper('(Метаданные.'); - suggestions = []; - bsl.getMetadataDescription(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "Справочники"), true); - - }); - - it("проверка подсказки табличных частей для справочника 'Товары.' ", function () { - - bsl = helper('Товар = Справочники.Товары.НайтиПоКоду(1);\nТовар.'); - let suggestions = []; - bsl.getMetadataCompletion(suggestions, bslMetadata) - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ДополнительныеРеквизиты"), true); - - }); - - it("проверка подсказки методов табличных частей для справочника 'Товары.' по ссылке", function () { - - bsl = helper('Спр = Справочники.Товары.НайтиПоКоду(1);\nСпр.ДополнительныеРеквизиты.'); - let suggestions = []; - contextData = new Map([ - [2, new Map([["дополнительныереквизиты", { "ref": "universalObjects.ТабличнаяЧасть", "sig": null }]])], - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ВыгрузитьКолонки"), true); - - }); - - it("проверка подсказки реквизитов строки табличной частей для справочника 'Товары.' по ссылке", function () { - - bsl = helper('Спр = Справочники.Товары.НайтиПоКоду(1);\nСтрокаТЧ = Спр.ДополнительныеРеквизиты.Добавить();\nСтрокаТЧ.'); - let suggestions = []; - contextData = new Map([ - [2, new Map([["добавить", { "ref": "catalogs.Товары.tabulars.ДополнительныеРеквизиты,universalObjects.СтрокаТабличнойЧасти", "sig": null }]])], - ]); - bsl.getRefCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ЗначениеРеквизита"), true); - assert.equal(suggestions.some(suggest => suggest.label === "НомерСтроки"), true); - - }); - - it("проверка подсказки реквизитов строки табличной части определяемой по стеку", function () { - - bsl = helper('Спр = Справочники.Товары.НайтиПоКоду(1);\nСтрокаТЧ = Спр.ДополнительныеРеквизиты.Добавить();\nСтрокаТЧ.'); - contextData.clear(); - let suggestions = []; - bsl.getStackCompletion(suggestions); - expect(suggestions).to.be.an('array').that.not.is.empty; - assert.equal(suggestions.some(suggest => suggest.label === "ЗначениеРеквизита"), true); - assert.equal(suggestions.some(suggest => suggest.label === "НомерСтроки"), true); - - }); - - - } - - mocha.run(); - - }); - -}); \ No newline at end of file