Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 20:11

как создать подбор из формы подбора в форму товаров перетаскиванием мыши а не кликанием мыши

Автор alpha78, 06 июл 2019, 11:34

0 Пользователей и 1 гость просматривают эту тему.

alpha78

Здравствуйте. Платформа 1с 8.3.13 - конфигурация в режиме - управляемое приложение

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

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

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

&НаКлиенте
Процедура ПодборНоменклатура(Команда)

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

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

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

ДобавитьВыбранное(ВыбранноеЗначение)

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

&НаСервере
Процедура ДобавитьВыбранное(ВыбранноеЗначение)

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

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

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

&НаКлиенте
Процедура СписокНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

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

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

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

Если ПараметрыПеретаскивания.Значение.Количество() = 1 Тогда

ОповеститьОВыборе(ПараметрыПеретаскивания.Значение[0]);

КонецЕсли;

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


Прошу подсобить заранее благодарен. Удачи!

MuI_I_Ika

А галочка перетаскивание разрешено стоит? Что не работает то, в какой момент косяк возникает?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск