Имя: Пароль:
1C
1С v8
Как вызвать форму выбора справочника с запретом на изменение его данных?
0 Беата Смит
 
19.02.19
18:20
На форме есть 2 поля. Тип, которое, допустим, может принимать только значения 1 и 0. И Адрес, которое является ссылкой на справочник Места.
Мне надо, чтобы когда тип =  1, поле Адрес открывало форму выбора справочника Места, но с запретом на добавление в справочник новых записей.
А когда тип = 0, открывалась бы уже полноценная форма выбора (с возможностью вносить изменения), но с действующими условиями отбора.

Вторую часть я пыталась делать так:
    Форма = ПолучитьФорму("Справочник.Места.ФормаВыбора");
    Форма.Список.Отбор.Контрагент.Значение = Объект.Контрагент;
//Форма.Список.Отбор.Контрагент.Ссылка указывать тоже пыталась и даже просто Форма.Список.Отбор.Контрагент
    Форма.Список.Отбор.Контрагент.Использование = Истина;
    Форма.Открыть();

Но выскакивает ошибка "Поле объекта не обнаружено (Контрагент)". На самой форме выбора, если что, поле такое есть.
Вопроса два. Что я, тупица, делаю не так. И как вообще реализовать первую часть задачи? В гугл не посылать. Там мне встречались только версии с установкой прав на запрет определенным пользователям редактировать справочник. Но мне-то только временный запрет нужен. Помогите, пожалуйста. Голова уже сломалась (
1 Вафель
 
19.02.19
18:21
параметр "ТолькоПрсмотр"
2 Беата Смит
 
19.02.19
18:41
(1) Я так делала:
    СтандартнаяОбработка = Ложь;
    Форма = ПолучитьФорму("Справочник.Места.ФормаВыбора");
    Форма.ТолькоПросмотр = Истина;    
    Форма.Открыть();

Только кнопка "выбрать" вверху на панели пропадает, а при тыке в нужную строку открывается форма элемента, а не запись выбирается. Выбор данных из справочника, получается, надо как-то отдельно прописывать?
3 Беата Смит
 
19.02.19
19:05
(2) Попробовала наудачу дописать:

Форма.РежимВыбора = Истина;

Разумеется, не сработало. Выскакивает ошибка "Поле объекта не обнаружено (РежимВыбора)" Меня преследует эта ошибка сегодня...
4 Беата Смит
 
20.02.19
13:27
СтандартнаяОбработка = Ложь;

    Если Тип = 1 Тогда
        ЗначениеОтбора = Новый Структура("Контрагент", Объект.Контрагент);
        ПараметрыВыбора1 = Новый Структура("Отбор", ЗначениеОтбора);
        ОткрытьФорму("Справочник.Места.ФормаВыбора", ПараметрыВыбора1, Элемент);
        Иначе
        ФормаВыбора1 = ПолучитьФорму("Справочник.Места.ФормаВыбора",,Элемент);        
        ФормаВыбора1.ТолькоПросмотр = Истина;
        ФормаВыбора1.Открыть();
    КонецЕсли;


Вот так будет правильно, если вдруг кому-то потом помоэет.
5 sqr4
 
20.02.19
13:28
(3) Режим выбора не у формы, а у динамического списка.
6 Ёпрст
 
20.02.19
13:40
(5) это обычные формы
7 Serg_1960
 
20.02.19
13:51
У автора вопрос типа "Как запретить редактировать записи в форме выбора списка".
8 Ник080808
 
20.02.19
14:07
(2) Брехня.
    ФормаВыбора = Справочники.Контрагенты.ПолучитьФормуВыбора("ФормаВыбора");
    ФормаВыбора.ТолькоПросмотр = Истина;
    //ФормаВыбора.РежимВыбора = Истина;
    ФормаВыбора.Открыть();
Норм открыло и дает выбирать.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший