Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Убрать из списка справочника элементы с нулевым остатком.

Убрать из списка справочника элементы с нулевым остатком.
Я
   prilforreal
 
17.08.18 - 14:29
Доброго дня! Необходимо на форме справочника Товары добавить галочку "Скрыть отсутствующие", при изменении которой из списка будут пропадать элементы с нулевым остатком на указанном складе.
Запрос составил, поместил его в процедуру СкрытьОтсутствующие, которую вызываю из Флаг1ПриИзменении, но как этими данными заполнить табличное поле не пойму, подскажите методы решения
 
 
   prilforreal
 
1 - 17.08.18 - 14:30
Текст запроса:

Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ТоварыОстатки.Товар,
        |    ТоварыОстатки.ОстатокОстаток
        |ИЗ
        |    РегистрНакопления.Товары.Остатки КАК ТоварыОстатки
        |ГДЕ
        |    ТоварыОстатки.Склад = &ВыбСклад
        |    И ТоварыОстатки.ОстатокОстаток > 0";
    
    Запрос.УстановитьПараметр("ВыбСклад", ВыбСклад);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   Buster007
 
2 - 17.08.18 - 14:31
с нулевым остатком и так не будет в таблице остатков
   prilforreal
 
3 - 17.08.18 - 14:34
(2) Хорошо, это условие можно и убрать, но как этими данными список заполнить?
   s03
 
4 - 17.08.18 - 14:37
(2) а если кроме "Остатка" есть ещё и другие ресурсы, например "Сумма", то может и будет
   Buster007
 
5 - 17.08.18 - 14:39
(4) если их не выбирать, то не будет
   Buster007
 
6 - 17.08.18 - 14:39
(3) динамический список?
   prilforreal
 
7 - 17.08.18 - 14:43
(6) Я думал о таблице значений
   МимохожийОднако
 
8 - 17.08.18 - 14:47
Мало информации для ответа
   s03
 
9 - 17.08.18 - 14:48
(7) то, что думал - уже хорошо, в (6) был вопрос про твою форму списка справочника
   Вафель
 
10 - 17.08.18 - 14:48
показывай 2 разных списка
 
 Рекламное место пустует
   Вафель
 
11 - 17.08.18 - 14:48
иначе группы пустых не скроешь
   prilforreal
 
12 - 17.08.18 - 14:48
Но делаю так:
Процедура СкрытьНеиспользуемые()

    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ТоварыОстатки.Товар,
        |    ТоварыОстатки.ОстатокОстаток,
        |    ТоварыОстатки.Товар.Код,
        |    ТоварыОстатки.Товар.Наименование,
        |    ТоварыОстатки.Товар.Цена,
        |    ТоварыОстатки.Товар.ЦенаЗакупки,
        |    ТоварыОстатки.Товар.ЕдиницаПродажи,
        |    ТоварыОстатки.Товар.ЕдиницаСклада
        |ИЗ
        |    РегистрНакопления.Товары.Остатки КАК ТоварыОстатки
        |ГДЕ
        |    ТоварыОстатки.Склад = &ВыбСклад
        |    И ТоварыОстатки.ОстатокОстаток > 0";
    
    Запрос.УстановитьПараметр("ВыбСклад", ВыбСклад);    
    РезультатЗапроса = Запрос.Выполнить();    
    ТЗ=Новый ТаблицаЗначений;
    ТЗ=РезультатЗапроса.Выгрузить();
    ЭлементыФормы.ТабличноеПоле1.Данные=ТЗ; 
    
КонецПроцедуры

Получаю ошибку:
{Справочник.Товары.Форма.ФормаСписка.Форма(228)}: Ошибка при установке значения атрибута контекста (Данные)
    ЭлементыФормы.ТабличноеПоле1.Данные=ТЗ; 
по причине:
Неправильный путь к данным
   МимохожийОднако
 
13 - 17.08.18 - 14:50
Прикольно. Ответь на (6) , если понимаешь о чём разговор. ))
   prilforreal
 
14 - 17.08.18 - 14:54
(13) Нет, форма обычная.
   s03
 
15 - 17.08.18 - 14:57
(14) Тогда см. (10). Нарисуй на форме пару закладок, на одной обычный список справочника, а на второй таблицу значений, которую будешь заполнять твоим запросом. А по твоей галке переключаться между страницами, а отображение заголовков страниц скрыть, чтобы их типа и нету
   s03
 
16 - 17.08.18 - 14:58
или устанавливать  отбор для списка справочника по ссылка в (РезультатТвоегоЗапроса)
   prilforreal
 
17 - 17.08.18 - 15:03
(16) Второй вариант интереснее выглядит)) Не приходилось еще программно отборы писать)
   s03
 
18 - 17.08.18 - 15:08
(17) Только тут некоторые накладки могут быть, так как например группы отобразить не получится, может ещё что-то неподходящее под ваши условие будет. А так, на обычных формах, с отбором нет ничего сложного, поставь точку останова например "ПриОткрытии" и посмотри в отладчике "СправовчникСписок" (или как у тебя реквизит формы называется). Только без "ЭлементыФормы", а просто имяТвоегоРеквизита
   prilforreal
 
19 - 17.08.18 - 15:17
(18) ТабличноеПоле1 называется табличная часть, то что не будут отображаться группы не есть хорошо...
Думаю может стоит завести для элементов реквизит остаток и его каждый раз при открытии справочника из данных регистра обновлять, видно его никому не будет, зато отбор будет простой и понятный...
   Chameleon1980
 
20 - 17.08.18 - 15:26
...ТабличноеПоле1 называется табличная часть, то что не будут отображаться группы не есть хорошо...

Возьми еще родителя в запрос, если тебе хватит одного уровня.
Или возьми так-же всех родителей в запрос
   echo77
 
21 - 17.08.18 - 16:14
Посмотрите как в УПП, УТ10 сделана обработка ПодборНоменклатуры.

Там как раз для режима остатков "скрываются" позиции без остатков


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует