gifts2017

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

Опубликовал Михаил Семенов (Shaman100M) в раздел Программирование - Работа с интерфейсом

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

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

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

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

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

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

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

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

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

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

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сhe Burashka (CheBurator) 07.03.07 03:48
заюзал у себя в конфиге.
+1
товарищ умолчал о следующем ;-)
для восстановленния вида списка - надо в процедуре ПриОткрытии)_
вызвать процедуру установки видимости колонок с параметром для восстановления.
..
пока только 2 бяки нашел:
1. надо задавать имя для сохранения настроек видимости вне базы - т.е. писать его вручную...
если где=то случаем написал ФормаСписка для справочника т ФормаСписка дляЖурнала - при восстановлении - ну понятно что будет...
2. не удается задать порядок колонок!!
..чуток причесал внешний вид - обработка отличная.
автор - молодец.
2. Михаил Семенов (Shaman100M) 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) 09.03.07 09:11
п.1 сделал без формекса, счас выложу. Имя формы = Строка-объединение колонок списка, в общем примерно тоже самое, что и ВСтрокуСРазделителями(СписокРеквизитовФормы). Правдо, "уникальность" для форм с одинаковым набором колонок под вопросом, но таких будет 1% (одинаковый состав = ИМХО, одинаковые требования видимости), и, взамен "удобности не ввода идентификатора формы" пойдет.

По п.2 я понял, тебя смутила кнопка "сортировка". Ну, ее добавил чисто для удобства, - сортировка по алфавиту, помеченные позиции в начало списка, - удобно, если реквизитов, эдак, на несколько "листаний" списка. Да и по описанию - только видимость и заголовки.
7. Сhe Burashka (CheBurator) 09.03.07 20:33
п.1 согласен - красиво сообразил.
а вот местами менять...
8. Михаил Семенов (Shaman100M) 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) 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) 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) 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) 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