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