Выбрать строку учебной таблицы в толстом клиенте и обработать отмену

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

Старый метод ТаблицаЗначений.ВыбратьСтроку возвращает строку самой таблицы или Неопределено. Изменение выбранного количества меняет только эту таблицу в памяти.

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

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

Подготовка

  1. Создайте собственную учебную EPF с управляемой формой и командой ВыбратьУчебныйТовар; свяжите её действие с этой клиентской процедурой.

  2. Запускайте именно в ТОЛСТОМ клиенте собственной базы, где синхронная модальность уже разрешена. Тонкий/веб-клиент для этого API не подходит.

  3. Код вставляется на уровне модуля формы. Все данные создаются при нажатии кнопки, реквизиты формы и объекты базы не используются.

  4. Колонка Количество хранит целые неотрицательные числа 0–9: КвалификаторыЧисла(1, 0, Неотрицательный) покрывают исходные 3/1 и результаты 4/2. Каждый вызов заново создаёт две строки, поэтому повторное нажатие не накапливает прибавления.

&НаКлиенте
Процедура ВыбратьУчебныйТовар(Команда)
    Товары = Новый ТаблицаЗначений;
    Товары.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Товары.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный)));
    Книга = Товары.Добавить();
    Книга.Код = "A-01";
    Книга.Наименование = "Книга";
    Книга.Количество = 3;
    Ручка = Товары.Добавить();
    Ручка.Код = "B-02";
    Ручка.Наименование = "Ручка";
    Ручка.Количество = 1;
    Выбранная = Товары.ВыбратьСтроку("Выберите собственный учебный товар", Книга);
    Если Выбранная = Неопределено Тогда
        Сообщить("Выбор отменён, количества не изменены");
        Возврат;
    КонецЕсли;
    Выбранная.Количество = Выбранная.Количество + 1;
    Сообщить(СтрШаблон("Выбрано %1: новое учебное количество %2", Выбранная.Код, Выбранная.Количество));
    Сообщить(Товары.Найти(Выбранная.Код, "Код").Количество = Выбранная.Количество);
КонецПроцедуры

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

  1. Создаём две строки ТаблицаЗначений непосредственно в толстом клиенте.

  2. НачальнаяСтрока — объект строки Книга из этой таблицы, не номер 0 и не код A-01.

  3. После закрытия сначала проверяем Неопределено; отмена не изменяет количество.

  4. Возвращённая строка принадлежит исходной таблице. Прибавляем 1 и подтверждаем значение через повторный поиск.

  5. Таблица не сохраняется и не превращается в табличную часть документа.

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

  1. Выберите книгу: A-01, количество 4; логическая проверка даёт Истина.

  2. Выберите ручку: B-02, количество 2. Отмена выводит только сообщение об отмене, без изменения количества.

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

Разобран старый интерактивный выбор строки с правильным типом начального значения и обработкой отмены.

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

  1. Не вызывайте этот метод в тонком/веб-клиенте или на сервере.

  2. Не включайте модальность рабочей конфигурации ради этого примера.

  3. Для новых управляемых интерфейсов обычно потребуется собственная форма выбора/подходящий поддерживаемый API; это урок чтения старого кода.

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

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

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

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

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