Разобрать событие собственной внешней таблицы: быстрый выбор

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

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

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

Названный модуль собственной внешней таблицы Карточки / Строки; подключение только к подготовленной GuideExternalBooks.

Подготовка

  1. Только собственный локальный SQL Server и отдельная учебная база 1С без рабочих внешних источников. SQL-блок выполните вручную в SSMS своего экземпляра: он создаёт новую GuideExternalBooks и две собственные таблицы. Если имя уже занято, существующую базу не удаляйте и не заменяйте.

  2. В ODBC Data Sources разрядности серверного процесса 1С создайте собственный System DSN GuideOwnBooks: ваш localhost SQL Server, база GuideExternalBooks, Windows-аутентификация. Пользователь серверного процесса 1С должен иметь доступ только к этой учебной базе. Настройте нормальное доверие сертификату драйвера, проверку TLS не отключайте.

  3. В Конфигураторе создайте ВнешниеИсточникиДанных → УчебныеКниги, автоматическое управление блокировками. Таблица Карточки: имя dbo.lesson_items, тип ОбъектныеДанные, ТолькоЧтение Ложь; Код=book_id Строка20, Название=title Строка100, Количество=quantity Число9.0. Null запрещён, ПоляКлюча и ПоляБлокировкиДанных — Код, представление — Название.

  4. Таблица Строки: имя dbo.lesson_lines, тип НеобъектныеДанные, ТолькоЧтение Ложь; Урок=lesson_id Строка20, Номер=line_no Число9.0, Название=title Строка100, Количество=quantity Число9.0. Null запрещён, поля ключа / блокировки — Урок и Номер именно в этом порядке.

  5. Основной обработчик — модуль менеджера объектной таблицы Карточки. Подготовьте свою управляемую форму обработки с реквизитом Книга типа ссылки на Карточки и полем ввода.

  6. Включите быстрый выбор в поле и проверьте вызов выбора без строки поиска и без отбора. Не вносите фильтры рабочей базы; здесь только одна собственная BOOK-1.

  7. Соединение собственного DSN предварительно настроено в этом сеансе. При поисковой строке / отборе пример сохраняет стандартное формирование, а не игнорирует условия пользователя.

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
    Если Параметры.СтрокаПоиска <> Неопределено Или Параметры.Отбор.Количество() <> 0 Тогда
        Возврат;
    КонецЕсли;
    СвояСсылка = ВнешниеИсточникиДанных.УчебныеКниги.Таблицы.Карточки.ПолучитьСсылку("BOOK-1");
    ДанныеВыбора = Новый СписокЗначений;
    ДанныеВыбора.Добавить(СвояСсылка, "Учебная книга");
    СтандартнаяОбработка = Ложь;
    Сообщить("Подготовлена своя строка быстрого выбора");
КонецПроцедуры
Вручную в своём SSMS: новая собственная SQL-база, не BSL
CREATE DATABASE GuideExternalBooks;
GO
USE GuideExternalBooks;
GO
CREATE TABLE dbo.lesson_items (
    book_id nvarchar(20) NOT NULL PRIMARY KEY,
    title nvarchar(100) NOT NULL,
    quantity numeric(9,0) NOT NULL
);
CREATE TABLE dbo.lesson_lines (
    lesson_id nvarchar(20) NOT NULL,
    line_no numeric(9,0) NOT NULL,
    title nvarchar(100) NOT NULL,
    quantity numeric(9,0) NOT NULL,
    PRIMARY KEY (lesson_id, line_no)
);
INSERT INTO dbo.lesson_items VALUES (N'BOOK-1', N'Учебная книга', 3);
INSERT INTO dbo.lesson_lines VALUES (N'LESSON-1', 1, N'Учебная строка книги', 3);

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

  1. Подготовьте только собственный SQL-источник с точными полями и ключами.

  2. Назначьте обработчик нужному модулю объекта / набора / менеджера, не произвольной форме.

  3. Выполните указанное действие на своей строке и отличайте изменение в памяти от записи и завершения транзакции.

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

  1. При быстром выборе без дополнительных условий возвращается собственная существующая ссылка BOOK-1.

  2. При вводе поискового текста либо отборе ранний выход не меняет СтандартнаяОбработка. Пример не выдаёт одну и ту же строку в обход произвольных условий.

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

Событие связано с собственной существующей внешней таблицей и конкретным пользовательским / программным вызовом.

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

  1. Рабочие SQL-источники не используются; копия закрывается без сохранения, демонстрационное удаление своей строки с положительным количеством должно быть отклонено.

  2. Модуль менеджера, модуль объекта, модуль набора и модуль формы имеют разные события; их сигнатуры не смешиваются.

  3. SQL и BSL здесь не запускались, соединения к SQL агентом не открывались; факт исполнения 1С не подтверждён.

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

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

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

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

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