![]() |
![]() |
![]() |
|
флаг выбора на форме списка справочника | ☑ | ||
---|---|---|---|---|
0
черный монах
23.05.11
✎
22:00
|
Добрый вечер...
Проблема следующая, требуется добавить на форму списка флаг, много раз обсуждалось на форуме как добавить текстовое поле и вывести пиктограмму, это все понятно и разжевано... Мне требуется чтоб пиктограмма с галкой появлялась по клику на нужной ячейке и ИД при появлении галки становился равен 1 а если нет пиктограммы то =0 |
|||
1
черный монах
23.05.11
✎
22:05
|
ап
|
|||
2
vicof
23.05.11
✎
22:07
|
на таблицу значений вешаешь функцию, пиктограмму
И смотришь ,если текущая ячейка = твоей ячейке, меняешь свои ИД и пиктограмму меняешь. |
|||
3
черный монах
23.05.11
✎
22:10
|
если не трудно приведите пример
|
|||
4
Torquader
23.05.11
✎
22:14
|
Можно даже не пиктограмму, а пробел и Х.
Функция ВывестиЗначениеФлага(КакиеТоПараметры) Если УдовлетворяетУслугию(КакиеТоПараметры)=1 Тогда Возврат "Х"; Возврат " "; КонецФункции Теперь осталось отловить "нажатие" на данном столбце, чтобы изменить флаг. |
|||
5
vicof
23.05.11
✎
22:15
|
Процедура ЩелчокНаКолонке()
Значение = ТаблицаДоговоров.ПолучитьЗначение(ТаблицаДоговоров.ТекущаяСтрока(), ТаблицаДоговоров.ТекущаяКолонка()); Если (ТаблицаДоговоров.ТекущаяКолонка() = "Агент") или (ТаблицаДоговоров.ТекущаяКолонка() = "Брокер") Тогда АгентИлиБрокер = СоздатьОбъект("Справочник.Агенты_Брокеры"); АгентИлиБрокер.НайтиЭлемент(Значение); ОткрытьФорму(АгентИлиБрокер.ТекущийЭлемент()); ИначеЕсли ТаблицаДоговоров.ТекущаяКолонка() = "ДоговорСтрахования" Тогда Договор = СоздатьОбъект("Справочник.ДоговораСтрахования"); Договор.НайтиЭлемент(Значение); ОткрытьФорму(Договор.ТекущийЭлемент()); ИначеЕсли ТаблицаДоговоров.ТекущаяКолонка() = "Страхователь" Тогда Страхователь = СоздатьОбъект("Справочник.Контрагенты"); Страхователь.НайтиЭлемент(Значение); ОткрытьФорму(Страхователь.ТекущийЭлемент()); КонецЕсли; КонецПроцедуры // ЩелчокНаКолонке |
|||
6
черный монах
23.05.11
✎
22:24
|
(4)Теперь осталось отловить "нажатие" на данном столбце, чтобы изменить флаг.
можете показать каким образом? |
|||
7
andrewks
23.05.11
✎
22:25
|
(6) запихни процедуру в ТЗ
|
|||
8
andrewks
23.05.11
✎
22:25
|
т.е. вызов процедуры
|
|||
9
Torquader
23.05.11
✎
22:29
|
(6) У него список справочника, а не ТЗ. Там надо через активный элемент формы "допрашивать" и обработку нажатия включить.
|
|||
10
черный монах
23.05.11
✎
22:30
|
да список справочника
|
|||
11
andrewks
23.05.11
✎
22:34
|
справочник большой?
|
|||
12
черный монах
23.05.11
✎
22:36
|
нет
|
|||
13
Torquader
23.05.11
✎
22:37
|
(10) А изменять хочется при редактировании в диалоге или просто по щелчку ?
|
|||
14
черный монах
23.05.11
✎
22:40
|
(13)ну мне важно по щелчку изменять пиктограмму и присваивать ИД значение
|
|||
15
andrewks
23.05.11
✎
22:40
|
если (13) - нет, то
можно запросом при открытии дёргать данные, пихать в ТЗ, и там всё делать. это если штатно или ТП можно заюзать. это если нештатно |
|||
16
Torquader
23.05.11
✎
22:42
|
Просто, если мы присваиваем по щелчку, то в "ПриОткрытии":
Форма.ОбработкаВыбораЗначения(1); // чтобы вызывалась процедура при выборе значения Далее создать процедуру Процедура ПриВыбореСтроки() Если Форма.АктивныйЭлемент()="НашФлажок" Тогда ИзменитьЗначениеФлажка(ТекущийЭлемент); Возврат; КонецЕсли; КонецПроцедуры |
|||
17
черный монах
23.05.11
✎
22:46
|
(16) а если просто при открытии?
|
|||
18
черный монах
23.05.11
✎
22:47
|
без выбора значения?
|
|||
19
Torquader
23.05.11
✎
22:48
|
При открытии чего ?
|
|||
20
черный монах
23.05.11
✎
22:51
|
(16)вы пишите: Просто, если мы присваиваем по щелчку, то в "ПриОткрытии"
логично что при открытии формы справочника |
|||
21
Torquader
23.05.11
✎
22:53
|
(20) При открытии формы списка мы говорим системе (то есть 1С), что мы хотим, чтобы вместо открытия формы элемента справочника вызывалась процедура "ПриВыбореСтроки", где мы уже будем что-то менять, но эта процедура нужна только для того, чтобы щелчок на форме списка справочника не открывал его элементы.
|
|||
22
черный монах
23.05.11
✎
23:02
|
всем спасибо
|
|||
23
Torquader
23.05.11
✎
23:58
|
Кстати, забыл немного, но у объекта форма есть метод "ТекущаяКолонка()" который возвращает идентификатор текущей колонки многострочной части (а мне почему-то показалось, что его нет).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |