Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Управляемые формы. При выборе контрагента из документа запретить смену родителя

Управляемые формы. При выборе контрагента из документа запретить смену родителя
Я
   altaykniga
 
21.11.18 - 14:23
Здравствуйте, уважаемые специалисты. Прошу подсказок умных людей.

в контрагентах - бардак. Нужно сделать так, чтобы при выборе грузоотправителя из документа можно было выбрать только контрагента из папки Грузоотправитель, при выборе грузоополучателя из документа можно было выбрать контрагента только из папки Грузополучатель.
создал такую процедуру:

&НаКлиенте
Процедура ГрузоотправительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаВыбора", , Элемент);
    Форма.Элементы.Список.ТекущийРодитель = НайтиКонтрагентаНаСервере("ГРУЗООТПРАВИТЕЛЬ");
    Форма.Элементы.Список.РодительВерхнегоУровня = НайтиКонтрагентаНаСервере("ГРУЗООТПРАВИТЕЛЬ");
    Форма.Открыть();
    
КонецПроцедуры

но с ее помощью нельзя запретить пользователю изменить режим просмотра списка (ставит "Еще-Режим просмотра - Список") - и теперь пользователь может создать контрагента вообще без родителя.

Пробовал запретить пользователю доступ к команде «Еще – Режим просмотра», но не понял, как сделать недоступным для пользователя данное меню (Еще – Режим просмотра)

Буду признателен за подсказки, заранее благодарю за помощь!
 
 
   asady
 
1 - 21.11.18 - 14:54
(0) зачем смешивать всё в кучу.

Грузоотправитель - свойство Контрагента 

предлагаю создать подчиненный контрагентам справочник Грузоотправители - с единственным реквизитом: Контрагент(Грузоотправитель)
в документе у это реквизита настроить СвязиПараметровВыбора
Всё срастется и так - без кодирования
   DrWatson
 
2 - 21.11.18 - 14:58
(0) У поля выбора контрагента нужно заполнить свойство ПараметрыВыбора. Это будет отбор при открытии списка и при быстром выборе. Причем этот отбор не снимается.
Если таким способом делать отбор по папке, то нужно иметь предопределенную папку. Другой вариант - сделать реквизит и заполнить его для всех контрагентов, которые должны выходить в списке выбора. Тогда они могут быть и в разных папках и всё "причесывание" списка можно ограничить заполнением этого реквизита.
   AlexPC_Rus
 
3 - 21.11.18 - 16:26
(0) Если не хочется порядок наводить, тогда свою форму выбора делай. Там и отберешь ... жестко :)
   Вафель
 
4 - 21.11.18 - 16:31
(2) такие параметры можно и в коде заполнять
   runoff_runoff
 
5 - 21.11.18 - 16:35
параметры открытия формы: Отбор или ФиксированныеНастройки..
   ptiz
 
6 - 21.11.18 - 16:44
(0) Пусть юзер выбирает что хочет, а проверку надо делать при записи документа.
   altaykniga
 
7 - 21.11.18 - 16:52
(6) дело в том, что юзер может не только выбрать контрагента не из той группы, но может и создать контрагента не в той группе ) поэтому нужно "запирать" юзера в папке в зависимости от реквизита, из которого открывается форма выбора
   altaykniga
 
8 - 21.11.18 - 16:53
(2) не хотелось делать предопределенную папку
   altaykniga
 
9 - 21.11.18 - 16:54
(3) скорее всего буду делать свою форму выбора для справочника Контрагенты
   altaykniga
 
10 - 21.11.18 - 16:55
(4) А при заполнении ПараметровВыбора из кода, можно указывать НЕпредопределенную группу?

Прошу дать ссылку или привести пример, как из кода устанавливать параметры выбора
 
 Рекламное место пустует
   ptiz
 
11 - 21.11.18 - 17:11
(10) А если добавить еще:
    НовыйЭлемент = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));       
    НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель");
    НовыйЭлемент.ВидСравнения  = ВидСравненияКомпоновкиДанных.Равно;   
    НовыйЭлемент.ПравоеЗначение   = НайтиКонтрагентаНаСервере("ГРУЗООТПРАВИТЕЛЬ");   
    НовыйЭлемент.Применение = ТипПримененияОтбораКомпоновкиДанных.Элементы;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует