Каталог статей
В категории материалов: 11 Показано материалов: 1-10
Когда идет сортировка по моменту времени, то фактически сортировка идет по: Дата, ТипДокумента, УникальныйИдентификатор. Сортировка по ТипуДокумента идет по времени добавления в конфигурацию(скорее всего по ИД метаданных).
Повлиять на это нельзя. Нужно просто это учитывать. |
Стандартная консоль запросов с небольшими доработками: возможность выбора группы в параметрах, возможность использовать Уникальный идентификатор в параметрах. |
Консоль запроса с редактированием данных |
Начиная с платформы 8.3.22 в запросах можно использовать новые функции и операторы:
УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Ссылка) - Возвращает значение типа УникальныйИдентификатор. Если NULL, то возвращает NULL
Строка(String) – преобразует значение в примитивного типа в строку с учетом национальных установок.
Тригонометрические функции Sin, Cos, Tan, ASin, ACos, ATan (все вычисления производятся в радианах)
Exp - вычисляет результат возведения основания натурального логарифма (числа e) в степень
Log - вычисляет натуральный логарифм числа.
Log10 - вычисляет десятичный логарифм числа.
Pow - вычисляет возведение в степень.
Sqrt – вычисляет квадратный корень.
Окр(Round) - округляет исходное число до нужной разрядности
Цел(Int) - вычисляет целую часть переданного числа, полностью отсекая дробную часть.
ДлинаСтроки(StringLength) – вычисляет длину строки.
СокрЛ(TrimL) – отбрасывает незначащие пробелы слева.
СокрП(TrimR) – отбрасывает незначащие пробелы справа.
СокрЛП(TrimAll) – отбрасывает незначащие пробелы слева и справа.
Лев(Left) – получает первые слева символы строки.
Прав(Right) – получает первые справа символы строки.
СтрНайти(StrFind) – находит первую позицию подстроки в строке (без учета регистра).
ВРег(Upper) – преобразует все символы строки в верхний регистр.
НРег(Lower) – преобразует все символы строки в нижний регистр.
СтрЗаменить(StrReplace) – заменяет все вхождения подстроки на другую подстроку (без учета регистра).
РазмерХранимыхДанных(StoredDataSize) – возвращает размер данных в байтах, которые занимают данные параметра.
АВТОНОМЕРЗАПИСИ() - возвращает номер записи в запросе. Работает только в временных таблицах. |
Если очень надо преобразовать число в строку в запросе, то можно воспользоваться таким извращенным методом:
ВЫБРАТЬ
568093.567 КАК число
ПОМЕСТИТЬ втЧисло
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
//исходное число
втЧисло.число КАК число,
//разбор по символам для наглядности
ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0)) КАК Поле1,
(ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле2,
(ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле3,
(ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле4,
(ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле5,
(ВЫРАЗИТЬ(втЧисло.число / 1 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле6,
"." КАК Поле7,
(ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 1 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле8,
(ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле9,
(ВЫРАЗИТЬ(втЧисло.число * 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле10,
//преобразование в строку
ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0))) + 1, 1)
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 1 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ "."
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 1 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число * 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1)
+ "" КАК ЧислоСтрокой
ИЗ
втЧисло КАК втЧисло |
Нашел запрос, который сначала мне показался странным, но потом, при внимательном рассмотрении, вполне рабочим:
ВЫБРАТЬ
Сотрудники.ФизическоеЛицо КАК ФизЛицо
ИЗ
РегистрСведений.Сотрудники КАК Сотрудники
СГРУППИРОВАТЬ ПО
Сотрудники.ФизическоеЛицо
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо) > 1
ФизическоеЛицо - это измерение регистра сведений Сотрудники. Получается группируем по измерению и тут же отбираем записи, количество которых больше 1.
Запрос перестает казаться странным, если "КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо)" перенести в блок "Выбрать":
ВЫБРАТЬ
Сотрудники.ФизическоеЛицо КАК ФизЛицо,
КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо) КАК КоличествоФЛ
ИЗ
РегистрСведений.Сотрудники КАК Сотрудники
СГРУППИРОВАТЬ ПО
Сотрудники.ФизическоеЛицо
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо) > 1
|
Если в конфигурации используется БСП, то при отладке нужно вычислять функцию "ОбщегоНазначения.ЗапросВСтрокуXML(Запрос)". Скопировать полученный тест XML и вставить его в консоли запросов (Все действия / Заполнить из XML) |
Можно обратиться к таблице по имени и выполнить ПолучитьДанные. В результате вернется тип "Результат запроса".
тзТаблицаРабот = пТаблицаРаботИсточник.Таблицы["ТаблицаРабот"].ПолучитьДанные().Выгрузить();
здесь пТаблицаРаботИсточник - это МенеджерВременныхТаблиц |
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|