К основному содержанию
A1sCode
Быстрый старт
Модуль A1sCode · API · сверено с исходником

A1sCatalogs — справочники без повторяющегося CRUD-кода

Создание, поиск, upsert, иерархия, реквизиты, табличные части и пакетные операции со справочниками.

Функций 86Разделов 16Зависимости A1sDS, A1sAR, A1sQ, A1sSharedИсходных примеров 38
1Выберите раздел

Навигация построена только по экспортным функциям исходного модуля.

2Проверьте контракт

Сигнатура и параметры сверены с объявлением функции.

3Скопируйте пример

Исходные примеры сохранены, недостающие добавлены при аудите.

Разделы модуля

01Проверки и менеджеры

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

02Создание

Фабрики и конструкторы объектов модуля.

03Ensure и upsert

Гарантированное получение или создание элементов, включая массовые сценарии.

04Преобразование данных

Подготовка входных строк и ссылок по метаданным.

05Реквизиты и табличные части

Заполнение реквизитов и строк табличных частей.

06Запись и изменение

Запись, обновление, перемещение и пометка удаления.

07Поиск

Поиск одиночных элементов по имени, коду, реквизиту и GUID.

08Пакетный поиск

Выбор массивов ссылок и пакетная обработка критериев.

09Карты и запросы

Формирование соответствий ключ → ссылка через выборки и запросы.

10Иерархия

Родители, дети, уровни, пути и признаки групп.

11Проверки состояния

Проверки пустоты, удаления, уникальности и других состояний.

12Сведения об элементе

Получение компактного набора диагностических данных.

13Схемы метаданных

Типы и схемы реквизитов и табличных частей.

14Метаданные

Состав объектов метаданных и имена табличных частей.

15Fluent API

Создание цепочечной обёртки для последовательных операций.

16Тестирование

Самопроверки публичного контракта модуля.

Ничего не найденоИзмените поисковый запрос.

Проверки и менеджеры

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

Проверяет, является ли значение справочником (ссылка или объект).

Полная сигнатураIsCatalog(Value) → Boolean
ПараметрТипОписание
ValueArbitraryПроверяемое значение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли значение справочником (ссылка или объект).
// Граница: Обязательные параметры: Value
// Результат: Boolean.

Успешно = A1sCatalogs.IsCatalog(Value);

Проверяет, является ли значение ссылкой на справочник.

Полная сигнатураIsRef(Value) → Boolean
ПараметрТипОписание
ValueArbitraryПроверяемое значение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли значение ссылкой на справочник.
// Граница: Обязательные параметры: Value
// Результат: Boolean.

Успешно = A1sCatalogs.IsRef(Value);

Проверяет, является ли значение объектом справочника.

Полная сигнатураIsObject(Value) → Boolean
ПараметрТипОписание
ValueArbitraryПроверяемое значение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли значение объектом справочника.
// Граница: Обязательные параметры: Value
// Результат: Boolean.

Успешно = A1sCatalogs.IsObject(Value);

Возвращает объект справочника из ссылки или объекта.

Полная сигнатураGetObject(Value) → CatalogObject | Undefined
ПараметрТипОписание
ValueArbitraryСсылка или объект
ВозвращаетCatalogObject | Undefined
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Возвращает объект справочника из ссылки или объекта.
// Граница: Обязательные параметры: Value
// Результат: CatalogObject | Undefined.

Результат = A1sCatalogs.GetObject(Value);

Возвращает ссылку на справочник из ссылки или объекта.

Полная сигнатураGetRef(Value) → CatalogRef | Undefined
ПараметрТипОписание
ValueArbitraryСсылка или объект
ВозвращаетCatalogRef | Undefined
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Возвращает ссылку на справочник из ссылки или объекта.
// Граница: Обязательные параметры: Value
// Результат: CatalogRef | Undefined.

Ссылка = A1sCatalogs.GetRef(Value);

Менеджер справочника по имени.

Полная сигнатураManager(Name) → CatalogManager
ПараметрТипОписание
NameStringИмя справочника
ВозвращаетCatalogManager
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Менеджер справочника по имени.
// Граница: Обязательные параметры: Name
// Результат: CatalogManager.

Результат = A1sCatalogs.Manager("Name");

Пустая ссылка справочника.

Полная сигнатураEmpty(Name) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Пустая ссылка справочника.
// Граница: Обязательные параметры: Name
// Результат: CatalogRef.

Ссылка = A1sCatalogs.Empty("Name");

Создание

Фабрики и конструкторы объектов модуля.

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

Полная сигнатураOf(Name, Attrs = Неопределено) → CatalogObject
ПараметрТипОписание
NameStringИмя справочника в метаданных
AttrsStructureРеквизиты (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Создаёт новый элемент справочника и заполняет реквизиты из структуры.
// Граница: Обязательные параметры: Name
// Результат: CatalogObject.

Товар = A1sCatalogs.Of("Номенклатура", A1sDS.Of(
      "Наименование", "Квартира 101",
      "Родитель", ГруппаКвартиры,
      "ЕдиницаИзмерения", Шт));
  A1sCatalogs.Write(Товар);

Создаёт группу (папку) справочника.

Полная сигнатураCreateGroup(Name, Description, Parent = Неопределено, Attrs = Неопределено) → CatalogObject
ПараметрТипОписание
NameStringИмя справочника
DescriptionStringНаименование группы
ParentCatalogRefРодитель. Необязательно. По умолчанию: Неопределено.
AttrsStructureДоп.реквизиты. Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Создаёт группу (папку) справочника.
// Граница: Обязательные параметры: Name, Description
// Результат: CatalogObject.

Группа = A1sCatalogs.CreateGroup("Номенклатура", "Квартиры — корпус А");
  A1sCatalogs.Write(Группа);

Копирует существующий элемент с возможностью переопределения реквизитов.

Полная сигнатураCopy(ItemRef, Overrides = Неопределено) → CatalogObject
ПараметрТипОписание
ItemRefCatalogRefСсылка на элемент-образец
OverridesStructureРеквизиты для переопределения По умолчанию: Неопределено.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Копирует существующий элемент с возможностью переопределения реквизитов.
// Граница: Обязательные параметры: ItemRef
// Результат: CatalogObject.

Копия = A1sCatalogs.Copy(ШаблонТовара, A1sDS.Of("Наименование", "Квартира 202"));

Подключается к существующему элементу справочника: из ссылки возвращает объект, объект возвращает как есть. Симметрична Of() — та создаёт, эта подключает.

Полная сигнатураOfRef(ItemOrRef, Attrs = Неопределено) → CatalogObject
ПараметрТипОписание
ItemOrRefArbitraryСсылка или объект справочника
AttrsStructureРеквизиты для немедленного обновления. Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Подключается к существующему элементу справочника: из ссылки возвращает объект, объект возвращает как есть. Симметрична Of() — та создаёт, эта подключает.
// Граница: Обязательные параметры: ItemOrRef
// Результат: CatalogObject.

// Получить объект и изменить вручную:
  Объект = A1sCatalogs.OfRef(ТоварСсылка);
  Объект.Цена = 5000;
  Объект.Записать();

  // С немедленным заполнением:
  Объект = A1sCatalogs.OfRef(ТоварСсылка,
      A1sDS.Of("Цена", 5000, "ВидНоменклатуры", ВидТовар));
  Объект.Записать();

Создаёт новый элемент справочника и заполняет реквизиты с авторазрешением строк в ссылки. Комбинирует Of + FillAuto. Строковые значения разрешаются через EnsureByType по метаданным реквизита. Симметрична A1sDocs.OfAuto.

Полная сигнатураOfAuto(Name, Attrs = Неопределено) → CatalogObject
ПараметрТипОписание
NameStringИмя справочника в метаданных
AttrsStructureСырые данные реквизитов (строки допустимы) По умолчанию: Неопределено.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Создаёт новый элемент справочника и заполняет реквизиты с авторазрешением строк в ссылки. Комбинирует Of + FillAuto. Строковые значения разрешаются через EnsureByType по метаданным реквизита. Симметрична A1sDocs.OfAuto.
// Граница: Обязательные параметры: Name
// Результат: CatalogObject.

Товар = A1sCatalogs.OfAuto("Номенклатура",
      A1sDS.Of("Наименование", "Квартира 101",
               "ЕдиницаИзмерения", "шт",     ← строка → EnsureByType автоматически
               "Родитель",        ГрКвартиры));
  A1sCatalogs.Write(Товар);

Ensure и upsert

Гарантированное получение или создание элементов, включая массовые сценарии.

Находит элемент по наименованию. Если не найден — создаёт, заполняет, записывает. Ключевой паттерн для создания номенклатуры на лету при заполнении документов.

Полная сигнатураEnsure(Name, Description, Attrs = Неопределено, ExactMatch = Истина) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
DescriptionStringНаименование для поиска/создания
AttrsStructureРеквизиты для нового элемента (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ExactMatchBooleanТочное совпадение наименования (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит элемент по наименованию. Если не найден — создаёт, заполняет, записывает. Ключевой паттерн для создания номенклатуры на лету при заполнении документов.
// Граница: Обязательные параметры: Name, Description
// Результат: CatalogRef.

// При загрузке квартир в документ — создаёт если не существует:
  Кв101 = A1sCatalogs.Ensure("Номенклатура", "Квартира 101",
      A1sDS.Of("Родитель", ГрКвартиры, "ЕдиницаИзмерения", Шт));

  // Далее используем в документе:
  A1sDocs.AddRow(Док, "Продукция", A1sDS.Of("Номенклатура", Кв101, "Количество", 1));

  // Контрагент — найти или создать:
  Покупатель = A1sCatalogs.Ensure("Контрагенты", "ООО Ромашка",
      A1sDS.Of("ИНН", "7707083893", "КПП", "770701001"));

Находит элемент по коду. Если не найден — создаёт, заполняет, записывает.

Полная сигнатураEnsureByCode(Name, Code, Attrs = Неопределено) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
CodeStringКод для поиска
AttrsStructureРеквизиты для нового элемента По умолчанию: Неопределено.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит элемент по коду. Если не найден — создаёт, заполняет, записывает.
// Граница: Обязательные параметры: Name, Code
// Результат: CatalogRef.

Валюта = A1sCatalogs.EnsureByCode("Валюты", "840",
      A1sDS.Of("Наименование", "Доллар США"));

Находит группу по наименованию. Если не найдена — создаёт, записывает.

Полная сигнатураEnsureGroup(Name, Description, Parent = Неопределено) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
DescriptionStringНаименование группы
ParentCatalogRefРодитель. Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит группу по наименованию. Если не найдена — создаёт, записывает.
// Граница: Обязательные параметры: Name, Description
// Результат: CatalogRef.

ГрКвартиры = A1sCatalogs.EnsureGroup("Номенклатура", "Квартиры — корпус А");
  ГрПитание = A1sCatalogs.EnsureGroup("НоменклатурныеГруппы", "ПИТАНИЕ");

Массовое создание: для каждого наименования в массиве — Ensure. Возвращает массив ссылок (параллельный входному).

Полная сигнатураEnsureBatch(Name, Descriptions, Attrs = Неопределено) → Array
ПараметрТипОписание
NameStringИмя справочника
DescriptionsArrayМассив наименований
AttrsStructureОбщие реквизиты для всех создаваемых По умолчанию: Неопределено.
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Массовое создание: для каждого наименования в массиве — Ensure. Возвращает массив ссылок (параллельный входному).
// Граница: Обязательные параметры: Name, Descriptions
// Результат: Array.

Имена = A1sAR.Of("Квартира 101", "Квартира 102", "Квартира 103");
  Ссылки = A1sCatalogs.EnsureBatch("Номенклатура", Имена,
      A1sDS.Of("Родитель", ГрКвартиры));

Находит или создаёт элемент, определяя справочник по типу реквизита метаданных. Ключевой паттерн Data-Driven: код не знает имя справочника — он берёт его из метаданных.

Полная сигнатураEnsureByType(TypeValue, Description, Attrs = Неопределено) → CatalogRef
ПараметрТипОписание
TypeValueArbitraryОписаниеТипов или Тип реквизита (из Метаданные.Реквизиты[N].Тип)
DescriptionStringНаименование для поиска/создания
AttrsStructureРеквизиты для нового элемента. Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит или создаёт элемент, определяя справочник по типу реквизита метаданных. Ключевой паттерн Data-Driven: код не знает имя справочника — он берёт его из метаданных.
// Граница: Обязательные параметры: TypeValue, Description
// Результат: CatalogRef.

// Универсальная привязка: не хардкодим "Номенклатура", берём тип из метаданных ТЧ
  МетаТЧ = Документы.ОтчётПроизводства.ТабличныеЧасти.Продукция;
  ТипРеквизита
          = МетаТЧ.Реквизиты.Номенклатура.Тип;  //✏

  // EnsureByType сам поймёт, что нужен справочник "Номенклатура"
  Ссылка
          = A1sCatalogs.EnsureByType(
                  ТипРеквизита,
                  "Квартира 101");  //▶️

Upsert-паттерн: находит элемент и ОБНОВЛЯЕТ реквизиты, или создаёт новый. В отличие от Ensure (который пропускает найденный), EnsureUpdate всегда синхронизирует данные. Идеально для регулярной загрузки прайс-листов, ГИС ЖКХ, CRM-синхронизации.

Полная сигнатураEnsureUpdate(Name, Description, Attrs = Неопределено, ExactMatch = Истина, AutoResolve = Ложь) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
DescriptionStringНаименование для поиска/создания
AttrsStructureРеквизиты для обновления/заполнения (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ExactMatchBooleanТочное совпадение наименования (по умолчанию Истина) По умолчанию: Истина.
AutoResolveBooleanПараметр публичной сигнатуры. По умолчанию: Ложь.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Upsert-паттерн: находит элемент и ОБНОВЛЯЕТ реквизиты, или создаёт новый. В отличие от Ensure (который пропускает найденный), EnsureUpdate всегда синхронизирует данные. Идеально для регулярной загрузки прайс-листов, ГИС ЖКХ, CRM-синхронизации.
// Граница: Обязательные параметры: Name, Description
// Результат: CatalogRef.

// Синхронизация прайс-листа: обновит цену у существующих, создаст новые
  Для Каждого Позиция Из ПрайсЛист Цикл  //⟳
      A1sCatalogs.EnsureUpdate(
              "Номенклатура",
              Позиция.Наименование,
              A1sDS.Of(
                      "ЦенаПродажи", Позиция.Цена,
                      "Площадь",     Позиция.Площадь,
                      "Родитель",    ГруппаКвартир));  //▶️
  КонецЦикла;

Преобразование данных

Подготовка входных строк и ссылок по метаданным.

Трансформирует "сырую" структуру данных (из JSON/Excel) в структуру для A1sDocs.AddRow: строковые значения полей из Scheme заменяются на ссылки через Ensure. Декларативный альтернативный подход к ручному созданию ссылок в цикле загрузки.

Полная сигнатураMapRow(SourceData, Scheme = Неопределено) → Structure
ПараметрТипОписание
SourceDataStructureИсходная структура (строка JSON, строка ТЗ и т.д.)
SchemeStructureСхема маппинга: ключ=ИмяПоля, значение=ИмяСправочника (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ВозвращаетStructure
Примерпример из исходника · сигнатура проверена1C
// Намерение: Трансформирует "сырую" структуру данных (из JSON/Excel) в структуру для A1sDocs.AddRow: строковые значения полей из Scheme заменяются на ссылки через Ensure. Декларативный альтернативный подход к ручному созданию ссылок в цикле загрузки.
// Граница: Обязательные параметры: SourceData
// Результат: Structure.

// Декларируем схему один раз — цикл загрузки не трогаем при изменениях
  СхемаЗагрузки
          = A1sDS.Of(
                  "Номенклатура",     "Номенклатура",
                  "ЕдиницаИзмерения", "КлассификаторЕдиницИзмерения");  //✏

  Для Каждого Строка Из ДанныеJSON Цикл  //⟳
      // MapRow сам найдёт/создаст "шт" → ссылку, "Кв 101" → ссылку
      ДляДокумента
              = A1sCatalogs.MapRow(
                      Строка,
                      СхемаЗагрузки);  //▶️
      A1sDocs.AddRow(Док, "Продукция", ДляДокумента);
  КонецЦикла;

Возвращает массив уникальных заполненных ссылок из поля ТЧ документа. Используется для постобработки после загрузки: обновить все справочники, встреченные в документах.

Полная сигнатураPickFromDocument(DocRef, TabName, FieldName) → Array
ПараметрТипОписание
DocRefDocumentRefСсылка на документ
TabNameStringИмя табличной части
FieldNameStringИмя поля-ссылки в ТЧ
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает массив уникальных заполненных ссылок из поля ТЧ документа. Используется для постобработки после загрузки: обновить все справочники, встреченные в документах.
// Граница: Обязательные параметры: DocRef, TabName, FieldName
// Результат: Array.

// Собрать все уникальные квартиры из загруженных документов и массово обновить
  Для Каждого ДокСсылка Из ЗагруженныеДоки Цикл  //⟳
      Квартиры
              = A1sCatalogs.PickFromDocument(
                      ДокСсылка,
                      "Продукция",
                      "Номенклатура");  //▶️
      A1sCatalogs.UpdateAll(Квартиры, A1sDS.Of("ЭтапСтроительства", ЭтапСдано));
  КонецЦикла;

Реквизиты и табличные части

Заполнение реквизитов и строк табличных частей.

Заполняет реквизиты элемента из структуры.

Полная сигнатураFillAttrs(Item, Data) → CatalogObject
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
DataStructureСтруктура реквизитов (A1sDS.Of(...))
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Заполняет реквизиты элемента из структуры.
// Граница: Обязательные параметры: Item, Data
// Результат: CatalogObject.

A1sCatalogs.FillAttrs(ТоварОбъект, A1sDS.Of("Цена", 5000, "ВидНоменклатуры", ВидТовар));

Заполняет реквизиты элемента из структуры.

Полная сигнатураFill(Item, Data, StrictMode = Ложь) → CatalogObject
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
DataStructureСтруктура реквизитов (A1sDS.Of(...))
StrictModeBooleanПараметр публичной сигнатуры. По умолчанию: Ложь.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Заполняет реквизиты элемента из структуры.
// Граница: Обязательные параметры: Item, Data
// Результат: CatalogObject.

A1sCatalogs.Fill(ТоварОбъект, A1sDS.Of("Цена", 5000, "ВидНоменклатуры", ВидТовар));

Заполняет реквизиты элемента с автоматическим разрешением строк в ссылки. Аналог Fill, но строковые значения реквизитов-справочников разрешаются через EnsureByType по типу из метаданных. Используется транслятором DSL когда в SET есть строковые значения.

Полная сигнатураFillAuto(Item, Data, StrictMode = Ложь) → CatalogObject
ПараметрТипОписание
ItemArbitraryОбъект или ссылка на элемент справочника
DataStructureСырые данные реквизитов (строки допустимы)
StrictModeBooleanПараметр публичной сигнатуры. По умолчанию: Ложь.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Заполняет реквизиты элемента с автоматическим разрешением строк в ссылки. Аналог Fill, но строковые значения реквизитов-справочников разрешаются через EnsureByType по типу из метаданных. Используется транслятором DSL когда в SET есть строковые значения.
// Граница: Обязательные параметры: Item, Data
// Результат: CatalogObject.

// DSL: ENSURE Cat "Контрагенты" BY "ООО Ромашка"
  //      SET
  //        ИНН         = "7701234567"      ← строка-примитив → как есть
  //        ГруппаРиска = "Средний"          ← строка → ENSURE "ГруппыРиска" авто
  A1sCatalogs.FillAuto(
          КонтрагентОбъект,
          A1sDS.Of(
                  "ИНН",        "7701234567",
                  "ГруппаРиска","Средний"));  //

Устанавливает значение одного реквизита.

Полная сигнатураSet(Item, Key, Value) → CatalogObject
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
KeyStringИмя реквизита
ValueArbitraryЗначение
ВозвращаетCatalogObject
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Устанавливает значение одного реквизита.
// Граница: Обязательные параметры: Item, Key, Value
// Результат: CatalogObject.

Результат = A1sCatalogs.Set(Ссылка, "Key", Value);

Добавляет одну строку в табличную часть элемента.

Полная сигнатураAddRow(Item, TabName, RowData) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
RowDataStructureДанные строки (A1sDS.Of(...))
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Добавляет одну строку в табличную часть элемента.
// Граница: Обязательные параметры: Item, TabName, RowData
// Результат: Number.

Результат = A1sCatalogs.AddRow(Ссылка, "Товары", Параметры);

Добавляет одну строку в ТЧ с автоматическим разрешением строк в ссылки. Типы реквизитов берутся из метаданных ТЧ — не нужно знать имена справочников. Используется транслятором DSL когда строки ТЧ содержат строковые значения ссылочных полей.

Полная сигнатураAddRowAuto(Item, TabName, RowData) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка на элемент справочника
TabNameStringИмя табличной части
RowDataStructureДанные строки (строки допустимы)
ВозвращаетNumber
Примерпример из исходника · сигнатура проверена1C
// Намерение: Добавляет одну строку в ТЧ с автоматическим разрешением строк в ссылки. Типы реквизитов берутся из метаданных ТЧ — не нужно знать имена справочников. Используется транслятором DSL когда строки ТЧ содержат строковые значения ссылочных полей.
// Граница: Обязательные параметры: Item, TabName, RowData
// Результат: Number.

// Штрихкоды — поле ТипШтрихкода ссылается на справочник,
  // но нам не нужно писать EnsureByType вручную:
  A1sCatalogs.AddRowAuto(
          НоменклатураОбъект,
          "Штрихкоды",
          A1sDS.Of(
                  "Штрихкод",      "4607132101517",
                  "ТипШтрихкода",  "EAN13"));  //  ← строка → ENSURE автоматически

Добавляет несколько строк из ТаблицыЗначений или массива структур.

Полная сигнатураAddRows(Item, TabName, Source, FieldMapping = Неопределено) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
SourceArbitraryТаблицаЗначений или Массив структур
FieldMappingStructureМаппинг колонок. Необязательно. По умолчанию: Неопределено.
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Добавляет несколько строк из ТаблицыЗначений или массива структур.
// Граница: Обязательные параметры: Item, TabName, Source
// Результат: Number.

Результат = A1sCatalogs.AddRows(Ссылка, "Товары", Source);

Очищает табличную часть.

Полная сигнатураClearRows(Item, TabName) → —
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
Возвращает
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Очищает табличную часть.
// Граница: Обязательные параметры: Item, TabName
// Результат: —.

A1sCatalogs.ClearRows(Ссылка, "Товары");

Экспортирует табличную часть в массив структур.

Полная сигнатураExportRows(Item, TabName, Columns = "") → Array
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
ColumnsStringКолонки через запятую (все если пусто) По умолчанию: "".
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Экспортирует табличную часть в массив структур.
// Граница: Обязательные параметры: Item, TabName
// Результат: Array.

Массив = A1sCatalogs.ExportRows(Ссылка, "Товары");

Количество строк в табличной части.

Полная сигнатураRowCount(Item, TabName) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Количество строк в табличной части.
// Граница: Обязательные параметры: Item, TabName
// Результат: Number.

Результат = A1sCatalogs.RowCount(Ссылка, "Товары");

Загружает массив структур в ТЧ с авторазрешением строк в ссылки. Для каждой строки вызывает AddRowAuto — типы берутся из метаданных ТЧ. Аналог A1sDocs.LoadRows для табличных частей справочников.

Полная сигнатураLoadTabRows(Item, TabName, Rows) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка на элемент
TabNameStringИмя табличной части
RowsArrayМассив структур
ВозвращаетNumber
Примерпример из исходника · сигнатура проверена1C
// Намерение: Загружает массив структур в ТЧ с авторазрешением строк в ссылки. Для каждой строки вызывает AddRowAuto — типы берутся из метаданных ТЧ. Аналог A1sDocs.LoadRows для табличных частей справочников.
// Граница: Обязательные параметры: Item, TabName, Rows
// Результат: Number.

// Загрузить штрихкоды из JSON с авторазрешением ТипШтрихкода:
  A1sCatalogs.LoadTabRows(
          НоменклатураОбъект,
          "Штрихкоды",
          МассивИзJSON);  //

Очищает ТЧ и загружает строки с авторазрешением ссылок.

Полная сигнатураSetLoadTabRows(Item, TabName, Rows) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
RowsArrayМассив структур
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Очищает ТЧ и загружает строки с авторазрешением ссылок.
// Граница: Обязательные параметры: Item, TabName, Rows
// Результат: Number.

Результат = A1sCatalogs.SetLoadTabRows(Ссылка, "Товары", Rows);

Загружает строки табличной части после переименования полей через A1sDS.RenameFields.

Полная сигнатураLoadTabRowsMapped(Item, TabName, Rows, FieldMapping) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
RowsArrayМассив структур с именами источника
FieldMappingStructureA1sDS.Of("ИмяВИсточнике", "ИмяВТЧ", ...)
ВозвращаетNumber
Примерпример из исходника · сигнатура проверена1C
// Намерение: Загружает строки табличной части после переименования полей через A1sDS.RenameFields.
// Граница: Обязательные параметры: Item, TabName, Rows, FieldMapping
// Результат: Number.

// JSON содержит "barcode", "type" — а в ТЧ "Штрихкод", "ТипШтрихкода"
  A1sCatalogs.LoadTabRowsMapped(
          НоменклатураОбъект,
          "Штрихкоды",
          МассивИзJSON,
          A1sDS.Of(
                  "barcode", "Штрихкод",
                  "type",    "ТипШтрихкода"));  //

Очищает ТЧ и загружает строки с переименованием и авторазрешением ссылок.

Полная сигнатураSetLoadTabRowsMapped(Item, TabName, Rows, FieldMapping) → Number
ПараметрТипОписание
ItemArbitraryОбъект или ссылка
TabNameStringИмя табличной части
RowsArrayМассив структур
FieldMappingStructureСхема переименования
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Очищает ТЧ и загружает строки с переименованием и авторазрешением ссылок.
// Граница: Обязательные параметры: Item, TabName, Rows, FieldMapping
// Результат: Number.

Результат = A1sCatalogs.SetLoadTabRowsMapped(Ссылка, "Товары", Rows, "Наименование");

Запись и изменение

Запись, обновление, перемещение и пометка удаления.

Записывает элемент и возвращает ссылку.

Полная сигнатураWrite(Item, ShowMessage = Истина) → CatalogRef
ПараметрТипОписание
ItemArbitraryОбъект элемента
ShowMessageBooleanУстаревший параметр (игнорируется, для обратной совместимости) По умолчанию: Истина.
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Записывает элемент и возвращает ссылку.
// Граница: Обязательные параметры: Item
// Результат: CatalogRef.

Ссылка = A1sCatalogs.Write(Ссылка);

Пометка/снятие пометки удаления.

Полная сигнатураMarkForDeletion(ItemRef, Mark = Истина, ShowMessage = Истина) → CatalogRef
ПараметрТипОписание
ItemRefCatalogRefСсылка на элемент
MarkBooleanПометка (по умолчанию Истина) По умолчанию: Истина.
ShowMessageBooleanПараметр публичной сигнатуры. По умолчанию: Истина.
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Пометка/снятие пометки удаления.
// Граница: Обязательные параметры: ItemRef
// Результат: CatalogRef.

Ссылка = A1sCatalogs.MarkForDeletion(Ссылка);

Обновляет реквизиты элемента. Принимает структуру полей ИЛИ имя поля + значение (обратная совместимость с v1).

Полная сигнатураUpdate(ItemRef, FieldsOrName, ValueOrWrite = Истина, DoWrite = Истина) → Boolean
ПараметрТипОписание
ItemRefCatalogRefСсылка на элемент
FieldsOrNameArbitraryСтруктура полей (A1sDS.Of(...)) ИЛИ строка — имя поля
ValueOrWriteArbitraryЗначение поля (если строка) ИЛИ DoWrite (если структура) По умолчанию: Истина.
DoWriteBooleanЗаписать сразу (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетBoolean
Примерпример из исходника · сигнатура проверена1C
// Намерение: Обновляет реквизиты элемента. Принимает структуру полей ИЛИ имя поля + значение (обратная совместимость с v1).
// Граница: Обязательные параметры: ItemRef, FieldsOrName
// Результат: Boolean.

// Новый стиль (структура):
  A1sCatalogs.Update(ТоварСсылка, A1sDS.Of("Цена", 5000, "Активен", Истина));

  // Старый стиль (одно поле) — по-прежнему работает:
  A1sCatalogs.Update(ТоварСсылка, "Цена", 5000);

Массовое обновление реквизитов. Принимает структуру полей ИЛИ имя поля + значение (обратная совместимость с v1).

Полная сигнатураUpdateAll(Items, FieldsOrName, NewValue = Неопределено) → Structure
ПараметрТипОписание
ItemsArrayМассив ссылок
FieldsOrNameArbitraryСтруктура полей ИЛИ строка — имя поля
NewValueArbitraryЗначение (если строка). Необязательно. По умолчанию: Неопределено.
ВозвращаетStructure
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Массовое обновление реквизитов. Принимает структуру полей ИЛИ имя поля + значение (обратная совместимость с v1).
// Граница: Обязательные параметры: Items, FieldsOrName
// Результат: Structure.

Данные = A1sCatalogs.UpdateAll(Ссылка, "Наименование");

Массовая пометка удаления.

Полная сигнатураMarkForDeletionBatch(Items, Mark = Истина) → Structure
ПараметрТипОписание
ItemsArrayМассив ссылок
MarkBooleanПометка (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетStructure
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Массовая пометка удаления.
// Граница: Обязательные параметры: Items
// Результат: Structure.

Данные = A1sCatalogs.MarkForDeletionBatch(Ссылка);

Перемещает элемент в другую группу.

Полная сигнатураMove(ItemRef, NewParent, DoWrite = Истина) → CatalogRef
ПараметрТипОписание
ItemRefCatalogRefСсылка на элемент
NewParentCatalogRefНовый родитель
DoWriteBooleanПараметр публичной сигнатуры. По умолчанию: Истина.
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Перемещает элемент в другую группу.
// Граница: Обязательные параметры: ItemRef, NewParent
// Результат: CatalogRef.

Ссылка = A1sCatalogs.Move(Ссылка, Ссылка);

Массовое перемещение элементов.

Полная сигнатураMoveBatch(Items, NewParent) → Structure
ПараметрТипОписание
ItemsArrayМассив ссылок
NewParentCatalogRefНовый родитель
ВозвращаетStructure
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Массовое перемещение элементов.
// Граница: Обязательные параметры: Items, NewParent
// Результат: Structure.

Данные = A1sCatalogs.MoveBatch(Ссылка, Ссылка);

Поиск

Поиск одиночных элементов по имени, коду, реквизиту и GUID.

Находит элемент по наименованию. Если указан Parent — ищет в конкретной группе.

Полная сигнатураByName(Name, Description, Parent = Неопределено, ExactMatch = Истина) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
DescriptionStringНаименование
ParentCatalogRefРодитель для поиска в группе. Необязательно. По умолчанию: Неопределено.
ExactMatchBooleanТочное совпадение (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Находит элемент по наименованию. Если указан Parent — ищет в конкретной группе.
// Граница: Обязательные параметры: Name, Description
// Результат: CatalogRef.

Ссылка = A1sCatalogs.ByName("Name", "Товар");

Находит элемент по коду.

Полная сигнатураByCode(Name, Code) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
CodeStringКод
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Находит элемент по коду.
// Граница: Обязательные параметры: Name, Code
// Результат: CatalogRef.

Ссылка = A1sCatalogs.ByCode("Name", "000001");

Находит элемент по значению реквизита.

Полная сигнатураByAttr(Name, AttrName, Value) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
AttrNameStringИмя реквизита
ValueArbitraryЗначение
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Находит элемент по значению реквизита.
// Граница: Обязательные параметры: Name, AttrName, Value
// Результат: CatalogRef.

Ссылка = A1sCatalogs.ByAttr("Name", "Наименование", Value);

Находит элемент по GUID ссылки.

Полная сигнатураByGUID(Name, GUIDStr) → CatalogRef
ПараметрТипОписание
NameStringИмя справочника
GUIDStrStringСтрока GUID
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Находит элемент по GUID ссылки.
// Граница: Обязательные параметры: Name, GUIDStr
// Результат: CatalogRef.

Ссылка = A1sCatalogs.ByGUID("Name", Идентификатор);

Находит элементы по списку наименований (строка через разделитель).

Полная сигнатураByNameList(Name, DescriptionList, Separator = ",") → Array
ПараметрТипОписание
NameStringИмя справочника
DescriptionListStringНаименования через разделитель
SeparatorStringРазделитель (по умолчанию ",") По умолчанию: ",".
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит элементы по списку наименований (строка через разделитель).
// Граница: Обязательные параметры: Name, DescriptionList
// Результат: Array.

Валюты = A1sCatalogs.ByNameList("Валюты", "USD,EUR,CNY");

Пакетный поиск

Выбор массивов ссылок и пакетная обработка критериев.

Выбрать несколько элементов по наименованиям (массив).

Полная сигнатураPickByName(CatalogName, Names) → Array
ПараметрТипОписание
CatalogNameStringИмя справочника
NamesArrayМассив наименований
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Выбрать несколько элементов по наименованиям (массив).
// Граница: Обязательные параметры: CatalogName, Names
// Результат: Array.

Группы = A1sCatalogs.PickByName("НоменклатурныеГруппы",
      A1sAR.Of("ПРОЖИВАНИЕ", "ПИТАНИЕ", "ПРОЧИЕ УСЛУГИ"));

Выбрать несколько элементов по кодам (массив).

Полная сигнатураPickByCode(CatalogName, Codes) → Array
ПараметрТипОписание
CatalogNameStringИмя справочника
CodesArrayМассив кодов
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Выбрать несколько элементов по кодам (массив).
// Граница: Обязательные параметры: CatalogName, Codes
// Результат: Array.

Товары = A1sCatalogs.PickByCode("Номенклатура",
      A1sAR.Of("000001", "000002", "000003"));

Выбрать элементы по значению реквизита (массив значений).

Полная сигнатураPickByAttr(CatalogName, AttrName, Values) → Array
ПараметрТипОписание
CatalogNameStringИмя справочника
AttrNameStringИмя реквизита
ValuesArrayМассив значений
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Выбрать элементы по значению реквизита (массив значений).
// Граница: Обязательные параметры: CatalogName, AttrName, Values
// Результат: Array.

Контрагенты = A1sCatalogs.PickByAttr("Контрагенты", "ИНН",
      A1sAR.Of("7701234567", "7707654321"));

Выбрать предопределённые элементы (массив имён).

Полная сигнатураPickPredefined(CatalogName, PredefinedNames) → Array
ПараметрТипОписание
CatalogNameStringИмя справочника
PredefinedNamesArrayМассив имён предопределённых
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Выбрать предопределённые элементы (массив имён).
// Граница: Обязательные параметры: CatalogName, PredefinedNames
// Результат: Array.

Виды = A1sCatalogs.PickPredefined("ВидыНоменклатуры",
      A1sAR.Of("Товар", "Услуга", "Работа"));

Все элементы в группе (включая вложенные).

Полная сигнатураAllInGroup(CatalogName, GroupRef, IncludeNested = Истина) → Array
ПараметрТипОписание
CatalogNameStringИмя справочника
GroupRefCatalogRefСсылка на группу
IncludeNestedBooleanВключать вложенные (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Все элементы в группе (включая вложенные).
// Граница: Обязательные параметры: CatalogName, GroupRef
// Результат: Array.

Массив = A1sCatalogs.AllInGroup("Номенклатура", Ссылка);

Все элементы подчинённого справочника по владельцу.

Полная сигнатураAllByOwner(CatalogName, OwnerRef) → Array
ПараметрТипОписание
CatalogNameStringИмя подчинённого справочника
OwnerRefCatalogRefСсылка на владельца
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Все элементы подчинённого справочника по владельцу.
// Граница: Обязательные параметры: CatalogName, OwnerRef
// Результат: Array.

Массив = A1sCatalogs.AllByOwner("Номенклатура", Ссылка);

Возвращает Соответствие (Наименование → Ссылка) для переданных наименований. Ненайденные элементы в результат не включаются.

Полная сигнатураMapByName(CatalogName, Names) → Map
ПараметрТипОписание
CatalogNameStringИмя справочника
NamesArrayМассив наименований для поиска
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (Наименование → Ссылка) для переданных наименований. Ненайденные элементы в результат не включаются.
// Граница: Обязательные параметры: CatalogName, Names
// Результат: Map.

// По именам получить соответствие для быстрой адресации:
  Группы = A1sCatalogs.MapByName("НоменклатурныеГруппы",
      A1sAR.Of("ПРОЖИВАНИЕ", "ПИТАНИЕ", "ПРОЧИЕ УСЛУГИ"));

  // Использование:
  A1sDocs.AddRow(Док, "Продукция",
      A1sDS.Of("НоменклатурнаяГруппа", Группы["ПИТАНИЕ"], "Количество", 1));

Возвращает Соответствие (Наименование → Ссылка): ищет, при отсутствии — создаёт. Все переданные имена гарантированно присутствуют в результате.

Полная сигнатураEnsureMapByName(CatalogName, Names, Attrs = Неопределено) → Map
ПараметрТипОписание
CatalogNameStringИмя справочника
NamesArrayМассив наименований
AttrsStructureОбщие реквизиты для создаваемых элементов. Необязательно. По умолчанию: Неопределено.
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (Наименование → Ссылка): ищет, при отсутствии — создаёт. Все переданные имена гарантированно присутствуют в результате.
// Граница: Обязательные параметры: CatalogName, Names
// Результат: Map.

// Получить или создать статьи ДДС — вернуть соответствие:
  СтатьиДДС = A1sCatalogs.EnsureMapByName(
      "СтатьиДвиженияДенежныхСредств",
      A1sAR.Of("Основная деятельность", "Капиталовложения", "Финансовая деятельность"),
      A1sDS.Of("Вид", Перечисления.ВидыСтатейДДС.Прочее));

  // Использование:
  .Set("СтатьяДДС", СтатьиДДС["Капиталовложения"])

Возвращает Соответствие (Код → Ссылка) для переданных кодов. Ненайденные элементы в результат не включаются.

Полная сигнатураMapByCode(CatalogName, Codes) → Map
ПараметрТипОписание
CatalogNameStringИмя справочника
CodesArrayМассив кодов
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (Код → Ссылка) для переданных кодов. Ненайденные элементы в результат не включаются.
// Граница: Обязательные параметры: CatalogName, Codes
// Результат: Map.

Валюты = A1sCatalogs.MapByCode("Валюты", A1sAR.Of("840", "978", "156"));
  .Set("ВалютаРасчётов", Валюты["840"])  // USD

Возвращает Соответствие (Код → Ссылка): ищет, при отсутствии — создаёт. Все переданные коды гарантированно присутствуют в результате.

Полная сигнатураEnsureMapByCode(CatalogName, Codes, Attrs = Неопределено) → Map
ПараметрТипОписание
CatalogNameStringИмя справочника
CodesArrayМассив кодов
AttrsStructureОбщие реквизиты для создаваемых элементов. Необязательно. По умолчанию: Неопределено.
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (Код → Ссылка): ищет, при отсутствии — создаёт. Все переданные коды гарантированно присутствуют в результате.
// Граница: Обязательные параметры: CatalogName, Codes
// Результат: Map.

Валюты = A1sCatalogs.EnsureMapByCode("Валюты",
      A1sAR.Of("840", "978", "156"),
      A1sDS.Of("Наименование", "?")); // Наименование обновится при создании

Возвращает Соответствие (ЗначениеРеквизита → Ссылка) для переданных значений. Запрос выполняется одним обращением к базе — эффективен для больших наборов.

Полная сигнатураMapByAttr(CatalogName, AttrName, Values) → Map
ПараметрТипОписание
CatalogNameStringИмя справочника
AttrNameStringИмя реквизита (ключ поиска)
ValuesArrayМассив значений реквизита
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (ЗначениеРеквизита → Ссылка) для переданных значений. Запрос выполняется одним обращением к базе — эффективен для больших наборов.
// Граница: Обязательные параметры: CatalogName, AttrName, Values
// Результат: Map.

// По ИНН получить соответствие контрагентов за один запрос:
  КонтрагентыПоИНН = A1sCatalogs.MapByAttr(
      "Контрагенты", "ИНН",
      A1sAR.Of("7701234567", "7707654321", "7708572512"));

  Для Каждого Строка Из ДанныеИмпорта Цикл
      Контрагент = КонтрагентыПоИНН[Строка.ИНН];
      Если Контрагент <> Неопределено Тогда
          // нашли — используем
      КонецЕсли;
  КонецЦикла;

Возвращает Соответствие (Наименование → Ссылка) запросом — эффективно для больших наборов (один запрос вместо N вызовов НайтиПоНаименованию).

Полная сигнатураMapByNameQ(CatalogName, Names) → Map
ПараметрТипОписание
CatalogNameStringИмя справочника
NamesArrayМассив наименований
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (Наименование → Ссылка) запросом — эффективно для больших наборов (один запрос вместо N вызовов НайтиПоНаименованию).
// Граница: Обязательные параметры: CatalogName, Names
// Результат: Map.

// 50 наименований — один запрос вместо 50 обращений к НайтиПоНаименованию:
  СтатьиMap = A1sCatalogs.MapByNameQ("СтатьиЗатрат", МассивИменИзJSON);
  .Set("СтатьяЗатрат", СтатьиMap["Материалы"])

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

Полная сигнатураEnsureMapByNameQ(CatalogName, Names, Attrs = Неопределено) → Map
ПараметрТипОписание
CatalogNameStringИмя справочника
NamesArrayМассив наименований
AttrsStructureРеквизиты для создаваемых. Необязательно. По умолчанию: Неопределено.
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Версия EnsureMapByName с пакетным запросом для поиска существующих. Сначала находит всё одним запросом, затем создаёт только отсутствующие.
// Граница: Обязательные параметры: CatalogName, Names
// Результат: Map.

// 20 групп номенклатуры — создать отсутствующие, вернуть все разом:
  Группы = A1sCatalogs.EnsureMapByNameQ(
      "НоменклатурныеГруппы",
      A1sAR.Of("ПРОЖИВАНИЕ", "ПИТАНИЕ", "ПРОЧИЕ УСЛУГИ", "СПОРТ"));

  НоваяСтрока.НоменклатурнаяГруппа = Группы["ПИТАНИЕ"];

Карты и запросы

Формирование соответствий ключ → ссылка через выборки и запросы.

Массив ссылок по произвольному условию.

Полная сигнатураRefs(Name, Where = "", Params = Неопределено, OrderBy = "") → Array
ПараметрТипОписание
NameStringИмя справочника
WhereStringУсловие ГДЕ (без слова ГДЕ) По умолчанию: "".
ParamsStructureПараметры запроса По умолчанию: Неопределено.
OrderByStringСортировка По умолчанию: "".
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Массив ссылок по произвольному условию.
// Граница: Обязательные параметры: Name
// Результат: Array.

Активные = A1sCatalogs.Refs("Номенклатура",
      "НЕ ПометкаУдаления И ВидНоменклатуры = &Вид",
      A1sDS.Of("Вид", ВидТовар), "Наименование");

Подсчёт элементов по условию.

Полная сигнатураCount(Name, Where = "", Params = Неопределено) → Number
ПараметрТипОписание
NameStringИмя справочника
WhereStringУсловие ГДЕ По умолчанию: "".
ParamsStructureПараметры запроса По умолчанию: Неопределено.
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Подсчёт элементов по условию.
// Граница: Обязательные параметры: Name
// Результат: Number.

Результат = A1sCatalogs.Count("Name");

Проверка существования элементов по условию.

Полная сигнатураExists(Name, Where = "", Params = Неопределено) → Boolean
ПараметрТипОписание
NameStringИмя справочника
WhereStringУсловие ГДЕ По умолчанию: "".
ParamsStructureПараметры запроса По умолчанию: Неопределено.
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверка существования элементов по условию.
// Граница: Обязательные параметры: Name
// Результат: Boolean.

Успешно = A1sCatalogs.Exists("Name");

Элементы верхнего уровня.

Полная сигнатураTopLevelItems(Name, IncludeGroups = Истина) → Array
ПараметрТипОписание
NameStringИмя справочника
IncludeGroupsBooleanВключать группы (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Элементы верхнего уровня.
// Граница: Обязательные параметры: Name
// Результат: Array.

Массив = A1sCatalogs.TopLevelItems("Name");

Иерархия

Родители, дети, уровни, пути и признаки групп.

Родитель элемента.

Полная сигнатураParent(ItemRef) → CatalogRef | Undefined
ПараметрТипОписание
ItemRefCatalogRefСсылка
ВозвращаетCatalogRef | Undefined
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Родитель элемента.
// Граница: Обязательные параметры: ItemRef
// Результат: CatalogRef | Undefined.

Ссылка = A1sCatalogs.Parent(Ссылка);

Дочерние элементы.

Полная сигнатураChildren(ItemRef, Recursive = Ложь) → Array
ПараметрТипОписание
ItemRefCatalogRefСсылка на родителя/группу
RecursiveBooleanВключая вложенные (по умолчанию Ложь) По умолчанию: Ложь.
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Дочерние элементы.
// Граница: Обязательные параметры: ItemRef
// Результат: Array.

Массив = A1sCatalogs.Children(Ссылка);

Уровень элемента в иерархии (0 = корень).

Полная сигнатураLevel(ItemRef) → Number
ПараметрТипОписание
ItemRefCatalogRefСсылка
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Уровень элемента в иерархии (0 = корень).
// Граница: Обязательные параметры: ItemRef
// Результат: Number.

Результат = A1sCatalogs.Level(Ссылка);

Полный путь элемента в иерархии.

Полная сигнатураPath(ItemRef, Separator = " / ") → String
ПараметрТипОписание
ItemRefCatalogRefСсылка
SeparatorStringРазделитель (по умолчанию " / ") По умолчанию: " / ".
ВозвращаетString
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Полный путь элемента в иерархии.
// Граница: Обязательные параметры: ItemRef
// Результат: String.

Текст = A1sCatalogs.Path(Ссылка);

Проверка наличия дочерних элементов.

Полная сигнатураHasChildren(ItemRef) → Boolean
ПараметрТипОписание
ItemRefCatalogRefСсылка
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверка наличия дочерних элементов.
// Граница: Обязательные параметры: ItemRef
// Результат: Boolean.

Успешно = A1sCatalogs.HasChildren(Ссылка);

Проверки состояния

Проверки пустоты, удаления, уникальности и других состояний.

Проверяет, является ли элемент группой.

Полная сигнатураIsGroup(ItemRef) → Boolean
ПараметрТипОписание
ItemRefCatalogRefСсылка
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли элемент группой.
// Граница: Обязательные параметры: ItemRef
// Результат: Boolean.

Успешно = A1sCatalogs.IsGroup(Ссылка);

Проверяет пустая ли ссылка.

Полная сигнатураIsEmpty(Name, Value) → Boolean
ПараметрТипОписание
NameStringИмя справочника
ValueArbitraryЗначение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет пустая ли ссылка.
// Граница: Обязательные параметры: Name, Value
// Результат: Boolean.

Успешно = A1sCatalogs.IsEmpty("Name", Value);

Проверяет помечен ли на удаление.

Полная сигнатураIsMarkedForDeletion(ItemRef) → Boolean
ПараметрТипОписание
ItemRefCatalogRefСсылка
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет помечен ли на удаление.
// Граница: Обязательные параметры: ItemRef
// Результат: Boolean.

Успешно = A1sCatalogs.IsMarkedForDeletion(Ссылка);

Проверка уникальности кода.

Полная сигнатураIsCodeUnique(Name, Code, ExcludeRef = Неопределено) → Boolean
ПараметрТипОписание
NameStringИмя справочника
CodeStringПроверяемый код
ExcludeRefCatalogRefИсключить из проверки. Необязательно. По умолчанию: Неопределено.
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверка уникальности кода.
// Граница: Обязательные параметры: Name, Code
// Результат: Boolean.

Успешно = A1sCatalogs.IsCodeUnique("Name", "000001");

Сведения об элементе

Получение компактного набора диагностических данных.

Детальная информация об элементе.

Полная сигнатураDetails(ItemRef, ExtraAttrs = "") → Structure
ПараметрТипОписание
ItemRefCatalogRefСсылка
ExtraAttrsStringДоп.реквизиты через запятую По умолчанию: "".
ВозвращаетStructure
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Детальная информация об элементе.
// Граница: Обязательные параметры: ItemRef
// Результат: Structure.

Данные = A1sCatalogs.Details(Ссылка);

Схемы метаданных

Типы и схемы реквизитов и табличных частей.

Тип реквизита шапки справочника.

Полная сигнатураAttrType(CatName, AttrName) → TypeDescription
ПараметрТипОписание
CatNameStringИмя справочника
AttrNameStringИмя реквизита
ВозвращаетTypeDescription
Примерпример из исходника · сигнатура проверена1C
// Намерение: Тип реквизита шапки справочника.
// Граница: Обязательные параметры: CatName, AttrName
// Результат: TypeDescription.

// Разрешить строку в ссылку по типу реквизита шапки
  Тип = A1sCatalogs.AttrType("Номенклатура", "ВидНоменклатуры");
  Ссылка = A1sCatalogs.EnsureByType(Тип, "Товар");

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

Полная сигнатураAttrSchema(CatName, ВключатьСтандартные = Ложь) → Array
ПараметрТипОписание
CatNameStringПараметр публичной сигнатуры.
ВключатьСтандартныеBooleanПараметр публичной сигнатуры. По умолчанию: Ложь.
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Возвращает описание реквизитов справочника как массив структур.
// Граница: Обязательные параметры: CatName
// Результат: Array.

Массив = A1sCatalogs.AttrSchema("CatName");

Тип реквизита табличной части справочника.

Полная сигнатураTabAttrType(CatName, TabName, AttrName) → TypeDescription
ПараметрТипОписание
CatNameStringИмя справочника
TabNameStringИмя табличной части
AttrNameStringИмя реквизита
ВозвращаетTypeDescription
Примерпример из исходника · сигнатура проверена1C
// Намерение: Тип реквизита табличной части справочника.
// Граница: Обязательные параметры: CatName, TabName, AttrName
// Результат: TypeDescription.

Тип = A1sCatalogs.TabAttrType("Номенклатура", "Штрихкоды", "ТипШтрихкода");
  Ссылка = A1sCatalogs.EnsureByType(Тип, "EAN13");

Схема всех реквизитов табличной части справочника. Каждый элемент: {Имя, Тип, ТипСтрока, ЭтоСправочник, ИмяСправочника}.

Полная сигнатураTabSchema(CatName, TabName, ВключатьСтандартные = Ложь) → Array
ПараметрТипОписание
CatNameStringИмя справочника
TabNameStringИмя табличной части
ВключатьСтандартныеBooleanПараметр публичной сигнатуры. По умолчанию: Ложь.
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Схема всех реквизитов табличной части справочника. Каждый элемент: {Имя, Тип, ТипСтрока, ЭтоСправочник, ИмяСправочника}.
// Граница: Обязательные параметры: CatName, TabName
// Результат: Array.

// Перед загрузкой данных — распечатать схему ТЧ для ТЗ
  Схема = A1sCatalogs.TabSchema("Номенклатура", "Штрихкоды");

Имена реквизитов табличной части справочника.

Полная сигнатураTabColumnNames(CatName, TabName) → Array
ПараметрТипОписание
CatNameStringИмя справочника
TabNameStringИмя табличной части
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Имена реквизитов табличной части справочника.
// Граница: Обязательные параметры: CatName, TabName
// Результат: Array.

Массив = A1sCatalogs.TabColumnNames("CatName", "Товары");

Метаданные

Состав объектов метаданных и имена табличных частей.

Количество справочников в конфигурации.

Полная сигнатураMetaCount() → Number

Параметров нет.

ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Количество справочников в конфигурации.
// Граница: Параметров нет.
// Результат: Number.

Результат = A1sCatalogs.MetaCount();

Массив имён всех справочников конфигурации.

Полная сигнатураMetaNames() → Array

Параметров нет.

ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Массив имён всех справочников конфигурации.
// Граница: Параметров нет.
// Результат: Array.

Массив = A1sCatalogs.MetaNames();

Проверяет, является ли справочник иерархическим.

Полная сигнатураIsHierarchical(Name) → Boolean
ПараметрТипОписание
NameStringИмя справочника
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли справочник иерархическим.
// Граница: Обязательные параметры: Name
// Результат: Boolean.

Успешно = A1sCatalogs.IsHierarchical("Name");

Проверяет, имеет ли справочник владельца.

Полная сигнатураHasOwner(Name) → Boolean
ПараметрТипОписание
NameStringИмя справочника
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, имеет ли справочник владельца.
// Граница: Обязательные параметры: Name
// Результат: Boolean.

Успешно = A1sCatalogs.HasOwner("Name");

Имена табличных частей справочника.

Полная сигнатураTabNames(Name) → Array
ПараметрТипОписание
NameStringИмя справочника
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Имена табличных частей справочника.
// Граница: Обязательные параметры: Name
// Результат: Array.

Массив = A1sCatalogs.TabNames("Name");

Fluent API

Создание цепочечной обёртки для последовательных операций.

Создаёт fluent-обёртку A1sDP_Catalogs для цепочечных вызовов. Если передана строка — создаёт новый элемент. Если ссылка/объект — оборачивает.

Полная сигнатураOn(Name, Attrs = Неопределено) → DataProcessorObject.A1sDP_Catalogs
ПараметрТипОписание
NameStringИмя справочника
AttrsStructureРеквизиты (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ВозвращаетDataProcessorObject.A1sDP_Catalogs
Примерпример из исходника · сигнатура проверена1C
// Намерение: Создаёт fluent-обёртку A1sDP_Catalogs для цепочечных вызовов. Если передана строка — создаёт новый элемент. Если ссылка/объект — оборачивает.
// Граница: Обязательные параметры: Name
// Результат: DataProcessorObject.A1sDP_Catalogs.

// Новый элемент:
  Ссылка = A1sCatalogs.On("Номенклатура")
      .Set("Наименование", "Квартира 101")
      .Set("Родитель", ГрКвартиры)
      .Write();

  // Существующий:
  A1sCatalogs.On(ТоварСсылка)
      .Set("Цена", 5000)
      .Write();

Подключается к СУЩЕСТВУЮЩЕМУ элементу справочника и возвращает fluent-обёртку. Принимает ссылку или объект.

Полная сигнатураOnRef(ItemOrRef, Attrs = Неопределено) → DataProcessorObject.A1sDP_Catalogs
ПараметрТипОписание
ItemOrRefArbitraryСсылка или объект справочника
AttrsStructureРеквизиты для немедленного обновления. Необязательно. По умолчанию: Неопределено.
ВозвращаетDataProcessorObject.A1sDP_Catalogs
Примерпример из исходника · сигнатура проверена1C
// Намерение: Подключается к СУЩЕСТВУЮЩЕМУ элементу справочника и возвращает fluent-обёртку. Принимает ссылку или объект.
// Граница: Обязательные параметры: ItemOrRef
// Результат: DataProcessorObject.A1sDP_Catalogs.

A1sCatalogs.OnRef(ТоварСсылка)
      .Set("Цена", 5000)
      .Set("ВидНоменклатуры", ВидТовар)
      .Write();

Тестирование

Самопроверки публичного контракта модуля.

Самотест модуля A1sCatalogs.

Полная сигнатураSelfTest() → Boolean

Параметров нет.

ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Самотест модуля A1sCatalogs.
// Граница: Параметров нет.
// Результат: Boolean.

Успешно = A1sCatalogs.SelfTest();