Имя: Пароль:
1C
1C 7.7
v7: Программно изменить тип элемента диалога в форме документа?
,
0 Julia Loukianova
 
08.04.21
11:26
В табличной части документа есть элемент "Актив" его значение может быть выбрано из разных справочников (Акции, Облигации, Валютные пары...).
Сейчас у меня в свойствах его тип записан просто как справочник.
Я кликаю, выбираю справочник, оттуда элемент, все работает. Но некрасиво - мне выдаются вообще все справочники какие есть.
Также, в таблице я выбираю из перечисления тип "Операции" (продажа акций, покупка облигаций...) и вот мне бы как-то привязать тип "Актива" к выбранному перечислением значению "Операции"? Как?
1 Андрей_Андреич
 
naïve
08.04.21
11:27
ВидыДляВыбора(<?>)
Синтаксис:
ВидыДляВыбора(<СписокВидов>)
Назначение:
Установка выбираемых видов для справочника неопределенного вида.
Возвращает:
Строковое значение, содержащее текущий список видов выбираемых справочников, разделенных запятыми (на момент до исполнения метода).
Параметры:
<СписокВидов> - строка, содержащая список видов выбираемых справочников, разделенных запятыми.
Замечание:
Метод  можно использовать только для объектов-справочников неопределенного вида, созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизит диалога или реквизит другого объекта.
2 Андрей_Андреич
 
naïve
08.04.21
11:27
Форма.Актив.ВидыДляВыбора("Акции, Облигации, Валютные пары")
3 Julia Loukianova
 
08.04.21
11:29
(2) спасибо, то есть в этом случае она мне откроет только 3 справочника, а не весь список, да?
4 Julia Loukianova
 
08.04.21
11:31
(2) вот эту строку
Форма.Актив.ВидыДляВыбора("Акции, Облигации, Валютные пары")
мне ее можно записать прямо в формулу свойств поля или процедуру создать?
5 Julia Loukianova
 
08.04.21
11:36
ой, ступила в процедуру "приоткрытии" )))
6 GrayS19
 
08.04.21
11:36
(4) в любую процедуру, которая сработает до попытки выбрать справочник. ПриОткрытии() подойдет
7 Julia Loukianova
 
08.04.21
11:41
пиууу...
{Документ.BrokReport.Форма.Модуль(42)}: Поле агрегатного объекта не обнаружено (ВидыДляВыбора)
8 GrayS19
 
08.04.21
11:49
в модуле формы оставить - Актив.ВидыДляВыбора("Акции, Облигации, Валютные пары")
9 GrayS19
 
08.04.21
11:49
"Форма." - перед Актив - убрать
10 Julia Loukianova
 
08.04.21
11:56
(9) что-то не то... поставила в процедуру "ПриОткрытии", "форму" убрала. ошибка исчезла, но теперь снова все справочники предлагает
11 Андрей_Андреич
 
naïve
08.04.21
11:58
(10) текст покажи где видыдлявыбора
12 1Сергей
 
08.04.21
12:00
Если это ТЧ, то это нужно делать при начале редактирования строки
13 1Сергей
 
08.04.21
12:01
ой, прастити, не заметил что клюшки
14 GrayS19
 
08.04.21
12:03
а лучше в поле, где выбираете тип "Операции" (продажа акций, покупка облигаций...) в формулу поставить  процедуру
Процедура ПриВыбореТипаОперации()
   Если ТипОперации = Перечисление.ПродажаАкций Тогда
       Актив.ВидыДляВыбора("Акции");
   ИначеЕсли ......

и перечислить все варианты
15 Julia Loukianova
 
08.04.21
12:04
(11) Procedure OnOpen()    
    TradeActive.ÂèäûÄëÿÂûáîðà("Shares, Bonds, ForEx");
16 Julia Loukianova
 
08.04.21
12:05
(14) вот! я так и хотела изначально
17 Julia Loukianova
 
08.04.21
13:19
(14) спасибо, вроде работает
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший