Видимость и заголовки колонок формы списка

Программирование - Работа с интерфейсом

без ВК, без списка колонок (в самом простом варианте), простым копированием кнопки.

Обрабатывает все формы "с колонками":
- ФормаДокумента
- ФормаСпискаСправочника
- ФормаЖурналаДокументов
- ФормаЖурналаРасчетов
- ФормаПланаСчетов
- ФормаОперации
- ФормаЖурналаОпераций
- ФормаЖурналаПроводок

Обработка "Видимость и заголовки колонок формы списка"

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

Обрабатываются формы:
- ФормаДокумента
- ФормаСпискаСправочника
- ФормаЖурналаДокументов
- ФормаЖурналаРасчетов
- ФормаПланаСчетов
- ФормаОперации
- ФормаЖурналаОпераций
- ФормаЖурналаПроводок

Несколько вариантов реализации, из них самый простой: скопировать обработку в подкаталог базы данных ExtForms, скопировать кнопку в обработке со слоя "Пример" и вставить на форму списка.

07.03.2007 Добавлен режим восстановления настроек видимости формы без указания ее идентификатора, в этом случае
они сохраняются / восстанавливаются под именем, формируемым автоматически.
Добавлена кнопка на форму "восстановить".
Кнопка "Сохранить" теперь доступна всегда.
Новая иконка на кнопку

06.03.2007 Добавлен демонстрационный режим. Открыть внешнюю обработку ColumnVisibilityInForm.ert
и выбрать вид справочника для демонстрации.

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

Наименование Файл Версия Размер
ColumnVisibilityInForm.zip
.1173165157 27,69Kb
26.02.13
146
.1173165157 27,69Kb 146 Скачать

См. также

Комментарии
1. Сhe Burashka (CheBurator) 07.03.07 03:48 Сейчас в теме
заюзал у себя в конфиге.
+1
товарищ умолчал о следующем ;-)
для восстановленния вида списка - надо в процедуре ПриОткрытии)_
вызвать процедуру установки видимости колонок с параметром для восстановления.
..
пока только 2 бяки нашел:
1. надо задавать имя для сохранения настроек видимости вне базы - т.е. писать его вручную...
если где=то случаем написал ФормаСписка для справочника т ФормаСписка дляЖурнала - при восстановлении - ну понятно что будет...
2. не удается задать порядок колонок!!
..чуток причесал внешний вид - обработка отличная.
автор - молодец.
2. Михаил Семенов (Shaman100M) 1176 07.03.07 10:34 Сейчас в теме
Спасибо за оценку.
Ну, "умолчания", это для "посвященных". Там есть описание параметров процедуры, перемещаемой в глобальный модуль (по третьему варианту реализации). Для тех, кому интересно чтение, в общем. :) А в "Дополнительно" не хотелось перегружать текстом.

По бякам.
1. Имя для сохранения настроек... Можно подумать, как его определить для неизвестной формы. Форма.Заголовок() не потянет... Имя по составу колонок тоже м.б. не уникальным. Ладно.
2. Э... порядок колонок на форме списка? Или в обработке? В обработке это добавить пару кнопок. А на форме списка ИМХО, нельзя. Только Форма.<ЭлементДиалога>.Видимость() и Форма.<ЭлементДиалога>.Заголовок().
3. Сhe Burashka (CheBurator) 07.03.07 17:39 Сейчас в теме
работаю над пп 1 и 2 - сильно их не хватает...
я сначала сунулся - вещь..! колонки попередвигал - не оработает ;-.0
потом разобрался...
4. Сhe Burashka (CheBurator) 07.03.07 17:40 Сейчас в теме
фейс тока немного переточил.. когда много мелких кнопариков в одну линию - они визуально рассыпаются.. неотровненными кажутся...
5. Сhe Burashka (CheBurator) 08.03.07 06:16 Сейчас в теме
п.1 решается формексом.
т.о. между сеансами можно идентифицировать сохраненные настройки
6. Михаил Семенов (Shaman100M) 1176 09.03.07 09:11 Сейчас в теме
п.1 сделал без формекса, счас выложу. Имя формы = Строка-объединение колонок списка, в общем примерно тоже самое, что и ВСтрокуСРазделителями(СписокРеквизитовФормы). Правдо, "уникальность" для форм с одинаковым набором колонок под вопросом, но таких будет 1% (одинаковый состав = ИМХО, одинаковые требования видимости), и, взамен "удобности не ввода идентификатора формы" пойдет.

По п.2 я понял, тебя смутила кнопка "сортировка". Ну, ее добавил чисто для удобства, - сортировка по алфавиту, помеченные позиции в начало списка, - удобно, если реквизитов, эдак, на несколько "листаний" списка. Да и по описанию - только видимость и заголовки.
7. Сhe Burashka (CheBurator) 09.03.07 20:33 Сейчас в теме
п.1 согласен - красиво сообразил.
а вот местами менять...
8. Михаил Семенов (Shaman100M) 1176 11.03.07 16:11 Сейчас в теме
ИМХО, первое, что пришло на ум по п.2 - это то, что форма списка будет состоять из одних текстовых эл-тов диалога, обращающихся к одной и той же функции с одним параметром - номером колонки. Ну, а из нее возвращать, например, значение списка под тойже строкой. Сортируем список - меняется порядок колонок. ИМХО, коряво это, да и тормозить должно.
9. Сhe Burashka (CheBurator) 11.03.07 17:51 Сейчас в теме
нет, это неправильно как-то...
10. Сhe Burashka (CheBurator) 24.03.07 02:27 Сейчас в теме
Вот! надо сделать как в штатной 1Сной - параметр/закладка "Активизировать при открытии"
11. Михаил Семенов (Shaman100M) 1176 26.03.07 11:30 Сейчас в теме
Можно кнопку "Сохранить" просто переименовать в "Набор активизируемых колонок при открытии". Или же сделать встроенный список сохраняемых настроек. В принципе, есть смысл, т.к. счас настройки едины для всех пользователей, а будут: "Для ввода", "Для просмотра", "Общие реквизиты" и т.д.
12. Сhe Burashka (CheBurator) 08.05.07 00:47 Сейчас в теме
ПолныйТипОбъекта()
FullObjectType()
Синтаксис:
ПолныйТипОбъекта()
Назначение:
Возвращает полный тип объекта, которому принадлежит расширяемая форма.
Пример:
ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.УстановитьФорму(Форма);
Сообщить(ФормаРасш.ПолныйТипОбъекта());
// выводит строку вида: Справочник.Тестовый.ФормаСписка.ДляВыбора
...
м.б. имеет смысл использовать данную возможность для формирования уникального ИДА (как вариант) - обсуждали ниже
13. Сhe Burashka (CheBurator) 20.06.07 02:33 Сейчас в теме
Не обрабатываются текстовые колонки в таблиичной части формы документа.
Почему? можно ли это поправить?
14. Евгений Мартыненков (JohnyDeath) 290 20.06.07 10:28 Сейчас в теме
Примерно тоже самое обсуждалось здесь: http://www.1cpp.ru/forum/YaBB.pl?num=1176878184
Если влом читать, то скажу, что всё сделано в FormEx. В очередной раз направляю тебя в "Репозитарий классов 1С++ в единой конфе" http://openconf.1cpp.ru/beta/artbear/1cpp_classes.rar
Для нормальной работы конфы нужны три компоненты: 1с++, FormEx и RWidjets. Скачать их можно соответственно:
http://www.1cpp.ru/files/nightbuild.zip
http://dorex.ru/files/?formex_t.zip
http://infostart.ru/projects/602/
15. Михаил Семенов (Shaman100M) 1176 20.06.07 16:59 Сейчас в теме
Сергей, добрый день. Как не обрабатываются? Сделал по второму варианту, все как описано, обрабатывает. Пожалуйста, опиши проблему точнее.
16. Сhe Burashka (CheBurator) 20.06.07 17:26 Сейчас в теме
хочется с минимумом сторонних привлечений.
спсб. качну свежее - буду смотреть..
17. Сhe Burashka (CheBurator) 21.06.07 15:06 Сейчас в теме
Сорри, невнимательно прочитал..
ОткрытьФорму("Обработка.ColumnVisibilityInForm",Контекст); ОткрытьФорму("Обработка.ColumnVisibilityInForm","Здесь_должны_быть_идентификаторы_текстовых_колонок_через_за­пятую");
.. а другого решения получения колонок (не реквизиттов!) МЧ дока - нет...?
18. Михаил Семенов (Shaman100M) 1176 22.06.07 14:02 Сейчас в теме
через попытку перебирать все известные комбинации букв :))) ;
унифицировать идентификаторы текстовых колонок в конфиге, типа "Ид_ТекстКол##", тогда перебирать придется только 100 вариантов;
или обращаться к формексу
19. Сhe Burashka (CheBurator) 22.06.07 14:07 Сейчас в теме
ок.
пока устроит так как есть.
20. Сhe Burashka (CheBurator) 13.07.07 02:40 Сейчас в теме
Заюзал для манагеров в одной конторе - а то у них там артикулов море... Посмотрим, что скажут... И мысль даже родилась ;-) как это улучшить...
21. Сhe Burashka (CheBurator) 03.08.07 23:51 Сейчас в теме
Оставьте свое сообщение