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