Есть реквизит с типом Неопределенный. Хочу при выборе этого реквизита открывать справочник. В семерке я что то не нашел выбора типа как в восьмерке. Так же не срабатывает ПриНачалеВыбораЗначения. Как открыть определенный справочник?
Есть реквизит с типом Неопределенный. Хочу при выборе этого реквизита открывать справочник. В семерке я что то не нашел выбора типа как в восьмерке. Так же не срабатывает ПриНачалеВыбораЗначения. Как открыть определенный справочник?
А зачем нужен Неопределенный?
Хз, так прописано в конфигурации. Он содержит три типа справочника. Как мне интрекрактивный выбор организовать по аналогии восьмерки. В какой нибудь конфе пример есть? Нашел пока пример как после выбора счета, меняется тип реквизита, мне не хотелось бы иметь дело с дополнительным реквизитом, а манипулировать только с одним.
если в нем хранятся только справочники, так и сделай его справочником неопределенного вида
по факту я не знаю что там хранится. работаю на левой базе где мало данных.
хорошо. тогда тебе надо будет назначать тип самому. Реквизит в табличной части?
(6) Кнопку выбора включил уже?
Флаг в колонке "Имеет кнопку выбора" установлен. Но кнопки этой все равно нет.
забываю семерку. Возможно, она не появится, пока не установишь тип. Ну, да ладно.
Тебе надо отловить изменение этого реквизита в ПриНачалеРедактированияСтроки, кажется
видыдлявыбора
ПриНачалеРедактированияСтроки назначай тип
Вобщем в итоге получился такой код:
Процедура ПриНачалеРедактированияСтроки() Если (Форма.ТекущаяКолонка() = "Цена" ) или (Форма.ТекущаяКолонка() = "Сумма" ) или (Форма.ТекущаяКолонка() = "СуммаНП" ) или (Форма.ТекущаяКолонка() = "СуммаНДС") или (Форма.ТекущаяКолонка() = "СкидкаКонтрагента") Тогда Если (Форма.ПолучитьАтрибут(Форма.ТекущаяКолонка()).Доступность() = 0) И (глПолучитьПолномочие("РазрешитьРедактированиеЦенВдокументахВторойУровень") = 0) Тогда Предупреждение("Редактирование цен запрещено в соответствии |с установленными полномочиями пользователя!", 60); КонецЕсли; КонецЕсли; //лдо Если (Форма.ТекущаяКолонка() = "СкидкаКонтрагента") и (Форма.ПолучитьАтрибут("Цена").Доступность() = 1) ТОгда ВыбЗнач=СоздатьОбъект("Справочник"); ВыбЗнач.ВидыДляВыбора("ТипыЦен,Скидки"); Если ВыбЗнач.Выбрать("Выберите скидку","ФормаСписка") = 1 Тогда ВыбСкидка = ВыбЗнач.ТекущийЭлемент(); Если ВыбСкидка.Вид() = "ТипыЦен" Тогда Форма.СкидкаКонтрагента.НазначитьТип("Справочник.ТипыЦен") ИначеЕсли ВыбСкидка.Вид() = "Скидки" Тогда Форма.СкидкаКонтрагента.НазначитьТип("Справочник.Скидки") КонецЕсли; СкидкаКонтрагента = ВыбСкидка; КонецЕсли; КонецЕсли; КонецПроцедуры //ПриНачалеРедактированияСтроки()
(9) Спс.