Содержит свойства, специфичные для поля вида ПолеГрафическойСхемы.
Полное описание, параметры и ограничения
Расширение поля формы для поля графической схемы (Form field extension for a graphical schema field)
Расширение поля формы для поля графической схемы (Form field extension for a graphical schema field)
Доступен, начиная с версии 8.2.
Свойства:
АвтоМаксимальнаяВысота (AutoMaxHeight)
АвтоМаксимальнаяШирина (AutoMaxWidth)
Вывод (Output)
Высота (Height)
МаксимальнаяВысота (MaxHeight)
МаксимальнаяШирина (MaxWidth)
РастягиватьПоВертикали (VerticalStretch)
РастягиватьПоГоризонтали (HorizontalStretch)
Редактирование (Edit)
ТекущийЭлемент (CurrentItem)
ЦветРамки (BorderColor)
Ширина (Width)
События:
Выбор (Selection)
ПередЗаписью (BeforeWrite)
ПередПечатью (BeforePrint)
ПослеЗаписи (AfterWrite)
ПриАктивизации (OnActivate)
Описание:
Содержит свойства, специфичные для поля вида ПолеГрафическойСхемы.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Управляемое поле схемы: размеры, текущий элемент и ограничение вывода
Полный модуль управляемой формы. Настройки поля выполняются на сервере, а текущий элемент выбирается клиентом из своей реально подготовленной схемы. ЦветРамки разобран как legacy свойство без обещания визуального эффекта в8.5.
Где и как запускать
Полный модуль управляемой формы собственной CF. Server создание/настройки поля, client CurrentItem и memory roundtrip. Не обычная форма.
Подготовка
Собственная новая пустая CF УчебныеПоляГрафическойСхемы85 на точной платформе8.5.1.1343, без рабочих объектов, расширений, подписок и регламентных заданий. Создайте Задача85: номер Строка9 с автонумерацией, наименование100, без адресации/проверок/обработчиков. Ни задача, ни процесс в уроке не записываются и не запускаются.
Создайте БизнесПроцесс Маршрут85: номер Строка9 с автонумерацией, свойство Задача=Задача85. Карта маршрута: Старт85 → одиночное действие Подготовить85 → Завершить85. Соедините двумя стрелками, без других элементов/декораций/условий. Представление действия «Подготовить свою учебную книгу». Модули процесса/задачи и события карты пустые; обновите только свою CF.
Форма учебной внешней обработки принадлежит только этой новой CF. Код через СоздатьБизнесПроцесс и ПолучитьКартуМаршрута получает реально подготовленную карту в памяти. Коллекция схемы не имеет Добавить: новые точки честно создаются в Конфигураторе, не фиктивным вызовом к несуществующему API.
Ожидаются три точки и две линии, всего5 элементов. Точка действия сначала найдена на сервере/толстом клиенте по настоящему БизнесПроцессы.Маршрут85.ТочкиМаршрута.Подготовить85, ее readonly Имя передается клиенту. Тонкий клиент не обращается к сервер-only ТочкиМаршрута менеджера.
Записать/Прочитать используют лишь свои ПотокВПамяти и поток своих байтов, не имя файла, XML или внешний источник. Получена отдельная копия: число элементов/цвет/поле страницы сохраняются, изменение копии15→20 не меняет исходник15. Не выдавайте присваивание ссылки за независимую копию.
Это авторский учебный код и статические проверки. Никакие GUI,1С,принтеры,сеть,файлы или процессы во время подготовки справочника не запускались. В будущих ручных проверках используйте только свою карту и свой новый стенд.
Создайте отдельную управляемую форму внешней обработки УчебнаяКартаManaged85. Реквизиты формы: Схема85 ГрафическаяСхема, ИмяДействия85 Строка, Статус85 Строка. На форму добавьте поле ПолеСхемы85 вида ПолеГрафическойСхемы, ПутьКДанным=Схема85. Строковые реквизиты только просмотра.
Свяжите ПриСозданииНаСервере с одноименной процедурой. Команды/кнопки ВыбратьПодготовку85 и ПроверитьНезависимуюКопию85 — с одноименными client действиями. Вставьте весь основной модуль. Положительный stream вариант рассчитан на thin/thick managed desktop; веб-клиент сознательно исключен из Прочитать в installed help.
Размеры72×18 и максимумы90×24 задаются в символах, не в пикселях/миллиметрах. АвтоМаксимальнаяШирина/Высота=Ложь делает явные максимумы действующими. Horizontal stretch включен, vertical stretch отключен; UI компоновка отдельно проверяется человеком.
Поле.Вывод=Запретить и документ.Вывод=Запретить остаются ограничениями печати/сохранения/буфера. В этом модуле нет native печати, записи файлов или clipboard вызовов. Не добавляйте изменения размеров/серверные вызовы в ПриАктивизации: native запрещает это в таком событии. Этот модуль не содержит этого обработчика.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Данные = ПолучитьСвоюКарту85();
Схема85 = Данные.Схема;
ИмяДействия85 = Данные.ИмяДействия;
Поле = Элементы.ПолеСхемы85;
Поле.АвтоМаксимальнаяШирина = Ложь;
Поле.АвтоМаксимальнаяВысота = Ложь;
Поле.Ширина = 72;
Поле.Высота = 18;
Поле.МаксимальнаяШирина = 90;
Поле.МаксимальнаяВысота = 24;
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Ложь;
Поле.Редактирование = Ложь;
Поле.Вывод = ИспользованиеВывода.Запретить;
Поле.ЦветРамки = Новый Цвет(37, 99, 235);
Если Поле.АвтоМаксимальнаяШирина Или Поле.АвтоМаксимальнаяВысота Или Поле.Ширина <> 72 Или Поле.Высота <> 18
Или Поле.МаксимальнаяШирина <> 90 Или Поле.МаксимальнаяВысота <> 24 Или Не Поле.РастягиватьПоГоризонтали
Или Поле.РастягиватьПоВертикали Или Поле.Редактирование Или Поле.Вывод <> ИспользованиеВывода.Запретить
Или Поле.ЦветРамки <> Новый Цвет(37, 99, 235) Тогда
ВызватьИсключение "Свойства своего managed поля не прочитаны обратно";
КонецЕсли;
Статус85 = "Собственная карта; размеры в символах. ЦветРамки не применяется в интерфейсе Версия8.5";
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьПодготовку85(Команда)
#Если ТонкийКлиент Или ТолстыйКлиентУправляемоеПриложение Тогда
Подготовка = Схема85.ЭлементыГрафическойСхемы.Найти(ИмяДействия85);
Если Подготовка = Неопределено Или ТипЗнч(Подготовка) <> Тип("ЭлементГрафическойСхемыДействие") Тогда
ВызватьИсключение "Нет собственной реальной точки действия";
КонецЕсли;
Поле = Элементы.ПолеСхемы85;
Поле.ТекущийЭлемент = Подготовка;
Если Поле.ТекущийЭлемент <> Подготовка Тогда
ВызватьИсключение "Своя текущая точка не выбрана";
КонецЕсли;
Статус85 = "Выбрана реальная собственная точка " + Подготовка.Имя;
#Иначе
ВызватьИсключение "Этот полный вариант со stream roundtrip ограничен настольным managed клиентом";
#КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНезависимуюКопию85(Команда)
#Если ТонкийКлиент Или ТолстыйКлиентУправляемоеПриложение Тогда
Копия = КопироватьСвоюСхемуНаКлиенте85(Схема85);
Копия.ПолеСлева = 20;
Если Схема85.ПолеСлева <> 15 Или Копия.ПолеСлева <> 20 Или Копия.ЭлементыГрафическойСхемы.Количество() <> 5 Тогда
ВызватьИсключение "Memory roundtrip должен сохранить маршрут и отделить копию";
КонецЕсли;
Статус85 = "Исходник15, копия20; три точки и две линии сохранены. Печати и файлов нет";
#Иначе
ВызватьИсключение "Прочитать из потока в этой версии не поддержан веб-клиентом";
#КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПроверитьСвойПустойСтенд()
Если Метаданные.Справочники.Количество() <> 0 Или Метаданные.Документы.Количество() <> 0 Или Метаданные.Перечисления.Количество() <> 0 Или Метаданные.РегистрыСведений.Количество() <> 0 Или Метаданные.РегистрыНакопления.Количество() <> 0 Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Или Метаданные.РегистрыРасчета.Количество() <> 0 Или Метаданные.ПланыВидовХарактеристик.Количество() <> 0 Или Метаданные.ПланыВидовРасчета.Количество() <> 0 Или Метаданные.ПланыСчетов.Количество() <> 0 Или Метаданные.ПланыОбмена.Количество() <> 0 Или Метаданные.Последовательности.Количество() <> 0 Или Метаданные.БизнесПроцессы.Количество() <> 1 Или Метаданные.Задачи.Количество() <> 1 Или Метаданные.ОбщиеРеквизиты.Количество() <> 0 Или Метаданные.ПодпискиНаСобытия.Количество() <> 0 Или Метаданные.РегламентныеЗадания.Количество() <> 0 Или Метаданные.ВнешниеИсточникиДанных.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только свой новый пустой учебный стенд";
КонецЕсли;
Если Метаданные.ЕстьИзмененияРасширениямиКонфигурации() Тогда
ВызватьИсключение "Свой сеанс не должен изменяться расширениями";
КонецЕсли;
Источники = Новый Массив;
Источники.Добавить(ИсточникРасширенийКонфигурации.БазаДанных);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансАктивные);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансОтключенные);
Для Каждого Источник Из Источники Цикл
Расширения = РасширенияКонфигурации.Получить(, Источник);
Если ТипЗнч(Расширения) <> Тип("Массив") Тогда
ВызватьИсключение "Native список расширений должен иметь тип Массив";
КонецЕсли;
Если Расширения.Количество() <> 0 Тогда
ВызватьИсключение "В своём новом стенде нет расширений базы или сеанса";
КонецЕсли;
КонецЦикла;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Чужая или вложенная активная транзакция не допускается";
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСвоюКарту85()
ПроверитьСвойПустойСтенд();
Если Метаданные.БизнесПроцессы.Найти("Маршрут85") = Неопределено Или Метаданные.Задачи.Найти("Задача85") = Неопределено Тогда
ВызватьИсключение "Нужны собственные процесс, задача и три точки карты";
КонецЕсли;
Процесс = БизнесПроцессы.Маршрут85.СоздатьБизнесПроцесс();
Схема = Процесс.ПолучитьКартуМаршрута();
Если ТипЗнч(Схема) <> Тип("ГрафическаяСхема") Или Схема.ЭлементыГрафическойСхемы.Количество() <> 5 Тогда
ВызватьИсключение "Карта должна содержать три точки и две соединительные линии";
КонецЕсли;
Подготовка = Схема.ЭлементыГрафическойСхемы.Найти(БизнесПроцессы.Маршрут85.ТочкиМаршрута.Подготовить85);
Если Подготовка = Неопределено Или ТипЗнч(Подготовка) <> Тип("ЭлементГрафическойСхемыДействие") Тогда
ВызватьИсключение "Не найдено реальное собственное одиночное действие Подготовить85";
КонецЕсли;
Схема.ЦветФона = Новый Цвет(248, 250, 252);
Схема.ПолеСлева = 15;
Схема.Вывод = ИспользованиеВывода.Запретить;
Возврат Новый Структура("Схема,ИмяДействия", Схема, Подготовка.Имя);
КонецФункции
&НаКлиенте
Функция КопироватьСвоюСхемуНаКлиенте85(Источник)
Если ТипЗнч(Источник) <> Тип("ГрафическаяСхема") Тогда
ВызватьИсключение "Копируется только собственная графическая схема";
КонецЕсли;
Запись = Новый ПотокВПамяти;
Попытка
Источник.Записать(Запись);
Байты = Запись.ЗакрытьИПолучитьДвоичныеДанные();
Исключение
Запись.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение = Байты.ОткрытьПотокДляЧтения();
Копия = Новый ГрафическаяСхема;
Попытка
Копия.Прочитать(Чтение);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если Копия.ЭлементыГрафическойСхемы.Количество() <> Источник.ЭлементыГрафическойСхемы.Количество()
Или Копия.ПолеСлева <> Источник.ПолеСлева Или Копия.ЦветФона <> Источник.ЦветФона Тогда
ВызватьИсключение "Свой memory roundtrip не сохранил структуру и настройки";
КонецЕсли;
Возврат Копия;
КонецФункции
Разбор по шагам
ПриСозданииНаСервере получает карту своего незаписанного процесса. ТочкиМаршрута используются только сервером; client получает настоящее readonly имя найденного действия, не произвольный идентификатор.
Элементы.ПолеСхемы85 — реальное managed поле с заранее привязанным Схема85. Тип расширения в exporter называется Расширение графической схемы; native заголовок — Расширение поля формы для поля графической схемы. Это не standalone ПолеГрафическойСхемы ctor.
Оба automatic maxima отключены. Затем задаются ширина72, высота18, максимум90×24 и разные stretch флаги; весь набор readback проверяется сервером. Условия с maximum0 означали бы отсутствие ограничения, здесь0не используется.
Редактирование=Ложь относится к изменению схемы в UI; Вывод=Запретить — к печати/сохранению/буферу. Это разные настройки, не права на всю ИБ и не защита от программного изменения своей копии.
ЦветРамки присваивается и читается как native legacy API, но статус прямо говорит: в интерфейсе Версия8.5 он не применяется. Сохранение цвета не называется видимой синей рамкой; native UI поведение не выдумывается.
ТекущийЭлемент имеет client-only availability по своей странице. Client ищет именно собственное действие из Схема85 по настоящему имени; setter и readback происходят клиентом, не в server ПриСоздании.
ПроверитьНезависимуюКопию85 сериализует только свою схему в ПотокВПамяти и читает собственные байты новым документом. Изменяет поле копии15→20, подтверждает исходник15 и карту5. Схема не сохраняется в файл/базу, процесс не запускается.
Открытие/выбор не вызывает HTTP/XML/историю/копии БД/печать/установку событий. Нет blanket действия server в активизации; пользовательские проверки размеров выполняются безопасно при создании либо отдельной явной client команде.
Как проверить результат
Server readback подтверждает false automatic maxima,72/18,90/24, horizontal true/vertical false, editing false/output deny. Пиксельного совпадения UI code не обещает.
ВыбратьПодготовку85 в thin/thick managed выбирает реальную собственную точку и подтверждает CurrentItem. Отсутствующая точка вызывает отказ, без выбора первого случайного элемента.
Memory roundtrip дает карту5, исходное поле15/копия20; документ UI не меняется. Нет пути файла или внешнего XDTO/XML сериализатора.
В интерфейсе Версия8.5 не ждите изменения видимой рамки от ЦветРамки. Это прямо ограничено native help, не ошибка при readback RGB свойства.
Серверный код не читает и не назначает ТекущийЭлемент. Из client ПриАктивизации не выполняются server calls или свойства, требующие server RPC; такой обработчик не написан.
Web full сценарий отказывает до синхронного Прочитать. Static проверки не выдаются за runtime/отрисовку формы; runtimeVerifiedScenarios=0.
Ожидаемый результат
Собственная управляемая форма имеет точные настройки размеров/ограничений/растягивания, client выбор реально существующего действия и независимую memory копию. Ordinary-control API и legacy визуальные обещания не подмешаны.
На что обратить внимание
Native Ширина/Высота задаются в символах. Описание Высота в installed help содержит слово ширина, а РастягиватьПоВертикали — календаря: это редакционные неточности. Код не переименовывает свойства и не делает из единиц пиксели.
Native ТекущийЭлемент отсутствует в server availability своей страницы, хотя общая страница расширения включает server. Поэтому оно применяется исключительно client командой после получения своего настоящего документа.
В интерфейсе Версия8.5 ЦветРамки не применяется. Числа и цвет readback не являются доказанным видом конкретного клиента/темы или гарантией размеров экрана.
ГрафическаяСхема.Прочитать из потока не имеет web availability в installed help. Desktop guards обязательны, managed возможность вида поля не расширяет availability underlying stream read.
Свой route fixture создается в Конфигураторе; коллекция графики не имеет Добавить. Не добавляйте fictional shape creators, не запускайте рабочий процесс для получения своей карты.
Примеры не запускались: нет actual1C/GUI/печати/файлов/сети. Свои потоки — лишь future BSL операции в памяти; статические проверки не означают runtimeVerified.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.