gifts2017

Форма вывода справочника с настройкой колонок

Опубликовал Олег Пономаренко (O-Planet) в раздел Программирование - Практика программирования

Предлагаемая форма справочника является достаточно универсальным инструментом разработчика. В ее состав встроена возможность настройки состава колонок на уровне пользователя. Форма может быть интегрирована в любую конфигурацию и использована для вывода любого справочника.

Настройка состава колонок выполнена в виде раскрывающегося дерева реквизитов. В список может быть выведен любой реквизит с любого уровня вложенности.

Разработано для использования программистами, чтобы сделать наши конфигурации более универсальными и удобными для клиентов.

Для внедрения формы в состав конкретного справочника в конфигурации достаточно:

  1. Взять формы из обработки и скопипастить в справочник
  2. Поменять на основной форме вручную тип списка справочника.

Никаких других изменений не требуется.

Дополнительно: в состав модуля обработки входит функция, позволяющая получать все элементы справочника, соответственно настройкам колонок, в таблицу значений.

Настройки колонок индивидуальны для каждого пользователя и для каждого справочника.

Качайте, используйте по своему усмотрению.

Ничто не мешает на базе этой обработки сделать универсальную форму вывода любого справочника.

Понравилось/не понравилось? - Оставляем комментарий, ставим плюсик/минусик.

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Список справочника
.1238467003 15,96Kb
12.10.14
528
.1238467003 15,96Kb 528 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Окулов (PowerBoy) 31.03.09 07:05
Смысла в данной обработке не понял. В любом списке можно настроить видимость колонок.
2. Kayen (kayen) 31.03.09 10:07
Но в списке нельзя отключить видимость групп... И в списке можно выбирать только колонки определённые в конфигураторе...
3. Александр Окулов (PowerBoy) 31.03.09 10:47
(2) ... зачем давать пользователю возможность править любые реквизиты справочника?
4. Kayen (kayen) 31.03.09 10:52
(3) управлять видимостью колонок списка справочника очень удобно.... в 8.2 вообще все списки компоновкой данных сделаны....
5. Олег Пономаренко (O-Planet) 31.03.09 14:55
В 8.1 к сожалению нет такого. Как было сказано, в список на уровне пользователя стандартными средствами можно вывести только те колонки, которые являются реквизитами справочника. У меня - пусть и не компановка данных, но достать значение с любого уровня вложенности дает возможность.
6. Олег Пономаренко (O-Planet) 31.03.09 15:33
Кстати, задумался... Ни что не мешает схему немного доработать и сделать возможность привязки произвольних колонок, связанных с элементами справочника некоторым запросом...
7. Олег Пономаренко (O-Planet) 31.03.09 15:35
Конечно, это все еще не будет компановщик, но привязать, скажем, контактную информацию к конграгенту в списке можно будет...
8. Роман Ершов (MRAK) 31.03.09 16:06
Плюс. но есть ошибка, возникает при включении в форму колонок неограниченной длины
9. Роман Ершов (MRAK) 31.03.09 16:16
{Форма.Форма(101)}: Ошибка при вызове метода контекста (Выполнить): {(2, 2)}: Несовместимые типы "ЕСТЬNULL"
<<?>>ЕстьNULL(Справочник.НаименованиеПолное,НЕОПРЕДЕЛЕНО) КАК Реквизит
Рез=З.Выполнить().Выбрать();
10. Олег Пономаренко (O-Planet) 31.03.09 16:32
Да... Над этим подумать надо. Запросом их нужно через Выразить выводить
11. Сергей (necropunk) 02.04.09 08:51
В принципе, интересно, только с утра, с похмелья, сразу не разобрался что-то... Позже дошло, но мне кажется, что каждый раз менять вид справочника в конфигураторе - это как-то не очень... Ну и ошибка описанная выше имеет место быть...
12. Андрей (akat65) 02.04.09 13:21
обработка не открылась ((
ошибка для ЗУП 2.5.13.5 (8.1.13.37)
{Форма.Форма(107)}: Значение не является значением объектного типа (Имя)
ИмяСправочника=Метаданные.НайтиПоТипу(ЭлементыФормы.СписокСправочника.ТипЗначения.Типы()[0]).Имя;
13. Андрей (akat65) 02.04.09 13:30
+12, но открылась на БУХии и Торге (универсально...)
14. Андрей (akat65) 02.04.09 15:31
+12 только справочник НОМЕНКЛАТУРА
15. Андрей Скляров (coder1cv8) 02.04.09 17:33
Хм... Действительно не понятно с какой целью переписывать механизм, который заложен в платформу?... )
16. Олег Пономаренко (O-Planet) 02.04.09 20:51
(15) Какой механизм заложен в платформу?
17. Сергей Троицкий (tsd) 02.04.09 21:24
(16) Задай на этапе конфигурирования в список все реквизиты, которые могут быть доступны, задай некое умолчание, а дальше пусть пользователи сами себе постраивают.
Кстати, в справочнике могут присутствовать служебные реквизиты к которым пользователь доступа не должен иметь. Как такой вопрос разрулить?
18. Олег Пономаренко (O-Planet) 02.04.09 21:58
(17) В том-то и беда, что ВСЕ реквизиты задать на этапе конфигурирования, даже для моего примера - не просто, потому что в реквизитах могут присутствовать сылки на элементы других справочников, у которых тоже есть реквизиты, и среди них - тоже ссылки ... с реквизитами и т.д. Моя разработка позволяет не заморачиваться этим вопросом на этапе конфигурирования, а просто дает возможность клиенту самому выбирать, что он хочет видеть в списке (данные с какого уровня вложенности).

По поводу второго вопроса - привязку спец инфы можно подумать. Мне кажется, вполне реальным добавить в дерево возможность получать инфу из 1) регитров сведений, в атрибутах которых присутствует ссылка на справочник 2) регистров остатков с тем же условием отбора. Тут - свобода творчества.
19. Андрей Скляров (coder1cv8) 02.04.09 22:37
20. Олег Пономаренко (O-Planet) 02.04.09 23:39
(19) Я по этому поводу отписался уже в 18
21. Сергей Троицкий (tsd) 03.04.09 18:53
(18) это все понятно, вопрос в том, а зачем? :)
Теоретически кое-где использовать можно, потому и плюс поставил.

Глубокую выборку реквизитов делать не советую, подтормаживать будет
22. Олег Пономаренко (O-Planet) 03.04.09 21:05
23. Василий Демидов (Душелов) 03.04.09 21:16
24. Олег Пономаренко (O-Planet) 03.04.09 21:34
(23) Он реально отжог во всех топиках... Кто-то решил дискредитировать систему рейтингования таким образом? Вот как давно нужно было подумать, чтобы больше 3-х плюсов в минуту ставить было бы нельзя...
25. Alexandr (maloi_a) 06.04.09 08:43
Мелкие замечания:
1. Нет возможности сортировки по колонкам даже по индексированным реквизитам.
2. Отбор по значению в колонке тоже не работает.
3. Нельзя вывести дополнительные вычисляемые и заданные в конфигураторе колонки как они заданы.
4. Нет поиска в колонке по подстроке.
26. Геннадий Пиганов (Totoro) 06.04.09 14:16
(0) Идея хорошая. Думаю, если оптимизировать в один запрос, то будет удобно.
27. Олег Пономаренко (O-Planet) 06.04.09 14:24
(26) В своем проекте я так и делаю. Вывожу не список справочника, а формирую таблицу значений одним запросом и вывожу. Кстати, появляются возможности отбора и сортировки. В общем модуме лежит процедурка, которая этот один запрос формирует и выводит ТЗ.
28. Геннадий Пиганов (Totoro) 06.04.09 14:55
(27) Если нужент отбор или сложная сортировка, то конечно придется общий запрос использовать (хотя когда справочник перевалит через несколько тысяч это будет раздражать - проверено на ОС). Но если этим не заморачиваться, то можно выводит справочник список с основными полями, а потом доп. поля выводить как вычисляемые колонки. Если использовать ПриПолученииДанных (нужный запрос получить вначале через построитель или сформировать программно) и делать запрос только к нужным полям (с отбором по ссылкам) - получиться очень шустренько и достаточно универсально.
29. Олег Пономаренко (O-Planet) 06.04.09 15:01
(28) У меня сейчас примерно так, но не использую ПриПолученииДанных. Использую ПриВыводеСтроки. В ПриПолученииДанных можно сразу формировать запрос по всему списку, а потом пользоваться его результатами? Посмотрю.
30. Геннадий Пиганов (Totoro) 06.04.09 15:07
(29) Да. Наилучший способ (как мне кажется):
1) Обходом собрать массив ссылок и заполнить соответствие (Ссылка->ОформлениеСтроки).
2) Получить результат запроса по отобранным ссылкам.
3) Выборкой получая ссылку и из соответствия (заполненного ранее) получение по ней ОформлениеСтроки.
4) Заполнение ОформлениеСтроки данными выборки
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа