8.х Выбор элементов справочника в форме выбора

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем NewProjectOld, 18 фев 2010.

  1. TopicStarter Overlay
    NewProjectOld
    Offline

    NewProjectOld

    Регистрация:
    18 фев 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый день,
    В конфигурации есть справочник "Организация", в форме элемента которого есть поле ввода "ГоловныеОрганизации" с реквизитом - СправочникСсылка.Контрагенты. В режиме 1С в форме списка справочника "Контрагенты" (справочник 2-х уровневый) добавлены следующие группы:
    - "Банки"
    - "Головные организации"
    - "Государственные органы"
    - "Юридические лица (прочие)"
    - "Физические лица"
    Необходимо, чтобы при нажатии на кнопку выбора (событие "НачалоВыбора") поля ввода "ГоловныеОрганизации"в форме элемента справочника "Организации", открытая форма выбора отображала только группу "Головные организации" с подчиненными элементами.
    Пробовал так:

    Процедура ГоловныеОрганизацииНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = ложь;
    фрм = Справочники.Контрагенты.ПолучитьФормуВыбора();

    //отбор по Родителю
    отб = фрм.Отбор.Ссылка;
    отб.ВидСравнения = ВидСравнения.ВИерархии;
    отб.Значение = "Головные организации";
    отб.Использование = Истина;

    //отображаем только элементы без групп
    отб = фрм.Отбор.ЭтоГруппа;
    отб.Использование = Истина;

    //определим, куда будем возвращать выбранный элемент
    фрм.ВладелецФормы = Элемент;

    //открываем форму
    фрм.Открыть();
    КонецПроцедуры

    ...вылетает ошибка: "Ошибка при установке значения атрибута контекста (Значение): Неверный тип значения".
    Помогите пожалуйста советом
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Ну так вы пихаете в элемент с типом справочник ссылка - строку.
    Код:
    // у вас
    отб.Значение = "Головные организации";
    // надо
    отб.Значение = Справочники.Контрагенты.НайтиПоНаименованию("Головные организации");
    
    
  3. TopicStarter Overlay
    NewProjectOld
    Offline

    NewProjectOld

    Регистрация:
    18 фев 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Спасибо, разобрался в чем дело:
    Код:
    Процедура ГоловнаяОрганизацияНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = ложь;
    фрм = Справочники.Контрагенты.ПолучитьФормуВыбора();
    
    //отбор по Родителю
    отб = фрм.Отбор.Ссылка;
    отб.ВидСравнения = ВидСравнения.ВИерархии;
    отб.Значение = Справочники.Контрагенты.НайтиПоНаименованию("Головные организации");  
    отб.Использование = Истина;
    
    //отображаем только элементы без групп
    отб = фрм.Отбор.ЭтоГруппа;
    отб.Использование = Истина;
    
    //отключаем иерархический просмотр и запрещаем его включать
    фрм.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = ложь;
    фрм.ЭлементыФормы.СправочникСписок.ИзменятьИерархическийПросмотр = ложь;
    
    //определим, куда будем возвращать выбранный элемент
    фрм.ВладелецФормы = Элемент;
    
    //открываем форму
    фрм.Открыть();
    КонецПроцедуры
    
    При открытии формы выбора отбираются только нужные элементы, но при добавлении и записи нового элемента выходит сообщение:
    "Введенные данные не отображены в списке, так как не соответствуют отбору", после чего элемент записывается не в группу "Головные организации", а за пределы иерархии, прошу совета

Поделиться этой страницей