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

Учебные задачи

Карточка создаётся в редакторе: её признак ОтображатьКакКарточку из BSL доступен только для чтения.

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

Полный модуль тестируемой формы; в отличие от других fixture, карточка и её поле предварительно создаются в редакторе.

Подготовка

  1. Используйте только собственную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса. В fixture-уроках приведены полные модули отдельных новых внешних обработок с пустой управляемой основной формой.

  2. Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.

  3. Откройте нужную обработку в своём тестируемом клиенте. В отдельной обработке менеджера тестов создайте команду ВыполнитьПример и вставьте полный код соответствующего теста в модуль формы.

  4. Перед каждым тестом заново откройте соответствующую обработку: не используйте уже изменённое состояние. Точные заголовки guide-owned относятся только к подготовленной собственной форме.

  5. Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.

  6. Нужна отдельная учебная форма и конфигурация с интерфейсом Версия8_5 на платформе 8.5.1.1343.

  7. В редакторе создайте обычную группу УчебнаяКарточка и включите её ОтображатьКакКарточку. Это настройка редактора, не присваивание BSL.

  8. Добавьте реквизит УчебноеНазвание (Строка), внутри карточки ПолеВвода с ПутьКДанным = УчебноеНазвание и заголовком Название.

  9. Событие ПриСозданииНаСервере свяжите с процедурой из кода. Кнопку вручную не создавайте: она добавляется снаружи карточки.

  10. Гиперссылка выключена: нажатие на саму карточку не запускает внешнее действие. Все данные только в учебной форме.

  11. Назовите поле внутри УчебнаяКарточка точно ПолеНазванияКарточки. Оно связано с собственным строковым реквизитом УчебноеНазвание. Форма и карточка только ваши учебные.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЭтаФорма.АвтоЗаголовок = Ложь;
    ЭтаФорма.Заголовок = "Учебная карточка guide-owned-card-2026";
    УчебноеНазвание = "Книга";
    Группа = ЭтаФорма.Элементы.УчебнаяКарточка;
    Если Не Группа.ОтображатьКакКарточку Тогда
        ВызватьИсключение "В редакторе формы включите ОтображатьКакКарточку";
    КонецЕсли;
    Группа.Гиперссылка = Ложь;
    Группа.ВидОтображения = ВидОтображенияКарточки.Обычная;
    Группа.ФоноваяКартинка = Новый Картинка(Base64Значение("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAArklEQVR4nO3VOxKAIAxF0SzEtbgk99/FRhuE8F4+0lCkc3LPCDOIqsrKWRrfADfguE7tTSlgFI1iSuIMoiyOIkrjD8BE/BE3/0R5/AWMEFXn/om7Ae0SbxwGWOcYiY8QMGCGIL7jAMhyNO4GTC4We0w+QC/GxsOANsrGIQCLiMTDACaeDmDjFCDrPZjFTUAmwmqYgKSHSUKACALZDQE8CHQvDEAwnl0uQOZsgKwG3AxgSxA9ZssYAAAAAElFTkSuQmCC"));
    Группа.ЭффектОтображенияФоновойКартинки = ЭффектОтображенияКартинки.Полупрозрачность;

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

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

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

  1. Создайте новую обработку УчебнаяКарточкаТестирования в своей пустой конфигурации с интерфейсом Версия8_5; назначьте основной управляемой форме обработчик ПриСозданииНаСервере.

  2. В редакторе создайте обычную группу УчебнаяКарточка, включите ОтображатьКакКарточку, добавьте внутри поле ПолеНазванияКарточки. Реквизит УчебноеНазвание — Строка.

  3. Модуль сначала проверяет имя своей конфигурации, затем признак карточки. Он не присваивает этот доступный только для чтения признак.

  4. Гиперссылка отключена и обработчик нажатия карточки не назначен. Нажатие в следующем тесте не должно открывать URL, записывать объект или запускать внешнюю команду.

  5. Отдельная внешняя кнопка переключает вид карточки; для теста нажатия саму кнопку не используйте.

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

  1. После нового открытия заголовок Учебная карточка guide-owned-card-2026, поле карточки содержит Книга.

  2. Ручное нажатие на саму карточку не открывает внешние ресурсы и не меняет название товара.

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

Подготовлена отдельная собственная карточка для проверки метода Нажать.

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

  1. Не пробуйте присваивать ОтображатьКакКарточку: настройка выполняется в редакторе.

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

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

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

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

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

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