Удаляет элемент из коллекции.
Синтаксис
Удалить(<Элемент>)Полное описание, параметры и ограничения
МакетыПолейСхемыКомпоновкиДанных.Удалить (DataCompositionSchemaFieldTemplates.Delete)
МакетыПолейСхемыКомпоновкиДанных (DataCompositionSchemaFieldTemplates)
Удалить (Delete)
Доступен, начиная с версии 8.1.
Синтаксис:
Удалить(<Элемент>)
Параметры:
<Элемент> (обязательный)
Тип: МакетПоляСхемыКомпоновкиДанных.
Удаляемый элемент.
Описание:
Удаляет элемент из коллекции.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Макет поля СКД: реальное поле, существующая именованная область и восстановление ссылок
Создаём собственный набор с тремя явно описанными полями и четыре реальные постоянные области. Привязываем поля к именам макетов, переставляем элементы, переключаем количество на альтернативную область, удаляем и восстанавливаем привязки. На каждом этапе проверяется вся основа, ссылки и полное содержимое областей, без выполнения отчёта.
Где и как запускать
Полный серверный общий модуль УчебныеЗадачи новой пустой конфигурации УчебныеМакетыПолей85; в1С не запускался.
Подготовка
Нужна НОВАЯ отдельная учебная база, не копия рабочей: точно8.5.1.1343, имя конфигурации УчебныеМакетыПолей85, совместимость Не использовать. Нет бизнес-объектов, расширений, подписок и фоновых заданий. Модули вручную пустые, кроме данного общего модуля; реальные записи не нужны.
Общий модуль УчебныеЗадачи: Сервер=Да, Вызов сервера=Да, Клиент=Нет, Глобальный=Нет, Привилегированный=Нет. Вставьте весь основной модуль. Своя внешняя обработка УчебныеМакетыПолей85 → управляемая Форма: команда/кнопка Выполнить с действием Выполнить; реквизиты не нужны. Полный отдельный модуль формы дан ниже.
Будущая ручная подготовка только вне опыта: завершить прежний собственный сеанс, сохранить конфигурацию, Конфигурация → Обновить конфигурацию базы данных (F7), затем свежий собственный клиент и своя обработка. Здесь F7, BSL, компоновщик, запросы, вывод и печать не запускались.
Источник СвоиДанные85 типа Local и набор УчебныеОстатки85 созданы только в своей схеме. Запрос буквально объявляет A01/3/Учебный; он не исполняется. АвтоЗаполнениеДоступныхПолей=Ложь: КодТовара Строка, Количество Число, Склад Строка объявлены вручную, с совпадающими Поле/ПутьКДанным.
Количество в буквальном запросе равно3. Его собственное описание — Число(1,0), неотрицательное: один общий разряд, ноль дробных, допустимые целые0–9. Это предел учебного исходного поля, не диапазон количества рабочего отчёта и не описание типа агрегата Сумма(Количество).
Процедура ВыполнитьПример() Экспорт
ПроверитьСвойПустойСтенд();
Если ПривилегированныйРежим() Тогда
ВызватьИсключение "Привилегированный режим не нужен";
КонецЕсли;
Пусто = Новый Массив;
ВсеИмена = СтрРазделить("КодТовара|Количество|Склад", "|");
Схема = СоздатьСвоюОсновуМакетовПолей();
Привязки = Схема.МакетыПолей;
ПроверитьСвоиПривязкиПолей(Схема, Пусто, Пусто);
Код = Привязки.Добавить();
ЗаполнитьСвоюПривязкуПоля(Схема, Код, "КодТовара", "КодТовара");
ПроверитьСвоиПривязкиПолей(Схема, СтрРазделить("КодТовара", ","), СтрРазделить("КодТовара", ","));
Количество = Привязки.Добавить();
ЗаполнитьСвоюПривязкуПоля(Схема, Количество, "Количество", "Количество");
ПроверитьСвоиПривязкиПолей(Схема, СтрРазделить("КодТовара,Количество", ","), СтрРазделить("КодТовара,Количество", ","));
Если Привязки.Найти("КодТовара") <> Код Или Привязки.Найти("Количество") <> Количество
Или Привязки.Найти("Склад") <> Неопределено Тогда
ВызватьИсключение "Две одноимённые собственные привязки находятся; склад ещё не привязан";
КонецЕсли;
Склад = Привязки.Вставить(1);
ЗаполнитьСвоюПривязкуПоля(Схема, Склад, "Склад", "Склад");
ПроверитьСвоиПривязкиПолей(Схема, СтрРазделить("КодТовара,Склад,Количество", ","), СтрРазделить("КодТовара,Склад,Количество", ","));
Привязки.Сдвинуть(Склад, 1);
ПроверитьСвоиПривязкиПолей(Схема, ВсеИмена, ВсеИмена);
Количество.Макет = "КоличествоВыделено85";
ПроверитьСвоиПривязкиПолей(Схема, ВсеИмена, СтрРазделить("КодТовара,КоличествоВыделено85,Склад", ","));
Количество.Макет = "Количество";
ПроверитьСвоиПривязкиПолей(Схема, ВсеИмена, ВсеИмена);
Копия = СоздатьСвоюОсновуМакетовПолей();
ВосстановитьСвоиПривязкиПолей(Копия);
Привязки.Удалить(Количество);
ПроверитьСвоиПривязкиПолей(Схема, СтрРазделить("КодТовара,Склад", ","), СтрРазделить("КодТовара,Склад", ","));
ПроверитьСвоиПривязкиПолей(Копия, ВсеИмена, ВсеИмена);
НовоеКоличество = Привязки.Вставить(1);
ЗаполнитьСвоюПривязкуПоля(Схема, НовоеКоличество, "Количество", "Количество");
ПроверитьСвоиПривязкиПолей(Схема, ВсеИмена, ВсеИмена);
Привязки.Очистить();
ПроверитьСвоиПривязкиПолей(Схема, Пусто, Пусто);
ПроверитьСвоиПривязкиПолей(Копия, ВсеИмена, ВсеИмена);
ВосстановитьСвоиПривязкиПолей(Схема);
ПроверитьСвоиПривязкиПолей(Схема, ВсеИмена, ВсеИмена);
ПроверитьСвоиПривязкиПолей(Копия, ВсеИмена, ВсеИмена);
Сообщить("Три поля и четыре реальные области сохранены; привязки КодТовара, Количество, Склад восстановлены");
КонецПроцедуры
Процедура ПроверитьСвойПустойСтенд()
Если Метаданные.Справочники.Количество() <> 0 Или Метаданные.Документы.Количество() <> 0 Или Метаданные.Перечисления.Количество() <> 0 Или Метаданные.РегистрыСведений.Количество() <> 0 Или Метаданные.РегистрыНакопления.Количество() <> 0 Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Или Метаданные.РегистрыРасчета.Количество() <> 0 Или Метаданные.ПланыВидовХарактеристик.Количество() <> 0 Или Метаданные.ПланыВидовРасчета.Количество() <> 0 Или Метаданные.ПланыСчетов.Количество() <> 0 Или Метаданные.ПланыОбмена.Количество() <> 0 Или Метаданные.Последовательности.Количество() <> 0 Или Метаданные.БизнесПроцессы.Количество() <> 0 Или Метаданные.Задачи.Количество() <> 0 Или Метаданные.ОбщиеРеквизиты.Количество() <> 0 Или Метаданные.ПодпискиНаСобытия.Количество() <> 0 Или Метаданные.РегламентныеЗадания.Количество() <> 0 Или Метаданные.ВнешниеИсточникиДанных.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только свой новый пустой учебный стенд";
КонецЕсли;
Если Метаданные.ЕстьИзмененияРасширениямиКонфигурации() Тогда
ВызватьИсключение "Свой сеанс не должен изменяться расширениями";
КонецЕсли;
Источники = Новый Массив;
Источники.Добавить(ИсточникРасширенийКонфигурации.БазаДанных);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансАктивные);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансОтключенные);
Для Каждого Источник Из Источники Цикл
Расширения = РасширенияКонфигурации.Получить(, Источник);
Если ТипЗнч(Расширения) <> Тип("Массив") Тогда
ВызватьИсключение "Native список расширений должен иметь тип Массив";
КонецЕсли;
Если Расширения.Количество() <> 0 Тогда
ВызватьИсключение "В своём новом стенде нет расширений базы или сеанса";
КонецЕсли;
КонецЦикла;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Чужая или вложенная активная транзакция не допускается";
КонецЕсли;
КонецПроцедуры
Функция СоздатьУчебнуюОбласть(ТекстОбласти)
Область = Новый МакетОбластиКомпоновкиДанных;
СтрокаОбласти = Область.Добавить(Тип("СтрокаТаблицыОбластиКомпоновкиДанных"));
Ячейка = СтрокаОбласти.Ячейки.Добавить();
Поле = Ячейка.Элементы.Добавить(Тип("ПолеОбластиКомпоновкиДанных"));
Поле.Значение = ТекстОбласти;
Возврат Область;
КонецФункции
Процедура ЗаполнитьСвойИменованныйМакет(Описание, Имя, Текст)
Если ТипЗнч(Описание) <> Тип("ОписаниеМакетаСхемыКомпоновкиДанных") Тогда
ВызватьИсключение "Нужно настоящее описание макета именно собственной схемы";
КонецЕсли;
Описание.Имя = Имя;
Описание.Макет = СоздатьУчебнуюОбласть(Текст);
КонецПроцедуры
Процедура ПроверитьСвоюПолнуюОбласть(Описание, Текст)
Если ТипЗнч(Описание.Макет) <> Тип("МакетОбластиКомпоновкиДанных")
Или ТипЗнч(Описание.Параметры) <> Тип("ПараметрыОбластиКомпоновкиДанных") Тогда
ВызватьИсключение "Нужна собственная область СКД, не табличный документ или имя файла";
КонецЕсли;
Если Описание.Параметры.Количество() <> 0 Или Описание.Макет.Количество() <> 1 Тогда
ВызватьИсключение "Собственная постоянная область имеет одну строку и не имеет параметров";
КонецЕсли;
СтрокаОбласти = Описание.Макет.Получить(0);
Если ТипЗнч(СтрокаОбласти) <> Тип("СтрокаТаблицыОбластиКомпоновкиДанных")
Или ТипЗнч(СтрокаОбласти.Ячейки) <> Тип("ЯчейкиТаблицыОбластиКомпоновкиДанных") Тогда
ВызватьИсключение "Нужна реальная собственная строка с коллекцией ячеек";
КонецЕсли;
Если СтрокаОбласти.Ячейки.Количество() <> 1 Тогда
ВызватьИсключение "В собственной строке ровно одна ячейка";
КонецЕсли;
Ячейка = СтрокаОбласти.Ячейки.Получить(0);
Если ТипЗнч(Ячейка) <> Тип("ЯчейкаТаблицыОбластиКомпоновкиДанных")
Или ТипЗнч(Ячейка.Элементы) <> Тип("ЭлементыМакетаОбластиКомпоновкиДанных") Тогда
ВызватьИсключение "Нужна реальная ячейка с коллекцией элементов области";
КонецЕсли;
Если Ячейка.Элементы.Количество() <> 1 Тогда
ВызватьИсключение "В собственной ячейке ровно одно постоянное поле";
КонецЕсли;
Поле = Ячейка.Элементы.Получить(0);
Если ТипЗнч(Поле) <> Тип("ПолеОбластиКомпоновкиДанных")
Или ТипЗнч(Поле.Значение) <> Тип("Строка") Или Поле.Значение <> Текст Тогда
ВызватьИсключение "Не совпало полное текстовое содержимое собственной области";
КонецЕсли;
КонецПроцедуры
Функция СвойТипКоличестваМакета()
Возврат Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
КонецФункции
Процедура ПроверитьСвоюРазрядностьМакета(Описание)
Квалификаторы = Описание.КвалификаторыЧисла;
Если ТипЗнч(Квалификаторы) <> Тип("КвалификаторыЧисла") Или Квалификаторы.Разрядность <> 1
Или Квалификаторы.РазрядностьДробнойЧасти <> 0
Или Квалификаторы.ДопустимыйЗнак <> ДопустимыйЗнак.Неотрицательный Тогда
ВызватьИсключение "Своё количество макета имеет один разряд, ноль дробных и неотрицательный знак";
КонецЕсли;
КонецПроцедуры
Функция СоздатьСвоюОсновуМакетовПолей()
Схема = Новый СхемаКомпоновкиДанных;
Источник = Схема.ИсточникиДанных.Добавить();
Источник.Имя = "СвоиДанные85";
Источник.ТипИсточникаДанных = "Local";
Набор = Схема.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
Если ТипЗнч(Набор) <> Тип("НаборДанныхЗапросСхемыКомпоновкиДанных") Тогда
ВызватьИсключение "Нужен собственный набор запроса";
КонецЕсли;
Набор.Имя = "УчебныеОстатки85";
Набор.ИсточникДанных = "СвоиДанные85";
Набор.АвтоЗаполнениеДоступныхПолей = Ложь;
Набор.Запрос = "ВЫБРАТЬ ""A01"" КАК КодТовара, 3 КАК Количество, ""Учебный"" КАК Склад";
Имена = СтрРазделить("КодТовара|Количество|Склад", "|");
Для Индекс = 0 По 2 Цикл
Поле = Набор.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Если ТипЗнч(Поле) <> Тип("ПолеНабораДанныхСхемыКомпоновкиДанных") Тогда
ВызватьИсключение "Нужно простое собственное описание поля, не папка";
КонецЕсли;
Поле.Поле = Имена[Индекс];
Поле.ПутьКДанным = Имена[Индекс];
Если Индекс = 1 Тогда
Поле.ТипЗначения = СвойТипКоличестваМакета();
Иначе
Поле.ТипЗначения = Новый ОписаниеТипов("Строка");
КонецЕсли;
КонецЦикла;
ИменаМакетов = СтрРазделить("КодТовара|Количество|Склад|КоличествоВыделено85", "|");
Тексты = СтрРазделить("Код: A01|Количество: 3|Склад: Учебный|Количество: 3 (выделено)", "|");
Для Индекс = 0 По 3 Цикл
Описание = Схема.Макеты.Добавить();
ЗаполнитьСвойИменованныйМакет(Описание, ИменаМакетов[Индекс], Тексты[Индекс]);
КонецЦикла;
ПроверитьСвоюОсновуМакетовПолей(Схема);
Возврат Схема;
КонецФункции
Процедура ПроверитьСвоюОсновуМакетовПолей(Схема)
Если ТипЗнч(Схема) <> Тип("СхемаКомпоновкиДанных") Или Схема.ИсточникиДанных.Количество() <> 1
Или Схема.НаборыДанных.Количество() <> 1 Или Схема.Макеты.Количество() <> 4 Тогда
ВызватьИсключение "Нужны только собственные источник, набор и четыре согласованные области";
КонецЕсли;
Источник = Схема.ИсточникиДанных.Получить(0);
Если ТипЗнч(Источник) <> Тип("ИсточникДанныхСхемыКомпоновкиДанных")
Или Источник.Имя <> "СвоиДанные85" Или Источник.ТипИсточникаДанных <> "Local" Тогда
ВызватьИсключение "Не совпал собственный источник";
КонецЕсли;
Набор = Схема.НаборыДанных.Получить(0);
Если ТипЗнч(Набор) <> Тип("НаборДанныхЗапросСхемыКомпоновкиДанных") Тогда
ВызватьИсключение "Нужен собственный набор запроса";
КонецЕсли;
Если Набор.Имя <> "УчебныеОстатки85" Или Набор.ИсточникДанных <> "СвоиДанные85"
Или Набор.АвтоЗаполнениеДоступныхПолей Или Набор.Запрос <> "ВЫБРАТЬ ""A01"" КАК КодТовара, 3 КАК Количество, ""Учебный"" КАК Склад"
Или Набор.Поля.Количество() <> 3 Тогда
ВызватьИсключение "Не совпали полный собственный запрос и ручное описание полей";
КонецЕсли;
Имена = СтрРазделить("КодТовара|Количество|Склад", "|");
Типы = СтрРазделить("Строка,Число,Строка", ",");
Для Индекс = 0 По 2 Цикл
Поле = Набор.Поля.Получить(Индекс);
Если ТипЗнч(Поле) <> Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")
Или Поле.Поле <> Имена[Индекс] Или Поле.ПутьКДанным <> Имена[Индекс]
Или ТипЗнч(Поле.ТипЗначения) <> Тип("ОписаниеТипов") Тогда
ВызватьИсключение "Не совпали полный путь, имя и описание собственного поля";
КонецЕсли;
ПолныеТипы = Поле.ТипЗначения.Типы();
Если ПолныеТипы.Количество() <> 1 Или ПолныеТипы[0] <> Тип(Типы[Индекс]) Тогда
ВызватьИсключение "Не совпал полный набор типов собственного поля";
КонецЕсли;
Если Индекс = 1 Тогда
ПроверитьСвоюРазрядностьМакета(Поле.ТипЗначения);
КонецЕсли;
КонецЦикла;
ИменаМакетов = СтрРазделить("КодТовара|Количество|Склад|КоличествоВыделено85", "|");
Тексты = СтрРазделить("Код: A01|Количество: 3|Склад: Учебный|Количество: 3 (выделено)", "|");
Для Индекс = 0 По 3 Цикл
Описание = Схема.Макеты.Получить(Индекс);
Если ТипЗнч(Описание) <> Тип("ОписаниеМакетаСхемыКомпоновкиДанных")
Или Описание.Имя <> ИменаМакетов[Индекс] Или Схема.Макеты.Найти(ИменаМакетов[Индекс]) <> Описание Тогда
ВызватьИсключение "Не совпали имена и порядок существующих собственных макетов";
КонецЕсли;
ПроверитьСвоюПолнуюОбласть(Описание, Тексты[Индекс]);
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьСвоюПривязкуПоля(Схема, Привязка, ИмяПоля, ИмяМакета)
ПроверитьСвоюОсновуМакетовПолей(Схема);
Если ТипЗнч(Привязка) <> Тип("МакетПоляСхемыКомпоновкиДанных")
Или Схема.МакетыПолей.Индекс(Привязка) < 0 Тогда
ВызватьИсключение "Нужна текущая собственная привязка этой схемы";
КонецЕсли;
Если ИмяПоля <> "КодТовара" И ИмяПоля <> "Количество" И ИмяПоля <> "Склад" Тогда
ВызватьИсключение "Привязывается только одно из трёх объявленных собственных полей";
КонецЕсли;
Если ТипЗнч(Схема.Макеты.Найти(ИмяМакета)) <> Тип("ОписаниеМакетаСхемыКомпоновкиДанных") Тогда
ВызватьИсключение "Ссылка должна указывать на существующий собственный макет";
КонецЕсли;
Привязка.Поле = ИмяПоля;
Привязка.Макет = ИмяМакета;
КонецПроцедуры
Процедура ПроверитьСвоиПривязкиПолей(Схема, ИменаПолей, ИменаМакетов)
ПроверитьСвоюОсновуМакетовПолей(Схема);
Привязки = Схема.МакетыПолей;
Если ТипЗнч(Привязки) <> Тип("МакетыПолейСхемыКомпоновкиДанных")
Или ИменаПолей.Количество() <> ИменаМакетов.Количество() Или Привязки.Количество() <> ИменаПолей.Количество() Тогда
ВызватьИсключение "Не совпал полный собственный состав привязок";
КонецЕсли;
Для Индекс = 0 По ИменаПолей.Количество() - 1 Цикл
Привязка = Привязки.Получить(Индекс);
Если ТипЗнч(Привязка) <> Тип("МакетПоляСхемыКомпоновкиДанных")
Или ТипЗнч(Привязка.Поле) <> Тип("Строка") Или ТипЗнч(Привязка.Макет) <> Тип("Строка")
Или Привязка.Поле <> ИменаПолей[Индекс] Или Привязка.Макет <> ИменаМакетов[Индекс]
Или Привязки.Индекс(Привязка) <> Индекс Или Привязки[Индекс] <> Привязка Тогда
ВызватьИсключение "Не совпали строки ссылок, типы и порядок всех собственных привязок";
КонецЕсли;
Если ТипЗнч(Схема.Макеты.Найти(Привязка.Макет)) <> Тип("ОписаниеМакетаСхемыКомпоновкиДанных") Тогда
ВызватьИсключение "Каждая ссылка должна вести к существующему собственному макету";
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ВосстановитьСвоиПривязкиПолей(Схема)
Пусто = Новый Массив;
ПроверитьСвоиПривязкиПолей(Схема, Пусто, Пусто);
Имена = СтрРазделить("КодТовара|Количество|Склад", "|");
Для Каждого Имя Из Имена Цикл
Привязка = Схема.МакетыПолей.Добавить();
ЗаполнитьСвоюПривязкуПоля(Схема, Привязка, Имя, Имя);
КонецЦикла;
ПроверитьСвоиПривязкиПолей(Схема, Имена, Имена);
КонецПроцедурыУчебныеМакетыПолей85.Форма
Своя внешняя обработка УчебныеМакетыПолей85 → управляемая Форма → Модуль
Полный отдельный модуль собственной формы с серверным вызовом; здесь не запускался.
&НаКлиенте
Процедура Выполнить(Команда)
ВыполнитьНаСервере();
Сообщить("Привязки к существующим полям и макетам, переключение ссылки и восстановление проверены");
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ВыполнитьНаСервере()
УчебныеЗадачи.ВыполнитьПример();
КонецПроцедурыРазбор по шагам
Построить собственную основу: один источник, один набор, точный текст собственного запроса, три поля нужных полных типов и четыре именованных макета. В каждом макете проверить тип области, одну строку/ячейку/поле, постоянный полный текст и отсутствие параметров. Не предполагать автоматическое появление полей без их объявления.
Схема.МакетыПолей readonly, но её собственная коллекция изменяется методами. Добавить возвращает МакетПоляСхемыКомпоновкиДанных. Его writable Поле и Макет — строки: имя объявленного поля и имя существующего описания в Схема.Макеты, не объекты областей.
Добавить КодТовара и Количество. Для демонстрации Найти использовать их одинаковые имена поля и основного макета; Склад пока не имеет привязки. Справка говорит о поиске по имени, не уточняя свойство-ключ. Здесь не утверждается отдельная недокументированная семантика поиска после смены ссылки.
Вставить привязку склада по индексу1; проверить КодТовара/Склад/Количество. Сдвинуть принимает объект Склад и относительное+1, после чего порядок КодТовара/Количество/Склад. Каждый элемент проверен через Получить,[],Индекс, обе строковые ссылки и наличие настоящего макета.
Не меняя Поле="Количество", задать Макет="КоличествоВыделено85". Эта четвёртая область реально создана и содержит «Количество: 3 (выделено)». Проверить все ссылки и содержание, затем вернуть Макет="Количество". Текст запроса и три поля не меняются.
Независимую схему, источник, поля, области и привязки создать заново из собственных строк/типов. Удалить текущий объект Количество, не индекс1; после удаления его не использовать. Копия сохраняет исходные ссылки. Восстановить новым Вставить(1), затем очистить только привязки оригинала и подтвердить их0 при сохранённых полях/областях.
Одиннадцать контрольных состояний оригинала завершаются новым созданием трёх привязок. Обе независимые модели проверены по полному эталону полей, типов, пути, запроса, макетов, текстов и порядка ссылок. Изменение каталога не выдаётся за готовый скомпилированный отчёт.
Как проверить результат
Будущий результат модели: поля КодТовара/Количество/Склад с типами Строка/Число/Строка, четыре области сохранены. После восстановления три привязки ссылаются на одноимённые основные макеты в порядке0/1/2. Временное переключение количества затронуло только строковое имя макета, не поле или источник.
Будущий отрицательный контроль: сразу после Количество.Макет = "КоличествоВыделено85" заменить это имя на "НетТакогоУчебногоМакета85", сохранив ожидаемое имя альтернативной области. Проверка должна отказать по полному значению ссылки при том же размере3. Вернуть код, сохранить/F7 вне опыта и открыть новый свой сеанс. Здесь контроль не выполнялся.
runtimeVerifiedScenarios=0. Query/Local — только объявления в собственной модели; нет выполнения запроса, формирования отчёта, записи, сети, печати и обращения к рабочим конфигурациям.
Ожидаемый результат
Урок показывает различие между строковой ссылкой Макет у привязки и объектной областью Макет у описания, с реальными собственными полями и полным восстановлением.
На что обратить внимание
Макет у МакетПоляСхемыКомпоновкиДанных — Строка; у ОписаниеМакетаСхемыКомпоновкиДанных — МакетОбластиКомпоновкиДанных. Не присваивайте область строковой ссылке или неизвестное имя несуществующего макета.
ПутьКДанным определяет имя поля в выражениях/настройках. В этом простом собственном наборе он намеренно равен Поле, поэтому разночтений нет. Состав полей объявлен вручную и каждый раз проверяется, не берётся из неизвестной конфигурации.
Вставить — абсолютный индекс, Сдвинуть — объект и относительное смещение, Удалить — объект. Оператор[] этой коллекции документирован по индексу, не по имени. После удаления/очистки старые привязки не используются.
Для Найти в этом опыте основные имя поля и имя макета совпадают. Не заявляется проверенный в1С ключ поиска для разных имён: переключённая ссылка проверяется через текущую привязку, индекс и фактические свойства. Это ограничение явно отделено от полного контроля существования макета.
Оригинал и копия не разделяют изменяемые области, поля или привязки. Очистка МакетыПолей не очищает Макеты или НаборыДанных; их полный состав и тексты проверяются заново.
Здесь не компилируется макет отчёта и не доказывается внешний вид. Чтобы получать данные и выводить отчёт, нужен отдельный согласованный цикл настроек/компиляции/процессора; настоящий запуск не входит в этот опыт.
Число в ОписаниеТипов задаётся вместе со вторым аргументом КвалификаторыЧисла(1,0,Неотрицательный), а не одним именем типа. Полная проверка сначала сверяет единственный тип Число, затем тип квалификаторов, общую разрядность1, дробную0 и знак. Строковые КодТовара/Склад остаются строками без числовых квалификаторов. Не расширяйте данные за0–9 без согласованного изменения описания и его эталона; запрос и агрегат здесь не исполняются.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.