Изменить колонку дерева значений 1с

изменение порядка колонок в дереве значений

если было уже, просьба дать ссылку, поиском не нашел.
хочется наверное странного, есть дерево в котором данные при определенных отборах, хочется отловить перетаскивание колонки, чтобы переформировать дерево с учетом новой иерархии, в каком направлении рыть?

синтакс-помощник спасет гиганта мысли.

КоллекцияКолонокДереваЗначений (ValueTreeColumnCollection)
Сдвинуть (Move)
Синтаксис:
Сдвинуть(, )
Параметры:
(обязательный)
Тип: Число, КолонкаДереваЗначений. Индекс сдвигаемой колонки в коллекции или сама колонка.
(обязательный)
Тип: Число. Количество колонок, на которое необходимо сдвинуть колонку. Положительное смещение обозначает сдвиг в конец, отрицательное — в начало коллекции.
Описание:
Сдвигает колонку с заданным индексом на указанное смещение.
Пример:
// сдвинем колонку на следующую позицию
КолонкиСостава.Сдвинуть(ИндексТекушейКолонки, 1);
// сдвинем колонку на предыдущую позицию
КолонкиСостава.Сдвинуть(ИндексТекушейКолонки, -1);

(1) ну это как программно ее сдвинуть, мне то хочется немного другого, на форме мышей перетаскиваешь колонку и вот в момент когда ты ее перетащил отловить это чтобы перестроить запрос.
ну т.е. пример:

Контрагент1
номенклатура1 1
номенклатура2 1
номенклатура3 1
Контрагент2
номенклатура1 2
номенклатура2 2
номенклатура3 2

вот тут первичная группировка по контрагентам, вторичная по номенклатуре, пользователь двигает колонку с номенклатурой перед контрагентом, и вот тут хочется перестроить запрос чтобы первичной группировкой стала группировка по номенклатуре.
вопрос как отловить само событие перетаскивания колонки?

(5) если бы мне удалось поймать событие натыка обработчиков, я бы не обращался на форум. а на счет религии она мне даже позволяет поисковиками пользоваться, не нашел.

тыкал, ставил, единственное где как-то ловится это обновлениеотображения, но тут другая проблема я не понимаю каким образом работает этот обработчик, когда возникает это самое обновление формы?

Читайте также:  Пластик под дерево цвета

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

(14) проблемы в том что я не понимаю когда происходит это обновление. событие может отловиться сразу, может после того как мышка вышла за пределы формы, а может не отловиться. т.е. нет понятия когда происходит это событие (когда вообще форма отрисовывается?)
единственное решение которое приходит на ум это повеситься на обработчик привыводестроки, но это все же имхо несколько неверно, хотя если нет других вариантов буду вешаться на него. но может тут есть люди кто заморачивался подобным и нашел более красивое решение?

(16) не делать как? перестраивать запрос? предложи другой вариант как перегруппировать данные. а вариант очень удобен в отчетах по продажам, в данном случае пишу фигульку для планирования, и согласись что удобно простым перетаскиванием группировки увидеть продажи в другом разрезе. то что через привыводестрок лучше не делать с этим не спорю, потому и спрашиваю 🙂 ну ведь не я же первый наверное столкнулся с подобным.

(18) оно срабатывает, но непредсказуемо срабатыват, я ж вроде отписал. после перетаскивания оно может сработать сразу, может сработать через сколько то секунд, я не понимаю что заставляет обновить форму? перетаскивание колонок точно не вызывает это событие. возможно есть какой то параметр у формы (время обновления)?

(17) Отчет сделай. А про «удобно» — откуда ты знаешь, если это еще не сделано и, соответственно, не работает? 🙂

(20)+ вообще-то да, это если один раз показать пользователю, что прикольная штучка — перетаскивание колонок. Но если каждый день сидеть, перетаскивать трясущимися руками эти колонки, да юзер через месяц уволится.

Читайте также:  Баня чем предохранить дерево

я именно что юзал, под семерку стороннюю программу QlickView очень удобная штука, на лету перестраивает отчеты при перетаскивании колонок уже совсем другая картина анализ продаж очень даже удобно делать в любом разрезе.
по поводу каждый денб сидеть и перетаскивать, так тебя же никто не заставляет перетаскивать не нужно не перетаскивай.
смотри у тебя есть отчет по продажам в разрезе:
1. филиал
2. группа контрагнетов (там вип, чтото еще)
3. номенклатураная группа
4. номенклатура
ну и суммы продажи и количество.
и если тебе нужно в таком разрезе смотреть то все ок, но если тебе например нужно увидеть где больше всего покупают какую то группу или отдельную номенклатуру ты просто перетаскиваешь колонку номенклатуры вперед и отчет перестраивается. вот именно это я и хочу сделать.
да можно сделать по другому можно в список вывести группировки и там стрелочками менять их порядок и перестраивать запрос, но это интерфейсно неудобнее чем просто перетащить колонку.

(24) извини, но это разговор уровня детского сада.
если тебя не устраивает документ в 1С ты переходишь в САП или дописываешь под свои нужды?
вот и я делаю тоже самое, мне нужно сделать так и я это сделаю теми или иными способами, у меня вопрос не в том чтобы мне указали юзай другую программу, а в том что если ктото знает как делать, то пусть подскажет, нет значит буду искать способы самостоятельного решения.

(26) ок, в данном топике конечный ответ в нашем с тобой споре за тобой, нет желания обсуждать.

кто-то чтото дельное может подсказать? 🙂

Источник

ДеревоЗначений.Колонки Метод Добавить()

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Читайте также:  Розы которые растут деревом

Пример использования

Пример кода с использованием метода Добавить() :

//создание нового дерева значений дз = Новый ДеревоЗначений; //добавляем колонки НоваяКолонка = дз.Колонки.Добавить(, Новый ОписаниеТипов("Строка")); НоваяКолонка.Имя = "Наименование"; НоваяКолонка.Заголовок = "Наименование"; //однако удобнее сразу описывать все свойства колонки за один вызов: НоваяКолонка = дз.Колонки.Добавить("КодТовара", Новый ОписаниеТипов("Строка"), "Код товара"); 

Читайте также:

Источник

А можно ли переопределить тип колонки дерева значений?

Выполняю запрос с итогами по одному полю, выгружаю в дерево значений, состоящее из двух уровней, дерево вывожу в ЭлементФормы деревоЗначений, создаю колонки, получаю на верхнем уровне отображение итоговых значений,
типа:
215 Склад1
Номенклатура1 Склад1
Номенклатура2 Склад1
Номенклатура3 Склад1
Номенклатура4 Склад1
а хотелось бы увидеть

Склад1(215)
Номенклатура1
Номенклатура2
Номенклатура3
Номенклатура4
то есть, убрать колонку Склад1 и переместить ее название в первую колонку.
Как убрать колонку «склад» понятно, а как переопределить тип первой колонки на нулевом уровне, чтобы отобразить строку «Склад1(215)»?
сейчас у нее тип число, а нужен Строка.

у колонки можно сделать составной тип данных и в каждой строке иметь данные того типа, которого нужно. Смотри как строится дерево в настройке дополнительных прав в УТ.

(3)спасибо.
я сейчас подумала немного, и сделала вот как:
Результат = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
СписокНакладных = Результат;

ЭлементыФормы.СписокНакладных.СоздатьКолонки();
ЭлементыФормы.СписокНакладных.Колонки.Удалить(ЭлементыФормы.СписокНакладных.Колонки.ГородНазначения);
ЭлементыФормы.СписокНакладных.Колонки.Удалить(ЭлементыФормы.СписокНакладных.Колонки.ФилиалНазначения);

//****
Процедура СписокНакладныхПриПолученииДанных(Элемент, ОформленияСтрок)
// Вставить содержимое обработчика.
Для Каждого Стр Из ОформленияСтрок Цикл
Если Стр.ДанныеСтроки.Родитель = Неопределено Тогда
ЯчейкиСтр = Стр.Ячейки;
ДанныеСтрокиСтр = Стр.ДанныеСтроки;
ЯчейкиСтр.ПриемнаяНакладная.Текст = «» + ДанныеСтрокиСтр.ГородНазначения + » — (» + СокрЛП(ДанныеСтрокиСтр.ПриемнаяНакладная) + «)»;

// // Стр.Шрифт = Новый Шрифт(,Истина);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

(5) я обходился вообще вез СоздатьКолонки().
Колонки создавал у табличного поля в конфигураторе, указав нужной колонке составной тип. Выслал бы свою обработку, но под рукой нет — на работе.

Источник

Оцените статью