Расширение поля формы для поля картинки.ПроверкаПеретаскивания

События · DragCheck

Возникает при движении курсора в поле приемнике данных.

Синтаксис

ПроверкаПеретаскивания(<ПараметрыПеретаскивания>, <СтандартнаяОбработка>)
Полное описание, параметры и ограничения

Расширение поля формы для поля картинки.ПроверкаПеретаскивания (Form field extension for a picture field.DragCheck)

Расширение поля формы для поля картинки (Form field extension for a picture field)

ПроверкаПеретаскивания (DragCheck)

Доступен, начиная с версии 8.2.

Синтаксис:
ПроверкаПеретаскивания(<ПараметрыПеретаскивания>, <СтандартнаяОбработка>)
Параметры:

<ПараметрыПеретаскивания>
Тип: ПараметрыПеретаскивания.
Содержит перетаскиваемое значение, тип действия и возможные действия при перетаскивании.

<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина.
Описание:

Возникает при движении курсора в поле приемнике данных.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.

Примечание:
В веб-клиенте при перетаскивании файла (файлов) как СсылкаНаФайл обработчик данного события у элемента управления вызывается один раз в момент отпускания кнопки мыши перед обработчиком события Перетаскивание в отличие от тонкого клиента, в котором обработчик данного события вызывается в процессе перетаскивания файла (файлов).
В веб-клиенте, если установлен способ перетаскивания файлов КакФайл, то перетаскивание файлов игнорируется, и обработчик данного события не вызывается.
Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Разрешить приём только собственного маркера: поля картинки

Возникает при движении курсора в поле приемнике данных. Разрешить приём только собственного маркера.

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

Клиентский модуль собственной управляемой формы. Элемент передаёт платформа; дополнительный блок — отдельный серверный обработчик создания.

Подготовка

  1. Создайте внешнюю учебную обработку с управляемой формой. Реквизиты формы: Статус (Строка 200), Счетчик (Число 10.0), РазрешитьСохранение (Булево). Выведите Статус и РазрешитьСохранение на форму.

  2. Основной обработчик назначается событию указанного элемента Образец, а не событию формы. Код вставляется на уровне модуля формы с директивой НаКлиенте. Дополнительный серверный блок назначьте событию формы ПриСозданииНаСервере.

  3. Открывайте обработку в настольном тонком клиенте. Каждый урок проверяйте в отдельном варианте формы; HTML показывает код, но не исполняет его.

  4. Добавьте реквизит АдресКартинки типа Строка и элемент Образец вида ПолеКартинки с путём к данным АдресКартинки. У элемента включите Гиперссылка: это режим нажатия, а не внешний URL.

  5. Добавьте второй элемент Источник того же вида, связанный с тем же подготовленным содержимым. Для картинки-декорации задайте Источник.Картинка = БиблиотекаКартинок.Записать в редакторе. Включите у Источник и Образец РазрешитьНачалоПеретаскивания и РазрешитьПеретаскивание.

  6. НачалоПеретаскивания у Источник назначьте процедурой ИсточникНачалоПеретаскивания из отдельного блока. ПроверкаПеретаскивания и Перетаскивание относятся к Образец. ОкончаниеПеретаскивания назначается источнику. Не проверяйте урок перетаскиванием внешних файлов.

  7. В свойствах элемента Образец → События назначьте ПроверкаПеретаскивания процедуре ОбразецПроверкаПеретаскивания. Подготовка использует текущую сигнатуру установленной справки плюс неявный параметр Элемент управляемой формы.

  8. Также назначьте Источник → НачалоПеретаскивания процедуре ИсточникНачалоПеретаскивания из дополнительного блока. Вместе источник, проверка и приём образуют один завершённый учебный перенос.

  9. Также назначьте Образец → Перетаскивание процедуре ОбразецПеретаскивание из дополнительного блока. Вместе источник, проверка и приём образуют один завершённый учебный перенос.

&НаКлиенте
Процедура ОбразецПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Если ПараметрыПеретаскивания.Значение = "Учебный маркер" Тогда
        ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование;
    Иначе
        ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
    КонецЕсли;
КонецПроцедуры
Подготовить собственное содержимое формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Счетчик = 0;
    РазрешитьСохранение = Ложь;
    Статус = "Готово";
    АдресКартинки = ПоместитьВоВременноеХранилище(БиблиотекаКартинок.Записать, УникальныйИдентификатор);
    Элементы.Образец.Гиперссылка = Истина;
    Элементы.Источник.РазрешитьНачалоПеретаскивания = Истина;
    Элементы.Образец.РазрешитьПеретаскивание = Истина;
КонецПроцедуры
Согласованный обработчик НачалоПеретаскивания
&НаКлиенте
Процедура ИсточникНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
    ПараметрыПеретаскивания.Значение = "Учебный маркер";
    ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Копирование;
    ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование;
    Выполнение = Истина;
КонецПроцедуры
Согласованный обработчик Перетаскивание
&НаКлиенте
Процедура ОбразецПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Если ПараметрыПеретаскивания.Значение = "Учебный маркер" Тогда
        Счетчик = Счетчик + 1;
        Статус = "Принято маркеров: " + Строка(Счетчик);
        Сообщить(Статус);
    КонецЕсли;
КонецПроцедуры

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

  1. Дополнительный серверный блок создаёт собственные данные, элемент подготовлен в редакторе формы.

  2. Платформа вызывает назначенный обработчик вследствие действия пользователя; процедуру с придуманными параметрами вручную не вызываем.

  3. Обработчик меняет только явно названные данные своей формы или параметры текущего события.

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

  1. Над Образец перенос собственного маркера разрешён.

  2. Другой переданный элемент не проходит правило: действие Отмена. Содержание поля не изменяется в проверке.

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

Разрешить приём только собственного маркера на собственном подготовленном элементе.

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

  1. Настольный тонкий клиент — контекст этого урока. Доступность и порядок событий в веб- и мобильном клиентах могут отличаться.

  2. Код не открывает внешние страницы, не отправляет сообщения и не обращается к рабочим документам.

  3. Свойство СтандартнаяОбработка и параметр Отказ имеют разные назначения: первый заменяет стандартное действие, второй отменяет операцию.

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

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

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

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

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