8.х Отбор справочника по группе

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

  1. TopicStarter Overlay
    Lokky
    Offline

    Lokky

    Регистрация:
    24 июл 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Извиняюсь за глупый вопрос, просто на курсах 1с-ки, за 15 часов в нас впихали СТОЛЬКО информации, что просто мозг рвется на части и переваривать её будет очень долго, а самостоятельную задали за выходные сделать. Подскажите, если не сложно и если можно с комментариями по ходу.

    В форме документа поле "Водитель" тип: СправочникСсылка.ФизическиеЛица
    Справочник "Физические лица" иерархический с двумя предопределенными группами "Водители" и "Грузчики". Нужно, чтоб при открытии справочника можно было видеть только записи из группы "Водители".

    Понимаю, что процедуру нужно писать на действие "НачалоВыбора", понимаю, что нужно отключить стандартную обработку, а вот какими выражениями пишется проверка на принадлежность элемента к группе и сокрытие, тех, что не пренадлежат - не соображу, ибо на курсах жуткий препод и объяснялось нам как последовательно и куда тыкать и что писать, а вот все вопросы относительно "зачем писать" и "что при этом происходит" игнорировались по причине "неуспевания выдать нам материал". :angry:
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Код:
    Процедура ВодительНачалоВыбора(Элемент, СтандартнаяОбработка)
    // отключить стандартную обработку
    СтандартнаяОбработка = Ложь;
    
    // получить форму выбора
    ФормаВыбора = Справочники.ФизическиеЛица.ПолучитьФормуВыбора(, Элемент);
    
    // установить отбор в форме выбора по родителю    
    ФормаВыбора.Отбор.Родитель.Значение = Справочники.ФизическиеЛица.Водители;
    ФормаВыбора.Отбор.Родитель.ВидСравнения = ВидСравнения.Равно;
    ФормаВыбора.Отбор.Родитель.Использование = Истина;
    
    // позиционировать  физ. лиц на текущее выбранное значение
    Если ЗначениеЗаполнено(Водитель) Тогда
    ФормаВыбора.НачальноеЗначениеВыбора = Водитель;
    КонецЕсли;
    
    // открыть форму выбора    
    ФормаВыбора.Открыть();
    КонецПроцедуры
    
    
  3. TopicStarter Overlay
    Lokky
    Offline

    Lokky

    Регистрация:
    24 июл 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Пишет ошибку:

    {Документ.ДопускБригады.Форма.ФормаДокумента(34)}: Поле объекта не обнаружено (Родитель)
    ФормаВыбора.Отбор.Родитель.Значение = Справочники.ФизическиеЛица.Водители;

    Как я понял, конфигуратор пытается на форме документа "ДопускБригады" найти поле с именем "Родитель"?

    У меня форма выглядит вот так:
    Посмотреть вложение 8049

    Вложения:

  4. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Нет. Запамятовал: элемента отбора Родитель не существует. Пробуйте так:
    Код:
    ФормаВыбора.Отбор.Ссылка.Значение = Справочники.ФизическиеЛица.Водители;
    ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВИерархии;
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    
  5. TopicStarter Overlay
    Lokky
    Offline

    Lokky

    Регистрация:
    24 июл 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Так все работает, спасибо огромное.

    А что такое ссылка в данном коде? что она обозначает и откуда берется?
    ФормаВыбора.Отбор.Ссылка.Значение = Справочники.ФизическиеЛица.Водители;
  6. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    "Ссылка" - это имя элемента отбора.

  7. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    продолжу тему, а что надо в код добавить, чтобы выбранная группа вывелась раскрытой??
  8. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    решила задачу путем указания
    Код:
    ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущийРодитель = <Ссылка на нужную группу>;

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