Имя: Пароль:
1C
1C 7.7
v7: Получение сводных остатков.
,
0 Demonic10
 
06.10.14
09:58
Всем здрасьте. Нужно получить сводные остатки, то бишь остатки одного товара по всем складам. Много чего уже перепробовал, в том числе и метод СводныеОстатки(), который почему то возвращает ноль, хотя товар на складе есть. Пытался изучить готовый отчет "ОстаткиТМЦ", но тамошняя реализации оказалось чересчур зубодробительной, чтобы что-то понять. ТиС Конфигурация для Казахстана. Может кто что посоветует?
1 floody
 
06.10.14
10:02
Походу товара нет ©
2 Demonic10
 
06.10.14
10:05
(1) Ну обычный отчет возвращает далеко не ноль, да и просто зайдя в справочник можно в этом убедиться.
3 floody
 
06.10.14
10:19
на одном складе -1, на другом 1..
4 Demonic10
 
06.10.14
10:22
(3) интересное предположение )..., но нет. Говорю же, стандартный отчет отчет ноль не выдает. На одном складе у меня 2, на другом - 3. Стандартный отчет выдает 5.
5 lavalit
 
06.10.14
10:25
(4)... "На одном складе у меня 2, на другом - 3. Стандартный отчет выдает 5.".. так вроде и все верно 5 и должен вернуть... или 2+3 не равно 5?
6 floody
 
06.10.14
10:27
Что-то не то в качестве параметров передаешь мб.
7 lavalit
 
06.10.14
10:30
(0) Код показал бы, что там делаешь то?)) А то так гадатьможно ооочень долго))
8 Demonic10
 
06.10.14
10:30
(6) Может быть.

ОстаткиТМЦ=СоздатьОбъект("Регистр.ОстаткиТМЦ");
                Количество=ОстаткиТМЦ.СводныйОстаток(,ТекТов,,,"Количество");

У ОстатковТМЦ 4 измерения: Организация, ТМЦ, Склад, ЦенаПрод; и 1 ресурс: Количество, который мне собственно и нужен.
9 Ёпрст
 
06.10.14
10:31
(0) применить надо СводныйОстаток, или запрос.

Ну и показать свой код.
10 Ёпрст
 
06.10.14
10:32
(8) ТекТов - это что ?
11 Demonic10
 
06.10.14
10:39
(10) Текущий товар. Он  у меня там в список обернут. Мне, честно говоря, все это стыдно показывать ну да ладно.

Анализатор = СоздатьОбъект("AddIn.XMLParser");
Транзакция=Анализатор.СоздатьДокумент();
ФайлДанных = Анализатор.СоздатьДокумент();
ФайлДанных.Загрузить("C:\Users\Zak\Desktop\project\product_list.xml");
        Список_айди=ФайлДанных.ВыбратьУзел("code_list");
кол=Список_айди.КоличествоПодчиненных();
Для инд=1 по кол Цикл
тов=Список_айди.ПолучитьПодчиненныйПоНомеру(инд);
Номенкл = создатьобъект("Справочник.Номенклатура");
Если Номенкл.найтипокоду(тов.Значение)=1 Тогда
    Товар=Транзакция.СоздатьПодчиненныйЭлемент("product");
    ТекТов=Номенкл.ТекущийЭлемент();
    Цена=Товар.СоздатьПодчиненныйЭлемент("price");
    СпрЦен = СоздатьОбъект("Справочник.Цены");
    ТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
    ТипыЦен.НайтиПоНаименованию("Розничные");
    Цена1=0;
    ВернутьЦену(ТекТов,ТипыЦен,,Цена1,,,);
    ОстаткиТМЦ=СоздатьОбъект("Регистр.ОстаткиТМЦ");
    Количество=ОстаткиТМЦ.СводныйОстаток(,ТекТов,,,"Количество");
    Остатки=Количество;
    //ОстаткиТМЦ.УстановитьЗначениеФильтра("ТМЦ",Номенкл,2);
            
КонецЕсли;
КонецЦикла;
12 Demonic10
 
06.10.14
10:54
Ребят, спасибо всем, кто откликнулся. Проблема была в том, что до этого в качестве параметра товара я передавал результат метода НайтиПоКоду() и несмотря на наличия в списке всего одного элемента я не должен был передавать его целиком, а предварительно использовать ТекущийЭлемент().
P.S.: Вот всегда дельная мысль приходит после того как уже открыл тему -_-
13 lavalit
 
06.10.14
11:15
Вот примерно так я бы сделал
ОстаткиТМЦ=СоздатьОбъект("Регистр.ОстаткиТМЦ");
// вот это не забыть а то может не показать
РассчитатьРегистрыНа(ТекущаяДата());  // или ваша дата
ОстаткиТМЦ.ВыбратьДвиженияСОстатками(ТекущаяДата());
// вот теперь  только
Количество=ОстаткиТМЦ.СводныйОстаток(,ТекТов,,,"Количество");
14 Ёпрст
 
06.10.14
11:16
(13) бредятина какая..
15 lavalit
 
06.10.14
11:18
(14)  почему? ведь покажет же))
16 lavalit
 
06.10.14
11:19
(15) а ну да Епрст.... лишнего дал)))Выбратьдвижения тут наик не надо))))
17 Ёпрст
 
06.10.14
11:21
рассчитывать регистры тоже лишнее
18 Ёпрст
 
06.10.14
11:21
тем более, без флага временного расчета
19 Ёпрст
 
06.10.14
11:21
и.. ТС это вообще не надо
20 Ёпрст
 
06.10.14
11:22
Ну и.. быстрее выгрузить все итоги регистра и потом искать в тз.
21 lavalit
 
06.10.14
11:25
(20) Да по ТЗ где то тоже у мня был такой вариант.. только не помню уж почему так сделал... давно было и в раззное время есс-но... в общем где то так где то сяк сделано)))