Имя: Пароль:
1C
1С v8
Отбор в подборе номенклатуры.
0 SkillUp
 
01.11.18
11:19
В форме документа в форме, в структуру добавляю параметр (список номенклатуры по которорй нужно добавить отбор).

Процедура ДействиеПодбор(ТабличнаяЧасть)

    Перем Команда, Валюта;

    РазворачиватьДоКачества = Ложь;
    ЕстьЦена            = мМожноМенятьЦенуВДокументе;
    ЕстьСерия           = Истина;
    Валюта              = ВалютаДокумента;
    СпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры;
    Качество            = ?(ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия, Справочники.Качество.Новый, Неопределено);
    ПодбиратьУслуги         = Ложь;
    ЕстьСкладВТабличнойЧасти = мУказаниеСкладовВТЧ;

    Если ТабличнаяЧасть = Товары Тогда

        Команда           = "ПодборВТабличнуюЧастьТовары";
        ИмяТабличнойЧасти = "Товары";

    ИначеЕсли ТабличнаяЧасть = ВозвратнаяТара Тогда

        Команда           = "ПодборВТабличнуюЧастьВозвратнаяТара";
        ЕстьСерия         = Ложь;
        ИмяТабличнойЧасти = "Тара";

    ИначеЕсли ТабличнаяЧасть = Услуги Тогда

        Команда                  = "ПодборВТабличнуюЧастьУслуги";
        ЕстьСерия                = Ложь;
        ИмяТабличнойЧасти        = "Услуги";
        Качество                 = Неопределено;
        ЕстьСкладВТабличнойЧасти = Ложь;
        СкрыватьХарактеристику   = Истина;
        ПодбиратьУслуги          = Истина;

    КонецЕсли;

    СписокВидовПодбора = СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть, РазворачиватьДоКачества);
    ПредставлениеДок   = Метаданные().Представление();

    СтруктураПараметровПодбора = Новый Структура();
    СтруктураПараметровПодбора.Вставить("Команда"            , Команда);
    СтруктураПараметровПодбора.Вставить("СписокВидовПодбора" , СписокВидовПодбора);

    // Параметры запросов.
    ВременнаяДатаРасчетов = ?(НачалоДня(Дата) = НачалоДня(ТекущаяДата()), Неопределено, Дата);
    СтруктураПараметровПодбора.Вставить("ДатаРасчетов"         , ВременнаяДатаРасчетов);
    СтруктураПараметровПодбора.Вставить("Склад"                , Склад);
    СтруктураПараметровПодбора.Вставить("ТипЦен"               , ТипЦен);
    СтруктураПараметровПодбора.Вставить("ДоговорКонтрагента"   , ДоговорКонтрагента);
    СтруктураПараметровПодбора.Вставить("Контрагент"           , Контрагент);
    СтруктураПараметровПодбора.Вставить("Сделка"               , Сделка);
    СтруктураПараметровПодбора.Вставить("Организация"          , Организация);
    СтруктураПараметровПодбора.Вставить("Качество"             , Качество);
    СтруктураПараметровПодбора.Вставить("СпособЗаполненияЦен"  , СпособЗаполненияЦен);
    СтруктураПараметровПодбора.Вставить("ЕстьЦена"             , ЕстьЦена);
    СтруктураПараметровПодбора.Вставить("ЕстьСерия"            , ЕстьСерия);
    СтруктураПараметровПодбора.Вставить("ВалютаДокумента"      , Валюта);
    СтруктураПараметровПодбора.Вставить("РазворачиватьДоКачества", РазворачиватьДоКачества);
    СтруктураПараметровПодбора.Вставить("СкрыватьХарактеристику" , СкрыватьХарактеристику);
    СтруктураПараметровПодбора.Вставить("ИспользоватьГруппуДоступности", Истина);
    СтруктураПараметровПодбора.Вставить("ПодбиратьУслуги"        , ПодбиратьУслуги);
    СтруктураПараметровПодбора.Вставить("Заголовок", "Подбор номенклатуры в документ " +
                                        ПредставлениеДок + " № " + Номер + " (" + ИмяТабличнойЧасти + ")");
    СтруктураПараметровПодбора.Вставить("УсловиеПродаж"        , УсловиеПродаж);
    СтруктураПараметровПодбора.Вставить("ЕстьСкладВТабличнойЧасти", ЕстьСкладВТабличнойЧасти);
    СтруктураПараметровПодбора.Вставить("ВременныеТаблицы",ОбработкаТабличныхЧастей.СтруктураДляРасчетаРезерваПриПодбореНоменклатуры(ЭтаФорма, Истина, "Сделка"));
    //Тут добавляю список!!!
    Если ДоговорКонтрагента.Спецификация.Количество() > 0 Тогда
        Список = Новый СписокЗначений;
        Для Каждого Стр ИЗ ДоговорКонтрагента.Спецификация Цикл
            Список.Добавить (Стр.Номенклатура);
        КонецЦикла;
        СтруктураПараметровПодбора.Вставить("СписокОтбора",Список);
    КонецЕсли;
    //Тут добавляю список!!!
    РаботаСДиалогами.ОткрытьПодборНоменклатуры(ЭтаФорма, СтруктураПараметровПодбора, Метаданные());

КонецПроцедуры // ДействиеПодбор()


В обработке, подборНоменклатуры в процедуре - ОткрытьПодборНоменклатуры. Нахожу свой переданный параметр СписокОтбора. А дальше,НЕ МОГУ НАЙТИ ОТБОР В "ФормаПодбора", или не там смотрю? Как добратся до отбора?  


    // Открываем форму подбора.
    ФормаПодбора = Обработки.ПодборНоменклатуры.ПолучитьФорму("ОсновнаяФорма", ФормаДокумента, ФормаДокумента);
    ФормаПодбора.ОбработкаОбъект.СтруктураИсходныхПараметров = СтруктураПараметров;
    //ТУТ
    Если ЗначениеЗаполнено(СтруктураПараметров.СписокОтбора) Тогда
        
НЕ МОГУ НАЙТИ ОТБОР В "ФормаПодбора", или не там смотрю? Как добратся до отбора?
    КонецЕсли;    
    //ТУТ
    ФормаПодбора.Открыть();
1 SkillUp
 
01.11.18
11:24
ВСЕ НАШЕЛ!!! ПАРДОН РЕБЯТ!!!
В ДеревоНоменклатуры было.

ФормаПодбора.ДеревоНоменклатуры.Отбор
Программист всегда исправляет последнюю ошибку.