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