Имя: Пароль:
1C
1С v8
как создать подбор из формы подбора в форму товаров перетаскиванием мыши а не кликанием
0 alpha78
 
06.07.19
11:32
Здравствуйте. Платформа 1с 8.3.13 - конфигурация в режиме - управляемое приложение

Есть управляемая форма документа «Расходная накладная», в которой пользователь сможет осуществлять выбор товаров с помощью специальной формы подбора.
Как сделать, чтоб Выбор товаров осуществлялся посредством перетаскивания мышкой нужного элемента из формы подбора в форму документа, а не кликанием мышки на форме подбора.

Вот коды для варианта кликания мышкой на форме подбора для наглядности процесса:

Код Формы Товара:

&НаКлиенте
Процедура ПодборНоменклатура(Команда)
    
    ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработкаПодборВТабличнуюЧасть.Форма.ФормаПодбора", Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор", Ложь, Ложь), ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    
    ДобавитьВыбранное(ВыбранноеЗначение)

КонецПроцедуры

&НаСервере
Процедура ДобавитьВыбранное(ВыбранноеЗначение)
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    ИскомаяСтрока = ОбработкаОбъект.Товары.Найти(ВыбранноеЗначение, "Номенклатура");
    Если ИскомаяСтрока = Неопределено Тогда
        НоваяСтр = ОбработкаОбъект.Товары.Добавить();
        НоваяСтр.Номенклатура = ВыбранноеЗначение;
        НоваяСтр.Количество = 1;
    Иначе
        ИскомаяСтрока.Количество = ИскомаяСтрока.Количество + 1;
    КонецЕсли;
    ЗначениеВРеквизитФормы(ОбработкаОбъект,"Объект");
    
КонецПроцедуры      

Код формы Подбора:

&НаКлиенте
Процедура СписокНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    
    Если ЗначениеЗаполнено(ВыбраннаяСтрока) Тогда
        ОповеститьОВыборе(ВыбраннаяСтрока);
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура СписокНоменклатурыОкончаниеПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    
    Если ПараметрыПеретаскивания.Значение.Количество() = 1 Тогда
        
        ОповеститьОВыборе(ПараметрыПеретаскивания.Значение[0]);
        
    КонецЕсли;
    
КонецПроцедуры

Прошу подсобить заранее благодарен. Удачи!
1 lodger
 
06.07.19
11:44
уф умеет в перетаскивание.
на той и другой талдычке разреши перетаскивание.
на той и другой талдычке найди процедуры "приперетаскивании" и ковыряйся в них.
2 alpha78
 
06.07.19
11:56
lodger не совсем понятно на той и другой талдычке найди процедуры "приперетаскивании" и ковыряйся в них.
очевидно в свойствах табличной части?
3 dubolom
 
06.07.19
11:58