КлючСтрокиДинамическогоСписка.Количество

Методы · Count

Возвращает количество ключевых полей динамического списка.

Синтаксис

Количество()
Полное описание, параметры и ограничения

КлючСтрокиДинамическогоСписка.Количество (DynamicListRowKey.Count)

КлючСтрокиДинамическогоСписка (DynamicListRowKey)

Количество (Count)

Доступен, начиная с версии 8.3.14.

Синтаксис:
Количество()
Возвращаемое значение:
Тип: Число.

Описание:

Возвращает количество ключевых полей динамического списка.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.3.14.

Методическая информация

Практические примеры

Составить ключ из двух путей и прочитать значения по именам

Составной ключ содержит оба значения. Разбираем позиционный конструктор, в котором порядок значений соответствует строке путей.

Где и как запускать

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

Подготовка

  1. Учебная база 8.5.1.1343; фрагмент без директив выполняйте внутри серверной ВыполнитьПример() Экспорт собственного общего модуля УчебныеЗадачи.

  2. Два значения составного ключа — собственный номер 1 и категория Канцелярия. Ни запись товаров, ни открытие форм конфигурации не выполняются.

  3. Получить у этого типа принимает строковый путь ключевого поля, не числовой индекс. Количество показывает число полей ключа, не число строк списка.

Ключ = Новый КлючСтрокиДинамическогоСписка("УчебныйНомер,Категория", 1, "Канцелярия");
Сообщить(Ключ.Количество() = 2);
Сообщить(Ключ.Получить("УчебныйНомер") = 1);
Сообщить(Ключ.Получить("Категория") = "Канцелярия");
Сообщить(Ключ["Категория"] = Ключ.Получить("Категория"));
ПереставленныеПути = Новый КлючСтрокиДинамическогоСписка("Категория,УчебныйНомер", "Канцелярия", 1);
Сообщить(ПереставленныеПути.Получить("УчебныйНомер") = Ключ.Получить("УчебныйНомер"));
Сообщить(ПереставленныеПути.Получить("Категория") = Ключ.Получить("Категория"));

Разбор по шагам

  1. Первый аргумент содержит два пути через запятую. Следующие два аргумента содержат значения в том же порядке.

  2. Количество = 2 означает два ключевых поля. Получить читает значение по строковому пути; аналогична адресация квадратными скобками.

  3. Во втором конструкторе меняем порядок путей вместе с порядком значений. Чтение по именам возвращает те же две составляющие.

  4. Объект ключа сам не подтверждает существование товара или присутствие строки в текущем списке.

Как проверить результат

  1. Шесть проверок дают Истина.

  2. В отладчике ключ содержит УчебныйНомер 1 и Категория Канцелярия; Получить(0) в уроке намеренно не используется.

Ожидаемый результат

Составной ключ с проверкой независимости чтения от порядка перечисления путей.

На что обратить внимание

  1. Не передавайте массив значений вместо отдельных аргументов позиционного конструктора без соответствующего контракта.

  2. Получить у массива принимает индекс, а у КлючСтрокиДинамическогоСписка — путь: одинаковое имя метода не означает одинаковые параметры.

  3. Сравнение самих объектов ключей здесь не используется как доказательство равенства строк.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Получить один ключ из структуры и другой из соответствия

Конструктор берёт имена полей из ключей коллекции, а значения — из её значений. Для собственных числа и строки проверяем независимость от последующей правки источника.

Где и как запускать

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

Подготовка

  1. Учебная база 8.5.1.1343; фрагмент без директив выполняйте внутри серверной ВыполнитьПример() Экспорт собственного общего модуля УчебныеЗадачи.

  2. Два значения составного ключа — собственный номер 1 и категория Канцелярия. Ни запись товаров, ни открытие форм конфигурации не выполняются.

  3. Получить у этого типа принимает строковый путь ключевого поля, не числовой индекс. Количество показывает число полей ключа, не число строк списка.

Источник = Новый Структура("УчебныйНомер,Категория", 1, "Канцелярия");
ИзСтруктуры = Новый КлючСтрокиДинамическогоСписка(Источник);
Сопоставление = Новый Соответствие;
Сопоставление.Вставить("Категория", "Канцелярия");
Сопоставление.Вставить("УчебныйНомер", 1);
ИзСоответствия = Новый КлючСтрокиДинамическогоСписка(Сопоставление);
Сообщить(ИзСтруктуры.Количество() = 2);
Сообщить(ИзСоответствия.Количество() = 2);
Сообщить(ИзСтруктуры.Получить("УчебныйНомер") = ИзСоответствия.Получить("УчебныйНомер"));
Сообщить(ИзСтруктуры.Получить("Категория") = ИзСоответствия.Получить("Категория"));
Источник.УчебныйНомер = 99;
Источник.Категория = "Изменён только источник";
Сопоставление.Вставить("Категория", "Изменён только источник");
Сообщить(ИзСтруктуры.Получить("УчебныйНомер") = 1);
Сообщить(ИзСтруктуры.Получить("Категория") = "Канцелярия");
Сообщить(ИзСоответствия.Получить("Категория") = "Канцелярия");

Разбор по шагам

  1. Структура удобна для простых имён полей. Соответствие также принимается конструктором; его ключи используются как пути ключевых полей.

  2. Создаём ключи из двух источников и сравниваем составляющие по именам, не по порядку обхода соответствия.

  3. После создания меняем собственные скалярные значения источников. Уже созданные ключи сохраняют номер 1 и строку Канцелярия.

Как проверить результат

  1. Семь проверок дают Истина.

  2. Источник после правки содержит 99, но ИзСтруктуры.Получить("УчебныйНомер") по-прежнему 1.

Ожидаемый результат

Создание ключа по именованной коллекции с проверкой скалярных значений.

На что обратить внимание

  1. Это не обещание глубокой копии всех возможных вложенных изменяемых объектов; здесь только число и строка.

  2. Произвольное соответствие не является готовым отбором динамического списка.

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

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.