Содержание

3.10:   Класс "IndexedTable" рус - "ИндексированнаяТаблица"

Аналог встроенного типа "ТаблицаЗначений", дополненный возможностью создавать и использовать индексы над таблицей. Индексы строятся в виде двоичных поисковых деревьев, таким образом получаем затраты на поиск O(log2(N)), тогда как в стандартном типе "ТаблицаЗначений" поиск осуществляется перебором строк, и следовательно затраты на поиск O(N).

Индекс может быть двух типов:
  1. по всем строкам таблицы;
  2. по строкам с уникальными значениями ключа. Строки с повторяющимися значениями ключа будут проигнорированы, и в операции перебора строк, суммирования, свёртки, выгрузки, загрузки не попадут.
Использование индексов даёт и другие преимущества, кроме ускорения поиска:
  • возможность поиска по нескольким значениям (по составному ключу);
  • наличие нескольких индексов для одной таблицы, независимые выборки для каждого индекса;
  • поиск по условиям "больше либо равно", "меньше либо равно";
  • построение индекса только по уникальным значениям даёт возможность получить список уникальных ключей без свёртывания таблицы;
  • свёртка по существующему индексу - при этом не теряется время на построение временного индекса;
  • динамическая фильтрация строк;
  • суммирование и свёртка по динамическому фильтру.

Таблица всегда имеет 1 индекс (в дальнейшем будем называть его "основной индекс"), который нельзя удалить. Номер этого индекса - 1, имя - "" (пустая строка). Если в операциях, использующих индекс, не указано имя индекса, то используется основной индекс. При операциях перепозиционирования (ВНачало(), СледующаяСтрока(), ПредыдущаяСтрока() и т.д.) основной индекс позиционируется на ту же строку.

3.10.1:   Свойства

НомерСтроки / RowNumber

Доступ: чтение / запись.

Тип: Число.

Описание: Номер текущей строки в основном индексе. Если строка не выбрана, то 0.

<ИмяКолонки>

Доступ: чтение / запись.

Описание: Обращение к значениям колонок, созданных методом НоваяКолонка().

3.10.2:   Методы

НоваяКолонка / NewColumn

Описание: Создаёт колонку в таблице.

Синтаксис: НоваяКолонка(стрИмяКолонки)

Параметры:
  • стрИмяКолонки - строка, идентификатор создаваемой колонки.

Возвращаемое значение: число, номер созданной колонки.

УдалитьКолонку / RemoveColumn

Описание: Удаляет указанную колонку.

Синтаксис: УдалитьКолонку(Колонка)

Параметры
  • Колонка - идентификатор или номер колонки.

КоличествоКолонок / ColumnCount

Описание: Возвращает количество колонок в таблице.

Синтаксис: КоличествоКолонок()

Возвращаемое значение: число, количество колонок в таблице.

ИмяКолонки / ColumnName

Описание: Возвращает имя указанной колонки.

Синтаксис: ИмяКолонки(Колонка)

Параметры
  • Колонка - идентификатор или номер колонки.

Возвращаемое значение: строка, идентификатор колонки.

НомерКолонки / ColumnNumber

Описание: Возвращает строковый идентификатор указанной колонки.

Синтаксис: НомерКолонки(Колонка)

Параметры
  • Колонка - идентификатор или номер колонки.

Возвращаемое значение: число, номер колонки.

НоваяСтрока / NewRow

Описание: Cоздаёт новую строку в конце таблицы.

Синтаксис: НоваяСтрока()

Возвращаемое значение: число, номер созданной строки.

УдалитьСтроку / RemoveRow

Описание: Удаляет указанную строку.

Синтаксис: УдалитьСтроку(чСтрока)

Параметры
  • чСтрока - номер удаляемой строки

УдалитьСтроки / RemoveRows

Описание: Удаляет строки из таблицы. Если указан индекс, то при удалении учитывается наложенный фильтр.

Синтаксис: УдалитьСтроки([Индекс], [чНеВходящие])

Параметры
  • Индекс - идентификатор или номер индекса. Если параметр указан, и по данному индексу установлен фильтр, то удалятся строки, удовлетворяющие условиям фильтра.
  • чНеВходящие - число, 1 - будут удалены строки, не входящие в фильтр. Имеет смысл только с параметром Индекс.

КоличествоСтрок / RowCount

Описание: Возвращает количество строк в таблице.

Синтаксис: КоличествоСтрок([Индекс = ""])

Параметры
  • Индекс - идентификатор или номер индекса. Если параметр указан, и по данному индексу установлен фильтр, то считаются только строки, удовлетворяющие условиям фильтра.

Возвращаемое значение: число, количество строк в таблице.

НомерСтроки / RowNumber

Описание: Возвращает текущий номер строки в выборке для указанного индекса.

Синтаксис: НомерСтроки(Индекс)

Параметры
  • Индекс - идентификатор или номер индекса.

Возвращаемое значение: число, номер текущей строки в указанном индексе. Если строка не выбрана, то 0.

Очистить / Clenup

Описание: Полная очистка таблицы. Удаляются все индексы, строки и колонки.

Синтаксис: Очистить()

ДобавитьИндекс / AddIndex

Описание: Добавляет индекс к таблице.

Синтаксис: ДобавитьИндекс(стрИдентификатор, стрВыражение, [чТолькоУникальныеЗначения = 0])

Параметры
  • стрИдентификатор - строка, идентификатор создаваемого индекса;
  • стрВыражение - строка, индексное выражение. Индексное выражение состоит из списка идентификаторов колонок, разделённого запятыми. Если перед именем колонки стоит символ '-', то сортировка осуществляется в обратном порядке. Если перед именем колонки стоит символ '*', то сортировка осуществляется в по внутреннему представлению объекта. Если перед именем колонки стоит символ '#', то перед сравнением строк обрезаются пробелы слева и справа. Если перед именем колонки стоит символ '^', то строки сравниваются без учёта регистра. Модификаторы сортировки ('-', '*', "#", "^") можно использовать в любых сочетаниях. Индексное выражение может быть пустой строкой - это эквивалентно сортировке по номеру строки, или отсутствию сортировки (фильтр на такой индекс установить нельзя).
  • чТолькоУникальныеЗначения - число. Если 1, то в индекс попадут только строки, содержащие уникальные значения индекса. Строки с повторяющимися индексами будут проигнорированы, и в операции перебора строк, суммирования, свёртки, выгрузки, загрузки не попадут.

Возвращаемое значение: число, номер созданного индекса.

УдалитьИндекс / DropIndex

Описание: Удаление указанного индекса.

Синтаксис: УдалитьИндекс(Индекс)

Параметры
  • Индекс - идентификатор или номер индекса.

Сортировать / Sort

Описание: Изменение сортировки в основном индексе.

Синтаксис: Сортировать(стрВыражение)

Параметры
  • стрВыражение - строка, индексное выражение. Индексное выражение состоит из списка идентификаторов колонок, разделённого запятыми. Если перед именем колонки стоит символ '-', то сортировка осуществляется в обратном порядке. Если перед именем колонки стоит символ '*', то сортировка осуществляется в по внутреннему представлению объекта. Если индексное выражение - пустая строка, то сортировка выключается (фильтр на такой индекс установить нельзя).

ИндексУникален / IndexIsUnique

Описание: проверяет, уникален ли индекс.

Синтаксис: ИндексУникален([Индекс = ""])

Параметры
  • Индекс - идентификатор или номер индекса.

Возвращаемое значение: число, 1 - в таблице нет строк, с повторяющимися значениями ключа; 0 - таблица содержит строки с одинаковыми значениями ключа.

КоличествоУникальныхКлючей / UniqueKeyCount

Описание: возвращает количество уникальных ключей по указанному индексу.

Синтаксис: КоличествоУникальныхКлючей([Индекс = ""])

Параметры
  • Индекс - идентификатор или номер индекса.

Возвращаемое значение: число, количество уникальных ключей.

КоличествоЗначенийКлюча / KeyValueCount

Описание: возвращает количество строк, для которых значение ключа равно параметру Ключ.

Синтаксис: КоличествоЗначенийКлюча([Индекс = ""], Ключ)

Параметры
  • Индекс - идентификатор или номер индекса.
  • Ключ - если индекс построен по одной колонке - то значение поиска. Если же индекс по нескольким колонкам, то это должен быть СписокЗначений, содержащий значения ключевых колонок, заданных в методе ДобавитьИндекс().

Возвращаемое значение: число, количество строк с указанным ключом.

НайтиСтроку / FindRow

Описание: Найти строку, точно соответствующую ключу.

Синтаксис: НайтиСтроку(Индекс, Ключ, [чНайтиПоследнюю = 0], [чСпозиционироваться = 0])

Параметры
  • Индекс - идентификатор или номер индекса.
  • Ключ - если индекс построен по одной колонке - то значение поиска. Если же индекс по нескольким колонкам, то это должен быть СписокЗначений, содержащий значения ключевых колонок, заданных в методе ДобавитьИндекс().
  • чНайтиПоследнюю - число, если 1, то будет найдена последняя строк с совпадающим значением ключа.
  • чСпозиционироваться - число, если 1, то индекс будет спозиционирован на найденной строке. Основной индекс также перепозиционируется.

Возвращаемое значение: число, номер найденной строки. Если ничего не найдено, то 0.

НайтиБлижайшуюБольше / FindNearestGE

Описание: Найти строку, которая равна или больше ключа.

Синтаксис: НайтиБлижайшуюБольше(Ключ, [Индекс = ""])

Параметры
  • Ключ - если индекс построен по одной колонке - то значение поиска. Если же индекс по нескольким колонкам, то это должен быть СписокЗначений, содержащий значения ключевых колонок, заданных в методе ДобавитьИндекс().
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Возвращаемое значение: число, номер найденной строки. Если ничего не найдено, то 0.

НайтиБлижайшуюМеньше / FindNearestLE

Описание: Найти строку, которая равна или меньше ключа.

Синтаксис: НайтиБлижайшуюМеньше(Ключ, [Индекс = ""])

Параметры
  • Ключ - если индекс построен по одной колонке - то значение поиска. Если же индекс по нескольким колонкам, то это должен быть СписокЗначений, содержащий значения ключевых колонок, заданных в методе ДобавитьИндекс().
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Возвращаемое значение: число, номер найденной строки. Если ничего не найдено, то 0.

УстановитьФильтр / SetFilter

Описание: устанавливает динамический фильтр на таблицу по указанному индексу. Фильтр влияет на работу методов: ВНачало(), ВыбратьСтроки(), ВКонец(), ПолучитьСтроку(), СледующаяСтрока(), ПредыдущаяСтрока(),Свернуть(),Итог(), ЗаполнитьКолонку(), Выгрузить(), Загрузить(), Объединить().

Синтаксис: УстановитьФильтр(КлючМин, КлючМакс, [Индекс = ""], [чТолькоУникальные = 0])

Параметры
  • КлючМин - нижняя граница фильтра. Задаётся так же, как в методе НайтиСтроку().
  • КлючМакс - верхняя границы фильтра. Задаётся так же, как в методе НайтиСтроку().
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.
  • чТолькоУникальные - число, если 1 - то в выборку попадут только строки с уникальным значением ключа.

Если индекс построен по одной колонке, то в качестве ключей можно использовать значение колонки. Если же индекс по нескольким колонкам, то ключ должен быть СписокЗначений, содержащий значения ключевых колонок, заданных в методе ДобавитьИндекс().

Подмножество / Subset

Описание: устанавливает фильтр, фиксируя значения первых колонок индекса.

Пример:

ТЗ.ДобавитьИндекс("и1", "к1, к2");
сзКлюч = СоздатьОбъект("СписокЗначений");
сзКлюч.ДобавитьЗначение(5);
ТЗ.Подмножество(сзКлюч, 1, "и1");

в результате в выборке будут только те строки, у которых колонка к1 = 5.

Синтаксис: Подмножество(сзКлюч, чКоличествоФиксКолонок, [Индекс = ""])

Параметры
  • сзКлюч - список значений, содержащий значения фиксируемых колонок индекса.
  • чКоличествоФиксКолонок - число, количество фиксируемых колонок индекса
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

ВыключитьФильтр / DropFilter

Описание: выключает фильтр у указанного индекса.

Синтаксис: ВыключитьФильтр(Индекс)

Параметры
  • Индекс - идентификатор или номер индекса.

ВНачало / FirstRow

Описание: позиционируется перед первой строкой указанного индекса, так что метод СледующаяСтрока() спозиционируется на первой строке.

Синтаксис: ВНачало([Индекс = ""])

Параметры
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Возвращаемое значение число, 1 - операция завершилась успешно, 0 - выборка пуста.

ВыбратьСтроки / SelectRows

Описание: позиционируется перед первой строкой указанного индекса, так что метод ПолучитьСтроку() спозиционируется на первой строке.

Синтаксис: ВыбратьСтроки([Индекс = ""])

Параметры
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Возвращаемое значение число, 1 - операция завершилась успешно, 0 - выборка пуста.

ВКонец / LastRow

Описание: позиционируется после последней строки указанного индекса, так что метод ПредыдущаяСтрока() спозиционируется на последней строке.

Синтаксис: ВКонец([Индекс = ""])

Параметры
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Возвращаемое значение число, 1 - операция завершилась успешно, 0 - выборка пуста.

Описание: переход к следующей строке индекса.

Синтаксис: СледующаяСтрока([Индекс = ""], [чТолькоУникальные = 0])

Параметры
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.
  • чТолькоУникальные - если 1, то будет получена следующая строка с отличающимся значением ключа, все повторяющиеся строки будут пропущены.

Возвращаемое значение число, 1 - операция завершилась успешно, 0 - больше нет строк.

ПолучитьСтроку / GetRow

Описание: переход к следующей строке индекса.

Синтаксис: ПолучитьСтроку([Индекс = ""], [чТолькоУникальные = 0])

Параметры
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.
  • чТолькоУникальные - если 1, то будет получена следующая строка с отличающимся значением ключа, все повторяющиеся строки будут пропущены.

Возвращаемое значение число, 1 - операция завершилась успешно, 0 - больше нет строк.

Описание: переход к предыдущей строке индекса.

Синтаксис: ПредыдущаяСтрока([Индекс = ""], [чТолькоУникальные = 0])

Параметры
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.
  • чТолькоУникальные - если 1, то будет получена следующая строка с отличающимся значением ключа, все повторяющиеся строки будут пропущены.

Возвращаемое значение число, 1 - операция завершилась успешно, 0 - больше нет строк.

ПолучитьЗначение / GetValue

Описание: возвращает значение в указанной ячейке таблицы.

Синтаксис: ПолучитьЗначение([чСтрока = ПустоеЗначение], Колонка)

Параметры
  • чСтрока - число, номер строки. Если номер строки не указан, то берётся текущая строка.
  • Колонка - число или строка, номер или идентификатор колонки.

Возвращаемое значение значение ячейки таблицы.

Получить / Get

Описание: синоним метода ПолучитьЗначение().

Синтаксис: Получить(чСтрока, Колонка)

УстановитьЗначение / SetValue

Описание: устанавливает значение указанной ячейки.

Синтаксис: УстановитьЗначение([чСтрока = ПустоеЗначение], Колонка, Значение)

Параметры
  • чСтрока - число, номер строки. Если номер строки не указан, то устанавливается значение в текущей строке.
  • Колонка - число или строка, номер или идентификатор колонки;
  • Значение - новое значение ячейки.

Установить / Set

Описание: синоним метода УстановитьЗначение().

Синтаксис: Установить(чСтрока, Колонка, Значение)

Свернуть / GroupBy

Описание: сворачивает таблицу по колонкам <КолонкиСвёртки>, суммируя значения в колонках <КолонкиСумм>. Колонки, не вошедшие в <КолонкиСвёртки> и <КолонкиСумм> из таблицы не удаляются. Свёртка возможна и по существующему индексу - при этом не теряется время на построение временного индекса, и возможна выборочная свёртка по текущему фильтру индекса.

Синтаксис: Свернуть(стрКолонкиСвёртки, стрКолонкиСумм [, ИмяСуществующегоИндекса])

Параметры
  • стрКолонкиСвёртки - строка, список колонок, по которым будет осуществляться свёртка. Эта строка полностью аналогична индексному выражению в методе ДобавитьИндекс(). Для свёртки таблица сначала индексируется по этому выражению, а затем строки с одинаковым индексом суммируются. Результат всегда помещается в первую по номеру строку, все остальные строки удаляются.
  • стрКолонкиСумм - строка, список колонок, которые нужно просуммировать. Разделитель - символ ','. Пробелы игнорируются.
  • ИмяСуществующегоИндекса - число или строка. Если указано имя индекса, то КолонкиСвёртки игнорируются, а свёртка осуществляется по указанному индексу. В свёртке учавствуют только те строки, которые входят в фильтр.

Итог / Sum

Описание: считает сумму по указанной колонке, при этом учитывается фильтр индекса.

Синтаксис: Итог(КолонкаСуммы, [Индекс = ""])

Параметры
  • КолонкаСуммы - строка или число, колонка, по которой нужно получить сумму.
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Возвращаемое значение число, сумма по указанной колонке.

ИтогПоДиапазону / SumByRange

Описание: считает сумму по указанной колонке, с заданием диапазона суммирования. Функция не учитывает установленные фильтры и сама перманентных фильтров не устанавливает.

Синтаксис: ИтогПоДиапазону(КолонкаСуммы, [Индекс = ""], КлючМин, КлючМакс)

Параметры
  • КолонкаСуммы - строка или число, колонка, по которой нужно получить сумму.
  • Индекс - Идентификатор или номер индекса. По умолчанию используется основной индекс.
  • КлючМин - Нижняя граница диапазона. Задаётся так же, как в методе НайтиСтроку().
  • КлючМакс - Верхняя границы диапазона. Задаётся так же, как в методе НайтиСтроку().

Возвращаемое значение число, сумма по указанной колонке.

ИтогПоУзлу / NodeSum

Описание: считает сумму по указанной колонке для текущего узла индексного дерева. Имеет смысл, когда индекс не уникален, и нужно посчитать итог по текущему ключу.

Пример: на входе имеем таблицу

Фамилия Сумма
Иванов 100
Иванов 120
Иванов 200
Петров 500
Петров 600

ТЗ.ДобавитьИндекс("Фамилия", "Фамилия", 0);
ТЗ.НайтиСтроку("Фамилия", "Иванов"); //позиционируемся на узел, в котором собраны все строки с фамилией Иванов
Сум = ТЗ.ИтогПоУзлу("Сумма", "Фамилия"); //вернёт 420 (100 + 120 + 200)
ТЗ.НайтиСтроку("Фамилия", "Петров"); //позиционируемся на узел, в котором собраны все строки с фамилией Петров
Сум = ТЗ.ИтогПоУзлу("Сумма", "Фамилия"); //вернёт 1100 (500 + 600)

Синтаксис: ИтогПоУзлу(КолонкаСуммы [, Индекс])

Параметры
  • КолонкаСуммы - строка или число, колонка, по которой нужно получить сумму.
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Возвращаемое значение: число, сумма по указанной колонке. Если выборка не активна (нет текущего узла), то возвращает 0.

Группировать / Group

Описание: формирует таблицу с древовидной структурой в соответствии с группировками. На каждом уровне группировки остаются только уникальные значения по соответствующему индексу. В колонки сумм записываются суммы по всем строкам с совпадающим значением ключа. Строки с совпадающими значениями ключа записываются в таблицу, которая помещается в колонку тзПотомки - эта колонка создаётся в процессе группировки.

Пример: на входе имеем таблицу

Фамилия Имя Сумма
Иванов Иван 100
Иванов Сергей 120
Петров Пётр 130
Петров Александр 200

группируем её:

ТЗ.Группировать("Фамилия: Фамилия; Имя: Имя", "Сумма");

и получаем таблицу такого вида (в колонке тзПотомки показано содержимое таблицы тзПотомки):

Фамилия Имя Сумма тзПотомки
Фамилия Имя Сумма
Иванов Иван 220 Иванов Иван 100
Иванов Сергей 120
Петров Пётр 330 Петров Пётр 130
Петров Александр 200

При группировке возможно также подсчитывать суммы по группам справочников - для этого в списке модификаторов индекса нужно указать '&'. Если в таблице есть колонка с именем '<ИмяКолонкиСправочника>_Родитель', то родитель для элемента будет браться из этой колонки - это уменьшает количество обращений к базе, и заметно увеличивает производительность. Итоговая таблица будет организована в виде дерева, в точности повторяющего структуру справочника. Следующий уровень группировки располагается в листьях этого дерева (т.е. в строках, не являющихся группами). Для удобства работы с полученным деревом в таблицу добавляется колонка '__ЭтоГруппа__', в которую записывается 1 для всех групп, и ПустоеЗначение для элементов.

Синтаксис: Группировать(стрГруппировки, стрКолонкиСумм, [чРасшифровкаПоследнегоУровня = 0])

Параметры
  • стрГруппировки - строка, описывающая группировки. Задаётся в виде <ИмяИндекса1>: <ИндексноеВыражение1> [; <ИмяИндекса2>: <ИндексноеВыражение2> ... ]. ИндексноеВыражение - строка в том же формате, что и для метода ДобавитьИндекс(), с одним дополнением: если в списке модификаторов колонки присутствует символ '&', то по этой колонке будут посчитаны итоги по группам справочника. Колонка с таким модификатором может быть только одна на каждом уровне группировки.
  • стрКолонкиСумм - строка с колонками, по которым нужно считать суммы.
  • чРасшифровкаПоследнегоУровня - число, если 1, то в каждой строке последнего уровня группировки будет таблица с расшифровкой, содержащая строки исходной таблицы в нетронутом виде.

ЗаполнитьСтроку / FillRow

Описание: заполняет строку таблицы из строки другой таблицы, или из списка значений.

Синтаксис: ЗаполнитьСтроку([чНомерСтроки = 0], Источник, [чНомерСтрокиИсточника = 0], [чПоИменамКолонок = 0])

Параметры
  • чНомерСтроки - число, номер строки, которую нужно заполнить. Если <= 0, то заполняется текущая строка.
  • Источник - ИндексированнаяТаблица, ТаблицаЗначений, или Список значений. Источник данных для заполнения строки.
  • чНомерСтрокиИсточника - число, номер строки в таблице-источнике. По умолчанию берётся текущая строка в предопределённом индексе. Если Источник - СписокЗначений, то этот параметр игнорируется.
  • чПоИменамКолонок - число, 0 - значения из источника копируются по номерам колонок; 1 - значения копируются по именам колонок. Если в приёмнике нет колонки с таким именем, то значение не копируется. Если Источник - СписокЗначений, то именами колонок считаются символьные представления значений.

ЗаполнитьКолонку / FillColumn (вариант 1)

Описание: заполняет колонку таблицы из колонки другой индексированной таблицы.

Синтаксис: ЗаполнитьКолонку([Индекс = ""], Колонка, Источник, [ИндексИсточника = ""], [КолонкаИсточника = ""])

Параметры
  • Индекс - идентификатор или номер индекса, по которому упорядочиваются и фильтруются строки заполняемой таблицы. По умолчанию используется основной индекс.
  • Колонка - номер или идентификатор заполняемой колонки.
  • Источник - ИндексированнаяТаблица, источник данных для заполнения колонки.
  • ИндексИсточника - идентификатор или номер индекса, по которому упорядочиваются и фильтруются строки таблицы-источника. По умолчанию используется основной индекс.
  • КолонкаИсточника - номер или идентификатор колонки, из которой будут браться значения. Если параметр не указан, то колонка-источник определяется параметром Колонка.

ЗаполнитьКолонку / FillColumn (вариант 2)

Описание: заполняет колонку таблицы из колонки другой таблицы (ТаблицаЗначений) или списка значений.

Синтаксис: ЗаполнитьКолонку([Индекс = ""], Колонка, Источник, [КолонкаИсточника = ""])

Параметры
  • Индекс - идентификатор или номер индекса, по которому упорядочиваются и фильтруются строки заполняемой таблицы. По умолчанию используется основной индекс.
  • Колонка - номер или идентификатор заполняемой колонки.
  • Источник - ТаблицаЗначений или СписокЗначений, источник данных для заполнения колонки.
  • КолонкаИсточника - номер или идентификатор колонки, из которой будут браться значения. Если параметр не указан, то колонка-источник определяется параметром Колонка. Для списка значений параметр игнорируется.

ЗаполнитьКолонку / FillColumn (вариант 3)

Описание: заполняет колонку таблицы одним и тем же значением.

Синтаксис: ЗаполнитьКолонку([Индекс = ""], Колонка, Значение)

Параметры
  • Индекс - идентификатор или номер индекса, по которому упорядочиваются и фильтруются строки заполняемой таблицы. По умолчанию используется основной индекс.
  • Колонка - номер или идентификатор заполняемой колонки.
  • Значение - значение любого типа кроме ИндексированнаяТаблица, ТаблицаЗначений или СписокЗначений. Значение, которым будет заполнена колонка.

Выгрузить / Unload

Описание: выгружает текущую таблицу в другую таблицу, или в новую. Если таблица-приёмник существует, то она полностью очищается. Индексы при выгрузке не копируются. Выгрузка осуществляется с учётом индекса и фильтра.

Синтаксис: Выгрузить(Приемник [, Индекс])

Параметры
  • Приемник - значение типа ИндексированнаяТаблица, ТаблицаЗначений, Документ или Неопределенный - переменная, в которую будет выгружена таблица. Если это документ, то заполняется его табличная часть. Если тип Неопределенный, то создаётся таблица типа ИндексированнаяТаблица.
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс.

Загрузить / Load

Описание: загружает данные из указанной таблицы, в соответствии с индексом. Перед загрузкой текущая таблица полностью очищается. Индексы не копируются.

Синтаксис: Загрузить(Источник [, Индекс])

Параметры
  • Источник - значение типа ИндексированнаяТаблица или ТаблицаЗначений, таблица, из которой будут загружены данные. Может иметь тип Документ - тогда будет загружена табличная часть документа. Может иметь тип Запрос - тогда будут загружены результаты запроса.
  • Индекс - идентификатор или номер индекса в таблице - источнике. По умолчанию используется основной индекс. Если параметр Источник имеет тип Документ, то Индекс интерпретируется как строка, содержащая список полей табличной части документа. Если Источник имеет тип ТаблицаЗначений или Запрос, то этот параметр игнорируется.

Объединить / Merge

Описание: добавляет строки из таблицы - источника в текущую таблицу. Если в таблице - источнике есть колонки, которых нет в текущей, то они создаются. Объединени осуществляется с учётом индекса и фильтра таблицы - источника.

Синтаксис: Объединить(ТЗ [, Индекс])

Параметры
  • ТЗ - значение типа ИндексированнаяТаблица или ТаблицаЗначений, таблица, из которой будут загружены данные.
  • Индекс - идентификатор или номер индекса в таблице - источнике. По умолчанию используется основной индекс. Если ТЗ имеет тип ТаблицаЗначений, то этот параметр игнорируется.

Пересечение / Conjunction

Описание: пересечение двух таблиц по ключевым полям. Результатом пересечения является таблица, в которой присутствуют строки текущей ТЗ, которые есть в ТЗ2, и строки ТЗ2, которые есть в текущей ТЗ. Совпадение строк определяется по индексам ИндексТекущейТЗ и ИндексТЗ2. Количество колонок в индексах должно быть одинаковым.

Синтаксис: Пересечение(ТЗ2, ИндексТекущейТЗ, ИндексТЗ2)

Параметры
  • ТЗ2 - таблица, с которой строится пересечение.
  • ИндексТекущейТЗ - номер или имя индекса в текущей таблицы.
  • ИндексВторойТЗ - номер или индекс в ТЗ2.

Копия / Copy

Описание: создаёт копию таблицы.

Синтаксис: Копия([чКопироватьИндексы = 0], [чКопироватьДанные = 1])

Параметры
  • чКопироватьИндексы - если 1, то индексы и фильтры тоже будут скопированы.
  • чКопироватьДанные - если 1, то данные будут скопированы; если 0 - то копируется только структура.

Возвращаемое значение: переменная типа ИндексированнаяТаблица, являющаяся копией объекта.

ВФайл / SaveToFile

Описание: записывает таблицу в файл.

Синтаксис: ВФайл(стрИмяФайла, [чФормат = 1], [Индекс = ""], [чСИменамиКолонок = 1])

Параметры
  • стрИмяФайла - строка, имя файла, в который нужно записать таблицу. Если файл уже существует, то он перезаписывается.
  • чФормат - число, формат файла. Может принимать следующие значения: 1 - запись значений во внутреннем формате; 2 - запись значений во внешнем формате; 3 - csv файл со значениями во внутреннем формате; 4 - csv файл со значениями во внешнем формате.
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс. Выгрузка в файл производится с учётом сортировки и фильтра (если есть) по указанному индексу.
  • чСИменамиКолонок - число, 1 - в первую строку файла будут записаны имена колонок. Имеет смысл только для csv-файлов.

ИзФайла / LoadFromFile

Описание: записывает таблицу в файл.

Синтаксис: ИзФайла(стрИмяФайла, [чФормат = 1], [чСИменамиКолонок = 1])

Параметры
  • стрИмяФайла - строка, имя файла, из которого нужно считать таблицу.
  • чФормат - число, формат файла. Может принимать следующие значения: 1 - запись значений во внутреннем формате; 2 - запись значений во внешнем формате; 3 - csv файл со значениями во внутреннем формате; 4 - csv файл со значениями во внешнем формате.
  • чСИменамиКолонок - число, 1 - в первой строке файла хранятся имена колонок. Имеет смысл только для csv-файлов. Если параметр = 0, то имена колонок образуются как __col__<НомерКолонки>.

Возвращаемое значение: число, 1 - таблица считана успешно; 0 - ошибка при чтении.

ВСтроку / SaveToString

Описание: Преобразует таблицу в строковое представление для сериализации. Полученная строка впоследствии может использоваться в методе ИзСтроки().

Синтаксис: ВСтроку([Индекс = ""])

Параметры
  • чФормат - число: 1 - запись значений во внутреннем формате; 0 - запись значений во внешнем формате.
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс. Выгрузка в файл производится с учётом сортировки и фильтра (если есть) по указанному индексу.

Возвращаемое значение: строка, строковое представление таблицы.

ИзСтроки / LoadFromString

Описание: загружает таблицу из строкового представления.

Синтаксис: ИзСтроки()

ВыбратьСтроку / ChooseLine

Описание: Открывает окно для интерактивного выбора строки в таблице значений. Метод предназначен в основном для отладки.

Синтаксис: ВыбратьСтроку([Строка], [стрЗаголовокОкна = ""], [чТаймаут = 0], [Индекс = ""])

Параметры
  • Строка - Переменная, куда помещается значение - номер выбранной строки. При вызове метода здесь можно передавать значение начального номера строки.
  • стрЗаголовокОкна - строка, заголовок окна.
  • чТаймаут - число, задающее время ожидания системы (в секундах) на отклик пользователя. Если не задано, то время ожидания бесконечно.
  • Индекс - идентификатор или номер индекса. По умолчанию используется основной индекс. В окне выбора строки появятся с учётом сортировки и фильтра (если есть) по указанному индексу.

Возвращаемое значение: число: 1 - если выбор произведен (нажата кнопка 'ОК'); 0 - если выбор не произведен (нажата кнопка 'ОТМЕНА').

Показать / Show

Описание: синоним метода ВыбратьСтроку().