|
Таблица значений тип Отбор как установить доступные поля | ☑ | ||
---|---|---|---|---|
0
assest
04.10.18
✎
14:04
|
Есть обработка, не отчет
Я на форму добавил Табличное поле с типом Отбор Есть реквизит с типом ПоляНастройки При открытии добавляю в поляНастройки новый элемент, номенклатура Устанавливаю доступные поля для ТабПоле "отбор" Но в форме при добавлении нового отбора список доступных полей пуст. Хотя если программно запросить доступные поля, то там есть номенклатура //------------------------------------------------------------ Массив = новый Массив; Массив.Добавить(Тип("СправочникСсылка.Номенклатура"); ОписТипов = Новый ОписаниТипов(Массив); ПоляНастройки.Добавить("Номенклатура","Номенклатура",ОписТипов); Отборы.УстановитьДоступныеПоля(ПоляНастройки); //----------------------------------------------------------- После этого если запросить программно доступные поля, то там есть номенклатура, а если на форме добавить строку в отборы, то там пусто Как добавить поля? |
|||
1
assest
04.10.18
✎
14:14
|
Совсем ни у кого нет идей?
|
|||
2
assest
04.10.18
✎
14:27
|
А такой вопрос
Колонка табличного поле, как сделать так чтобы при открытии мне давался выбор метаданных по номенклатуре, чтобы можно было указать, например, "Номенклатура.Ссылка.Код" |
|||
3
Михаил Козлов
04.10.18
✎
14:52
|
(2) Сформируйте список реквизитов справочника и выбирайте.
Может быть имеет смысл сформулировать задачу содержательно? |
|||
4
Михаил Козлов
04.10.18
✎
15:02
|
Может Вам подойдет.
Заводите реквизит ПостроительОтчета. На форму помещаете табличное поле с источником - Построитель.Отбор. В ПриОткрытии (или ПередОткрытием) инициализируете его запросом к справочнику Номенклатура. Тогда будут доступны отборы по реквизитам номенклатуры. Примерно так: Функция ТекстЗапроса() Текст = "ВЫБРАТЬ | ИСТИНА КАК флаг, | остатки.Номенклатура КАК Номенклатура, | ЕСТЬNULL(ШК.Штрихкод,"""") КАК Штрихкод, | остатки.Номенклатура.Наименование КАК Наименование, | ЕСТЬNULL(ценыРозница.Цена,0) КАК Розница, | ЕСТЬNULL(ценыРРЦ.Цена,0) КАК РРЦ, | остатки.КоличествоОстаток КАК остаток |{ВЫБРАТЬ | остатки.Номенклатура.* КАК Номенклатура, | остатки.Склад КАК Склад, | остатки.Номенклатура.Бренд КАК Бренд |} |ИЗ РегистрНакопления.СвободныеОстатки.Остатки(, ) КАК остатки |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &Розница) КАК ценыРозница |ПО остатки.Номенклатура = ценыРозница.Номенклатура |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &РРЦ) КАК ценыРРЦ |ПО остатки.Номенклатура = ценыРРЦ.Номенклатура |ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ШК.Владелец КАК Номенклатура, | МАКСИМУМ(ШК.Штрихкод) КАК Штрихкод |ИЗ РегистрСведений.Штрихкоды КАК ШК |СГРУППИРОВАТЬ ПО ШК.Владелец |) КАК ШК |ПО остатки.Номенклатура = ШК.Номенклатура |{ГДЕ | остатки.Номенклатура.* КАК Номенклатура, | остатки.Склад КАК Склад, | остатки.Номенклатура.Бренд КАК Бренд |} |УПОРЯДОЧИТЬ ПО Наименование"; Возврат Текст; КонецФункции Процедура УстановитьНачальныеНастройки() построитель.Текст = ТекстЗапроса(); построитель.Отбор.Добавить("Номенклатура", "Номенклатура"); построитель.Отбор.Добавить("Склад", "Склад"); построитель.Отбор.Добавить("Бренд", "Бренд"); КонецПроцедуры |
|||
5
assest
04.10.18
✎
15:09
|
У меня не отчет и построителя нет.
Задача такая, Пользователь отбирает номенклатуру, я по ней собираю обороты и создаю по списку заказ. Мне нужно сохранять отбор, чтобы порльзователь например выбрал папку товары и исключил папку образцы, и в следующий раз восстановив отбор можно было поймать новые позиции. Пользователь должен иметь возможность использовать все виды сравнения и комбинации отборов |
|||
6
Михаил Козлов
04.10.18
✎
16:05
|
(5) (4) этому не мешает: получите из из построителя результат (список номенклатуры по установленным отборам или сразу обороты - как запрос напишите) и создавайте заказ.
Чтобы сохранить настройки я делал так: - завел реквизит отборПостроителя типа Отбор и Процедура ПередСохранениемЗначений(Отказ) отборПостроителя = Построитель.Отбор; КонецПроцедуры Процедура ПослеВосстановленияЗначений() ДЛЯ каждого эл ИЗ отборПостроителя Цикл элОтбораВСписке = Построитель.Отбор.Найти(эл.Имя); Если элОтбораВСписке<>НЕОПРЕДЕЛЕНО Тогда элОтбораВСписке.Использование = эл.Использование; элОтбораВСписке.ВидСравнения = эл.ВидСравнения; элОтбораВСписке.Значение = эл.Значение; //полнитьЗначенияСвойств(элОтбораВСписке, эл); КонецЕсли; КонецЦикла; КонецПроцедуры К сожалению, в таком варианте не получается сохранить два отбора по одному полю, например, Номенклатура. |
|||
7
youalex
04.10.18
✎
16:23
|
(0) ПолеНастройки = ДоступныеПоля.Добавить("Справочник1", "Справочник1", Новый ОписаниеТипов("СправочникСсылка.Справочник1"));
ПолеНастройки.Отбор = Истина; //!!! |
|||
8
Михаил Козлов
04.10.18
✎
17:21
|
(0) Что Вы потом с этим отбором собираетесь делать?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |