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

События · DragEnd

Возникает при окончании перетаскивания в поле источнике данных.

Синтаксис

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

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

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

ОкончаниеПеретаскивания (DragEnd)

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

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

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

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

Возникает при окончании перетаскивания в поле источнике данных.

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

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

Использование в версии:

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

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

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

Завершить перенос без удаления содержимого источника: поля картинки

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

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

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

Подготовка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. После переноса источник показывает фактическое действие завершённой операции.

  2. Стандартное удаление или изменение содержимого источника не выполняется; отказ приёмника не объявляется успешным приёмом.

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

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

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

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

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

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

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

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

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

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

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