Программное создание Элемента диалога на форме

1. dicwork 04.01.12 12:54 Сейчас в теме
Пишу обработку, которая проверяет полноту заполнения записей справочников. Хотелось бы высветить пользователю список реквизитов этого справочника в виде элементов диалога "Флажок", чтобы пользователь мог выбрать какие реквизиты проверять. Не хотелось бы жестко привязываться к структурам справочников и в конфигураторе набрасывать "Флажки". Хочу создавать "Флажки" прямо из модуля обработки. Возможно ли это?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. WarLex 04.01.12 13:01 Сейчас в теме
(1) Возможно, Вам, проще будет оперировать объектом "Список" со включенным свойством "Список с пометками", список заполняете объектами метаданных, а пометки оставляете на усмотрение пользователя.
3. Alister 9 04.01.12 13:05 Сейчас в теме
dicwork пишет:
создавать "Флажки" прямо из модуля обработки. Возможно ли это?

опять же, как и в случае с внешним глобальником, надо смотреть компоненты formex и 1С++
у меня в конфе по умолчанию номер документа закрыт от редактирования, запрет снимается при нажатии на программно созданную рядом с номером кнопку, так что кнопки точно можно создавать
4. dicwork 04.01.12 13:15 Сейчас в теме
(3) Alister
Если можно небольшой пример кода как создается кнопка. Документацию по работе с formex и 1С++ читаю, но примеров там очень мало и сналету пока не понял как. По поводу внешнего глобального модуля - спасибо за подсказку - попробую.
5. Alister 9 04.01.12 13:25 Сейчас в теме
(4) dicwork,
Синтаксис: ДобавитьАтрибут(ТипАтрибута)
Параметры:

ТипАтрибута - тип: Число. Задает тип добавляемого атрибута формы и может принимать следующие значения:
1 - STATIC (Текст)
2 - 1CEDIT (Поле ввода)
3 - BUTTON (Кнопка)
4 - 1CGROUPBOX (Рамка группы)
5 - 1CEDIT (Поле ввода без рамки)
11 - LISTBOX (Список)
12 - CHECKBOX (Флажок)
13 - RADIO (Переключатель)
14 - COMBOBOX (Поле со списком)
15 - TABLE (Таблица)
Возвращает: Объект АтрибутФормы / AttribEx

Описание: Метод предназначен для добавление атрибутов на текущую форму. НЕСТАБИЛЬНЫЙ!
Показать

насчет нестабильный - у меня эти кнопки уже года 3 используются

Пример
срр_РасширениеФормы = СоздатьОбъект("РасширениеФормы"); 
срр_РасширениеФормы.УстановитьФорму(Форма);
...
Функция ДобавитьКнопку(рекв, КнИдентификатор, КнЗаголовок, КнПодсказка, КнФормула, КнОтступ = 2, КнШирина = 14, Доступность ,ВСлучаеПерекрытия = 0, КнКартинка = "")
...
доп_рекв = срр_РасширениеФормы.ДобавитьАтрибут(КнИдентификатор,3); 
	Если ТипЗначенияСтр(доп_рекв) = "АтрибутФормы" Тогда
		доп_рекв.УстановитьКоординаты(лево+ширина-КнОтступ,верх,КнШирина,высота);
		доп_рекв.Слой = слой;
		доп_рекв.Заголовок = КнЗаголовок;
		доп_рекв.Подсказка = КнПодсказка;
		доп_рекв.Формула = КнФормула; 
		Если ПустоеЗначение(КнКартинка) = 0 Тогда
			доп_рекв.Картинка = КнКартинка;
		КонецЕсли;
		
		Возврат доп_рекв;
	Иначе
		рекв.Доступность = 1;
		Возврат "";
	КонецЕсли;
Показать

пришлось вырывать куски, а то много выходит
6. dicwork 04.01.12 13:32 Сейчас в теме
(5) Alister
Спасибо за пример. Сам бы я наверное долго искал, что добавление элемента на форму происходит методом ДобавитьАтрибут()
7. Alister 9 04.01.12 13:47 Сейчас в теме
dicwork пишет:
Сам бы я наверное долго искал, что добавление элемента на форму происходит методом ДобавитьАтрибут()

:)
8. dicwork 04.01.12 14:27 Сейчас в теме
А кто нибудь создавал CHECKBOX (Флажок) таким методом, а то у меня получается кнопка
9. Alister 9 04.01.12 17:24 Сейчас в теме
(8) dicwork, почитал форум - похоже, что флажок автор так и не доделал :(
13. Юджин58 32 27.11.21 14:08 Сейчас в теме
(8)Чтобы флажок получался флажком, а не кнопкой, надо после создания атрибута назначить ему стиль 1342324739
Атр = ФормаРасш.ДобавитьАтрибут("флПроба",3);
Атр.Стиль=1342324739;
Атр.Заголовок="флажок"
10. alyuev 202 23.04.12 14:35 Сейчас в теме
Да, и COMBOBOX тоже неправильно отрисовывается.
11. dicwork 23.04.12 14:39 Сейчас в теме
(10) alyuev
Я бросил этим заниматься, так как действительно пытаешься создать одно, я получаешь другое. Приходиться привыкать к тому, что есть стандартное в 1С.
12. alyuev 202 23.04.12 14:51 Сейчас в теме
Хотел сделать налету замену объекта формы типа "Перечисление" на СписокЗначений. Это нужно для перевода интерфейса на другой язык. Т.к. надписи перевести можно на лету и заменить, а Перечисление нет, только в конфигураторе править, но это не решение. Думал через ДобавитьАтрибут() получится. Но.... Увы....
14. ishelper 27.11.21 14:22 Сейчас в теме
По-моему, сообщение (13) - абсолютный рекорд по некропостингу?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот