Создает ключ строки динамического списка по переданным путям ключевых полей и значениям. В первом параметре передаются пути ключевых полей, а в следующих параметрах - значения этих ключевых полей в том порядке, в котором они расположены в строке в первом параметре.
Синтаксис
Новый КлючСтрокиДинамическогоСписка(<ПутиКлючевыхПолей>, <Значения>)Полное описание, параметры и ограничения
КлючСтрокиДинамическогоСписка.На основе путей и значений полей
КлючСтрокиДинамическогоСписка (DynamicListRowKey)
На основе путей и значений полей
Доступен, начиная с версии 8.3.14.
Синтаксис:
Новый КлючСтрокиДинамическогоСписка(<ПутиКлючевыхПолей>, <Значения>)
Параметры:
<ПутиКлючевыхПолей> (обязательный)
Тип: Строка.
Список путей ключевых полей, разделенных запятыми.
<Значения> (обязательный)
Тип: Произвольный.
Значения ключевых полей в том порядке, в котором они расположены в строке в первом параметре.
Описание:
Создает ключ строки динамического списка по переданным путям ключевых полей и значениям.
В первом параметре передаются пути ключевых полей, а в следующих параметрах - значения этих ключевых полей в том порядке, в котором они расположены в строке в первом параметре.
Использование в версии:
Доступен, начиная с версии 8.3.14.
Методическая информация
Практические примеры
Составить ключ из двух путей и прочитать значения по именам
Составной ключ содержит оба значения. Разбираем позиционный конструктор, в котором порядок значений соответствует строке путей.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база 8.5.1.1343; фрагмент без директив выполняйте внутри серверной ВыполнитьПример() Экспорт собственного общего модуля УчебныеЗадачи.
Два значения составного ключа — собственный номер 1 и категория Канцелярия. Ни запись товаров, ни открытие форм конфигурации не выполняются.
Получить у этого типа принимает строковый путь ключевого поля, не числовой индекс. Количество показывает число полей ключа, не число строк списка.
Ключ = Новый КлючСтрокиДинамическогоСписка("УчебныйНомер,Категория", 1, "Канцелярия");
Сообщить(Ключ.Количество() = 2);
Сообщить(Ключ.Получить("УчебныйНомер") = 1);
Сообщить(Ключ.Получить("Категория") = "Канцелярия");
Сообщить(Ключ["Категория"] = Ключ.Получить("Категория"));
ПереставленныеПути = Новый КлючСтрокиДинамическогоСписка("Категория,УчебныйНомер", "Канцелярия", 1);
Сообщить(ПереставленныеПути.Получить("УчебныйНомер") = Ключ.Получить("УчебныйНомер"));
Сообщить(ПереставленныеПути.Получить("Категория") = Ключ.Получить("Категория"));Разбор по шагам
Первый аргумент содержит два пути через запятую. Следующие два аргумента содержат значения в том же порядке.
Количество = 2 означает два ключевых поля. Получить читает значение по строковому пути; аналогична адресация квадратными скобками.
Во втором конструкторе меняем порядок путей вместе с порядком значений. Чтение по именам возвращает те же две составляющие.
Объект ключа сам не подтверждает существование товара или присутствие строки в текущем списке.
Как проверить результат
Шесть проверок дают Истина.
В отладчике ключ содержит УчебныйНомер 1 и Категория Канцелярия; Получить(0) в уроке намеренно не используется.
Ожидаемый результат
Составной ключ с проверкой независимости чтения от порядка перечисления путей.
На что обратить внимание
Не передавайте массив значений вместо отдельных аргументов позиционного конструктора без соответствующего контракта.
Получить у массива принимает индекс, а у КлючСтрокиДинамическогоСписка — путь: одинаковое имя метода не означает одинаковые параметры.
Сравнение самих объектов ключей здесь не используется как доказательство равенства строк.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.