8.х Как выбрать элемент номенклатуры, если я задал отбор?

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Sunbear, 6 окт 2010.

  1. TopicStarter Overlay
    Sunbear
    Offline

    Sunbear Опытный в 1С

    Регистрация:
    11 фев 2010
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    Вобще я хочу чтобы из документа "оприходование товаров" при нажатии на меню действие -> _в_номенклатуру
    открывалась номенклатура с выбранным элементом (текущим в таблице оприходования).
    У меня следующий код.

    П
    Код:
    роцедура ДействияФормы_в_номенклатуру(Кнопка)
    
    ТекущиеДанные = ЭлементыФормы.Товары.ТекущиеДанные;
    
    Данные = Справочники.Номенклатура.ПолучитьФормуСписка();
    Данные.Список.Отбор.Код.Значение = ТекущиеДанные.Номенклатура.Код;
    Данные.список.Отбор.Код.Использование = Истина;
    Данные.список.Отбор.Код.ВидСравнения = ВидСравнения.Равно;
    
    Данные.Открыть();
    
    КонецПроцедуры
    
    
    отбор назначается, а в списке ничего не выбирается. Почему?
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Вам нужно получить еще форму этого справочника, а потом уже открывать.
  3. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Я правильно поняла, что вы хотите открыть список номенклатуры и оттуда что-то выбрать? Тогда как-то так:
    Код:
    ТекущиеДанные = ЭлементыФормы.Товары.ТекущиеДанные;
    
    Данные = Справочники.Номенклатура.ПолучитьФормуВыбора(); // с кнопочкой "Выбрать"
    Данные.Список.Отбор.Код.Значение = ТекущиеДанные.Номенклатура.Код;
    Данные.Список.Отбор.Код.Использование = Истина;
    Данные.Список.Отбор.Код.ВидСравнения = ВидСравнения.Равно;
    
    ВыбраннаяНоменклатура =  Данные.ОткрытьМодально(); // сюда вернется выбранная позиция
    
    
    Только непонятно, какой смысл делать отбор по коду, ведь в списке останется всего одна позиция :) И чего ее выбирать?
  4. TopicStarter Overlay
    Sunbear
    Offline

    Sunbear Опытный в 1С

    Регистрация:
    11 фев 2010
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    Меня всегда добивают ответы Alexburn !
    а это что: Данные = Справочники.Номенклатура.ПолучитьФормуСписка();
  5. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    я так понял вам надо спозиционировать положиние в списке с номенклатурой а не отбор позиции..??
    Если отбор.. вы откобчили иерархичность? (конечно если у вас иерархический список)
  6. TopicStarter Overlay
    Sunbear
    Offline

    Sunbear Опытный в 1С

    Регистрация:
    11 фев 2010
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    А как ее программно отключить?
  7. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    ЭлементыФормы.Список.ИерархическийПросмотр = Ложь;
  8. TopicStarter Overlay
    Sunbear
    Offline

    Sunbear Опытный в 1С

    Регистрация:
    11 фев 2010
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    мне нужно не выбрать а спозиционировать. Видимо я неправильно выразился. :)
  9. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    А зачем тогда отбор?

  10. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    [off]
    Необязательно открывать форму модально. Выбор значения можно отслеживать в обработчике ОбработкаВыбора
    [/off]
  11. TopicStarter Overlay
    Sunbear
    Offline

    Sunbear Опытный в 1С

    Регистрация:
    11 фев 2010
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    Да, это просто гениально :)

    я мучился с отбором и иерархией . А тут просто код из одной строки.

    ТекущиеДанные = ЭлементыФормы.Товары.ТекущиеДанные;
    Данные = Справочники.Номенклатура.ПолучитьФормуСписка();

    Данные.ЭтаФорма.ПараметрТекущаяСтрока=ТекущиеДанные.Номенклатура;

    Данные.Открыть();

    именно то что мне нужно было =)
  12. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    А в дополнение вам вопрос: а чем не устроила стандартная фишка всех форм "При открытии восстанавливать позицию"? Зачем что-то дописывать? Правой кнопкой мыши в справочнике - Настройка списка.

    Вложения:

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