lavelinevgeny / consquery

Обработка 1C "Консоль запросов consquery.ru"
http://consquery.ru
Other
35 stars 10 forks source link

Создать параметр из буфера. Предложение. #22

Closed ovt256 closed 4 months ago

ovt256 commented 1 year ago

При создании параметра из буфера обмена иногда возникают сложности. Консоль не всегда правильно определяет тип данных. Это связано прежде всего с самими данными (например, строка из цифр будет распознана как число) и, вероятно, анализом лишь нескольких первых строк значений. Как правило, пользователь знает, какие данные он собирается использовать в параметре. Думаю, было бы полезно предусмотреть в Консоли возможность указания типов данных (в том числе и составных) вручную.

fuserr commented 1 year ago

консоль (версия 3.1.420) определяет типы колонок Дата и Число, но не определяет Строку. сделал следующие изменения в модуле ФормаУпр:

  1. в Процедура ПослеЗакрытияВопросаПытатьсяОпределятьТипЗначений .. Пока Сч1 < лКоличествоКолонок Цикл Если СтрокаВЧисло(лМассивКолонокСтрокиТаблицы[Сч1]) <> Неопределено Тогда лТипыКолонок.Вставить(Сч1, Новый ОписаниеТипов("Число")); ИначеЕсли ЗначениеЗаполнено(СтрокаВДату(лМассивКолонокСтрокиТаблицы[Сч1])) Тогда лТипыКолонок.Вставить(Сч1, Новый ОписаниеТипов("Дата")); Иначе // ++ иначе считаем строкой лТипыКолонок.Вставить(Сч1, Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(100)) ); // ++ КонецЕсли; Сч1 = Сч1 + 1; КонецЦикла;

  2. в Процедура ОбработкаДействияВыгрузитьВПараметрНаСервере .. Если лТипыКолонок <> Неопределено И лТипыКолонок[Сч] <> Неопределено Тогда лЗначение.Колонки.Добавить(лИмяКолонки, лТипыКолонок[Сч]); Иначе

В соответствие лТипыКолонок передаю не типы, а готовые Описания типов. Это позволяет задать ограничение строки. После этого все остальные колонки будут назначены тип Строка(100 символов). Если не задать ограничение строки колонки, то такие строки нельзя сравнивать в запросе.

ovt256 commented 1 year ago

Попробовал: проблема с определением данных с типом "Строка" решена! Спасибо!

lavelinevgeny commented 4 months ago

Исправлено в последнем релизе