Определение типа значения, получение ссылки, объекта и менеджера.
Проверяет, является ли значение справочником (ссылка или объект).
Полная сигнатураIsCatalog(Value) → Boolean
Параметр
Тип
Описание
Value
Arbitrary
Проверяемое значение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли значение справочником (ссылка или объект).// Граница: Обязательные параметры: Value// Результат: Boolean.
Успешно = A1sCatalogs.IsCatalog(Value);
Проверяет, является ли значение ссылкой на справочник.
Полная сигнатураIsRef(Value) → Boolean
Параметр
Тип
Описание
Value
Arbitrary
Проверяемое значение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли значение ссылкой на справочник.// Граница: Обязательные параметры: Value// Результат: Boolean.
Успешно = A1sCatalogs.IsRef(Value);
Проверяет, является ли значение объектом справочника.
Полная сигнатураIsObject(Value) → Boolean
Параметр
Тип
Описание
Value
Arbitrary
Проверяемое значение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли значение объектом справочника.// Граница: Обязательные параметры: Value// Результат: Boolean.
Успешно = A1sCatalogs.IsObject(Value);
Возвращает объект справочника из ссылки или объекта.
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Возвращает объект справочника из ссылки или объекта.// Граница: Обязательные параметры: Value// Результат: CatalogObject | Undefined.
Результат = A1sCatalogs.GetObject(Value);
Возвращает ссылку на справочник из ссылки или объекта.
Подключается к существующему элементу справочника: из ссылки возвращает объект, объект возвращает как есть. Симметрична Of() — та создаёт, эта подключает.
Реквизиты для немедленного обновления. Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Подключается к существующему элементу справочника: из ссылки возвращает объект, объект возвращает как есть. Симметрична Of() — та создаёт, эта подключает.// Граница: Обязательные параметры: ItemOrRef// Результат: CatalogObject.// Получить объект и изменить вручную:
Объект = A1sCatalogs.OfRef(ТоварСсылка);
Объект.Цена = 5000;
Объект.Записать();
// С немедленным заполнением:
Объект = A1sCatalogs.OfRef(ТоварСсылка,
A1sDS.Of("Цена", 5000, "ВидНоменклатуры", ВидТовар));
Объект.Записать();
Создаёт новый элемент справочника и заполняет реквизиты с авторазрешением строк в ссылки. Комбинирует Of + FillAuto. Строковые значения разрешаются через EnsureByType по метаданным реквизита. Симметрична A1sDocs.OfAuto.
Сырые данные реквизитов (строки допустимы) По умолчанию: Неопределено.
ВозвращаетCatalogObject
Примерпример из исходника · сигнатура проверена1C
// Намерение: Создаёт новый элемент справочника и заполняет реквизиты с авторазрешением строк в ссылки. Комбинирует Of + FillAuto. Строковые значения разрешаются через EnsureByType по метаданным реквизита. Симметрична A1sDocs.OfAuto.// Граница: Обязательные параметры: Name// Результат: CatalogObject.
Товар = A1sCatalogs.OfAuto("Номенклатура",
A1sDS.Of("Наименование", "Квартира 101",
"ЕдиницаИзмерения", "шт", ← строка → EnsureByType автоматически
"Родитель", ГрКвартиры));
A1sCatalogs.Write(Товар);
Ensure и upsert
6 функций
Гарантированное получение или создание элементов, включая массовые сценарии.
Находит элемент по наименованию. Если не найден — создаёт, заполняет, записывает. Ключевой паттерн для создания номенклатуры на лету при заполнении документов.
Реквизиты для нового элемента (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ExactMatch
Boolean
Точное совпадение наименования (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит элемент по наименованию. Если не найден — создаёт, заполняет, записывает. Ключевой паттерн для создания номенклатуры на лету при заполнении документов.// Граница: Обязательные параметры: Name, Description// Результат: CatalogRef.// При загрузке квартир в документ — создаёт если не существует:
Кв101 = A1sCatalogs.Ensure("Номенклатура", "Квартира 101",
A1sDS.Of("Родитель", ГрКвартиры, "ЕдиницаИзмерения", Шт));
// Далее используем в документе:
A1sDocs.AddRow(Док, "Продукция", A1sDS.Of("Номенклатура", Кв101, "Количество", 1));
// Контрагент — найти или создать:
Покупатель = A1sCatalogs.Ensure("Контрагенты", "ООО Ромашка",
A1sDS.Of("ИНН", "7707083893", "КПП", "770701001"));
Находит элемент по коду. Если не найден — создаёт, заполняет, записывает.
Реквизиты для нового элемента По умолчанию: Неопределено.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит элемент по коду. Если не найден — создаёт, заполняет, записывает.// Граница: Обязательные параметры: Name, Code// Результат: CatalogRef.
Валюта = A1sCatalogs.EnsureByCode("Валюты", "840",
A1sDS.Of("Наименование", "Доллар США"));
Находит группу по наименованию. Если не найдена — создаёт, записывает.
Родитель. Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит группу по наименованию. Если не найдена — создаёт, записывает.// Граница: Обязательные параметры: Name, Description// Результат: CatalogRef.
ГрКвартиры = A1sCatalogs.EnsureGroup("Номенклатура", "Квартиры — корпус А");
ГрПитание = A1sCatalogs.EnsureGroup("НоменклатурныеГруппы", "ПИТАНИЕ");
Массовое создание: для каждого наименования в массиве — Ensure. Возвращает массив ссылок (параллельный входному).
Общие реквизиты для всех создаваемых По умолчанию: Неопределено.
ВозвращаетArray
Примерпример из исходника · сигнатура проверена1C
// Намерение: Массовое создание: для каждого наименования в массиве — Ensure. Возвращает массив ссылок (параллельный входному).// Граница: Обязательные параметры: Name, Descriptions// Результат: Array.
Имена = A1sAR.Of("Квартира 101", "Квартира 102", "Квартира 103");
Ссылки = A1sCatalogs.EnsureBatch("Номенклатура", Имена,
A1sDS.Of("Родитель", ГрКвартиры));
Находит или создаёт элемент, определяя справочник по типу реквизита метаданных. Ключевой паттерн Data-Driven: код не знает имя справочника — он берёт его из метаданных.
ОписаниеТипов или Тип реквизита (из Метаданные.Реквизиты[N].Тип)
Description
String
Наименование для поиска/создания
Attrs
Structure
Реквизиты для нового элемента. Необязательно. По умолчанию: Неопределено.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Находит или создаёт элемент, определяя справочник по типу реквизита метаданных. Ключевой паттерн Data-Driven: код не знает имя справочника — он берёт его из метаданных.// Граница: Обязательные параметры: TypeValue, Description// Результат: CatalogRef.// Универсальная привязка: не хардкодим "Номенклатура", берём тип из метаданных ТЧ
МетаТЧ = Документы.ОтчётПроизводства.ТабличныеЧасти.Продукция;
ТипРеквизита
= МетаТЧ.Реквизиты.Номенклатура.Тип; //✏
// EnsureByType сам поймёт, что нужен справочник "Номенклатура"
Ссылка
= A1sCatalogs.EnsureByType(
ТипРеквизита,
"Квартира 101"); //▶️
Upsert-паттерн: находит элемент и ОБНОВЛЯЕТ реквизиты, или создаёт новый. В отличие от Ensure (который пропускает найденный), EnsureUpdate всегда синхронизирует данные. Идеально для регулярной загрузки прайс-листов, ГИС ЖКХ, CRM-синхронизации.
Реквизиты для обновления/заполнения (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ExactMatch
Boolean
Точное совпадение наименования (по умолчанию Истина) По умолчанию: Истина.
AutoResolve
Boolean
Параметр публичной сигнатуры. По умолчанию: Ложь.
ВозвращаетCatalogRef
Примерпример из исходника · сигнатура проверена1C
// Намерение: Upsert-паттерн: находит элемент и ОБНОВЛЯЕТ реквизиты, или создаёт новый. В отличие от Ensure (который пропускает найденный), EnsureUpdate всегда синхронизирует данные. Идеально для регулярной загрузки прайс-листов, ГИС ЖКХ, CRM-синхронизации.// Граница: Обязательные параметры: Name, Description// Результат: CatalogRef.// Синхронизация прайс-листа: обновит цену у существующих, создаст новые
Для Каждого Позиция Из ПрайсЛист Цикл //⟳
A1sCatalogs.EnsureUpdate(
"Номенклатура",
Позиция.Наименование,
A1sDS.Of(
"ЦенаПродажи", Позиция.Цена,
"Площадь", Позиция.Площадь,
"Родитель", ГруппаКвартир)); //▶️
КонецЦикла;
Преобразование данных
2 функции
Подготовка входных строк и ссылок по метаданным.
Трансформирует "сырую" структуру данных (из JSON/Excel) в структуру для A1sDocs.AddRow: строковые значения полей из Scheme заменяются на ссылки через Ensure. Декларативный альтернативный подход к ручному созданию ссылок в цикле загрузки.
Исходная структура (строка JSON, строка ТЗ и т.д.)
Scheme
Structure
Схема маппинга: ключ=ИмяПоля, значение=ИмяСправочника (A1sDS.Of(...)). Необязательно. По умолчанию: Неопределено.
ВозвращаетStructure
Примерпример из исходника · сигнатура проверена1C
// Намерение: Трансформирует "сырую" структуру данных (из JSON/Excel) в структуру для A1sDocs.AddRow: строковые значения полей из Scheme заменяются на ссылки через Ensure. Декларативный альтернативный подход к ручному созданию ссылок в цикле загрузки.// Граница: Обязательные параметры: SourceData// Результат: Structure.// Декларируем схему один раз — цикл загрузки не трогаем при изменениях
СхемаЗагрузки
= A1sDS.Of(
"Номенклатура", "Номенклатура",
"ЕдиницаИзмерения", "КлассификаторЕдиницИзмерения"); //✏
Для Каждого Строка Из ДанныеJSON Цикл //⟳
// MapRow сам найдёт/создаст "шт" → ссылку, "Кв 101" → ссылку
ДляДокумента
= A1sCatalogs.MapRow(
Строка,
СхемаЗагрузки); //▶️
A1sDocs.AddRow(Док, "Продукция", ДляДокумента);
КонецЦикла;
Возвращает массив уникальных заполненных ссылок из поля ТЧ документа. Используется для постобработки после загрузки: обновить все справочники, встреченные в документах.
// Намерение: Возвращает массив уникальных заполненных ссылок из поля ТЧ документа. Используется для постобработки после загрузки: обновить все справочники, встреченные в документах.// Граница: Обязательные параметры: DocRef, TabName, FieldName// Результат: Array.// Собрать все уникальные квартиры из загруженных документов и массово обновить
Для Каждого ДокСсылка Из ЗагруженныеДоки Цикл //⟳
Квартиры
= A1sCatalogs.PickFromDocument(
ДокСсылка,
"Продукция",
"Номенклатура"); //▶️
A1sCatalogs.UpdateAll(Квартиры, A1sDS.Of("ЭтапСтроительства", ЭтапСдано));
КонецЦикла;
Заполняет реквизиты элемента с автоматическим разрешением строк в ссылки. Аналог Fill, но строковые значения реквизитов-справочников разрешаются через EnsureByType по типу из метаданных. Используется транслятором DSL когда в SET есть строковые значения.
// Намерение: Заполняет реквизиты элемента с автоматическим разрешением строк в ссылки. Аналог Fill, но строковые значения реквизитов-справочников разрешаются через EnsureByType по типу из метаданных. Используется транслятором DSL когда в SET есть строковые значения.// Граница: Обязательные параметры: Item, Data// Результат: CatalogObject.// DSL: ENSURE Cat "Контрагенты" BY "ООО Ромашка"// SET// ИНН = "7701234567" ← строка-примитив → как есть// ГруппаРиска = "Средний" ← строка → ENSURE "ГруппыРиска" автоA1sCatalogs.FillAuto(
КонтрагентОбъект,
A1sDS.Of(
"ИНН", "7701234567",
"ГруппаРиска","Средний")); //
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Устанавливает значение одного реквизита.// Граница: Обязательные параметры: Item, Key, Value// Результат: CatalogObject.
Результат = A1sCatalogs.Set(Ссылка, "Key", Value);
Добавляет одну строку в табличную часть элемента.
Полная сигнатураAddRow(Item, TabName, RowData) → Number
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка
TabName
String
Имя табличной части
RowData
Structure
Данные строки (A1sDS.Of(...))
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Добавляет одну строку в табличную часть элемента.// Граница: Обязательные параметры: Item, TabName, RowData// Результат: Number.
Результат = A1sCatalogs.AddRow(Ссылка, "Товары", Параметры);
Добавляет одну строку в ТЧ с автоматическим разрешением строк в ссылки. Типы реквизитов берутся из метаданных ТЧ — не нужно знать имена справочников. Используется транслятором DSL когда строки ТЧ содержат строковые значения ссылочных полей.
Полная сигнатураAddRowAuto(Item, TabName, RowData) → Number
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка на элемент справочника
TabName
String
Имя табличной части
RowData
Structure
Данные строки (строки допустимы)
ВозвращаетNumber
Примерпример из исходника · сигнатура проверена1C
// Намерение: Добавляет одну строку в ТЧ с автоматическим разрешением строк в ссылки. Типы реквизитов берутся из метаданных ТЧ — не нужно знать имена справочников. Используется транслятором DSL когда строки ТЧ содержат строковые значения ссылочных полей.// Граница: Обязательные параметры: Item, TabName, RowData// Результат: Number.// Штрихкоды — поле ТипШтрихкода ссылается на справочник,// но нам не нужно писать EnsureByType вручную:A1sCatalogs.AddRowAuto(
НоменклатураОбъект,
"Штрихкоды",
A1sDS.Of(
"Штрихкод", "4607132101517",
"ТипШтрихкода", "EAN13")); // ← строка → ENSURE автоматически
Добавляет несколько строк из ТаблицыЗначений или массива структур.
Полная сигнатураAddRows(Item, TabName, Source, FieldMapping = Неопределено) → Number
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка
TabName
String
Имя табличной части
Source
Arbitrary
ТаблицаЗначений или Массив структур
FieldMapping
Structure
Маппинг колонок. Необязательно. По умолчанию: Неопределено.
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Добавляет несколько строк из ТаблицыЗначений или массива структур.// Граница: Обязательные параметры: Item, TabName, Source// Результат: Number.
Результат = A1sCatalogs.AddRows(Ссылка, "Товары", Source);
Очищает табличную часть.
Полная сигнатураClearRows(Item, TabName) → —
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка
TabName
String
Имя табличной части
Возвращает—
Примерпример добавлен при аудите · сигнатура проверена1C
Колонки через запятую (все если пусто) По умолчанию: "".
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Экспортирует табличную часть в массив структур.// Граница: Обязательные параметры: Item, TabName// Результат: Array.
Массив = A1sCatalogs.ExportRows(Ссылка, "Товары");
Количество строк в табличной части.
Полная сигнатураRowCount(Item, TabName) → Number
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка
TabName
String
Имя табличной части
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Количество строк в табличной части.// Граница: Обязательные параметры: Item, TabName// Результат: Number.
Результат = A1sCatalogs.RowCount(Ссылка, "Товары");
Загружает массив структур в ТЧ с авторазрешением строк в ссылки. Для каждой строки вызывает AddRowAuto — типы берутся из метаданных ТЧ. Аналог A1sDocs.LoadRows для табличных частей справочников.
Полная сигнатураLoadTabRows(Item, TabName, Rows) → Number
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка на элемент
TabName
String
Имя табличной части
Rows
Array
Массив структур
ВозвращаетNumber
Примерпример из исходника · сигнатура проверена1C
// Намерение: Загружает массив структур в ТЧ с авторазрешением строк в ссылки. Для каждой строки вызывает AddRowAuto — типы берутся из метаданных ТЧ. Аналог A1sDocs.LoadRows для табличных частей справочников.// Граница: Обязательные параметры: Item, TabName, Rows// Результат: Number.// Загрузить штрихкоды из JSON с авторазрешением ТипШтрихкода:A1sCatalogs.LoadTabRows(
НоменклатураОбъект,
"Штрихкоды",
МассивИзJSON); //
Очищает ТЧ и загружает строки с авторазрешением ссылок.
Полная сигнатураSetLoadTabRows(Item, TabName, Rows) → Number
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка
TabName
String
Имя табличной части
Rows
Array
Массив структур
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Очищает ТЧ и загружает строки с авторазрешением ссылок.// Граница: Обязательные параметры: Item, TabName, Rows// Результат: Number.
Результат = A1sCatalogs.SetLoadTabRows(Ссылка, "Товары", Rows);
Загружает строки табличной части после переименования полей через A1sDS.RenameFields.
Полная сигнатураLoadTabRowsMapped(Item, TabName, Rows, FieldMapping) → Number
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка
TabName
String
Имя табличной части
Rows
Array
Массив структур с именами источника
FieldMapping
Structure
A1sDS.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
Параметр
Тип
Описание
Item
Arbitrary
Объект или ссылка
TabName
String
Имя табличной части
Rows
Array
Массив структур
FieldMapping
Structure
Схема переименования
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Очищает ТЧ и загружает строки с переименованием и авторазрешением ссылок.// Граница: Обязательные параметры: Item, TabName, Rows, FieldMapping// Результат: Number.
Результат = A1sCatalogs.SetLoadTabRowsMapped(Ссылка, "Товары", Rows, "Наименование");
Запись и изменение
7 функций
Запись, обновление, перемещение и пометка удаления.
Структура полей (A1sDS.Of(...)) ИЛИ строка — имя поля
ValueOrWrite
Arbitrary
Значение поля (если строка) ИЛИ DoWrite (если структура) По умолчанию: Истина.
DoWrite
Boolean
Записать сразу (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетBoolean
Примерпример из исходника · сигнатура проверена1C
// Намерение: Обновляет реквизиты элемента. Принимает структуру полей ИЛИ имя поля + значение (обратная совместимость с v1).// Граница: Обязательные параметры: ItemRef, FieldsOrName// Результат: Boolean.// Новый стиль (структура):A1sCatalogs.Update(ТоварСсылка, A1sDS.Of("Цена", 5000, "Активен", Истина));
// Старый стиль (одно поле) — по-прежнему работает:A1sCatalogs.Update(ТоварСсылка, "Цена", 5000);
Массовое обновление реквизитов. Принимает структуру полей ИЛИ имя поля + значение (обратная совместимость с v1).
Значение (если строка). Необязательно. По умолчанию: Неопределено.
ВозвращаетStructure
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Массовое обновление реквизитов. Принимает структуру полей ИЛИ имя поля + значение (обратная совместимость с v1).// Граница: Обязательные параметры: Items, FieldsOrName// Результат: Structure.
Данные = A1sCatalogs.UpdateAll(Ссылка, "Наименование");
Массовая пометка удаления.
Полная сигнатураMarkForDeletionBatch(Items, Mark = Истина) → Structure
Параметр
Тип
Описание
Items
Array
Массив ссылок
Mark
Boolean
Пометка (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетStructure
Примерпример добавлен при аудите · сигнатура проверена1C
Родитель для поиска в группе. Необязательно. По умолчанию: Неопределено.
ExactMatch
Boolean
Точное совпадение (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Находит элемент по наименованию. Если указан Parent — ищет в конкретной группе.// Граница: Обязательные параметры: Name, Description// Результат: CatalogRef.
Ссылка = A1sCatalogs.ByName("Name", "Товар");
Находит элемент по коду.
Полная сигнатураByCode(Name, Code) → CatalogRef
Параметр
Тип
Описание
Name
String
Имя справочника
Code
String
Код
ВозвращаетCatalogRef
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Находит элемент по коду.// Граница: Обязательные параметры: Name, Code// Результат: CatalogRef.
Ссылка = A1sCatalogs.ByCode("Name", "000001");
// Намерение: Находит элементы по списку наименований (строка через разделитель).// Граница: Обязательные параметры: Name, DescriptionList// Результат: Array.
Валюты = A1sCatalogs.ByNameList("Валюты", "USD,EUR,CNY");
Пакетный поиск
13 функций
Выбор массивов ссылок и пакетная обработка критериев.
Выбрать несколько элементов по наименованиям (массив).
Включать вложенные (по умолчанию Истина) По умолчанию: Истина.
ВозвращаетArray
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Все элементы в группе (включая вложенные).// Граница: Обязательные параметры: CatalogName, GroupRef// Результат: Array.
Массив = A1sCatalogs.AllInGroup("Номенклатура", Ссылка);
Все элементы подчинённого справочника по владельцу.
// Намерение: Возвращает Соответствие (Наименование → Ссылка) для переданных наименований. Ненайденные элементы в результат не включаются.// Граница: Обязательные параметры: CatalogName, Names// Результат: Map.// По именам получить соответствие для быстрой адресации:
Группы = A1sCatalogs.MapByName("НоменклатурныеГруппы",
A1sAR.Of("ПРОЖИВАНИЕ", "ПИТАНИЕ", "ПРОЧИЕ УСЛУГИ"));
// Использование:
A1sDocs.AddRow(Док, "Продукция",
A1sDS.Of("НоменклатурнаяГруппа", Группы["ПИТАНИЕ"], "Количество", 1));
Возвращает Соответствие (Наименование → Ссылка): ищет, при отсутствии — создаёт. Все переданные имена гарантированно присутствуют в результате.
Общие реквизиты для создаваемых элементов. Необязательно. По умолчанию: Неопределено.
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (Наименование → Ссылка): ищет, при отсутствии — создаёт. Все переданные имена гарантированно присутствуют в результате.// Граница: Обязательные параметры: CatalogName, Names// Результат: Map.// Получить или создать статьи ДДС — вернуть соответствие:
СтатьиДДС = A1sCatalogs.EnsureMapByName(
"СтатьиДвиженияДенежныхСредств",
A1sAR.Of("Основная деятельность", "Капиталовложения", "Финансовая деятельность"),
A1sDS.Of("Вид", Перечисления.ВидыСтатейДДС.Прочее));
// Использование:
.Set("СтатьяДДС", СтатьиДДС["Капиталовложения"])
Возвращает Соответствие (Код → Ссылка) для переданных кодов. Ненайденные элементы в результат не включаются.
Общие реквизиты для создаваемых элементов. Необязательно. По умолчанию: Неопределено.
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Возвращает Соответствие (Код → Ссылка): ищет, при отсутствии — создаёт. Все переданные коды гарантированно присутствуют в результате.// Граница: Обязательные параметры: CatalogName, Codes// Результат: Map.
Валюты = A1sCatalogs.EnsureMapByCode("Валюты",
A1sAR.Of("840", "978", "156"),
A1sDS.Of("Наименование", "?")); // Наименование обновится при создании
Возвращает Соответствие (ЗначениеРеквизита → Ссылка) для переданных значений. Запрос выполняется одним обращением к базе — эффективен для больших наборов.
// Намерение: Возвращает Соответствие (ЗначениеРеквизита → Ссылка) для переданных значений. Запрос выполняется одним обращением к базе — эффективен для больших наборов.// Граница: Обязательные параметры: CatalogName, AttrName, Values// Результат: Map.// По ИНН получить соответствие контрагентов за один запрос:
КонтрагентыПоИНН = A1sCatalogs.MapByAttr(
"Контрагенты", "ИНН",
A1sAR.Of("7701234567", "7707654321", "7708572512"));
Для Каждого Строка Из ДанныеИмпорта Цикл
Контрагент = КонтрагентыПоИНН[Строка.ИНН];
Если Контрагент <> Неопределено Тогда
// нашли — используем
КонецЕсли;
КонецЦикла;
Возвращает Соответствие (Наименование → Ссылка) запросом — эффективно для больших наборов (один запрос вместо N вызовов НайтиПоНаименованию).
Реквизиты для создаваемых. Необязательно. По умолчанию: Неопределено.
ВозвращаетMap
Примерпример из исходника · сигнатура проверена1C
// Намерение: Версия EnsureMapByName с пакетным запросом для поиска существующих. Сначала находит всё одним запросом, затем создаёт только отсутствующие.// Граница: Обязательные параметры: CatalogName, Names// Результат: Map.// 20 групп номенклатуры — создать отсутствующие, вернуть все разом:
Группы = A1sCatalogs.EnsureMapByNameQ(
"НоменклатурныеГруппы",
A1sAR.Of("ПРОЖИВАНИЕ", "ПИТАНИЕ", "ПРОЧИЕ УСЛУГИ", "СПОРТ"));
НоваяСтрока.НоменклатурнаяГруппа = Группы["ПИТАНИЕ"];
Карты и запросы
4 функции
Формирование соответствий ключ → ссылка через выборки и запросы.
Полная сигнатураCount(Name, Where = "", Params = Неопределено) → Number
Параметр
Тип
Описание
Name
String
Имя справочника
Where
String
Условие ГДЕ По умолчанию: "".
Params
Structure
Параметры запроса По умолчанию: Неопределено.
ВозвращаетNumber
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Подсчёт элементов по условию.// Граница: Обязательные параметры: Name// Результат: Number.
Результат = A1sCatalogs.Count("Name");
Проверка существования элементов по условию.
Полная сигнатураExists(Name, Where = "", Params = Неопределено) → Boolean
Параметр
Тип
Описание
Name
String
Имя справочника
Where
String
Условие ГДЕ По умолчанию: "".
Params
Structure
Параметры запроса По умолчанию: Неопределено.
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверка существования элементов по условию.// Граница: Обязательные параметры: Name// Результат: Boolean.
Успешно = A1sCatalogs.Exists("Name");
Проверки пустоты, удаления, уникальности и других состояний.
Проверяет, является ли элемент группой.
Полная сигнатураIsGroup(ItemRef) → Boolean
Параметр
Тип
Описание
ItemRef
CatalogRef
Ссылка
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет, является ли элемент группой.// Граница: Обязательные параметры: ItemRef// Результат: Boolean.
Успешно = A1sCatalogs.IsGroup(Ссылка);
Проверяет пустая ли ссылка.
Полная сигнатураIsEmpty(Name, Value) → Boolean
Параметр
Тип
Описание
Name
String
Имя справочника
Value
Arbitrary
Значение
ВозвращаетBoolean
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Проверяет пустая ли ссылка.// Граница: Обязательные параметры: Name, Value// Результат: Boolean.
Успешно = A1sCatalogs.IsEmpty("Name", Value);
Примерпример добавлен при аудите · сигнатура проверена1C
// Намерение: Детальная информация об элементе.// Граница: Обязательные параметры: ItemRef// Результат: Structure.
Данные = A1sCatalogs.Details(Ссылка);