Имя: Пароль:
1C
1С v8
Перетаскивание на обычных формах.
0 canitake
 
25.07.17
16:13
Привет. Сделал обычную форму обработки, на ней два табличных поля, тип значения - ТЧ обработки (для каждого своя), состав реквизитов идентичен. Хочу сделать перетаскивание между табличными полями, для первого включил свойство "разрешитьначалоперетаскивания", для второго "разрешитьперетаскивание", в результате - взять строку могу, поместить во второе поле не могу (запрещает). WTF?
1 Nuobu
 
25.07.17
16:48
Оно и не должно работать. Перетаскивание работает только внутри ТЧ. рисуй кнопки с текстом ">" и "<".
2 Ёпрст
 
гуру
25.07.17
16:52
(1) ?
(0) всё там работает
3 Ёпрст
 
гуру
25.07.17
16:54
(0)
Назначь событие перетаскивание у второго таб поля, куда тащишь
там и лови
4 canitake
 
26.07.17
09:41
(3) Назначил, до него не доходит. Когда навожу курсор на второе поле для перетаскивания показывает знак запрета. Как будто нельзя в это поле перетаскивать, хотя признак стоит. (1) Странно, пошерстил инет, много примеров, где это работает, например из обработки в документ и т.д.
5 Serg_1960
 
26.07.17
10:06
6 Serg_1960
 
26.07.17
10:08
(4) "Назначил, до него не доходит" - из ссылки вышепо тексту:

Схема возникновения событий такая:
Как только пользователь начал перемещать курсор мыши с зажатой левой или правой кнопкой, возникает событие НачалоПеретаскивания. При входе курсора с по-прежнему зажатой кнопкой в область новой ячейки элемента управления возникает событие ПроверкаПеретаскивания. В зависимости от того, какое значение параметра Действие вернет это событие, изменяется иконка курсора. Когда пользователь наконец освобождает зажатую кнопку мыши, возникает событие Перетаскивание в приемнике и сразу после него ОкончаниеПеретаскивания в источнике.
7 Ёпрст
 
гуру
26.07.17
13:47
(4) у меня работает перетаскивание с внешней формы обработки в форму списка справочника.
8 Ёпрст
 
гуру
26.07.17
13:48
понавтыкай галок на все события, связанные с перетаскиванием
9 Ёпрст
 
гуру
26.07.17
13:48
и точек остонова понавтыкай во все события.
10 Ёпрст
 
гуру
26.07.17
13:52
У меня на приёмнике стоит галка еще - разрешить начало перетаскивания.
Далее в коде есть глоб. переменная модуля в которую кидается значение булева, что это перетаскивание с этой формы или из вне. Если с этой формы, то СтандартнаяОбработка=Ложь.
11 Ёпрст
 
гуру
26.07.17
13:53
Сделано для того, чтоб можно было данные только извне ловить, а не перетаскивание унутри одного окна
12 canitake
 
27.07.17
09:39
(7) (6) Спасибо за подробные объяснения. Я все перепробовал, ничего не помогло. ПроверкаПеретаскивания в окне приемнике отрабатывает, присваиваю параметру ПараметрыПеретаскивания.Действие  = ДействиеПеретаскивания.Перемещение;
Однако, все равно не дает. Курсор - "стоянка запрещена":)
Возможно, я с что-то натворил с формой (с обычными формами работаю неделю). У меня также наблюдается странное поведение элементов управления: на форме два дерева значений, идентичные по реквизитам (почти), по свойствам. Одно позволяет заполнить дерево, другое - нет. Выводит только строки верхнего уровня. Тем же кодом заполняю первое дерево - все ок. Решил проблему костылем - скопировал первое дерево и заполняю его:) Не в курсе, как такое может быть?