Найти и убрать действие, не запуская его

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

Ищем по значению, обрабатываем отсутствие, удаляем найденный объект и оставшийся индекс. Очищаем только собственную карточку.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную базу. В серверном общем модуле УчебныеЗадачи создайте процедуру ВыполнитьПример() Экспорт и вставьте в неё код одного урока. Вызовите её из серверного обработчика собственной учебной обработки.

  2. Каждый урок создаёт новую коллекцию в памяти. Код не загружает и не сохраняет избранное пользователя, не заменяет план ГлобальныйПоиск, не запускает поиск, не открывает ссылку и не читает рабочие документы.

  3. Для трёх уроков избранного создайте в собственной учебной конфигурации два пустых справочника УчебныеКниги и УчебныеАвторы. Учебные ссылки относятся к спискам этих объектов; записи справочников для упражнения не нужны. Право СохранениеДанныхПользователя требуется для использования избранного по справке платформы.

Карточка = Новый ЭлементРезультатаГлобальногоПоиска("guide-book", "Книга");
Действия = Карточка.Действия;
Действия.Добавить("guide-describe", "Описание");
Действия.Добавить("guide-check", "Проверка");
Найдено = Действия.Найти("guide-check");
Если Найдено = Неопределено Тогда
    ВызватьИсключение "Учебное действие не найдено";
КонецЕсли;
Сообщить(Найдено.Текст = "Проверка");
Сообщить(ТипЗнч(Найдено) = Тип("ДействиеЭлементаРезультатаГлобальногоПоиска"));
Сообщить(Действия.Найти("Проверка") = Неопределено);
Действия.Удалить(Найдено);
Сообщить(Действия.Количество() = 1);
Если Действия.Количество() = 1 Тогда
    Действия.Удалить(0);
КонецЕсли;
Сообщить(Действия.Количество() = 0);
Действия.Добавить("guide-own", "Собственное действие");
Действия.Очистить();
Сообщить(Действия.Количество() = 0);

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

  1. Найти сравнивает Значение и возвращает первое совпадение. Подпись Проверка не является ключом guide-check.

  2. Проверяем Неопределено до чтения Текст. Для собственных уникальных ключей ожидается ровно найденное учебное действие.

  3. В локальной справке возвращаемый тип Найти ошибочно назван действием сообщения системы взаимодействия. Не конструируем такой объект; отдельно проверяем фактический ТипЗнч найденного действия при запуске в 1С.

  4. Удалить принимает индекс или объект действия, не строковое значение. Поэтому перед удалением по ключу сначала Найти.

  5. Очистить применяется к собственной карточке, а не к сохранённым рабочим результатам.

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

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

  2. После удаления двух действий количество 0; после добавления и очистки снова 0. Нажатия ссылок не происходят.

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

Показаны поиск, нормальное отсутствие, удаление по объекту/индексу и граница ошибки в документации.

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

  1. Не переносите указанную опечатку справки в прикладной тип объекта.

  2. Проверяйте реальный возвращённый тип при спорной документации; здесь запуск в 1С ещё не подтверждён.

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

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

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

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

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