Конкретный собственный источник, штатный обработчик / вызов и явные ограничения.
Где и как запускать
Своя общая управляемая форма, тонкий / толстый клиент. Два реквизита ТаблицаЗначений ИсточникКниг и КопииКниг, у обоих колонка Название Строка 100; таблицы формы Источник и Копии. Реквизит ПринятоВСвоиКопии Булево.
Подготовка
Своя общая управляемая форма, тонкий / толстый клиент. Два реквизита ТаблицаЗначений ИсточникКниг и КопииКниг, у обоих колонка Название Строка 100; таблицы формы Источник и Копии. Реквизит ПринятоВСвоиКопии Булево.
У Источник включите РазрешитьНачалоПеретаскивания, у Копии — РазрешитьПеретаскивание. Основной блок назначьте НачалоПеретаскивания источника, дополнительные обработчики — соответствующим событиям из названий. Дополнительный ПриСозданииНаСервере назначается форме.
Источник содержит ровно одну свою учебную строку. В приёмник можно принять только одну копию; перетаскивание других объектов явно отклоняется. Для повторного опыта закройте и заново откройте эту учебную форму.
&НаКлиенте
Процедура ИсточникНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
ПринятоВСвоиКопии = Ложь;
Если ИсточникКниг.Количество() = 0 Тогда
Выполнение = Ложь;
Возврат;
КонецЕсли;
ПараметрыПеретаскивания.Значение = "GUIDE-BOOK-ONLY";
ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.КопированиеИПеремещение;
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение;
Сообщить("Допустимые действия своей строки: " + Строка(ПараметрыПеретаскивания.ДопустимыеДействия));
КонецПроцедурыФорма: собственная исходная строка
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИсточникКниг.Очистить();
СтрокаКниги = ИсточникКниг.Добавить();
СтрокаКниги.Название = "Своя учебная книга";
ПринятоВСвоиКопии = Ложь;
КонецПроцедурыПриёмник Копии: ПроверкаПеретаскивания
&НаКлиенте
Процедура КопииПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
Если ПараметрыПеретаскивания.Значение <> "GUIDE-BOOK-ONLY" Или КопииКниг.Количество() > 0 Тогда
ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.НеОбрабатывать;
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
КонецЕсли;
КонецПроцедурыПриёмник Копии: Перетаскивание
&НаКлиенте
Процедура КопииПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
Если ПараметрыПеретаскивания.Значение <> "GUIDE-BOOK-ONLY" Или КопииКниг.Количество() > 0 Тогда
Возврат;
КонецЕсли;
НоваяСтрока = КопииКниг.Добавить();
НоваяСтрока.Название = "Своя учебная книга";
ПринятоВСвоиКопии = Истина;
КонецПроцедурыИсточник: ОкончаниеПеретаскивания
&НаКлиенте
Процедура ИсточникОкончаниеПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ПринятоВСвоиКопии И ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение Тогда
ИсточникКниг.Очистить();
КонецЕсли;
Сообщить("В своём источнике строк: " + Строка(ИсточникКниг.Количество()));
ПринятоВСвоиКопии = Ложь;
КонецПроцедурыРазбор по шагам
Подготовьте собственную форму по описанию.
Назначьте обработчики и выполните только свой учебный опыт.
Проверьте фактический результат с учётом ограничений клиента.
Как проверить результат
КопированиеИПеремещение разрешает оба действия; Выбор открывает меню. Перемещение в ДопустимыеДействия ограничивает варианты, а в Действие задаёт фактическое действие — это разные перечисления.
НеОбрабатывать не допускает переноса. Исходник удаляется только после фактического приёма своей строкой и только при Перемещение; Esc / отказ не очищают источник.
Значение-пометка не является защитой от недоверенного клиента: это изолированный опыт с двумя таблицами в памяти, без записи документов.
Ожидаемый результат
Есть полный собственный сценарий без универсального getter-шаблона.
На что обратить внимание
Код 1С, переносы, загрузки и файловые операции при сборке HTML не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.