ФормаКлиентскогоПриложения.УникальныйИдентификатор

Свойства · UUID

Тип: УникальныйИдентификатор. Уникальный идентификатор экземпляра формы.

Полное описание, параметры и ограничения

ФормаКлиентскогоПриложения.УникальныйИдентификатор (ClientApplicationForm.UUID)

ФормаКлиентскогоПриложения (ClientApplicationForm)

УникальныйИдентификатор (UUID)

Доступен, начиная с версии 8.2.

Использование:
Только чтение.
Описание:
Тип: УникальныйИдентификатор.
Уникальный идентификатор экземпляра формы.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Разделы и типы содержимого мобильного выбора: отменить помещение до передачи

Разделы и ТипыСодержимого работают только на мобильной платформе iOS/Android. Исторический НачатьПомещениеФайлов принимает подготовленный диалог; callback заранее запрещает помещение всех выбранных файлов.

Где и как запускать

Полный модуль своей управляемой формы учебного мобильного приложения iOS/Android. Только статическая сверка с установленным API 8.5.1.1343; фактический запуск, выбор и отмена помещения не проверены.

Подготовка

  1. Только отдельная собственная учебная база 8.5.1.1343 и учебное мобильное приложение на iOS или Android. Не запускайте в рабочем приложении, настольном или веб-клиенте ради проверки этих свойств.

  2. Создайте свою управляемую форму с командой НастроитьУчебныйМобильныйВыбор, Действие = НастроитьУчебныйМобильныйВыбор. Вставьте весь код, включая оба экспортных callback, на уровне модуля.

  3. Самостоятельно поместите на собственное тестовое устройство PNG owned-book-marker-32.png из lesson-assets руководства и разрешите приложению доступ только для этого теста. Не выбирайте рабочие документы, личные фото или чужие файлы.

  4. Это урок чтения старого API: НачатьПомещениеФайлов не рекомендуется с 8.3.15. Для новой загрузки изучайте НачатьПомещениеФайловНаСервер; этот урок ничего не загружает намеренно.

  5. Перед будущим ручным запуском проверьте обе привязки ОписаниеОповещения и строку ОтказОтПомещенияВсехФайлов = Истина в начале callback. Она обязательна: удалять её ради эксперимента нельзя.

  6. Фактический запуск не выполнялся. Указанный API может обращаться к собственному серверу учебного приложения; код запрещает передачу выбранных файлов до начала помещения. Это не обещание отсутствия любого служебного сетевого обмена приложения.

  7. Код не читает байты или имена выбранных ресурсов, не сохраняет и не удаляет файлы. Урок показывает настройки выбора и событие отмены, не проверку безопасности изображения.

  8. Собственный учебный запуск выполняется пользователем отдельно. Автоматическая GUI-проверка, выбор изображения и отправка данных не выполнялись.

&НаКлиенте
Процедура НастроитьУчебныйМобильныйВыбор(Команда)
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Разделы = Новый Массив;
    Разделы.Добавить(РазделДиалогаВыбораФайла.Галерея);
    Разделы.Добавить(РазделДиалогаВыбораФайла.Документы);
    Диалог.Разделы = Разделы;
    ТипыСодержимого = Новый Массив;
    ТипыСодержимого.Добавить("image/png");
    Диалог.ТипыСодержимого = ТипыСодержимого;
    Окончание = Новый ОписаниеОповещения("УчебныйМобильныйВыборЗавершен", ЭтаФорма, "Без передачи");
    ПередПомещением = Новый ОписаниеОповещения("ОтменитьУчебноеПомещение", ЭтаФорма, "Без передачи");
    НачатьПомещениеФайлов(Окончание, Диалог, Истина, ЭтаФорма.УникальныйИдентификатор, ПередПомещением);
КонецПроцедуры

&НаКлиенте
Процедура ОтменитьУчебноеПомещение(ПомещаемыеФайлы, ОтказОтПомещенияВсехФайлов, ДополнительныеПараметры) Экспорт
    ОтказОтПомещенияВсехФайлов = Истина;
    Если ДополнительныеПараметры <> "Без передачи" Тогда
        Сообщить("Неожиданный маркер урока; помещение всё равно запрещено");
        Возврат;
    КонецЕсли;
    Сообщить("Выбор завершён; помещение всех файлов отменено до передачи");
    Сообщить("Ссылок после выбора: " + Строка(ПомещаемыеФайлы.Количество()));
КонецПроцедуры

&НаКлиенте
Процедура УчебныйМобильныйВыборЗавершен(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт
    Если ДополнительныеПараметры <> "Без передачи" Тогда
        Сообщить("Неожиданный маркер завершения; результат не используется");
        Возврат;
    КонецЕсли;
    Если ПомещенныеФайлы = Неопределено Тогда
        Сообщить("Файлы не получены; содержимое не читаем");
    Иначе
        Сообщить("Неожиданный результат помещения: остановите ручной тест и проверьте привязку отмены; результат не обрабатывается");
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Массив Разделы содержит реальные значения Галерея и Документы. Это мобильные разделы выбора, не каталоги Windows и не вкладки обычной формы.

  2. ТипыСодержимого содержит строку image/png. По справке ограничение объединяется с активным фильтром платформы по И. Этот мобильный урок не задаёт настольные МножественныйВыбор и Фильтр; итоговый состав доступных ресурсов проверяется в своей мобильной среде. Это не определение истинного формата по байтам.

  3. Разделы заданы явно. Поэтому урок не полагается на автоматическое изменение разделов, которое справка описывает для Разделы = Неопределено.

  4. НачатьПомещениеФайлов получает подготовленный Диалог вторым параметром, интерактивный режим третьим, идентификатор своей формы четвёртым и callback перед началом пятым.

  5. Перед началом callback получает массив ссылок, возвращаемый флаг отказа и дополнительный маркер. Флаг сразу установлен Истина, а содержимое ссылок не открывается.

  6. По контракту при отказе перед началом callback завершения не вызывается. Обработчик завершения оставлен для ветки отказа пользователя и диагностики неожиданного результата; он не продолжает загрузку или обработку.

Как проверить результат

  1. После выбора своей PNG ожидается сообщение выбора/отмены помещения и фактическое число ссылок. Содержимое не читается; callback завершения после программного отказа не ожидается.

  2. Закройте выбор без файла: возможен callback завершения с Неопределено и сообщение файлы не получены.

  3. В интерфейсе iOS/Android проверьте доступные собственные разделы и ограничение image/png с учётом активного фильтра платформы. Настольный клиент этих свойств не демонстрирует.

  4. Если появился неожиданный результат помещения, остановите свой ручной тест, проверьте привязки; код не выдаёт этот результат за успешно проверенную отмену.

Ожидаемый результат

Мобильные настройки получили самостоятельный контекст применения и реальный callback, а не фиктивное присваивание в Windows, где эффект отсутствует.

На что обратить внимание

  1. НачатьПомещениеФайла в единственном числе имеет на мобильной платформе другое ограничение: интерактивный параметр игнорируется. Он не подменяет выбранный здесь API множественного помещения.

  2. Маска и тип содержимого — настройки интерфейса, не антивирус, не проверка MIME по байтам и не права на данные.

  3. Нельзя переносить сюда Выбрать, ВыбратьАсинх или Показать из настольных уроков без проверки доступности мобильной платформы.

  4. Не превращайте учебную отмену в реальную передачу файлов на рабочий сервер. Это отдельная операция, требующая другой подготовки и разрешения.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Привязать понятное сообщение проверки к полю учебной формы

Вместо исключения без указания места создаём СообщениеПользователю для конкретного реквизита и текущей формы. Никаких ссылок на рабочие объекты не требуется.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Создайте отдельную учебную внешнюю обработку с пустой управляемой основной формой. Каждую задачу запускайте в своей копии формы.

  2. Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.

  4. Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Новые = Новый Массив;
    ТипРеквизита = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(100));
    Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    ЭтаФорма.ЗначениеПримера = "";
    Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеВвода;
    Поле.ПутьКДанным = "ЗначениеПримера";
    Поле.Заголовок = "Название учебного товара";


    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить название";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Если Не ПустаяСтрока(ЗначениеПримера) Тогда
        Сообщить("Название заполнено. Товар в базу не записан.");
        Возврат;
    КонецЕсли;
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Укажите название учебного товара.";
    Сообщение.Поле = "ЗначениеПримера";
    Сообщение.ИдентификаторНазначения = ЭтаФорма.УникальныйИдентификатор;
    Сообщение.Сообщить();
КонецПроцедуры

Разбор по шагам

  1. Проверяем фактический строковый реквизит, не заголовок визуального элемента.

  2. СообщениеПользователю содержит текст ошибки и привязку к данным формы.

  3. Поле задаётся путём реквизита ЗначениеПримера, а не именем элемента ПолеПримера.

  4. ИдентификаторНазначения указывает текущую форму; сообщение не должно привязываться к другой открытой форме с похожими данными.

  5. Метод Сообщить публикует подготовленное сообщение. До записи товара или вызова API выполнение не доходит.

Как проверить результат

  1. На пустом поле кнопка выводит Укажите название учебного товара.

  2. Привязка сообщения относится к реквизиту текущей формы; переход по сообщению должен указывать на её поле.

  3. После ввода Книга выводится успешная проверка без создания товара.

Ожидаемый результат

Показано адресное сообщение валидации с точной связью реквизит → поле → форма.

На что обратить внимание

  1. Поле — путь к данным, а не обязательно имя элемента интерфейса.

  2. Сообщение не возвращает Отказ автоматически: реальная процедура записи должна отдельно запретить действие при ошибке.

  3. В уроке нет объекта базы, поэтому КлючДанных и УстановитьДанные намеренно не заполняются фиктивными ссылками.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.