Тип: РасположениеПоляКомпоновкиДанных. Указывает, каким образом располагать поля группы.
Полное описание, параметры и ограничения
ГруппаВыбранныхПолейКомпоновкиДанных.Расположение (DataCompositionSelectedFieldGroup.Placement)
ГруппаВыбранныхПолейКомпоновкиДанных (DataCompositionSelectedFieldGroup)
Расположение (Placement)
Доступен, начиная с версии 8.1.
Использование:
Чтение и запись.
Описание:
Тип: РасположениеПоляКомпоновкиДанных.
Указывает, каким образом располагать поля группы.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Группа выбранных полей: заголовок по полю и расположение реальных ячеек
Создаем папку Цена/Сумма, связанную с доступным полем Количество. Его default-заголовок отличаем от отдельно переименованной колонки Штук. Пользователь меняет горизонтальное расположение на вертикальное и возвращает назад; проверяем фактические координаты250/750 и числа обеих записей.
Где и как запускать
Полный серверный общий модуль собственного нового стенда УчебныеГруппыНастроек85; каждый урок запускается отдельно.
Подготовка
Создать НОВУЮ отдельную пустую учебную базу, не рабочую и не ее копию: точно8.5.1.1343; конфигурация УчебныеГруппыНастроек85, совместимость Не использовать. Без бизнес-объектов, регистров, подписок, заданий и расширений.
Конфигуратор → Общие → Общие модули → УчебныеГруппыНастроек85: Сервер=Да, Вызов сервера=Да, Клиент=Нет, Глобальный=Нет, Привилегированный=Нет. Вставить ВЕСЬ код одного выбранного урока. Одноименные ВыполнитьПример разных уроков не смешивать.
Конфигуратор → Обработки → УчебныеГруппыНастроек85 → Формы → Пульт: управляемая форма, команда Выполнить и кнопка с этой командой; действие команды Выполнить. Полный модуль формы дан отдельно ниже; реквизиты не нужны.
Сохранить и обновить собственную конфигурацию базы данных (F7). Запустить свежий свой клиент и открыть учебную обработку. Это будущие ручные шаги: здесь F7 и1С не запускались.
Схема полностью создается в памяти: Local-запрос Книга3×250=750 / Ручка1×50=50. Никаких записей справочников, документов или регистров не нужно.
Редактор обязательно связывается с настоящим источником доступных настроек. Пользовательский объект ищется в его реальной коллекции по своему ID и проверяется по точному типу.
В опыте выбранных полей используется стандартный генератор табличного документа. Проверка координат рассчитана только на эту собственную маленькую таблицу без ресурсов, итоговых строк, других групп и макетов оформления.
runtimeVerifiedScenarios=0. Выполнены только статические проверки установленной справки и HTML. XML хранится строками памяти: файлов, архивов, резервных копий, сети, печати и production здесь нет.
Функция ВыполнитьПример() Экспорт
ПроверитьСвойПустойСтенд();
Схема = Новый СхемаКомпоновкиДанных;
ЗаполнитьСвоиДанные(Схема);
ЗаполнитьСвоиНачальныеНастройки(Схема.НастройкиПоУмолчанию);
Выбор = Схема.НастройкиПоУмолчанию.Выбор;
Выбор.Элементы.Очистить();
Для Каждого ИмяПоля Из СтрРазделить("Наименование,Количество", ",") Цикл
Поле = Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле.Поле = Новый ПолеКомпоновкиДанных(ИмяПоля);
Поле.Использование = Истина;
Поле.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
Если ИмяПоля = "Количество" Тогда
Поле.Заголовок = "Штук";
КонецЕсли;
КонецЦикла;
Папка = Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
Папка.Поле = Новый ПолеКомпоновкиДанных("Количество");
Папка.Заголовок = "";
Папка.Использование = Истина;
Папка.Расположение = РасположениеПоляКомпоновкиДанных.Горизонтально;
Папка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
Для Каждого ИмяПоля Из СтрРазделить("Цена,Сумма", ",") Цикл
Поле = Папка.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Поле.Поле = Новый ПолеКомпоновкиДанных(ИмяПоля);
Поле.Использование = Истина;
Поле.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
КонецЦикла;
Выбор.ИдентификаторПользовательскойНастройки = "РасположениеСтоимости85";
ТекстСхемы = СвойОбъектРасшифровкиВСтроку(Схема);
Редактор = СоздатьСвойРедактор(Схема);
Если Редактор.Настройки.Выбор.ДоступныеПоляВыбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Количество")) = Неопределено Тогда
ВызватьИсключение "Связанная папка должна ссылаться на настоящее поле текущего источника";
КонецЕсли;
ОсновнаяПапка = НайтиСвоюПапку(Редактор.Настройки.Выбор);
Если ОсновнаяПапка.Поле <> Новый ПолеКомпоновкиДанных("Количество")
Или ОсновнаяПапка.Заголовок <> ""
Или ОсновнаяПапка.Расположение <> РасположениеПоляКомпоновкиДанных.Горизонтально
Или ОсновнаяПапка.РежимОтображения <> РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто Тогда
ВызватьИсключение "Основная папка должна сохранить реальное поле для заголовка по умолчанию и горизонтальное расположение";
КонецЕсли;
ПользовательскийВыбор = ПолучитьСвойПользовательскийРаздел(Редактор, "РасположениеСтоимости85", Тип("ВыбранныеПоляКомпоновкиДанных"));
ПользовательскаяПапка = НайтиСвоюПапку(ПользовательскийВыбор);
ПользовательскаяПапка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
Если ПользовательскаяПапка.РежимОтображения <> РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто Тогда
ВызватьИсключение "Режим собственной папки в пользовательском выборе должен остаться Авто";
КонецЕсли;
ТекстОсновных = СвойОбъектРасшифровкиВСтроку(Редактор.Настройки);
ПроверитьСвоюПапкуВВыводе(Схема, Редактор.ПолучитьНастройки(), Ложь);
ПользовательскаяПапка.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально;
Если ПользовательскаяПапка.Расположение <> РасположениеПоляКомпоновкиДанных.Вертикально Тогда
ВызватьИсключение "User-папка должна принять вертикальное расположение";
КонецЕсли;
ПроверитьСвоюПапкуВВыводе(Схема, Редактор.ПолучитьНастройки(), Истина);
ПользовательскаяПапка.Расположение = РасположениеПоляКомпоновкиДанных.Горизонтально;
ПроверитьСвоюПапкуВВыводе(Схема, Редактор.ПолучитьНастройки(), Ложь);
Если СвойОбъектРасшифровкиВСтроку(Редактор.Настройки) <> ТекстОсновных
Или СвойОбъектРасшифровкиВСтроку(Схема) <> ТекстСхемы Тогда
ВызватьИсключение "Пользовательское расположение не должно переписать основную папку или исходные поля";
КонецЕсли;
Возврат "Папка с полем Количество: заголовок по умолчанию проверяется отдельно от Штук; Цена/Сумма горизонтально→вертикально→горизонтально, реальные числа сохранены";
КонецФункции
Процедура ПроверитьСвойПустойСтенд()
Если Метаданные.Справочники.Количество() <> 0 Или Метаданные.Документы.Количество() <> 0 Или Метаданные.Перечисления.Количество() <> 0 Или Метаданные.РегистрыСведений.Количество() <> 0 Или Метаданные.РегистрыНакопления.Количество() <> 0 Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Или Метаданные.РегистрыРасчета.Количество() <> 0 Или Метаданные.ПланыВидовХарактеристик.Количество() <> 0 Или Метаданные.ПланыВидовРасчета.Количество() <> 0 Или Метаданные.ПланыСчетов.Количество() <> 0 Или Метаданные.ПланыОбмена.Количество() <> 0 Или Метаданные.Последовательности.Количество() <> 0 Или Метаданные.БизнесПроцессы.Количество() <> 0 Или Метаданные.Задачи.Количество() <> 0 Или Метаданные.ОбщиеРеквизиты.Количество() <> 0 Или Метаданные.ПодпискиНаСобытия.Количество() <> 0 Или Метаданные.РегламентныеЗадания.Количество() <> 0 Или Метаданные.ВнешниеИсточникиДанных.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только свой новый пустой учебный стенд";
КонецЕсли;
Если Метаданные.ЕстьИзмененияРасширениямиКонфигурации() Тогда
ВызватьИсключение "Свой сеанс не должен изменяться расширениями";
КонецЕсли;
Источники = Новый Массив;
Источники.Добавить(ИсточникРасширенийКонфигурации.БазаДанных);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансАктивные);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансОтключенные);
Для Каждого Источник Из Источники Цикл
Расширения = РасширенияКонфигурации.Получить(, Источник);
Если ТипЗнч(Расширения) <> Тип("Массив") Тогда
ВызватьИсключение "Native список расширений должен иметь тип Массив";
КонецЕсли;
Если Расширения.Количество() <> 0 Тогда
ВызватьИсключение "В своём новом стенде нет расширений базы или сеанса";
КонецЕсли;
КонецЦикла;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Чужая или вложенная активная транзакция не допускается";
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьСвоиДанные(Схема)
Источник = Схема.ИсточникиДанных.Добавить();
Источник.Имя = "УчебныйИсточник";
Источник.ТипИсточникаДанных = "Local";
Набор = Схема.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
Набор.Имя = "УчебныеТовары";
Набор.ИсточникДанных = Источник.Имя;
Набор.АвтоЗаполнениеДоступныхПолей = Истина;
Набор.Запрос = "ВЫБРАТЬ
| ""Книга"" КАК Наименование,
| 3 КАК Количество,
| 250 КАК Цена,
| 750 КАК Сумма
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ ""Ручка"", 1, 50, 50";
КонецПроцедуры
Процедура ЗаполнитьСвоиНачальныеНастройки(Настройки)
Для Каждого ИмяПоля Из СтрРазделить("Наименование,Количество,Цена,Сумма", ",") Цикл
Выбранное = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
Выбранное.Поле = Новый ПолеКомпоновкиДанных(ИмяПоля);
Выбранное.Использование = Истина;
КонецЦикла;
Детали = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
Детали.Использование = Истина;
АвтоВыбор = Детали.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
АвтоВыбор.Использование = Истина;
КонецПроцедуры
Функция СоздатьСвойРедактор(Схема)
Редактор = Новый КомпоновщикНастроекКомпоновкиДанных;
Редактор.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема));
Редактор.ЗагрузитьНастройки(Схема.НастройкиПоУмолчанию);
Возврат Редактор;
КонецФункции
Функция ПолучитьСвойПользовательскийРаздел(Редактор, Идентификатор, ТребуемыйТип)
Раздел = Редактор.ПользовательскиеНастройки.Элементы.Найти(Идентификатор);
Если Раздел = Неопределено Тогда
ВызватьИсключение "Собственный раздел должен реально появиться в пользовательских настройках";
КонецЕсли;
Если ТипЗнч(Раздел) <> ТребуемыйТип Или Раздел.ИдентификаторПользовательскойНастройки <> Идентификатор Тогда
ВызватьИсключение "Найден не тот тип или ID собственного пользовательского раздела";
КонецЕсли;
Возврат Раздел;
КонецФункции
Функция СвойОбъектРасшифровкиВСтроку(Объект)
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(Запись, Объект);
Возврат Запись.Закрыть();
КонецФункции
Функция НайтиСвоюПапку(Выбор)
Папка = Неопределено;
Если Выбор.Элементы.Количество() <> 3 Тогда
ВызватьИсключение "В своем выборе только Наименование, Количество и папка стоимости";
КонецЕсли;
Для Каждого Элемент Из Выбор.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
Если Папка <> Неопределено Тогда
ВызватьИсключение "В своем выборе должна быть одна настоящая папка";
КонецЕсли;
Папка = Элемент;
КонецЕсли;
КонецЦикла;
Если Папка = Неопределено Тогда
ВызватьИсключение "Не найдена собственная группа выбранных полей";
КонецЕсли;
Если Папка.Элементы.Количество() <> 2 Тогда
ВызватьИсключение "В папке только два реальных поля Цена и Сумма";
КонецЕсли;
Возврат Папка;
КонецФункции
Процедура ПроверитьСвоюПапкуВВыводе(Схема, Настройки, Вертикально)
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = Компоновщик.Выполнить(Схема, Настройки);
Копия = СвойОбъектРасшифровкиИзСтроки(СвойОбъектРасшифровкиВСтроку(Макет), Тип("МакетКомпоновкиДанных"));
Документ = СформироватьСвойДокумент(Копия);
Если Документ.ВысотаТаблицы = 0 Или Документ.ВысотаТаблицы > 200
Или Документ.ШиринаТаблицы = 0 Или Документ.ШиринаТаблицы > 100 Тогда
ВызватьИсключение "Ожидается только свой небольшой реальный документ с двумя товарами";
КонецЕсли;
Книга = 0;
Ручка = 0;
ЗаголовокПапки = Ложь;
ЗаголовокШтук = Ложь;
Для НомерСтроки = 1 По Документ.ВысотаТаблицы Цикл
Для НомерКолонки = 1 По Документ.ШиринаТаблицы Цикл
Текст = СокрЛП(Документ.Область(НомерСтроки, НомерКолонки).Текст);
Если Текст = "Количество" Тогда
ЗаголовокПапки = Истина;
ИначеЕсли Текст = "Штук" Тогда
ЗаголовокШтук = Истина;
ИначеЕсли Текст = "Книга" Тогда
Если Книга <> 0 Тогда
ВызватьИсключение "В документе только одна реальная строка Книги";
КонецЕсли;
Книга = НомерСтроки;
ИначеЕсли Текст = "Ручка" Тогда
Если Ручка <> 0 Тогда
ВызватьИсключение "В документе только одна реальная строка Ручки";
КонецЕсли;
Ручка = НомерСтроки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если Книга = 0 Или Ручка = 0 Или Книга = Ручка Или Не ЗаголовокПапки Или Не ЗаголовокШтук Тогда
ВызватьИсключение "Нужны две реальные записи, заголовок папки по доступному полю и отдельный заголовок Штук";
КонецЕсли;
НачалоКниги = Книга;
КонецКниги = ?(Книга < Ручка, Ручка - 1, Документ.ВысотаТаблицы);
НачалоРучки = Ручка;
КонецРучки = ?(Ручка < Книга, Книга - 1, Документ.ВысотаТаблицы);
ПроверитьСвоиЧислаПапки(Документ, НачалоКниги, КонецКниги, Истина, Вертикально);
ПроверитьСвоиЧислаПапки(Документ, НачалоРучки, КонецРучки, Ложь, Вертикально);
КонецПроцедуры
Процедура ПроверитьСвоиЧислаПапки(Документ, ПерваяСтрока, ПоследняяСтрока, ЭтоКнига, Вертикально)
ЕстьКоличество = Ложь;
СтрокаЦены = 0;
КолонкаЦены = 0;
СтрокаСуммы = 0;
КолонкаСуммы = 0;
ЧиселПятьдесят = 0;
Для НомерСтроки = ПерваяСтрока По ПоследняяСтрока Цикл
Для НомерКолонки = 1 По Документ.ШиринаТаблицы Цикл
ЧислоЯчейки = ПрочитатьСвоеЧисло(Документ.Область(НомерСтроки, НомерКолонки));
Если ЧислоЯчейки = Неопределено Тогда
Продолжить;
КонецЕсли;
Если ЭтоКнига Тогда
Если ЧислоЯчейки = 3 Тогда
ЕстьКоличество = Истина;
ИначеЕсли ЧислоЯчейки = 250 Тогда
Если СтрокаЦены <> 0 Тогда
ВызватьИсключение "В собственной записи Книги цена250 должна выводиться одной реальной ячейкой";
КонецЕсли;
СтрокаЦены = НомерСтроки;
КолонкаЦены = НомерКолонки;
ИначеЕсли ЧислоЯчейки = 750 Тогда
Если СтрокаСуммы <> 0 Тогда
ВызватьИсключение "В собственной записи Книги сумма750 должна выводиться одной реальной ячейкой";
КонецЕсли;
СтрокаСуммы = НомерСтроки;
КолонкаСуммы = НомерКолонки;
Иначе
ВызватьИсключение "В своей записи Книги только реальные числа3/250/750";
КонецЕсли;
Иначе
Если ЧислоЯчейки = 1 Тогда
ЕстьКоличество = Истина;
ИначеЕсли ЧислоЯчейки = 50 Тогда
ЧиселПятьдесят = ЧиселПятьдесят + 1;
Иначе
ВызватьИсключение "В своей записи Ручки только реальные числа1/50/50";
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если Не ЕстьКоличество Тогда
ВызватьИсключение "В каждой реальной записи нужно ее собственное количество";
КонецЕсли;
Если ЭтоКнига Тогда
Если СтрокаЦены = 0 Или СтрокаСуммы = 0 Тогда
ВызватьИсключение "Нужны обе настоящие ячейки250 и750";
КонецЕсли;
Если Вертикально Тогда
Если СтрокаЦены = СтрокаСуммы Или КолонкаЦены <> КолонкаСуммы Тогда
ВызватьИсключение "Вертикальная папка должна расположить свои цену и сумму в разных строках одной колонки";
КонецЕсли;
ИначеЕсли СтрокаЦены <> СтрокаСуммы Или КолонкаЦены = КолонкаСуммы Тогда
ВызватьИсключение "Горизонтальная папка должна расположить свои цену и сумму в разных колонках одной строки";
КонецЕсли;
ИначеЕсли ЧиселПятьдесят <> 2 Тогда
ВызватьИсключение "В записи Ручки должны быть две разные реальные ячейки50: цена и сумма";
КонецЕсли;
КонецПроцедуры
Функция СформироватьСвойДокумент(СвойМакет)
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(СвойМакет);
Документ = Новый ТабличныйДокумент;
Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Вывод.ОтображатьПроцентВывода = Ложь;
Вывод.УстановитьДокумент(Документ);
РезультатВывода = Вывод.Вывести(Процессор, Ложь);
Если ТипЗнч(РезультатВывода) <> Тип("ТабличныйДокумент") Тогда
ВызватьИсключение "Не получен собственный табличный документ";
КонецЕсли;
Возврат РезультатВывода;
КонецФункции
Функция ПрочитатьСвоеЧисло(Ячейка)
Если Ячейка.СодержитЗначение Тогда
Значение = Ячейка.Значение;
Если ТипЗнч(Значение) = Тип("Число") Тогда
Возврат Значение;
КонецЕсли;
Возврат Неопределено;
КонецЕсли;
Текст = СтрЗаменить(СтрЗаменить(СокрЛП(Ячейка.Текст), Символ(160), ""), " ", "");
Если Текст = "" Тогда
Возврат Неопределено;
КонецЕсли;
ЕстьЦифра = Ложь;
Для Позиция = 1 По СтрДлина(Текст) Цикл
Знак = Сред(Текст, Позиция, 1);
Если СтрНайти("0123456789", Знак) > 0 Тогда
ЕстьЦифра = Истина;
ИначеЕсли СтрНайти(",.-", Знак) = 0 Тогда
Возврат Неопределено;
КонецЕсли;
КонецЦикла;
Если Не ЕстьЦифра Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Число(Текст);
КонецФункции
Функция СвойОбъектРасшифровкиИзСтроки(СтрокаXML, ТребуемыйТип)
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(СтрокаXML);
Попытка
Объект = СериализаторXDTO.ПрочитатьXML(Чтение, ТребуемыйТип);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если ТипЗнч(Объект) <> ТребуемыйТип Тогда
ВызватьИсключение "Нужен полный собственный типизированный объект, не кусок ссылок";
КонецЕсли;
Возврат Объект;
КонецФункцииУчебныеГруппыНастроек85.Пульт
УчебныеГруппыНастроек85 → Обработки → УчебныеГруппыНастроек85 → Формы → Пульт → Модуль
Полный модуль собственной управляемой формы; здесь не выполнялся.
&НаКлиенте
Процедура Выполнить(Команда)
Сообщить(ВыполнитьНаСервере());
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВыполнитьНаСервере()
Возврат УчебныеГруппыНастроек85.ВыполнитьПример();
КонецФункцииРазбор по шагам
Очистить только свой исходный выбор в еще не связанной схеме. Добавить Наименование и Количество; у количественного поля явно задать заголовок Штук. Затем создать одну настоящую ГруппаВыбранныхПолейКомпоновкиДанных с двумя дочерними полями Цена и Сумма.
У папки Поле=ПолеКомпоновкиДанных("Количество"), Заголовок="", Использование=Истина, горизонтальное расположение и режим Авто. Поле папки связано с реальным доступным полем, чтобы получить заголовок по умолчанию; оно не добавляет еще одну колонку значений количества.
После source-инициализации проверить доступность Количество и реальные свойства основной папки. У родительского Выбор непустой пользовательский ID: фактическую папку найти в настоящем user-выборе по типу, не по случайному числовому индексу.
Режим Авто user-папки устанавливается и читается как разрешенное свойство. Не утверждается, что в этом опыте был открыт визуальный редактор. Само серверное Поле папки задается/читается только в основном серверном коде.
Настоящий первый табличный документ должен содержать default-заголовок папки Количество и отдельный заголовок Штук. Проверить собственные записи3/250/750 и1/50/50; для Книги цена и сумма находятся в одной строке, разных колонках.
В user-папке задать Вертикально. Новый реальный документ должен сохранить все числа; две фактические ячейки250/750 теперь находятся в разных строках одной колонки. Координаты извлекаются из результата, не назначаются проверяющим кодом.
Вернуть Горизонтально и повторить числовой/координатный контроль. Полный XML основных настроек и исходной схемы сохраняется. Интерактивное переименование, которое очищает Поле по native-контракту, не вызывается и не приписывается этому опыту.
Как проверить результат
Будущий запуск должен пройти три реальные компоновки и все проверки числовых данных. Флаг группы или enum расположения сам по себе не заменяет проверку результата.
В папке проверяются реальный default-заголовок и отдельный Штук, числовые ячейки двух записей. Горизонталь/вертикаль определяется координатами реальных ячеек250/750 Книги; Ручка должна иметь свое количество1 и две разные ячейки50.
Отрицательный контроль будущего отдельного опыта: изменить только число3 на30 в собственном буквальном запросе при прежней сумме750. Числовая проверка должна отказать; наличие заголовка или нужного количества полей недостаточно.
Полный XML собственных основных настроек и всей схемы сохраняется. Пользовательский слой влияет на эффективную копию, а не переписывает исходную схему.
runtimeVerifiedScenarios=0. Числовые и координатные проверки — будущие BSL-условия приемки, а не полученные здесь результаты выполнения1С.
Ожидаемый результат
Полный код проверяет три состояния реального результата и сохранность своего исходного дерева/папки. Здесь в1С не запускался.
На что обратить внимание
Группа отбора и группа выбранных полей — разные типы с разными свойствами. У user-группы отбора недоступны Родитель, Элементы, ТипГруппы и Представление: не обращаться к ним по аналогии с основным деревом.
Поле папки выбранных полей серверное и используется для получения заголовка по умолчанию. Интерактивное изменение заголовка по native-контракту очищает Поле, но этот UI-процесс здесь не запускался.
РежимОтображения подготовлен и проверен как значение модели; внешний вид настоящего редактора не подтвержден. Пользовательский ID задается конкретному основному объекту и ищется в соответствующем редакторе.
Проверка выбранной папки ограничена двумя собственными константными записями. Если применить чужой стиль, объединенные числовые ячейки, итоговые строки или другое размещение записей, требуется отдельный контроль, а не отключение диагностик.
После новой ЗагрузитьНастройки пользовательские объекты следует искать заново. В этих опытах пользовательский состав создается один раз; старые ссылки через перезагрузку не удерживаются.
Выключение своей вложенной группы не означает универсальный сброс всего отбора: независимое условие Сумма>0 продолжает действовать. В опыте нет записи пользовательских настроек между сеансами или изменения рабочих конфигураций.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.