Источник начинает копирование своего строкового маркера. Перенос рабочей записи или файла не выполняется.
Где и как запускать
Модуль своей обычной формы, толстый клиент.
Подготовка
Создайте внешнюю учебную обработку с обычной формой и запускайте в толстом клиенте.
Реквизиты формы: Товары (ТаблицаЗначений), Статус (Строка 200), ИтогКоличество (Число 10.0), РазрешитьУдаление (Булево), ЗапретитьСворачивание (Булево). Выведите статус, итог и оба флажка.
У таблицы Товары колонки Наименование (Строка 100), Количество (Число 10.0), Фиксирована (Булево). Имя элемента таблицы — Товары, данные / путь — Товары; разрешите интерактивное редактирование строк.
Основной обработчик назначьте указанному событию элемента Товары, не событию формы. Первый параметр Элемент уже включён в процедуру; платформа передаёт его автоматически.
Каждый урок проверяйте в отдельном варианте своей формы. Не объединяйте повторяющиеся процедуры подготовки и обработчики с одинаковыми именами.
Добавьте реквизит ТоварыИсточник типа ТаблицаЗначений с теми же колонками и второй элемент Источник с данными / путём ТоварыИсточник. У Источник включите РазрешитьНачалоПеретаскивания, у Товары — РазрешитьПеретаскивание.
НачалоПеретаскивания назначается ИсточникНачалоПеретаскивания у Источник; приём и проверка относятся к Товары, окончание — к Источник. Не перетаскивайте файлы из проводника.
Процедура ИсточникНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
ПараметрыПеретаскивания.Значение = "КНИГА";
ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Копирование;
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование;
Выполнение = Истина;
Сообщить("Передаётся собственный маркер КНИГА");
КонецПроцедурыТа же обычная форма: назначить событию ПриОткрытии
Процедура ПриОткрытии()
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Товары.Колонки.Добавить("Фиксирована", Новый ОписаниеТипов("Булево"));
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Наименование = "Книга";
СтрокаТовара.Количество = 2;
СтрокаТовара.Фиксирована = Ложь;
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Наименование = "Ручка";
СтрокаТовара.Количество = 3;
СтрокаТовара.Фиксирована = Истина;
РазрешитьУдаление = Ложь;
ЗапретитьСворачивание = Истина;
ИтогКоличество = 5;
Статус = "Готово";
ЭлементыФормы.Товары.СоздатьКолонки();
ТоварыИсточник = Товары.Скопировать();
ЭлементыФормы.Источник.СоздатьКолонки();
КонецПроцедурыРазбор по шагам
Подготавливаем настоящую собственную таблицу / список и назначаем точное событие.
Параметры после Элемент соответствуют установленной справке конкретного типа.
Источник начинает копирование своего строкового маркера. Перенос рабочей записи или файла не выполняется.
Как проверить результат
Начните перетаскивание из Источник: передаётся КНИГА и разрешено копирование.
Строки источника этим обработчиком не удаляются.
Ожидаемый результат
Событие работает с собственными данными и реально заданным источником действия.
На что обратить внимание
Не вызывайте обработчики событий вручную: проверяйте указанное пользовательское действие.
События активизации, наведения, раскрытия и смены родителя не должны вызывать серверные методы формы.
Обычная и управляемая формы имеют разные API; не переносите между ними элементы и процедуры без адаптации.
Таблица значений хранит данные формы, не записывает их в регистр автоматически.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.