Имя: Пароль:
1C
1С v8
drag&drop в дереве значений
0 Gossar1C
 
20.11.14
14:04
Здравствуйте! Борюсь с обработчиком события ПроверкаПеретаскивания...
Вот дерево (табличное поле)
http://s019.radikal.ru/i608/1411/71/99b400aba80f.png

Делаю проверку на перетаскивание номенклатуры

&НаКлиенте
Процедура ТаблицаДереваПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
    
    Если Поле <> Неопределено Тогда
        Если Поле.Имя = "ТаблицаДереваСклад" ИЛИ Поле.Имя = "ТаблицаДереваНоменклатура" ИЛИ Поле.Имя = "ТаблицаДереваКоличество" Тогда    
            ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
            СтандартнаяОбработка = Ложь;        
        КонецЕсли;
    Иначе
        ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
        СтандартнаяОбработка = Ложь;
    КонецЕсли;    

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


И собственно все бы ничего! Да только вот в поля золотистого цвета позволяет перетаскивать номенклатуру. И в итоге мы получаем номенклатуру с вложенной номенклатурой... так быть не должно. Пытался ставить условное оформление на доступность поля, но это свойство похоже игнорируется... Подскажите как сделать чтобы номенклатуру можно было перетаскивать только в строку с заполненным поставщиком. Заранее спасибо!
1 Gossar1C
 
20.11.14
14:16
жесть, ребят это невероятно сложно или не хотите подсказать потому что у меня руки из ж?
2 Gossar1C
 
20.11.14
14:19
up
3 Gossar1C
 
20.11.14
14:29
up еще
4 ilyavorobyev
 
20.11.14
14:33
(0) Если НЕ ЗначениеЗаполнено( и тут Поле.Значение или что у тебя там в отладчике посмотри) Тогда ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
КонецЕсли;
5 Gossar1C
 
20.11.14
14:35
(4) поле это колонка формы, она не имеет значение
6 DmitrO
 
20.11.14
14:36
в проверке перетаскивания надо устанавливать ДопустимыеДействия, а не Действие.
7 Gossar1C
 
20.11.14
14:39
(6) даже если так, проблему не решает. Подумываю сделать ПриОкончании перетаскивания Проверку на Родителя и если отсутствует удалять, но это же извращение какое-то! Можно же как-то сделать запрет просто
8 Gossar1C
 
20.11.14
14:43
(6) кстати, чушь, проверил с допустимыми действиями позволяет переносить куда угодно
9 Gossar1C
 
20.11.14
14:56
up еще раз
10 DmitrO
 
20.11.14
15:20
(8)да, я попутал, надо Действие устанавливать. И что тебе мешает проверить заполнен ли в родительской строке поставщик в событии ПроверкаПеретаскивания?
11 Gossar1C
 
20.11.14
15:42
(10) то что мы перетаскиваем элемент - строку, в колонку. А параметр строка почему-то число?

<Строка>

Тип: <Строка табличного поля>, Неопределено.
Строка табличного поля, над которой находится курсор.
Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
Если строка не определена (тип Неопределено), то это означает, что курсор не находится над ячейкой. Такой случай может быть обработан, например, как нестандартное добавление новой строки.

Очень интересно как так если я перетаскиваю из 3й строки в колонку Поставщик в той же 3й строке, почему он в параметр передает 2?
12 DmitrO
 
20.11.14
16:08
это не индекс, и не номер строки, это идентификатор строки
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.