После установки "." после "РезультатЗапроса" ТК выбрасывает исключение:
[19.01.24 15:31:25:776] Error: Не удалось выполнить скрипт ИРАдаптер->ПриАктивизацииСтрокиT9
ScriptEngine.Machine.ExternalSystemException: {Модуль D:\Progs\TurmoConf-6\apps\8552\RDT.os / Ошибка в строке: 2966 / Внешнее исключение (System.Runtime.InteropServices.COMException): {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(11756)}: Значение не является значением объектного типа (НайтиСтроки)}
ОписаниеКом = ПолеТекстаПрограммы.ОписаниеТекущегоСловаАвтодополнения(Параметры.Значение, Параметры.ЭтоМетод, Параметры.КлючСловаря);
---> System.Runtime.InteropServices.COMException: {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(11756)}: Значение не является значением объектного типа (НайтиСтроки)
Сама подсказка при этом выпадает и работает.
ИР адаптер вроде бы тоже работает и предлагает правильные поля в запросе
#1, 19 января 2024 15:44
Нужны версии
tormozit изменил статус на Открыто
#2, 19 января 2024 15:50
А есть какая-то команда, которая вернет всё это дело сразу в одной строке?
Сейчас мне надо пойти в скрипт D:\Progs\TurmoConf-6\apps\8552\RDT.os , посмотреть там его версию,
потом открыть базу донора и там посмотреть версию ИР?
#3, 19 января 2024 15:53
//@script_version 20
ИР 7.10.2e
#4, 19 января 2024 18:40
Ошибка воспроизводится? Если да, то нужен текст модуля.
Если нет, то сколько раз она возникала?
#5, 22 января 2024 07:26
Проверяй на новой версии ИР
#6, 22 января 2024 08:45
Обновил ИР в доноре до версии 7.11.2е.
Турбоконф тоже обновил только что.
Ошибка осталась, но чуть сдвинулись номера строк:
Также заметил, что при каждом старте базы донора вываливается вот такая ошибка:
#7, 22 января 2024 08:48
(4) tormozit,
Ошибка стабильно воспроизводится. Текст модуля прям как на скрине. Я просто создаю новую внешнюю обработку, в её модуль добавляю:
И всё. Ставлю точку после "РезультатЗапроса" и имею стабильное окошко с ошибкой
#8, ред. 22 января 2024 08:55
Нужны
По ошибке "System.IndexOutOfRangeException: Индекс находился вне границ массива." нужно создать отдельную заявку в разделе Баги . Вполне возможно что эта ошибка является первичной, а ошибка в адаптере вторичной.
#9, 22 января 2024 09:00
(8) tormozit, такой лог подойдет?
[20245722 08-57-Ссылка скрыта
Имеется ввиду картинка или какой-то дамп?
#10, 22 января 2024 09:04
Снимок окна - картинка.
#11, ред. 22 января 2024 09:08
Сделай окно приложения ИР видимым, например вызовом команды "Синтакс-помощник по слову". Включи в нем разрешение отладки. Подключись к нему отладчиком. Остановись в ошибочной строке и сообщи значение переменной КлючНабораСлов.
#12, 22 января 2024 09:12
(10) tormozit, снимок всего монитора, где запущен конфигуратор (а мониторов - два)

#13, 22 января 2024 09:13
По-моему картинку пожал движок сайта. Дублирую архивом
Ссылка скрыта
#14, 22 января 2024 09:21
(11) tormozit,
Не получается отладчиком подрубиться. Открыл конфигуратор донора и в предметах отладки не вижу запущенного предприятия этой базы (база файловая локальная)
И что значит "Включи в нем разрешение отладки"?
#15, ред. 22 января 2024 09:34
(14) Евгений М., про включение разрешения отладки написано в статье в разделе "Как запретить отладку клиентского приложения?"
#16, 22 января 2024 09:53
(15) tormozit, подрубился.
КлючНабораСлов = "0;ОбъектМетаданныхКонфигурация;Нет;;Да;Да;Да;"
мНаборыСлов - пустое Соответствие
#17, 22 января 2024 13:23
(15) tormozit, у тебя там случайно формы не создаются для построения подсказок?
А то увидел в базе-доноре такую ошибку в режиме предприятия (есть на скрине выше)
Ошибка предпросмотра таблицы для файла :
Там действительно есть ошибка при попытке интерактивного создания элемента справочника. Но его интерактивно пользователя создавать не будут.
Может с этим как-то связано?
#18, ред. 22 января 2024 14:24
(17) Евгений М., кодом ИР формы создаются, если анализатор кода обращается к их содержимому
#19, ред. 22 января 2024 13:52
(18) tormozit, это не может быть причиной изначальной ошибки?
в данной форме в процедуре "ПриСозданииНаСервере" примерно такой код:
где ТаблицаПредпросмотра - табличный документ на форме. А "Объект.ПолноеИмяФайла" - пустая строка для нового (создаваемого) элемента.
#20, 22 января 2024 14:26
Запиши видео и подробный лог (с уровнем "Отладка")
#21, ред. 22 января 2024 14:40
(20) tormozit, видео наверное мало информативно. Ошибка сразу после ввода "точки"
1cv8_MXDx5vKjHw.mp4
Отладочный лог:
[20243022 14-30-Ссылка скрыта
#22, 22 января 2024 19:02
К сожалению я не вижу приложенные файлы логов. Поэтому прошу отправить свежий лог мне в чат. Надеюсь владелец ресурса что то придумает с этим неудобством.
#23, ред. 22 января 2024 19:36
Получил лог. У тебя по непонятной мне причине не вызывается обработчик ПриПолученииДанныхТ9 из ИР адаптера. А вместо него работает внутренний обработчик Турбоконфа. Но при активации своей строки он зачем то вызывает обработчик скрипта ПриАктивацииСтрокиТ9, который рассчитан только на обработку своих строк списка Т9.
#24, 22 января 2024 19:48
(21) Евгений М., скинь файл настроек. Кнопка Экспорт на первой вкладке Настроек.
#25, 22 января 2024 20:01
Если включен флаг "Показывать имена колонок, ключей и т.д.", то обработчик ПриПолученииДанных не вызывается, а ПриАктивизацииСтроки - вызывается.
#26, ред. 22 января 2024 21:36
(25) bolsun, в чем смысл такого поведения? Кажется нет смысла заменять умную подсказку адаптера на простую эвристику, когда пользователь осознанно разрешил использование адаптера.
Считаю что Турбоконфу в этой ситуации нужно вызвать обработчик ПриПолученииДанныхТ9. Если он вернул пустой список, то только тогда запускать собственный расчет списка. Иначе пользователю будет самому очень сложно догадаться, как это исправить.
#27, 22 января 2024 21:54
Пока сделал такую защиту в адаптере - для всех слов будет выводиться совет отключить флажок

#28, ред. 22 января 2024 22:26
(26) tormozit, это гибридная подсказка работает. Свойства и тип определяет ТурбоКонф при открытии штатной подсказки и автоматом переключает на T9 (и не такая она и эта глупая подсказка, точность определения типа и полей достаточно большая).
Вроде мы обсуждали, что ТК может использовать определение типов если установлен адаптер.
Такая защита портит штатную работу гибридной подсказки TurboConf, которую пользователь оставил включенной. Окно в таком виде не пригодно к использованию.
Выводить окно с такой защитой, конечно я не буду. Буду тогда рассчитывать типы значений в гибридной подсказке сам.
#29, ред. 22 января 2024 22:35
(28) bolsun, да обсуждали и я не одобрил такое решение.
Как мне гарантировать пользователю срабатывание расчета списка слов Т9 из адаптера?
Если такого способа нет, то как пользователь поймет, что включив этот флажок он в ряде случаев заменяет мой расчет типов на не глупый, но менее глубокий расчет Турбоконфа?
При включенном флажке "Показывать имена колонок, ключей" невозможно вызвать расчет списка Т9 из адаптера в рассматриваемой ситуации и подобных.
Логика работы заполнения списка подсказки становится очень сложной даже для меня. А уж пользователю и подавно будет сложно разобраться когда какой алгоритм делает расчет и кому жаловаться на ошибки или некорректный расчет.
#30, 22 января 2024 22:37
Проблема у меня воспроизводится и без гибридного режима.

#31, 22 января 2024 22:41
(29) tormozit, ну не так выразился. Это функция "Ассистирования в штатном меню контекстной подсказки".
#32, 22 января 2024 22:44
Конкретно данное окно появляется тогда, когда возникает штатная подсказка. ТК быстро рассчитывает тип и свойства и переключает на T9.
В ИР такой функции нет и как ты сказал делать это не заинтересован. Да и расчет нужно выполнить за максимально короткое время, т.к. переключение должно происходить практически мгновенно.
Лишать функционала пользователей, которые к этому привыкли из-за того что этого нет в ИР - плохое решение.
#33, ред. 22 января 2024 22:48
Данный функционал отключаем и у тебя в публикации есть рекомендации по отключению, того что ты считаешь мешает ИР Адаптеру и даже файл настроек. Если пользователь оставил его, значит он ему нужен.
#34, ред. 22 января 2024 22:53
Нужно как минимум сделать для пользователя знак отличия режимов заполнение списка Т9
Например это может быть какая то пиктограмма или короткая надпись в панели под списком.
Так хотя бы мы сможет быстро понимать где какой алгоритм работает и со временем и пользователи научатся распознавать.
Ну это конечно очень спорное утверждение, т.к. написано "Показывать имена колонок, ключей", а по факту делается еще много всего не всегда полезного. Каждый первый увидев такой флажок, его включит и даже не будет понимать что портит работу расчета ИР адаптера.
#35, ред. 22 января 2024 23:18
(34) tormozit, группа настроек называется "Ассистирование в штатном меню". Если подсказка T9 вызвана по другому, по Ctrl+Space или точке при отсутствии штатной, Alt+Space и т.д. - то работает ИР. Каким образом этот флаг портит работу расчета ИР адаптера?
А вот ИР адаптер сейчас портит такими сообщениями ассистирование ТурбоКонф в штатном меню. Если это еще не в релизе, прошу не делать релиз скрипта с этой защитой, либо вернуть предыдущий вариант, пока я не выпущу версию отключающую вызов обработчика.
Насчет отображения источника данных для T9 тоже подумал в первую очередь, значит добавлю.
#36, 22 января 2024 23:19
Стоят такие настройки

У Сергея вроде бы нет ничего в описании про группу настроек "Ассистирование в штатном контекстном меню".
Но даже прочитав ваши посты, я не понял что именно надо сделать.
И да, я только догадывался, что делают эти настройки в ТК, поэтому их все и повключал. К чему они приводят и что, оказывается, скрипты и "родной" список подсказки ТК могут как-то конфликтовать, никогда бы не подумал.
#37, ред. 22 января 2024 23:32
(35) bolsun,
Смотри ролик (21). Там наглядно показано что происходит - вместо списка подсказки ИР адаптера отображается очень похожий список без успешно рассчитанных типов и с появлением ошибки при попытке расчета типа при активации строки. При этом и пользователь и я и даже ты не понимали, что это происходит из-за флажка "Показывать имена колонок, ключей" - все мы были долгое время уверены, что это некорректно заполняет список подсказки ИР адаптер. Пользователь как и я ожидали, что список будет заполняться ИР адаптером.
Прошу устранить в Турбоконфе неподдерживаемый в ИР адаптере вызов события ПриАктивизацииСтрокиT9 для элементов списка, которые не были созданы адаптером. Я ранее уже сообщал тебе, что так работать корректно не будет.
#38, 22 января 2024 23:36
(37) tormozit, этот список не вместо ИР адаптера. этого списка вообще не будет при отключенном флаге. Будет просто штатная подсказка.
Как я написал выше - отключу вызов.
#39, 22 января 2024 23:36
(36) Евгений М., тебе нужно отключить флажок "Показывать имена колонок, ключей". Он обведен на картинке в (30)
#40, ред. 22 января 2024 23:40
(36) Евгений М., но учти, тогда у тебя не будет работать автоматическая подсказка полей при открытии штатной подсказки.
Вот такая. Варианты TurboConf 5 и 6
#41, ред. 22 января 2024 23:54
(38) bolsun, отключить вызов события "ПриАктивизацииСтрокиT9" недостаточно. Это лишь устранит неподдерживаемый ИР адаптером вызов и таким образом появление уведомления с ошибкой. Главная же проблема для пользователя в другом - он не сможет понять что этот флажок заменяет в ряде случаев заполнение списка Т9 с глубокого расчета адаптера на неглубокий расчет Турбоконфа без возможности переключиться в список ИР Адаптера (повторным нажатием CTRL+Space).
#42, ред. 22 января 2024 23:53
Флажок "Показывать имена колонок, ключей" находится в разделе "Ассистировние в штатном контекстном меню". В Версии 5 он работал в соответствии с этим контекстом и повторное нажатие CTRL+Space позволяло переключиться в список Т9, наполняемый адаптером.
В версии 6 этот флажок теперь сразу открывает список Т9 и невозможно переключиться в список Т9 с заполнением его адаптером. Таким образом флажок перестал соответствовать своему разделу "Ассистировние в штатном контекстном меню" и блокирует активацию заполнения списка Т9 скриптом.
#43, ред. 22 января 2024 23:58
(42) tormozit, ну так пусть пользователь отключит его, если мешает.
#44, ред. 23 января 2024 00:04
(43) bolsun, ну так в 3-й раз повторяю - как она это поймет? Я это не понимал сегодня очень долго. Какие шансы что обычный пользователь поймет? Надо тогда менять название флажка - обязательно указать, что будет отображаться НЕ штатная подсказка, а сразу список Т9, но с упрощенным заполнением и без возможности включить обычное заполнение (через скрипт).
#45, 23 января 2024 01:47
(36) Евгений М., проверь на новой версии. Конфликта при работе с адаптером быть не должно.

Если такая подсказка полей не нужна отключить можно этим флагом.
#46, 23 января 2024 01:49
bolsun переместил тему в раздел Баги
#47, ред. 23 января 2024 01:57
Если проблема сохранится откройте тикет заново.
bolsun изменил статус на Закрыто
#48, 23 января 2024 08:26
Обновил ТК.
Проблема ушла.
Галку "Показывать имена колонок, ключей.." оставил взведенной
#49, ред. 23 января 2024 09:28
(48) Евгений М., тогда пока по всем проблемам с подсказкой Т9 пиши в общий раздел "Баги". Пусть сначала владелец продукта разбирается, чей алгоритм там сбоит. Когда выясните, что ИР адаптер, тогда уже пиши в раздел "ИР адаптер". Когда в списке Т9 появится индикатор типа алгоритма заполнения, тогда уже можно будет сразу в раздел "ИР адаптер" писать.
#50, 23 января 2024 09:30
(49) tormozit, жестоко )
#51, 23 января 2024 09:33
(50) Евгений М., заметь что в таком режиме многие виды глубокого анализа текста запроса ИР адаптера у тебя работать не будут, а их довольно много. Примеры некоторых видов такого анализа можно увидеть в разделе "Язык запросов" https://fastcode.im/Templates/Shared/0cf905b941c14b909f2aeff3f3985eff
#52, 23 января 2024 09:37
Частично эту неразбериху устранила бы опция открытия списка Т9 сразу при нажатии CTRL+Space https://turboconf.ru/Tasks/8816
#53, 23 января 2024 09:39
(51) tormozit, у меня работает.

Вот запрос в модуле:
А вот запрос в СКД

#54, ред. 23 января 2024 09:56
(53) Евгений М., я про подсказку во встроенном языке от объекта "Запрос" и его производных, а не в самом тексте запроса. Главным образом речь про расчет полей результата запроса.
#55, 23 января 2024 09:52
Описание флажка стало лучше, но главное все еще не указано - при его включении невозможно вызвать заполнение списка алгоритмом скрипта. В 5-й версии это было возможно, а в 6-й теперь невозможно. Именно это нужно указать в первую очередь.

#56, 23 января 2024 10:13
(55) tormozit,
Я так понимаю, ты говоришь про подсказку, которая вываливается при обращении к выборке /выгрузки запроса.

Если установлена галка "Подсказывать имена колонок...", то срабатывает штатная подсказка ТК и вызвать подсказку адаптера нет возможности даже по ктрл+пробел.
Если же убрать галку "Подсказывать имена колонок..." в настройках, то вываливается голая платформенная подсказка. После чего нужно будет жмакать ктрл+пробел. Автоматом сразу подсказка Адаптера же не может появится без хоткеев?

Я всё правильно понял? Или можно как-то проще без ктрл+пробел настроить?
А вообще я ожидал, что список дополнения ТК наполняется по принципу: если есть кому заполнять (скрипту) - заполняет скрипт, если нет - заполняет сам ТК. При этом в первом варианте скрипт скразу получает тот список, который ТК генерирует сам внутри для варианта 2.
И еще один момент.

Если в настройках стоит галка "Подсказывать имена колонок..", то через вторую точку показывается подсказка адаптера. Жалко только, что так писать в продуктиве нельзя (но хоть можно быстро посмотреть возможные имена полей)
#57, 23 января 2024 11:09
Да. Ты правильно понял. Про вызов подсказки Т9 сразу я же писал уже в (52)
#58, 23 января 2024 11:51
(57) tormozit, там ты тоже пишешь про необходимость нажатия ктрл+пробел. Для меня фишка ТК и снегопата, когда подсказка отображается сразу и без зоткеев, является ключевой. Не перехожу на едт в том числе и из-за этого.
#59, ред. 23 января 2024 11:58
(51) Евгений М., все будет работать, подсказка полей (ассистирование в штатной подсказке) никак не влияет на анализ ИР Адаптера и появляется только в тех случаях, которые не поддерживает адаптер.
#60, ред. 23 января 2024 12:10
(56) Евгений М.,
Именно так. ИР Адаптер не поддерживает ассистирование в штатной подсказке, поэтому расчет выполняет ТурбоКонф (об этом сейчас написано в описании флага). Пока без определения типов полей, т.к. для этого использовался обработчик адаптера , который я ошибочно считал поддерживает независимую работу от других обработчиков.
#61, ред. 23 января 2024 12:14
(56) Евгений М.,
Да, 2 варианта:
#62, 23 января 2024 12:16
(50) Евгений М., да, пиши в общий раздел, я разберусь чья подсказка работает.
#63, 23 января 2024 12:29
(60) bolsun,
Но расчет может сделать тот же Адаптер, а ТК передать ему параметром свой расчет. Ведь штатная подсказка всё равно не показывается. Я не очень понял проблемы.
#64, ред. 23 января 2024 12:31
(61) bolsun,
почему нельзя получить подсказку Адаптера без нажатия ктр+пробел и без внесения каких-то доп настроек в виде галочек и их комбинаций?
#65, ред. 23 января 2024 13:01
(63) Евгений М., (64) Евгений М., я обращался к автору ИР Адаптера с предложением поддержки функционала ассистирования, он отказался.
#66, 23 января 2024 13:14
(57) tormozit, а чем тебе непанравился вариант, когда ТК генерит свою подсказку вместо штатной, отдает её адаптеру, который может её перестроить полностью или оставить такой же, если у адаптера нет своих вариантов?
(если, конечно, я правильно понял bolsun-а)
#67, ред. 23 января 2024 15:26
(66) Евгений М., ты неправильно понял. Болсун мне предлагал для неизвестных мне элементов штатного списка делать расчет. А мне чтобы их опознать все равно нужно полностью выполнять расчет списка. Так зачем же показывать обрезанный список Т9, если я уже внутри подготовил полный?
Поэтому я прошу уже давно опцию сразу вызывать подсказку Т9 без открытия штатной https://turboconf.ru/Tasks/8816 . Получать на вход моего обработчика заполнения списка элементы из штатного списка возможно будет иногда полезно, но это имеет смысл если это недолго делается (<20мс). Главное отличие предлагаемого мной подхода - я заполняю список сам и могу добавить в него то, что есть в штатном списке и нет в моем.
#68, 23 января 2024 15:31
(65) bolsun, дай, пожалуйста, возможность, о которой мы тут говорим. Или подскажи, как ты себе представлял генерацию списка подсказки сторонними скриптами.
#69, 23 января 2024 17:31
Индикатор добавлен, вызов обработчика отключен.
Для обсуждение нового функционала нужно создать отдельную заявку.
В ней также можно указать ссылку на эту заявку.
bolsun изменил статус на Закрыто
#70, ред. 23 января 2024 17:40
(69) bolsun, создал еще в ноябре и уже несколько раз здесь указывал ссылку https://turboconf.ru/Tasks/8816
#71, 23 января 2024 17:42
bolsun изменил статус на Закрыто