bsl-language-server icon indicating copy to clipboard operation
bsl-language-server copied to clipboard

[FP] bsl-language-server:QueryToMissingMetadata

Open Pavlo1c opened this issue 3 months ago • 5 comments

Диагностика

Image

Версия

1.16.1

Описание ложного срабатывания диагностики

Вот снова поймал про метаданные, которые есть, но говорит нету - то о чем я писал в ТГ. Замечу что вторую процедуру я добавил только что, а первая уже с полгода работает и исходя из скрина сам регистр сведений есть, но она ругается, что я обращаюсь к не существующем метаданным, конструктор само собой тоже отлично открывается.

Пример кода

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

// Функция - Значение дополнительного реквизита(ов) контрагента
//
// Параметры:
//  Контрагент	 - СправочникСсылка.Контрагенты	 - Контрагент по которому ищем значение (обязательный)
//  ИмяРеквизита - Строка - Название реквизита, значение которого нужно получить
// 
// Возвращаемое значение:
//   - ЛюбаяСсылка, Булево, Строка, Дата, Число
//
Функция ЗначениеДополнительногоРеквизита(Контрагент, ИмяРеквизита) Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	ВИ_ДополнительныеРеквизитыКлиентов.Значение КАК Значение
		|ИЗ
		|	РегистрСведений.ВИ_ДополнительныеРеквизитыКлиентов КАК ВИ_ДополнительныеРеквизитыКлиентов
		|ГДЕ
		|	ВИ_ДополнительныеРеквизитыКлиентов.Клиент = &Контрагент
		|	И ВИ_ДополнительныеРеквизитыКлиентов.ИмяРеквизита = &ИмяРеквизита";
	
	Запрос.УстановитьПараметр("Контрагент", Контрагент);
	Запрос.УстановитьПараметр("ИмяРеквизита", ИмяРеквизита);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат "";
	КонецЕсли;
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	ВыборкаДетальныеЗаписи.Следующий();
	
	Возврат ВыборкаДетальныеЗаписи.Значение;
КонецФункции

// Функция - Клиент по дополнительному реквизиту (обратный поиск функции ЗначениеДополнительногоРеквизита())
//
// Параметры:
//  ИмяРеквизита - Строка	 - Имя реквизита по которому ищем Клиента (обязательный)
//  Значение	 - ЛюбаяСсылка, Булево, Строка, Дата, Число	 - Значение для нахождения конкретного Клиента
// 
// Возвращаемое значение:
//   - СправочникСсылка.Контрагенты
//
Функция КлиентПоДополнительномуРеквизиту(ИмяРеквизита, Значение) Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	ВИ_ДополнительныеРеквизитыКлиентов.Клиент КАК Клиент
		|ИЗ
		|	РегистрСведений.ВИ_ДополнительныеРеквизитыКлиентов КАК ВИ_ДополнительныеРеквизитыКлиентов
		|ГДЕ
		|	ВИ_ДополнительныеРеквизитыКлиентов.ИмяРеквизита = &ИмяРеквизита
		|	И ВИ_ДополнительныеРеквизитыКлиентов.Значение = &Значение";
	
	Запрос.УстановитьПараметр("ИмяРеквизита", ИмяРеквизита);
	Запрос.УстановитьПараметр("Значение", Значение);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат "";
	КонецЕсли;
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	ВыборкаДетальныеЗаписи.Следующий();
	
	Возврат ВыборкаДетальныеЗаписи.Значение;
КонецФункции

#КонецЕсли

Скриншоты

Прикреплен скришотом

Дополнительная информация

И такое довольно часто всплывает, а понять почему не можем, чтобы объяснить рядовым разрабам.

Image

Pavlo1c avatar Dec 05 '25 09:12 Pavlo1c

У вас, случаем, расширения в том же гит репозитории нет?

nixel2007 avatar Dec 05 '25 18:12 nixel2007

в gitlab нет расширений никаких у нас

Pavlo1c avatar Dec 07 '25 07:12 Pavlo1c

Если есть возможность, попробуйте на тестовой сборке (тестовая!!!!) https://github.com/1c-syntax/sonar-bsl-plugin-community/releases/v999.99.99

theshadowco avatar Dec 08 '25 12:12 theshadowco

Если есть возможность, попробуйте на тестовой сборке (тестовая!!!!) https://github.com/1c-syntax/sonar-bsl-plugin-community/releases/v999.99.99

оно произвольно как то появляется, хоть и с завидной периодичностью, потому проверить сложно будет

Pavlo1c avatar Dec 10 '25 11:12 Pavlo1c

@Pavlo1c Понаблюдайте на релизной версии (0.25).

theshadowco avatar Dec 16 '25 06:12 theshadowco

@Pavlo1c Понаблюдайте на релизной версии (0.25).

спасибо, а когда в магазине сонара появится новый релиз?

Pavlo1c avatar Dec 18 '25 10:12 Pavlo1c