Не работает перетаскивание в таблице формы в рамках одного родителя иерархического справочника.

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. bambula 4 15.08.13 16:27 Сейчас в теме
Данные:
Есть конфигурация самописка на 1С 8.3, в ней есть справочник "Словарь". Справочник иерархический. Есть реквизит "Очередность" (целочисленное, нумерация в рамках родителя), чтоб можно было отсортировать справочник.
На форме списка есть таблица формы с именем "Список" и типом "ДинамическийСписок". Заполняется по запросу согласно выбранного родителя в "Дереве" (таблица с иерархией справочника типа "ДинамическийСписок").

Задача:
Сделать возможным изменять порядок элементов в рамках одного родителя, перетаскиванием.

Проблема:
Перетаскивание в "ТаблицаФормы" в рамках выбранного родителя не срабатывает.

Как выйти из ситуации?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DKiguin 16.08.13 02:04 Сейчас в теме
(1) bambula, отказаться от динамического списка в пользу дерева.
+
3. bambula 4 16.08.13 08:49 Сейчас в теме
Спасибо за ответ. Жаль что так мало вариантов ).
+
4. THEBESTolo4b 10 16.08.13 08:57 Сейчас в теме
если не ошибаюсь то там в настройках где то можно настроить список как тебе нужно
+
5. bambula 4 16.08.13 14:23 Сейчас в теме
Спасибо всем кто отозвался ). Вопрос закрыт.

Почитав статью (http://help1c.com/faq/view/924.html), я понял, что в момент перетаскивания в списке справочника 1С пытается переназначить родителя элементу (по умолчанию). В моем же случае этого происходить не должно.

Как решить вопрос. Нужно отключить стандартную обработку и выполнить свой механизм. Выключаем флаг стандартной обработки в событиях таблицы формы, в которой выводится список справочника - проверка перетаскивания и перетаскивание (пример указан ниже).

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

&НаСервере
Процедура СписокПеретаскиваниеНаСервере(ЧтоПеретащили, КудаПеретащили)
// тут пишем свой текст работ с элементами справочника
КонецПроцедуры

&НаКлиенте
Процедура СписокПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот