Имя: Пароль:
1C
1С v8
Отбор в требование накладной
,
0 GroZnoR
 
16.11.20
17:02
Доброго, подскажите куда рыть
С точкой остановы практики мало, и бегая по модулям не совсем улавливаю суть
Есть доработанный момент с МОЛ

&НаКлиенте
Процедура ОбработкаПодбораМатериалы(Команда)

    ПараметрыПодбора = ПолучитьПараметрыПодбора("Материалы");
    Если ПараметрыПодбора <> Неопределено Тогда
        ОткрытьФорму("Обработка.ПодборНоменклатуры.Форма.Форма", ПараметрыПодбора,
            ЭтаФорма, УникальныйИдентификатор);
    КонецЕсли;

КонецПроцедуры


Сюда МОЛ прилетает
Но открывается все равно отбор по всем товаром на складе
Как быть?
1 GroZnoR
 
16.11.20
17:05
2 Kassern
 
16.11.20
17:06
(0) У вас в номенклатуре для каждого товара материально ответственное лицо указано? Вроде как для склада/помещения это дело указывается
3 GroZnoR
 
16.11.20
17:13
Извиняюсь за информацию, просто адаптация с юзвера еще идет)
Конфигурация БП 3.0 (3.0.78.64)
Документ требование накладная сам отбор выглядит так
http://prntscr.com/vk3kic
(2) Нет, и раньше не было. Но все работало вроде как.
4 dka80
 
16.11.20
17:16
5 GroZnoR
 
16.11.20
17:20
(4) Все верно, в параметрах отбора он есть. Но открывается все равно по всем.
6 dka80
 
16.11.20
17:21
(5) нет, не верно. У тебя в ПараметрыПодбора должен быть ключ "Отбор". На (1) его не видно
7 GroZnoR
 
16.11.20
17:53
(6) Функция отбора
&НаКлиенте
Функция ПолучитьПараметрыПодбора(ИмяТаблицы)
    
    ПараметрыФормы = Новый Структура;
    
    ДатаРасчетов = ?(НачалоДня(Объект.Дата) = НачалоДня(ТекущаяДата()), Неопределено, Объект.Дата);
    
    ПараметрыФормы.Вставить("ВидПодбора", "");
    
    Если ИмяТаблицы = "Материалы" Тогда
        ПредставлениеТаблицы = НСтр("ru = 'Материалы'");
        ПараметрыФормы.Вставить("ПоказыватьЗабалансовыеОстатки", Ложь);
    ИначеЕсли ИмяТаблицы = "МатериалыЗаказчика" Тогда
        ПредставлениеТаблицы = НСтр("ru = 'Материалы заказчика'");
        ПараметрыФормы.Вставить("Контрагент", Объект.Контрагент);
        ПараметрыФормы.Вставить("ВидПодбора", "МатериалыЗаказчика");
    КонецЕсли;
    
    ЗаголовокПодбора = ПолучитьЗаголовокПодбора(Объект.Ссылка, ПредставлениеТаблицы);
    
    ПараметрыФормы.Вставить("ЕстьЦена",            Ложь);
    ПараметрыФормы.Вставить("ЕстьКоличество",      Истина);
    ПараметрыФормы.Вставить("ДатаРасчетов",        ДатаРасчетов);
    ПараметрыФормы.Вставить("Валюта",              ВалютаРегламентированногоУчета);
    ПараметрыФормы.Вставить("Организация",         Объект.Организация);
    ПараметрыФормы.Вставить("Подразделение",       Объект.ПодразделениеОрганизации);
    ПараметрыФормы.Вставить("Склад",               Объект.Склад);
    ПараметрыФормы.Вставить("МОЛ",                 Объект.МОЛ);
    ПараметрыФормы.Вставить("Заголовок",           ЗаголовокПодбора);
    ПараметрыФормы.Вставить("ИмяТаблицы",          ИмяТаблицы);
    ПараметрыФормы.Вставить("Услуги",              Ложь);
    ПараметрыФормы.Вставить("ПоказыватьОстатки",   Истина);
    ПараметрыФормы.Вставить("ПоказыватьОтрицательныеОстатки",   Ложь);
    Параметрыформы.Вставить("ПоказыватьЦены",      Ложь);
    

    Возврат ПараметрыФормы;
    
КонецФункции



Попробовал вставить отбор
Параметрыформы = Новый Структура("Отбор", Параметрыформы);

Но что-то пошло не так.
8 dka80
 
16.11.20
17:57
Параметрыформы = Новый Структура("Отбор", Параметрыформы); - что за трэш?


ПараметрыПодбора= Новый Структура("Отбор", Параметрыформы);
ОткрытьФорму("Обработка.ПодборНоменклатуры.Форма.Форма", ПараметрыПодбора,
            ЭтаФорма, УникальныйИдентификатор);
9 GroZnoR
 
16.11.20
18:06
(8) Так работать не будет, он же тут параметрыформы не увидит
&НаКлиенте
Процедура ОбработкаПодбораМатериалы(Команда)

    ПараметрыПодбора = ПолучитьПараметрыПодбора("Материалы");
    
    ПараметрыПодбора = Новый Структура("Отбор", Параметрыформы);
    
    Если ПараметрыПодбора <> Неопределено Тогда
        ОткрытьФорму("Обработка.ПодборНоменклатуры.Форма.Форма", ПараметрыПодбора,
            ЭтаФорма, УникальныйИдентификатор);
    КонецЕсли;

КонецПроцедуры
10 GroZnoR
 
16.11.20
19:17
Попробовал так
Процедура ОбработкаПодбораМатериалы(Команда)

    ПараметрыПодбора = ПолучитьПараметрыПодбора("Материалы");
    
    ПараметрыПодбораОтбор = Новый Структура("Отбор", ПараметрыПодбора);    
    Если ПараметрыПодбора <> Неопределено Тогда
        ОткрытьФорму("Обработка.ПодборНоменклатуры.Форма.Форма", ПараметрыПодбораОтбор,
            ЭтаФорма, УникальныйИдентификатор);
    КонецЕсли;

КонецПроцедуры

Тоже ломается отбор вообще
11 GroZnoR
 
17.11.20
10:57
Есть еще варианты товарищи?
12 dka80
 
17.11.20
11:12
Вот тебе рабочий вариант. Что еще нужно я не знаю

ПараметрыОтбора = Новый Структура;
    Если ЗначениеЗаполнено(Объект.Организация) Тогда
        ПараметрыОтбора.Вставить("Организация", Объект.Организация);
    КонецЕсли;
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Отбор",                 ПараметрыОтбора);
    ПараметрыФормы.Вставить("РежимВыбора",             Истина);
    ПараметрыФормы.Вставить("ЗакрыватьПриВыборе",    Ложь);
    
    ОбработкаВыбора = Новый ОписаниеОповещения("ВыбратьДокументыПриемаКонец", ЭтаФорма);
    
    ОткрытьФорму("Документ.ПриемНаРаботу.ФормаВыбора", ПараметрыФормы, Элементы.РаботникиОрганизации);
13 GroZnoR
 
17.11.20
17:33
(12) У меня ПараметрыОтбора в другой функции же
14 GroZnoR
 
17.11.20
18:00
(12) Допустим если сделать Вот так
http://prntscr.com/vktvan
Открывается вроде с отбором ,но по факту еще хуже
http://prntscr.com/vktwka
По умолчанию открывается так
http://prntscr.com/vktzju
15 GroZnoR
 
23.11.20
10:05
Разобрался всем спасибо.
Проблема была совсем не тут.
16 dka80
 
23.11.20
10:17
С одной стороны молодец, конечно, что разобрался, но с другой стороны неделя...
И по правилам хорошего тона, принято описывать найденное решение - кому-то может помочь ))
17 GroZnoR
 
23.11.20
11:07
(16) Неделю был на больничном, сегодня пришел свежей головой
Параметры то передавались, а вот на форме отбор по этим параметрам не шел.

Обработка.ПодборНоменклатуры
Здесь при обновление люди не перенесли реквизит с физлицом (МОЛ)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший