как скрыть нулевые остатки

  • Автор темы zxcZXC
  • Дата начала
Z

zxcZXC

я обсолютный новичок в этом, столкнулся с проблеммой.как скрыть нулевые остатки в списке номенклатуре например при установке галочки.пробывал в модуле формирования строчки сделать перебор, но что-то вообще никаких результатов.никакой реакции не произошло.если можно, приведите пример.заранее благодарен.
 
V

vbs

А поподробнее ? Уж не говорю о платформе, конфигурации и пр.
Где скрыть ? В документе, в справочнике ? В какой ситуации ? Что за "формирование строчки"?
 
Z

zxcZXC

в торговле и склад.тут стандартная конфигурация стоит, почти никем не измененная.при подборе номенклатуры.создал обьект, переключатель, типо включен-скрыть нулевые остатки, выключен-показать все.в самом модуле формирования окна справочника, нашел процедуру формирования строки, и пробывал там втавить условие отбора(скрыть-показать номенклатуру с остатком 0).только формируется как обычно с нулевыми тожеюкак ни пробывал.
зы мне нужно, чтобы в номенклатуре при подборе можно было скрыть пустые позиции, чтобы не искать в давно проданном, чтобы удобнее воще понятно надеюсь...
 
P

puh14

еслибудешь отбирать по ненулевым остаткамв форме справочника - полетит иерархия. проще сделать отдельную закладку - и на ней в неиерархическом виде отобразить товары с ненулевыми остатками.илисделай обработку в которой в ТЗ передаются все ненулевые остатки.
 
Z

zxcZXC

илисделай обработку в которой в ТЗ передаются все ненулевые остатки.
можно немного подробнее, я даже не пойму что за ТЗ.я вроде так и делал.я получал остаток, если ноль, то следующая, если не ноль, то сформировать строку по шаблону...
проще сделать отдельную закладку
а какая разница?я просто не пойму как вообще осуществить этот перебор.где лучше вставить этот перебор?как его реализовать.в других конторах видел, там была галочка"скрыть нулевые остатки"очень удобно, а тут нету на новой работе, вот мне поручили разобраться.что-то не могу догнать всей сути...может кто делал такое, подскажет как это реализовывали?очень прошу...
 
P

puh14

в 7.7 делаешь обработку в форме которой делаешь таблицу значений с именем ТЗ.

Процедура ПриОткрытии()
Рег = СоздатьОбъект("Регистр.ОстаткиТоваров");//ну или как он там
Рег.ВременныйРассчет(1);//еСЛИ фильтр какой нужен - добавляешь
РассчитатьРегистрыНа(ДатаДок); // ну иликакая тебе дата нужна
Рег.выгрузитьИтоги(ТЗ);
КонецПроцедуры



а потом уже на тз вешаешь формулы - что в документ вставлять.

в восьмерке не подскажу - пока не работал.
 
Z

zxcZXC

спасибо.сложно.буду пробывать...
 
S

Sykoku

Для справочника, режим Каталог
Добавляем в Диалоге флажок "Вналичии" + Константу ПрятатьТМЦ (Перечисление.ДаНет)


Процедура СменаРежима();
Если Вналичии=1 Тогда

СписокТоваров = СоздатьОбъект("СписокЗначений");

Запр = СоздатьОбъект("Запрос");
ТекстЗапр = "
|Фир = Регистр.Остатки.Фирма;
|Скл = Регистр.Остатки.Склад;
|ТМЦ = Регистр.Остатки.ТМЦ;
|Кво = Регистр.Остатки.Кво;
|Функция ККво = КонОст(Кво);
|Условие (Скл в ВыбСклад);
// |Условие (ККво <> 0);
|Группировка Скл;
|Группировка ТМЦ Упорядочить по ТМЦ.Код;";

Если Запр.Выполнить(ТекстЗапр)=0 Тогда
Возврат;
КонецЕсли;

Пока Запр.Группировка("Скл")=1 Цикл
Пока Запр.Группировка("ТМЦ")=1 Цикл
Если Запр.ТМЦ.Выбран()=0 Тогда
Продолжить;
КонецЕсли;

// сообщить(С_нулями + " " + Без_минусов + " " + Запр.ККво + " " + ВнешРезерв(Запр.ТМЦ, Запр.Скл) );

Если (Число(Запр.ККво) > 0) Тогда
СписокТоваров.ДобавитьЗначение(Запр.ТМЦ);
КонецЕсли;

КонецЦикла;
КонецЦикла;

ИспользоватьСписокЭлементов(списокТоваров);
Иначе
ИспользоватьСписокЭлементов();

КонецЕсли;


// УстановитьОтбор("Ост",0);


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


Процедура ПриОткрытии();

Если Константа.ПрятатьТМЦ=перечисление.ДаНет.Да Тогда
Вналичии=1;
СменаРежима();
Иначе
Вналичии=0;
Форма.Вналичии.Доступность(0);
КонецЕсли;

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

// {Sykoku}

Для справочника, режим Каталог
Добавляем в Диалоге флажок "Вналичии" + Константу ПрятатьТМЦ (Перечисление.ДаНет)


Процедура СменаРежима();
Если Вналичии=1 Тогда

СписокТоваров = СоздатьОбъект("СписокЗначений");

Запр = СоздатьОбъект("Запрос");
ТекстЗапр = "
|Фир = Регистр.Остатки.Фирма;
|Скл = Регистр.Остатки.Склад;
|ТМЦ = Регистр.Остатки.ТМЦ;
|Кво = Регистр.Остатки.Кво;
|Функция ККво = КонОст(Кво);
|Условие (Скл в ВыбСклад);
// |Условие (ККво <> 0);
|Группировка Скл;
|Группировка ТМЦ Упорядочить по ТМЦ.Код;";

Если Запр.Выполнить(ТекстЗапр)=0 Тогда
Возврат;
КонецЕсли;

Пока Запр.Группировка("Скл")=1 Цикл
Пока Запр.Группировка("ТМЦ")=1 Цикл
Если Запр.ТМЦ.Выбран()=0 Тогда
Продолжить;
КонецЕсли;

// сообщить(С_нулями + " " + Без_минусов + " " + Запр.ККво + " " + ВнешРезерв(Запр.ТМЦ, Запр.Скл) );

Если (Число(Запр.ККво) > 0) Тогда
СписокТоваров.ДобавитьЗначение(Запр.ТМЦ);
КонецЕсли;

КонецЦикла;
КонецЦикла;

ИспользоватьСписокЭлементов(списокТоваров);
Иначе
ИспользоватьСписокЭлементов();

КонецЕсли;


// УстановитьОтбор("Ост",0);


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


Процедура ПриОткрытии();

Если Константа.ПрятатьТМЦ=перечисление.ДаНет.Да Тогда
Вналичии=1;
СменаРежима();
Иначе
Вналичии=0;
Форма.Вналичии.Доступность(0);
КонецЕсли;

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

// {Sykoku}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!