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


1С:Предприятие ::

Метки: 

Фильтрация форма списка номенклатуры на выводимые строки

Я
   TolstiyBeremenniy
 
20.12.17 - 14:07
Доброго времени суток! Подскажите пожалуйста по следующему вопросу.
Какие есть на него варианты решения из доступных?
Конфигурация Ут 10.3. Справочник Номенклатура, ФормаСписка.
При открытии из меню интерфейса и из документов открывается эта
доработанная форма списка, на которой располагается Список,
СправочникСписок.Номенклатура. В этом списке выводятся строки
по полям с различной информацией по остаткам.

Как можно отфильтровать вывод данных в этот список, то есть, не выводить строки у которых ни в одном из числовых полей нет числовых
данных. Информации по остаткам и прочей имеющейся для отображения.
Что бы это было оптимально по производительности. Без лишней
задержки.
Сам справочник содержит большое множество элементов для
отображения.
 
 
   TolstiyBeremenniy
 
1 - 20.12.17 - 14:47
Никто не подскажет? Возможно ли так фильтровать вывод строк в списке справочника?
   nordbox
 
2 - 20.12.17 - 14:50
Ну?
что сам делал? как пробовал?
   nordbox
 
3 - 20.12.17 - 14:53
(0)>>Что бы это было оптимально по производительности. Без лишней задержки.
фильтрация(отбор) уже сама по себе математика и для ее вычисления  нужно время
   nordbox
 
4 - 20.12.17 - 14:54
Отборы смотри
   TolstiyBeremenniy
 
5 - 20.12.17 - 14:54
(2) У списка есть событие ПриВыводеСтроки
и процедура Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Как то ОформлениеСтроки нужно оперировать?

Данные выводятся через неё

ОформлениеСтроки.Ячейки.СвободныйОстаток.Текст = Формат(СтрокаОстатков.Свободный,"ЧЦ=10; ЧДЦ=3");
   nordbox
 
6 - 20.12.17 - 14:59
   Lexey_
 
7 - 20.12.17 - 15:01
(1) по списку ссылок только, если колонки вычисляемые
   nordbox
 
8 - 20.12.17 - 15:03
(5) Причем тут фильтр и оформление строки?
   Михаил Козлов
 
9 - 20.12.17 - 15:03
(5) В ПриВыводеСтроки (или ПриПолученииДанных) - данные уже есть и отказаться от их вывода нельзя.
Можно было бы накладывать фильтры, но штатно только с видом сравнения ВСписке (или НЕ ВСписке) - и это может тормозить.
Как-то, чтобы не выводились позиции без остатка делал через РЛС. Тормозов не замечено, но приходилось регламентным заданием формировать признак отсутствия остатков.
   TolstiyBeremenniy
 
10 - 21.12.17 - 06:41
Как все же это начать уверенно делать?
 
  Рекламное место пустует
   mehfk
 
11 - 21.12.17 - 06:53
Я так понимаю хочется в форме списка справочника делать отбор по полям, не являющимся реквизитом справочника?
   h-sp
 
12 - 21.12.17 - 06:56
(10) ну посмотрите как там сделано в подборе, там это всё сделано в кнопке подбор. Скопируйте кусок, то что касается остатков, к себе. Радуйтесь.

Зачем изобретать велосипеды, если всё давно уже сделано до нас?
   igorPetrov
 
13 - 21.12.17 - 07:05
(10) Просто начать и сделать.
   TolstiyBeremenniy
 
14 - 21.12.17 - 07:45
(11) Да эти поля являются полями ввода на форме.
Данные в них выводятся, как
ОформлениеСтроки.Ячейки.СвободныйОстаток.Текст = Формат(СтрокаОстатков.Свободный,"ЧЦ=10; ЧДЦ=3");
   TolstiyBeremenniy
 
15 - 21.12.17 - 07:46
(12) В какой процедуре? Вы про форму списка справочника номенклатура УТ 10.3? Именно хочется использовать известное правильное решение.
   TolstiyBeremenniy
 
16 - 21.12.17 - 07:53
(12) Документ ЗаказПокупателя, кнопка подбор, вы про этот кусок? Что от сюда можно взять?


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

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

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

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

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

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

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

    КонецЕсли;

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

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

    // Параметры запросов.

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


    РаботаСДиалогами.ОткрытьПодборНоменклатуры(ЭтаФорма, СтруктураПараметровПодбора, Метаданные());

КонецПроцедуры// ДействиеПодбор()
   mehfk
 
17 - 21.12.17 - 07:58
У вас каша в голове.
   TolstiyBeremenniy
 
18 - 21.12.17 - 08:38
(12) есть сопутствующая информация по поводу подбора?
   Lexey_
 
19 - 21.12.17 - 08:39
(18) да, в (7)
   TolstiyBeremenniy
 
20 - 21.12.17 - 08:43
(19) К сожелению мне это не знакомо (((
Можно где то посмотреть пример подобного решения?
Задача распространенная.
   TolstiyBeremenniy
 
21 - 21.12.17 - 08:56
Подскажите пожалуйста как продвинуться в решении?
   TolstiyBeremenniy
 
22 - 21.12.17 - 09:13
никто не подскажет как сделать отбор при открытии формы?
   igorPetrov
 
23 - 21.12.17 - 09:15
(22) Смотреть примеры в типовых и читать документацию не пробовали?
   TolstiyBeremenniy
 
24 - 22.12.17 - 10:45
Можете подсказать как начать делать, или где пример посомтреть?
   Fish
 
25 - 22.12.17 - 10:50
(24) По ссылке в (6) всё написано.
   TolstiyBeremenniy
 
26 - 22.12.17 - 11:30
(25) Мне под обычные формы нужно.
   TolstiyBeremenniy
 
27 - 22.12.17 - 11:37
(25) Поможете информацией?
   TolstiyBeremenniy
 
28 - 22.12.17 - 11:45
В какой процедуре делать отбор, как?
   TolstiyBeremenniy
 
29 - 22.12.17 - 11:48
подскажите пожалуйста, как оттолкнуться, начать доработку?
   igorPetrov
 
30 - 22.12.17 - 11:51
За два дня кучу документации можно было прочитать, а не форуме висеть.
   igorPetrov
 
31 - 22.12.17 - 11:51
(29) Отталкивайся ногами от стены в направлении рабочего стола и работать!
   Fish
 
32 - 22.12.17 - 11:57
   igorPetrov
 
33 - 22.12.17 - 12:01
(32) Что ты так жестоко )))
 
  Рекламное место пустует
   TolstiyBeremenniy
 
34 - 22.12.17 - 12:42
форма открывается, на форме список справочника
там каталоги, в какой процедуре следует задавать отбор?
   TolstiyBeremenniy
 
35 - 22.12.17 - 12:51
просмотрел сейчас эту процедуру

Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)


так при открытии почему то там шли одни каталоги, а элеметов не было вообще. То есть прошел перебор каталогов и все.
   TolstiyBeremenniy
 
36 - 22.12.17 - 12:52
(35) При открытии группы справочника, появляются элементы.

Подскажите в какой процедуре нужно делать отбор?
   Михаил Козлов
 
37 - 22.12.17 - 13:01
(36) В ПриОткрытии или в ПередОткрытием. Отбор для табличного поля. что справа (где элементы, а не группы).
Только тормозить будет (придется сформировать список артикулов, по которым нет остатков). По-моему, не стоит так делать.
Вы напишите, зачем это нужно.
   TolstiyBeremenniy
 
38 - 22.12.17 - 13:05
(37) Задачу поставил так работодатель.
Видимо много номенклатуры. И по которой нет данных не
хочется видеть её.
   catena
 
39 - 22.12.17 - 13:09
В данном случае быстрее и производительнее нарисовать собственную форму для выбора с динамическим списком и прочими танцовщицами.
   hhhh
 
40 - 22.12.17 - 13:14
(38) ну перенесите неиспользуемые в группу Неиспользуемые. И забудьте про них. Или в номенклатуре сделайте реквизит Актуальная и отбирайте по этому реквизиту.
   hhhh
 
41 - 22.12.17 - 13:17
(38) и объясните работодателю, что если товар закончился, его не нужно убирать с экрана, а наоборот нужно выделить жирным красным цветом.
   TolstiyBeremenniy
 
42 - 22.12.17 - 16:39
(39) Форма эта не типовая, а доработанная, и вся переписанная под нужды организации.

(40) Как понять не используемую? По ней нет данных только
как я понимаю, остатков там всяких. Нет сегодня может появится завтра. Много номенклатуры там, вот в чем дело.
И нужно не показывать не актуальную.



Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует