ДействиеПеретаскивания.Перемещение

Свойства · Move

При перетаскивании происходит перемещение.

Полное описание, параметры и ограничения

ДействиеПеретаскивания.Перемещение (DragAction.Move)

ДействиеПеретаскивания (DragAction)

Перемещение (Move)

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

Описание:
При перетаскивании происходит перемещение.
Использование в версии:

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

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

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

Перетащить свою единственную строку: Перемещение

Конкретный собственный источник, штатный обработчик / вызов и явные ограничения.

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

Своя общая управляемая форма, тонкий / толстый клиент. Два реквизита ТаблицаЗначений ИсточникКниг и КопииКниг, у обоих колонка Название Строка 100; таблицы формы Источник и Копии. Реквизит ПринятоВСвоиКопии Булево.

Подготовка

  1. Своя общая управляемая форма, тонкий / толстый клиент. Два реквизита ТаблицаЗначений ИсточникКниг и КопииКниг, у обоих колонка Название Строка 100; таблицы формы Источник и Копии. Реквизит ПринятоВСвоиКопии Булево.

  2. У Источник включите РазрешитьНачалоПеретаскивания, у Копии — РазрешитьПеретаскивание. Основной блок назначьте НачалоПеретаскивания источника, дополнительные обработчики — соответствующим событиям из названий. Дополнительный ПриСозданииНаСервере назначается форме.

  3. Источник содержит ровно одну свою учебную строку. В приёмник можно принять только одну копию; перетаскивание других объектов явно отклоняется. Для повторного опыта закройте и заново откройте эту учебную форму.

&НаКлиенте
Процедура ИсточникНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
    ПринятоВСвоиКопии = Ложь;
    Если ИсточникКниг.Количество() = 0 Тогда
        Выполнение = Ложь;
        Возврат;
    КонецЕсли;
    ПараметрыПеретаскивания.Значение = "GUIDE-BOOK-ONLY";
    ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.КопированиеИПеремещение;
    ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение;
    Сообщить("Допустимые действия своей строки: " + Строка(ПараметрыПеретаскивания.ДопустимыеДействия));
КонецПроцедуры
Форма: собственная исходная строка
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ИсточникКниг.Очистить();
    СтрокаКниги = ИсточникКниг.Добавить();
    СтрокаКниги.Название = "Своя учебная книга";
    ПринятоВСвоиКопии = Ложь;
КонецПроцедуры
Приёмник Копии: ПроверкаПеретаскивания
&НаКлиенте
Процедура КопииПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
    СтандартнаяОбработка = Ложь;
    Если ПараметрыПеретаскивания.Значение <> "GUIDE-BOOK-ONLY" Или КопииКниг.Количество() > 0 Тогда
        ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.НеОбрабатывать;
        ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
    КонецЕсли;
КонецПроцедуры
Приёмник Копии: Перетаскивание
&НаКлиенте
Процедура КопииПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
    СтандартнаяОбработка = Ложь;
    Если ПараметрыПеретаскивания.Значение <> "GUIDE-BOOK-ONLY" Или КопииКниг.Количество() > 0 Тогда
        Возврат;
    КонецЕсли;
    НоваяСтрока = КопииКниг.Добавить();
    НоваяСтрока.Название = "Своя учебная книга";
    ПринятоВСвоиКопии = Истина;
КонецПроцедуры
Источник: ОкончаниеПеретаскивания
&НаКлиенте
Процедура ИсточникОкончаниеПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Если ПринятоВСвоиКопии И ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение Тогда
        ИсточникКниг.Очистить();
    КонецЕсли;
    Сообщить("В своём источнике строк: " + Строка(ИсточникКниг.Количество()));
    ПринятоВСвоиКопии = Ложь;
КонецПроцедуры

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

  1. Подготовьте собственную форму по описанию.

  2. Назначьте обработчики и выполните только свой учебный опыт.

  3. Проверьте фактический результат с учётом ограничений клиента.

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

  1. КопированиеИПеремещение разрешает оба действия; Выбор открывает меню. Перемещение в ДопустимыеДействия ограничивает варианты, а в Действие задаёт фактическое действие — это разные перечисления.

  2. НеОбрабатывать не допускает переноса. Исходник удаляется только после фактического приёма своей строкой и только при Перемещение; Esc / отказ не очищают источник.

  3. Значение-пометка не является защитой от недоверенного клиента: это изолированный опыт с двумя таблицами в памяти, без записи документов.

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

Есть полный собственный сценарий без универсального getter-шаблона.

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

  1. Код 1С, переносы, загрузки и файловые операции при сборке HTML не выполнялись.

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

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

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

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

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