7.7 Как правильно реализовать функцию ИспользоватьРодителя() для Справочника с модуля формы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем veuron, 23 май 2013.

  1. TopicStarter Overlay
    veuron
    Offline

    veuron

    Регистрация:
    20 май 2013
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    На форме есть поле с типом "справочник.номенклатура". Необходимо чтобы при открытии этого справочника через форму открывалась папка "инструменты",которая лежим в справочнике в корневой.
  2. Herby
    Offline

    Herby Опытный в 1С

    Регистрация:
    21 фев 2013
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    в модуле формы списка справочника, которая используется при открытии из вашей формы, нужно в процедуре приОткрытии() добавить метод:

    ИспользоватьРодителя(знГруппы, флИзм); где знГруппы - значение вашей группы, которую нужно открыть, флИзм = 0 - пользователь не сможет поменять группу,
    флИзм = 1 - пользователь сможет поменять группу.

    только придется открывать справочник через ОткрытьПодбор() с использованием процедуры ПриНачалеВыбораЗначения(ЭД,ФСО), чтобы передавать параметр, который разрешал бы позиционирование в вашей группе, иначе этот справочник будет из всех мест открываться с открытием вашей группы.
  3. Herby
    Offline

    Herby Опытный в 1С

    Регистрация:
    21 фев 2013
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    в процедуре открытьПодбор() - также можно указать позиционирование - читайте справку, т.е. можно обойтись без ИспользоватьРодителя()
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Можно немного иначе... В форме в процедуре ПриНачалеВыбораЗначения создать объект типа справочник.Номенклатура. В нем уже использовать ИспользоватьРодителя и Выбрать.
  5. TopicStarter Overlay
    veuron
    Offline

    veuron

    Регистрация:
    20 май 2013
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Хм... Спасибо! попробую, что получится))
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не за что. Только не забудьте флаг стандартной обработки реквизита сбросить.......
  7. TopicStarter Overlay
    veuron
    Offline

    veuron

    Регистрация:
    20 май 2013
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Бухгалтерский угодник +1 тебе))

    Вот собственно что получилось)) Главное работает :icon_smilemin: :icon_smilemin: :icon_smilemin:


    Код:
    Процедура ПриНачалеВыбораЗначения(элемент,флаг)
    Если (Подразделение.Выбран() = 1) и (строка(Подразделение) = "Цех №4") тогда
    Если элемент = "продукция" Тогда
    флаг = 0;
    СпрНомен = СоздатьОбъект("Справочник.Номенклатура");
    Если СпрНомен.НайтиПоКоду("48596") = 1 Тогда
    СпрНомен.ИспользоватьРодителя(СпрНомен.ТекущийЭлемент(),0);
    Если СпрНомен.Выбрать("Выберите элемент",) = 1 тогда
    Продукция = СпрНомен.ТекущийЭлемент();
    
    КонецЕсли;
    КонецЕсли; 
    КонецЕсли;
    
    КонецЕсли;
    
    КонецПроцедуры
  8. TopicStarter Overlay
    veuron
    Offline

    veuron

    Регистрация:
    20 май 2013
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Косяк! Почему то после выбора номенклатуры , окно открывается 2 раз((( не могу разобраться почему? поле с типом справочник.номенклатура
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Т.е. После выбора номенклатуры снова предлагает выбрать?
  10. TopicStarter Overlay
    veuron
    Offline

    veuron

    Регистрация:
    20 май 2013
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    да! один выбор выходит за счет кода
    Код:
    СпрНомен = СоздатьОбъект("Справочник.Номенклатура");
    Если СпрНомен.НайтиПоКоду("48596") = 1 Тогда
    СпрНомен.ИспользоватьРодителя(СпрНомен.ТекущийЭлемент(),0);
    Если СпрНомен.Выбрать("Выберите элемент",) = 1 тогда
    Продукция = СпрНомен.ТекущийЭлемент();
    второй как я понял за счет самого поля с типом справочник.номенклатура-потому что интерфейс окон немного отличается!
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не знаю причем здесь интерфейс... Но 2ё раз вызывается выбор из-за того что не срабатывает флаг=0, хотя по коду как-ты все правильно. Пробегитесь отладчиком
Похожие темы
  1. rustyprivate
    Ответов:
    8
    Просмотров:
    1.044
  2. fantas
    Ответов:
    3
    Просмотров:
    1.636
  3. evgPinsk
    Ответов:
    1
    Просмотров:
    282
  4. Sert
    Ответов:
    4
    Просмотров:
    275
Загрузка...

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