Как Свернуть ТАблицуЗначений, где колонка неограниченной длины
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вообще непонятно, зачем таблицу значений обрабатывать запросом? Для работы с таблицей есть свои методы и для них длина 3000 символов не проблема. Метод Таблицы значений Свернуть чем не подходит?
ТаблицаЗначений (ValueTable)
Свернуть (GroupBy)
Синтаксис:
Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Параметры:
<КолонкиГруппировок> (обязательный)
Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений.
<КолонкиСуммирования> (необязательный)
Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.
Описание:
Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
Важно! Списки колонок не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.
Пример:
ТаблицаЦен.Свернуть("Товар, Валюта", "Цена");
Использование в версии:
Доступен, начиная с версии 8.0.
ПоказатьСвернуть (GroupBy)
Синтаксис:
Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Параметры:
<КолонкиГруппировок> (обязательный)
Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений.
<КолонкиСуммирования> (необязательный)
Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.
Описание:
Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
Важно! Списки колонок не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.
Пример:
ТаблицаЦен.Свернуть("Товар, Валюта", "Цена");
Использование в версии:
Доступен, начиная с версии 8.0.
(21) Колонки можно обойти в цикле. Для каждого колонка Из тз.Колонки. Получить имя колонки Колонка.Имя собрать всё в строку разделяя запятыми и подставить эту строку в свернуть.
Посмотрите в синтакс-помошнике там много еще чего, что можно с таблицей значений сделать.
Посмотрите в синтакс-помошнике там много еще чего, что можно с таблицей значений сделать.
Давайте поможем девочке погрузиться в сладостный мир извращений!
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Поле1", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
ТЗ.Колонки.Добавить("Поле2", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(3000, ДопустимаяДлина.Фиксированная)));
ТЗ.Добавить();
ТЗ.Добавить();
Сообщить("До:" + ТЗ.Количество());
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Поле1,
| ПОДСТРОКА(Поле2, 1, 1000) КАК Поле21,
| ПОДСТРОКА(Поле2, 1000, 1000) КАК Поле22,
| ПОДСТРОКА(Поле2, 2000, 1000) КАК Поле23
|ПОМЕСТИТЬ ВТ_ТЗ
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|//////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Поле1,
| Поле21 + Поле22 + Поле23 КАК Поле2
|ИЗ
| ВТ_ТЗ КАК ВТ_ТЗ
|";
Запрос.УстановитьПараметр("ТЗ", ТЗ);
СвернутаяТЗ = Запрос.Выполнить().Выгрузить();
Сообщить("После:" + СвернутаяТЗ.Количество());
Показать
и что Вы хотите по этому полю, длинной в 3000 знаков? группировать или суммировать?))
Кстати, Ваш запрос и не свернул бы ТЗ, а выбрал бы различные...
Если не секрет, что за задачу решаете? может быть нужно изменить алгоритм?
Кстати, Ваш запрос и не свернул бы ТЗ, а выбрал бы различные...
Если не секрет, что за задачу решаете? может быть нужно изменить алгоритм?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот