Здравствуйте.

Можно ли как-то реализовать следующую задачу?

Продукты организованы с помощью древовидной структуры на основе групп. То есть, есть дерево групп, по которым разбросаны продукты (также как сделано в 1С).

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

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

Нравится

15 комментариев

Добрый день, Алексей!

Реализовать выбор продуктов, используя информацию о дереве групп, можно.
Для этого можно, например, создать окно - наследник от wnd_SelectData, в нем добавить древовидный реестр, реализовать заполнение реестра группами продуктов, а при выборе некоторой записи в дереве реализовать наложение фильтров по группе на набор данных продуктов.
Для того, чтобы в поле Продукт выбирать значение с помощью нового окна, необходимо указать окно выбора значения в поле типа LookupDataControl окна редактирования Продукта в Счете. В свойстве SelectWindowUSI компонента edtOfferingName окна wnd_OfferingDetailEdit необходимо указать код созданного окна выбора.

Второй способ - использовать для выбора значения окно wnd_SelectWorkspaceData, однако его придется доработать, чтобы оно смогло стать полноценным окном выбора значения для LookupDataControl. Этот способ более трудоемкий, но даст более наглядный результат - пользователь будет выбирать продукт в окне, которое является разделом Продукты.
Если возникнут вопросы по реализации, буду рад помочь.

Спасибо, скорее всего буду работать над вторым вариантом. По результатам отпишусь.

Схожий вопрос.
Хочу в детали "Группы" в любом разделе, чтобы при нажатии на добавить возникало окно не с списком групп, а с древом.
Создал окно wnd_GroupsTree, установил TemplateWindow - wnd_SelectData.
При попытке добавить в окно элемент DataTreeGrid возникает Разрушительный сбой. Что я делаю не так?

Добрый день, Константин!
Для создания собственного окна выбора, но с древовидным отображением списка, придется создавать его с нуля. Использовать в качестве шаблона окно wnd_SelectData не получится, т.к. в его основе лежит DataGrid, а нужно TreeDataGrid. Также под вопросом использование поиска в таком окне, т.к. при включении каких-либо фильтров возможно нарушение структуры дерева.
Основная задача такого окна - отображение списка записей и при нажатии на кнопку ОК считывать значение ID текущей записи, установка значений в атрибутах окна и посылка сообщения Notify окну, которое вызвало окно выбора (пример см. скрипт scr_SelectData функция btnOkOnClick())
Желаю успехов!

Здравствуйте.
А что значит тогда:
Реализовать выбор продуктов, используя информацию о дереве групп, можно.
Для этого можно, например, создать окно - наследник от wnd_SelectData, в нем добавить древовидный реестр, реализовать заполнение реестра группами продуктов, а при выборе некоторой записи в дереве реализовать наложение фильтров по группе на набор данных продуктов.
?

Если я создаю новое окно, не указываю TemplateWindow,
то при попытке добавить элементы DataGrid или TreeDataGrid возникает Разрушительный сбой.
Как же создать это окно с нуля?

Через наследование от wnd_SelectData сделать можно, но придется скрывать уже существующий компонент DataGrid и добавлять новый DataTreeGrid, а также существенно изменять код, в общем, при более детальном рассмотрении сформирован вывод, что наследование от этого окна в данном случае пользы не дает.
Вообще создать новое окно с нуля можно (добавлять фрейм, затем фреймгруппы и компоненты, не забывать почаще сохранять), но в Вашем случае можно воспользоваться шаблоном wnd_BaseEdit - содержит только два фрейма, во втором две кнопки и невизуальный компонент dlData.
Внутрь компонента frmData можно добавить DataTreeGrid, настроить выравнивание и т.д.
Бороться с "разрушительным сбоем" можно следующим образом: загрузить сохраненную версию окна и аккуратно добавить элементы.
Желаю успехов!

Так я так и пытался делать.
Создаю новое окно, пишу TemplateWindow - wnd_BaseEdit.
Сохраняю, закрываю. Открываю снова.
В frmData создаю DataGrid.
Разрушительный сбой.

Укажите, пожалуйста, полную версию приложения.
Возможно, проблема решится использованием последней версии бинарных файлов.

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

P.S. Почему так получилось, что Вы используете такую старую версию системы?

Ок. Попробую более старый дистрибутив. У меня он есть, но версию не помню. Если не получиться, то запрошу.

Решение о покупке CRM принималось ещё в прошлом году.
Тогда и закупили 3.0.4
Когда ж реально приступили к внедрению (этим занимаюсь я несколько месяцев), то оказалось, что 3.0.4 дальше не развивается, а переход на 3.2 (а скоро, я полагаю, на 3.3) требует доплаты за обновление лицензий. Тогда как даже старые себя не оправдали на данный момент...
К тому же ещё и конфигурацию заново придется переписывать или платить за адаптацию.

Здравствуйте.
Разработчики патч ещё не сделали?

Добрый день, Константин!
На данный момент запланированы работы по исправлению, думаю, будет готово в середине ноября.

Хорошо.
Будем ждать.

Показать все комментарии