|
8.2 Перемещение между Табличной частью | ☑ | ||
---|---|---|---|---|
0
Gucci76
19.03.13
✎
11:14
|
Все привет. Помогите начинающему.
В обработке есть две Табличные части с одним Реквизитом "ВидРасчета", вывожу их на форму обработки. В свойствах обработок ставлю флажки "РазрешитьНачалоПеретаскивания" и "РазрешитьПеретаскивание" Только не получается перетащить почему-то ЧЯДНТ??? Спасибо |
|||
1
Gucci76
19.03.13
✎
11:19
|
(0) Опечатался: в свойствах ТАБЛИЧНЫХ ЧАСТЕЙ, а не обработок
|
|||
2
Maxus43
19.03.13
✎
11:20
|
обычное приложение?
|
|||
3
Gucci76
19.03.13
✎
11:21
|
(2) Да.
|
|||
4
Gucci76
19.03.13
✎
11:22
|
Если что
1С:Предприятие 8.2 (8.2.16.352) Зарплата и Управление Персоналом, редакция 2.5 (2.5.60.1) |
|||
5
Maxus43
19.03.13
✎
11:26
|
(3) надо прописывать в коде алгоритмы перетаскивания
|
|||
6
Reset
19.03.13
✎
11:27
|
(1) Таки в свойствах табличных полей, а не табличных частей.
Не получается перетащить как? Событие НачалоПеретаскивания происходит? |
|||
7
Gucci76
19.03.13
✎
11:27
|
А между таблиц значений перетаскивание работает.
Странно! |
|||
8
Reset
19.03.13
✎
11:27
|
(5) Я попробовал два простых ТП, таскает без обработчиков само
|
|||
9
Reset
19.03.13
✎
11:28
|
ага я ТЗ использовал
|
|||
10
Maxus43
19.03.13
✎
11:28
|
Процедура НоменклатураНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
// Получить значение, переданное системой. Значение = ПараметрыПеретаскивания.Значение; // В любом случае значением будет массив. МассивЗначений = Новый Массив; // Если перетаскивается группа, то в массив записываем входящие в нее элементы. Если Значение.ЭтоГруппа Тогда Выборка = Справочники.Номенклатура.Выбрать(Значение); Пока Выборка.Следующий() Цикл Если Не Выборка.ЭтоГруппа Тогда МассивЗначений.Добавить(Выборка.Ссылка); КонецЕсли; КонецЦикла; Иначе МассивЗначений.Добавить(Значение); КонецЕсли; // Заполненный массив записываем в параметры. ПараметрыПеретаскивания.Значение = МассивЗначений; КонецПроцедуры Процедура ТоварыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка) СтандартнаяОбработка = Ложь; КонецПроцедуры Процедура ТоварыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка) ПолученныйМассив = ПараметрыПеретаскивания.Значение; Если ТипЗнч(ПолученныйМассив) = Тип("Массив") Тогда Для Каждого Значение Из ПолученныйМассив Цикл НоваяСтрока = ДокументОбъект.Товары.Добавить(); НоваяСтрока.Номенклатура = Значение; НоваяСтрока.Количество = 1; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
11
Gucci76
19.03.13
✎
11:31
|
(10) Спасибо. Попробую разобраться
|
|||
12
Gucci76
19.03.13
✎
11:33
|
(10) А если 3 табличной части, то как определить куда будем добавлять?
|
|||
13
Maxus43
19.03.13
✎
11:35
|
(12) поковыряй отладчиком, навернаяка место назначения где-то прописано
|
|||
14
Reset
19.03.13
✎
11:35
|
(12) События перетаскивание, проверкаПеретаскивания возникают в элементе-приемнике
|
|||
15
Gucci76
19.03.13
✎
11:39
|
(14) Точно. Спасибо.
|
|||
16
Gucci76
19.03.13
✎
11:40
|
(13) Ковырял, но запутался )))
|
|||
17
Gucci76
19.03.13
✎
11:41
|
Размышление вслух:
зачем было делать возможность перетаскивания табличных частей, если она все равно не работает? )))) |
|||
18
Reset
19.03.13
✎
11:44
|
(17) Почему не работает. Только отсутвует обработка по умолчанию. Вероятно, есть тонкости. Но все инструменты для написания собственного обработчика есть.
|
|||
19
Maxus43
19.03.13
✎
11:44
|
(17) работает, только потрудись описать логику сам, это не примитивные коллекции
|
|||
20
Reset
19.03.13
✎
11:46
|
(18) Собвенно, какие тонкости - нельзя заранее предугадать, что пользователь будет туда тащить - поэтому по умолчанию отказываются принимать (срабатывает отказ от действия - я посмотрел отладчиком), но дают программисту возмоджноть определить поведение
|
|||
21
Gucci76
19.03.13
✎
11:47
|
Уже пишу логику переноса.
Почти получилось. Спасибо большое!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |