|
Обновление динамического списка | ☑ | ||
---|---|---|---|---|
0
nogapd
20.04.16
✎
20:23
|
Дорабатываю форму выбора номенклатуры: разместил на форме программно дополнительный динамический список:
ИмяРеквизита = "ОИК_ОстаткиПоХарактеристикам"; Если Форма.Элементы.Найти(ИмяРеквизита) = Неопределено Тогда ТекстЗапроса = "ВЫБРАТЬ | СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура, | ЕСТЬNULL(СвободныеОстаткиОстатки.Характеристика, ОстаткиВПути.Характеристика) КАК Характеристика, | СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличии, | СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток КАК ВРезерве, | ОстаткиВПути.Количество КАК ВПути, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура.ЕдиницаИзмерения, ОстаткиВПути.Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмерения |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки(, {(Номенклатура = &Номенклатура) КАК Поле2}) КАК СвободныеОстаткиОстатки | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | СУММА(ВложенныйЗапрос.Количество) КАК Количество, | ВложенныйЗапрос.Характеристика КАК Характеристика | ИЗ | (ВЫБРАТЬ | ДоступныеОстаткиПланируемыхПоступлений.Номенклатура КАК Номенклатура, | ДоступныеОстаткиПланируемыхПоступлений.Характеристика КАК Характеристика, | МАКСИМУМ(ДоступныеОстаткиПланируемыхПоступлений.Количество) КАК Количество | ИЗ | РегистрСведений.ДоступныеОстаткиПланируемыхПоступлений КАК ДоступныеОстаткиПланируемыхПоступлений | ГДЕ | ДоступныеОстаткиПланируемыхПоступлений.ДатаДоступности > ДАТАВРЕМЯ(1, 1, 1) | И ДоступныеОстаткиПланируемыхПоступлений.Номенклатура = &Номенклатура | | СГРУППИРОВАТЬ ПО | ДоступныеОстаткиПланируемыхПоступлений.Номенклатура, | ДоступныеОстаткиПланируемыхПоступлений.Характеристика) КАК ВложенныйЗапрос | | СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.Характеристика) КАК ОстаткиВПути | ПО СвободныеОстаткиОстатки.Номенклатура = ОстаткиВПути.Номенклатура | И СвободныеОстаткиОстатки.Характеристика = ОстаткиВПути.Характеристика"; МассивРеквизитов = Новый Массив; МассивРеквизитов.Добавить(Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов("ДинамическийСписок"),,"Поле таблицы")); Форма.ИзменитьРеквизиты(МассивРеквизитов); Форма[ИмяРеквизита].ПроизвольныйЗапрос = Истина; Форма[ИмяРеквизита].АвтоматическоеСохранениеПользовательскихНастроек = Истина; Форма[ИмяРеквизита].ТекстЗапроса = ТекстЗапроса; Форма[ИмяРеквизита].ДинамическоеСчитываниеДанных = Истина; Элемент = Форма.Элементы.Вставить(ИмяРеквизита, Тип("ТаблицаФормы"), Форма.Элементы.ГруппаПанельКатегорий); Элемент.Отображение = ОтображениеТаблицы.Список; Элемент.КоманднаяПанель.Видимость = Ложь; Элемент.ПутьКДанным = ИмяРеквизита; Элемент.Видимость = Истина; Элемент.ОбновлениеПриИзмененииДанных = ОбновлениеПриИзмененииДанных.Авто; //добавляем колонки динамического списка КолонкаХарактеристика = Форма.Элементы.Добавить("Характеристика" + ИмяРеквизита, Тип("ПолеФормы"), Форма.Элементы[ИмяРеквизита]); КолонкаХарактеристика.Вид = ВидПоляФормы.ПолеВвода; КолонкаХарактеристика.ПутьКДанным = ИмяРеквизита + ".Характеристика"; КолонкаВНаличии = Форма.Элементы.Добавить("ВНаличии" + ИмяРеквизита, Тип("ПолеФормы"), Форма.Элементы[ИмяРеквизита]); КолонкаВНаличии.Вид = ВидПоляФормы.ПолеВвода; КолонкаВНаличии.ПутьКДанным = ИмяРеквизита + ".ВНаличии"; КолонкаВРезерве = Форма.Элементы.Добавить("ВРезерве" + ИмяРеквизита, Тип("ПолеФормы"), Форма.Элементы[ИмяРеквизита]); КолонкаВРезерве.Вид = ВидПоляФормы.ПолеВвода; КолонкаВРезерве.ПутьКДанным = ИмяРеквизита + ".ВРезерве"; КолонкаВПути = Форма.Элементы.Добавить("ВПути" + ИмяРеквизита, Тип("ПолеФормы"), Форма.Элементы[ИмяРеквизита]); КолонкаВПути.Вид = ВидПоляФормы.ПолеВвода; КолонкаВПути.ПутьКДанным = ИмяРеквизита + ".ВПути"; КолонкаЕдиницаИзмерения = Форма.Элементы.Добавить("ЕдиницаИзмерения" + ИмяРеквизита, Тип("ПолеФормы"), Форма.Элементы[ИмяРеквизита]); КолонкаЕдиницаИзмерения.Вид = ВидПоляФормы.ПолеВвода; КолонкаЕдиницаИзмерения.ПутьКДанным = ИмяРеквизита + ".ЕдиницаИзмерения"; КонецЕсли; Далее перехватываю событие "ПриАктивизацииСтроки" у основного списка и устанавливаю параметры для мноюсозданного динамического списка и ничего не проиходит - список не фильтруется: &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) ТекущаяНоменклатура = ОИК_ТекущаяНоменклатура(); ОИК_ОбновитьОстаткиПоХарактеристикам(ТекущаяНоменклатура); КонецПроцедуры &НаСервере Процедура ОИК_ОбновитьОстаткиПоХарактеристикам(ТекущаяНоменклатура) ЭтотОбъект["ОИК_ОстаткиПоХарактеристикам"].Параметры.УстановитьЗначениеПараметра("Номенклатура", ТекущаяНоменклатура); КонецПроцедуры Подскажите что делаю не так? |
|||
1
Cyberhawk
20.04.16
✎
21:35
|
Используй настройки компоновщика настроек ДС
|
|||
2
nogapd
21.04.16
✎
10:30
|
Попробовал так, эффекта ноль
ЭтотОбъект["ОИК_ОстаткиПоХарактеристикам"].КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Номенклатура", ТекущаяНоменклатура); |
|||
3
Pistol
21.04.16
✎
10:36
|
Там в СП в описании ПриАктивизацииСтроки про контекстные вызовы явно написано.
И убери фигурные скобки вокруг параметров, они ж у тебя обязательные всегда. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |