Формат модуля при использовании конструктора метода

Wdivin Закрыто

После использования конструктора метода ломается форматирование теста модуля метода и запроса
Ссылка скрыта

Комментарии

tormozit
#1, 08 августа 2025 11:01

Нужен текст метода ДО, картинка с настройками заполнения ИИ и текст метода ПОСЛЕ.
tormozit изменил статус на Открыто


Wdivin
#2, 08 августа 2025 11:01

Также в некоторых случаях в указании составного типа параметра вместо запятой ставит вертикальный разделитель (использовал ИИ модель qwen/qwen-2.5-coder-32b-instruct:free) и такое описание не распознается далее в описании параметров


Wdivin
#3, 08 августа 2025 11:06

(1) tormozit,
Текст до:

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


Тест после:

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

Теперь вообще "или" поставило в описании параметра "Склад" вместо запятой, и тоже не определяется


tormozit
#4, 08 августа 2025 14:18

(3) Wdivin, тут нет признаков исходной проблемы (вставки \n вместо переносов строк)


Wdivin
#5, 09 августа 2025 09:19

там проблема не только в этом.

  1. форматирование текста модуля: убирает табуляцию в начале строк:
  2. неправильно оформляет типизацию параметров (причем по разному):

Возможно форматирование текста запроса как-то связано с выбранной моделью? т.к. я пробую заполнять разными моделями - ищу лучший вариант. Не зафиксировал на какой модели был именно этот случай. Попробую через историю моделей воспроизвести и этот трабл.


tormozit
#6, 09 августа 2025 09:34

Укажи точное имя модели, с которой проводился тест.


Wdivin
#7, 09 августа 2025 09:42

Вот весь список которые использовал:
qwen/qwen-2.5-coder-32b-instruct:free
agentica-org/deepcoder-14b-preview:free
qwen/qwen3-coder:free (на сайте есть, но возвращает 404 почему-то)
qwen/qwen3-30b-a3b:free
deepseek/deepseek-r1-0528:free
tngtech/deepseek-r1t2-chimera:free
microsoft/mai-ds-r1:free
google/gemma-3n-e4b-it:free
qwen/qwen3-4b:free

Я сегодня-завтра еще попробую выловить конкретно с текстом запроса проблему, она по моему была или на deepseek/deepseek-r1-0528:free или на qwen/qwen3-30b-a3b:free

Форматирование строк у меня пропадает на всех моделях.
Отпишусь по результатам теста, но из-за ограничений на запросы к ИИ - это не быстро (((


tormozit
#8, ред. 09 августа 2025 12:45

Некоторые проблемы воспроизвел. Устранить полностью удалось лишь некоторые из них https://www.hostedredmine.com/issues/1006890
Модель qwen/qwen-2.5-coder-32b-instruct:free очень нестабильно работает в плане качества. Иногда действительно многострочные литералы в теле портит - победить не смог.


tormozit
#9, ред. 10 августа 2025 21:07

Исправлено в ИР 7.88


Wdivin
#10, 12 августа 2025 10:05

Огромное человеческое спасибо за ваш труд!
Wdivin изменил статус на Закрыто


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера