salexdv / bsl_console

Консоль кода для 1С 8.3 (Управляемые и обычные формы)
MIT License
297 stars 55 forks source link

Метод setCustomSignatures в режиме языка запросов и выражений компоновки данных не меняет подсказку по вызову метода #160

Closed tormozit closed 3 years ago

tormozit commented 3 years ago

В обработке события EVENT_BEFORE_SIGNATURE общей для всех программных языков редактора передаю в режиме языка выражений компоновки данных в метод setCustomSignatures описание метода ВычислитьВыражениеСГруппировкойМассив

{
"ВычислитьВыражениеСГруппировкойМассив": [
{
"label": "(Выражение, ВыраженияПолейГруппировки, ОтборЗаписей, ОтборГруппировок)",
"parameters": [
{
"label": "Выражение",
"documentation": "Обяз.: Да;  Возвр.: ?\nТип: \nОписание: "
},
{
"label": "ВыраженияПолейГруппировки",
"documentation": "Обяз.: Да;  Возвр.: ?\nТип: \nОписание: "
},
{
"label": "ОтборЗаписей",
"documentation": "Обяз.: Да;  Возвр.: ?\nТип: \nОписание: "
},
{
"label": "ОтборГруппировок",
"documentation": "Обяз.: Да;  Возвр.: ?\nТип: \nОписание: "
}
],
"documentation": ""
}
]
}

Событие вызывается. Мой код выполняется. Но вижу это изображение В режиме языка запросов аналогично.

При этом в режиме встроенного языка вижу ожидаемое свое описание метода.

изображение

salexdv commented 3 years ago

Доработал. Проверь, пожалуйста.

tormozit commented 3 years ago

Не заработало. Теперь событие EVENT_BEFORE_SIGNATURE не вызывается и вообще перестала в этих режимах появляться подсказка по вызову метода. В режиме встроенного языка по-прежнему все работает.

salexdv commented 3 years ago

Детальная информация явно из setCustomSignatures

OeayiNVHpx

Возможно, из 1С по другому работает, я проверял только в браузере. Чуть позже посмотрю в режиме Предприятия.

tormozit commented 3 years ago

Исключил влияние своего кода. Проблема возникает именно после выполнения switchQueryMode() или switchDCSMode(). Попробовал закомментировать эти строки (оставить режим встроенного языка) и подсказка по вызову метода заработала во всех моих экземплярах редактора.

Событие EVENT_BEFORE_SIGNATURE не вызывается и не появляется твоя подсказка по вызову метода в режиме языка запросов и языка СКД.

salexdv commented 3 years ago

Должно заработать

tormozit commented 3 years ago

Заработало. Небольшая проблема - после ввода скобки в большинстве случаев появляются сразу обе подсказки - автодополнение и по вызову метода. Причем я при этом в событии EVENT_BEFORE_SHOW_SUGGEST вызываю hideSuggestionsList(). А список автодополнения (твой) все равно отображается. Более ценной здесь является подсказка по вызову метода и она перекрывается подсказкой автодополнения. изображение

ВЫБРАТЬ Т.МоментВремени, Т.ВалютаДт
ИЗ 
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто() КАК Т
Где Т.Период = &Дата
РАЗНОСТЬДАТ(
salexdv commented 3 years ago

Заработало. Небольшая проблема - после ввода скобки в большинстве случаев появляются сразу обе подсказки - автодополнение и по вызову метода.

Исправил

tormozit commented 3 years ago

Проблема ушла