Имя: Пароль:
1C
1C 7.7
v7: запрос по нулевым остаткам тмц
0 curys
 
17.04.12
10:43
Доброе время суток. Подскажите, что нужно добавить в запрос, чтобы остатки товара выводились с нулевыми остатками? конфа ТиС
1 lamme
 
17.04.12
10:44
телепатов нет.
покажи запрос
2 Azverin
 
17.04.12
10:44
(0) условие
3 Ork
 
17.04.12
10:45
(0) Запрос по справочнику. В группировку ключевое слово "Все".
4 zavsom
 
17.04.12
10:45
(0) Для инет магазина ваяешь (есть в наличие нет в наличие)?
5 zak555
 
17.04.12
10:46
(0) штатный отчёт даёт такую возможность
6 curys
 
17.04.12
10:49
//{{ЗАПРОС(Сформировать)
Период с ДатаНачала по ДатаКонца;
Фирма            = Регистр.ОстаткиТМЦ.Фирма,
                Регистр.РезервыТМЦ.Фирма;
Док            = Регистр.ОстаткиТМЦ.ТекущийДокумент,            
                Регистр.РезервыТМЦ.ТекущийДокумент;
УпрАналитика    = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
                Регистр.РезервыТМЦ.Фирма.УпрАналитика;
ЮрЛицо        = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,
                Регистр.РезервыТМЦ.Фирма.ЮрЛицо;
Номенклатура    = Регистр.ОстаткиТМЦ.Номенклатура,
                Регистр.РезервыТМЦ.Номенклатура;
СвойствоТМЦ    = Регистр.ОстаткиТМЦ.Номенклатура.ОсновноеСвойство.ЗначениеСвойства,
                Регистр.РезервыТМЦ.Номенклатура.ОсновноеСвойство.ЗначениеСвойства;
Склад            = Регистр.ОстаткиТМЦ.Склад,            
                Регистр.РезервыТМЦ.Склад;
Внутреннее     = Регистр.ОстаткиТМЦ.Внутреннее;Количество = Регистр.ОстаткиТМЦ.Количество;
Резерв     = Регистр.РезервыТМЦ.Количество;
Функция КоличествоНачОст          = НачОст(Количество);
Функция КоличествоПриход          = Приход(Количество);
Функция КоличествоРасход          = Расход(Количество);
Функция КоличествоПриходВнутр  = Приход(Количество) когда ((Внутреннее = 1) и (Док.Вид() <> "ПереоценкаРозница"));
Функция КоличествоРасходВнутр    = Расход(Количество) когда ((Внутреннее = 1) и (Док.Вид() <> "ПереоценкаРозница"));
Функция КоличествоПриходПереоц    = Приход(Количество) когда (Док.Вид() = "ПереоценкаРозница");
Функция КоличествоРасходПереоц    = Расход(Количество) когда (Док.Вид() = "ПереоценкаРозница");
Функция КоличествоКонОст          = КонОст(Количество);
Функция РезервНачОст              = НачОст(Резерв);
Функция РезервПриход          = Приход(Резерв);
Функция РезервРасход              = Расход(Резерв);
Функция РезервКонОст              = КонОст(Резерв);Условие (Фирма в ВыбРазделитель1);Условие (Номенклатура в ВыбТМЦ);Группировка Склад;Группировка Номенклатура без групп;
7 aka AMIGO
 
17.04.12
10:49
не к примеру буди сказано, а токмо справедливости для..
никогда не заморачиваюсь колупанием в чужих отчетах, пишу свои.
в случае сабжа - СводныйОстаток() по регистру ОстаткиТМЦ, с условием остаток = 0
8 curys
 
17.04.12
10:51
нет, просто надо чтобы в отчете вывдились нулевые остатки по товару
9 povar
 
17.04.12
10:51
группировка Номенклатура Фсе;
10 curys
 
17.04.12
10:53
(9) не помогло
11 Sserj
 
17.04.12
10:54
(9) Да не ему же нужны вообще все, а их в регистре нет, если нет ни остатков ни оборотов.
Правильно в (3)
12 aka AMIGO
 
17.04.12
10:54
(10)проследи Процедура ПечатьСтроки(.. и отлови нулевое значение остатка при выводе
13 Sserj
 
17.04.12
10:57
Можно попробовать что-то типа такого:
14 Sserj
 
17.04.12
10:57
Номенклатура    = Регистр.ОстаткиТМЦ.Номенклатура,
                Регистр.РезервыТМЦ.Номенклатура,Справочник.Номенклатура.ТекущийЭлемент;


Но не уверен, а 7-ки нет под рукой проверить
15 Sserj
 
17.04.12
11:04
Хотя бред наверно написал, складу взяться будет неоткуда для группировки так.
16 curys
 
17.04.12
11:10
да не так не работает
17 aka AMIGO
 
17.04.12
11:10
(10) в проц ПечатьСтроки(...) в конце вместо Таб.ВывестиСекцию(Секц); напечатай
   Если ТолькоНулевые=0 Тогда
       Таб.ВывестиСекцию(Секц);
   Иначе
       Если Запрос.КоличествоКонОст=0 Тогда
           Таб.ВывестиСекцию(Секц);
       КонецЕсли;
   КонецЕсли;                  
в проц ПечатьСтрокиДокумента(...) в конце вместо Таб.ВывестиСекцию(Секц); напечатай
   Если ТолькоНулевые=0 Тогда
       Таб.ВывестиСекцию(Секц);
   Иначе
       Если ТекОстК=0 Тогда
           Таб.ВывестиСекцию(Секц);
       КонецЕсли;
   КонецЕсли;          

И на форму в слой Основной2 помести маркер-флажок с идентификатором ТолькоНулевые
18 aka AMIGO
 
17.04.12
11:12
+17 если взведешь маркер (поставишь галочку) выведутся все твои нулевые остатки
19 aka AMIGO
 
17.04.12
11:16
предупреждаю: решение далеко не единственное, и далеко не оптимальное..
в условиях мисты приведенное в (17) позиционируется как ГКод
это только информация к размышлизмам
думать самостоятельно не возбраняется
20 curys
 
17.04.12
11:39
Спасибо aka AMIGO, помогло!
21 aka AMIGO
 
17.04.12
11:52
(20)угу, пожалуйста.. только ета.. ты забудь сразу, как сделал этот отчет.. это плохая практика.
думай по-своему, а как - подсказка в первых постах