8.х Не работает отбор

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

  1. TopicStarter Overlay
    Alien
    Offline

    Alien

    Регистрация:
    20 мар 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Вот этот код:

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

    Не делает отбор по типу номенклатуры, он все равно позволяет выбрать номенклатуру с типом: услуга и товары.
    Подскажите пожалуйста, где ошибка в коде.
  2. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    хм, странно, у меня код:
    Код:
        СпрСпис = Справочники.Номенклатура.ПолучитьФормуСписка();
    СпрСпис.Отбор.СтатьяЗатрат.Значение = Справочники.СтатьиЗатрат.СписаниеНДСНаРасходы;
    СпрСпис.Отбор.СтатьяЗатрат.ВидСравнения = ВидСравнения.Равно;
    СпрСпис.Отбор.СтатьяЗатрат.Использование = Истина;
    СпрСпис.Открыть();
    
    Работает вполне корректно.
    Говори версию платформы, и показывай весь код.
  3. TopicStarter Overlay
    Alien
    Offline

    Alien

    Регистрация:
    20 мар 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1

    1С:Предприятие 8.1 (8.1.9.54)

    Код:
    Процедура МатериалыНоменклатураПриИзменении(Элемент)
    
    СпрСпис = Справочники.Номенклатура.ПолучитьФормуСписка();
    СпрСпис.Отбор.ТипНоменклатуры.Значение = Перечисления.ТипНоменклатуры.Материал;
    СпрСпис.Отбор.ТипНоменклатуры.ВидСравнения = ВидСравнения.Равно;
    СпрСпис.Отбор.ТипНоменклатуры.Использование = Истина;    
    
    или
    
    Форма = Справочники.Номенклатура.ПолучитьФормуСписка();
    Форма.СправочникСписок.Отбор.ТипНоменклатуры.Значение = Перечисления.ТипНоменклатуры.Материал;
    Форма.СправочникСписок.Отбор.ТипНоменклатуры.ВидСравнения = ВидСравнения.Равно;
    Форма.СправочникСписок.Отбор.ТипНоменклатуры.Использование = Истина;
    
    ТекущаяНоменклатура = ЭлементыФормы.Материалы.ТекущаяСтрока.Номенклатура;
    СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
    ЭлементыФормы.Материалы.ТекущаяСтрока.ЕдиницаИзмерения = ТекущаяНоменклатура.ЕдИзм;
    ЭлементыФормы.Материалы.ТекущаяСтрока.Цена = ТекущаяНоменклатура.Цена;
    РассчитатьСумму(СтрокаТабличнойЧасти);
    
    КонецПроцедуры
    
    
    
  4. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    1. Весь этот код, который ты написал срабатывает уже ПОСЛЕ того, как номенклатура выбрана.
    2. Форму нужно открывать самому - Форма.Открыть(), посмотри внимательно на мой код.
    3. Для того, чтобы твой код работал, нужно использовать процедуру
    "НачалоВыбора(Элемент, СтандартнаяОбработка)"
    И код будет примерно таков:
    Код:
    Процедура МатериалыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь; // запрет стандартного окна выбора
    СпрСпис = Справочники.Номенклатура.ПолучитьФормуВыбора(, Элемент);
    СпрСпис.Отбор.СтатьяЗатрат.Значение = Справочники.СтатьиЗатрат.СписаниеНДСНаРасходы;
    СпрСпис.Отбор.СтатьяЗатрат.ВидСравнения = ВидСравнения.Равно;
    СпрСпис.Отбор.СтатьяЗатрат.Использование = Истина;
    СпрСпис.Открыть();
    КонецПроцедуры
    
    
  5. TopicStarter Overlay
    Alien
    Offline

    Alien

    Регистрация:
    20 мар 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо! Все получилось.

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