Имя: Пароль:
1C
1C 7.7
v7: Регистр остатков, функция "Остаток" возвращает ноль, почему так, кто еще помнит?
,
0 palpetrovich
 
08.01.14
18:11
Ост = Регистр.ОстаткиТоваров.Остаток(Фирма, Товар, Склад, "ОстатокТовара");

Фирма, Товар, Склад : в данном случае - реквизиты формы обработки

зы: запрос с этими данными ненулевой
1 aka MIK
 
08.01.14
18:12
ТА где-то впереди относительно кондаты запроса, или просто начост в запросе, короче компьютер ошибаться не может
2 palpetrovich
 
08.01.14
18:16
(1) ТА - на ТекущейДате, танцы с бубном типа
"ОстаткиТоваров.ВременныйРасчет();РассчитатьРегистрыПо(ТекущаяДата());" ничего не дали
3 GreyK
 
08.01.14
18:24
(0) "зы: запрос с этими данными ненулевой" - покажи запрос.
А что показывает сводный остаток?
4 uno-group
 
08.01.14
18:24
значения фирма товар склад элементы справочников? косяк с пустым значением может быть выбфирма=0, выбфирма=пустоезначение справочник.фирмы. в товаре товар а не группа?
5 Злопчинский
 
08.01.14
18:30
(0) ты бы не мучался, а притулил бы в свою конфигу обработку из типовой ТиС, которая показывает текущийе остатки - и ориентировался бы на нее... - работы на 15-20 минут, а польза - несомненна.
http://content.screencast.com/users/Che66/folders/Jing/media/ec1e190a-120a-4ba7-b2c8-64f3583544c1/2014-01-08_1830.png
6 Eugeneer
 
08.01.14
18:31
яюзай СводныйОстаток
7 palpetrovich
 
08.01.14
18:38
(3) запрос простейший:
    ТекстЗапроса="";
    ТекстЗапроса= ТекстЗапроса+"                        
    |ПЕРИОД С ДатаРег По ДатаРег;
    |Товар=Регистр.ОстаткиТоваров.Товар;
    |Кол=Регистр.ОстаткиТоваров.ОстатокТовара;
    |Группировка Товар без Групп;
    |Функция КонКол=КонОст(Кол);
    |Условие (Фирма=ТекФирма);
    |Условие (Товар=ТекТовар);
    |Условие (Склад=ТекСклад);
    |";
    Запрос=СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
        Возврат;
    КонецЕсли;
    Пока Запрос.Группировка("Товар") = 1 Цикл  
        Сообщить("Остаток товара из запроса = " + Запрос.КонКол);
    КонецЦикла;

СводныйОстаток тоже = 0
    СводныйОстаток = ОстаткиТоваров.СводныйОстаток(Фирма, Товар, Склад, "ОстатокТовара");

Фирма, Товар, Склад : в данном случае - реквизиты формы обработки, не группы
8 Злопчинский
 
08.01.14
18:39
(7) значит - НОЛЬ.
возьми ведомость движения товара по складу и убедись.
9 Злопчинский
 
08.01.14
18:39
если проблемы - стучись в скайп Zlopun - посмотрим.
10 КонецЦикла
 
08.01.14
18:41
Посмотри regprint или еще какой-то универсальной обработкой что там на самом деле и на какой момент времени
11 Eugeneer
 
08.01.14
18:42
1) едействительно остаток 0
2) ты неправильно расположил измерения в методе - не так как они в регистре.
12 ТакВотЖе
 
08.01.14
18:42
а имя ресурса точно "ОстатокТовара"?
13 Voronve
 
08.01.14
18:43
(11) Судя по тому что чОрный запрос и Сводный остаток выдают пустое значение - расположил правильно
14 Eugeneer
 
08.01.14
18:44
(12) пять за наблюдательность. Впервые вижу рег с таким ресурсом.
15 GreyK
 
08.01.14
18:44
(0) Скопируй базу и сделай ей ТИИ.
16 ChMikle
 
08.01.14
18:45
(14) я регистр такой остаткитоваров тож первый раз вижу в 7.7 , может быть "товары" или "партиитоваров "
17 Eugeneer
 
08.01.14
18:47
(13) ты регистр смотри. в запросе можно как угодно писать.
18 Eugeneer
 
08.01.14
18:49
может быть очень старая тис в которой по упр учету в регистрах Фирма - пустая фирма.
19 palpetrovich
 
08.01.14
18:53
(8) запрос дает не ноль
(11) ТиС кем-то изменен
(12_ точно, см.(11)
(13) чОрный запрос - дает верный результат
(15) ТИИ делал. С пересчетом
(16) рег осттатков
(18) Тис Старый, но я проверял и на пустое:
    Если ПустоеЗначение(Фирма) = 0 Тогда  
        ТекФирма = Фирма;
    Иначе
        ТекФирма = ПолучитьПустоеЗначение("Справочник.Фирмы");
    КонецЕсли;
20 Eugeneer
 
08.01.14
18:54
(19) сводный остаток попробуй с пропуском фирмы и склада
21 Eugeneer
 
08.01.14
18:54
СводныйОстаток = ОстаткиТоваров.СводныйОстаток(, Товар,, "ОстатокТовара");
22 Voronve
 
08.01.14
18:58
(19) Оппа ... Если "чОрный запрос - дает верный результат" тогда маня прав - в сводномОстатке напутал чота ...
Кстате:
СводныйОстаток(ТекФирма, ТекСклад, ТекТовар,,,,, "ОстатокТовара");
Посмотри по структуре регистра в конфе - сводныйостаток надо вызывать со всеми измерениями. Просто вместо ненужных пустое значение посредством записи запятых передавай.
Метода нежная - критична к ...
23 Voronve
 
08.01.14
19:01
(22+) Кстате...
Если надо СводныйОстаток(,ТекСклад,ТекФирма,,,,, "ОстатокТОвара")
или СводныйОстаток(,,ТекФирма,,,,, "ОстатокТОвара")
То лучшее через список значений:
СводныйОстаток(спНоменклатура,спСклад,ТекФирма,,,,, "ОстатокТОвара")
С предварительным заполнением списков - выиграешь в скорости. Много
24 palpetrovich
 
08.01.14
19:04
СводныйОстаток = ОстаткиТоваров.СводныйОстаток(, Товар, , "ОстатокТовара");
результат:
Остаток товара GP T157 аккумулятор для радиотелефона = 0   СводныйОстаток = 0
Остаток товара из запроса = 4
25 palpetrovich
 
08.01.14
19:06
+(24) что-то с базой не то, на типовом - работатет как ожидается ...а вот что, это ?
26 ChMikle
 
08.01.14
19:09
(24)почему остатоктовара в ковычках , это измерение или ресурс ?
27 Voronve
 
08.01.14
19:10
(24) Структуру регистра по измерениям дай сюда
28 ChMikle
 
08.01.14
19:11
(26) пропускаете где-то измерение , поэтому фильтр не срабатывает
29 palpetrovich
 
08.01.14
19:12
(27) Фирма, Товар, Склад - измерения, ОстатокТовара - ресурс
30 Voronve
 
08.01.14
19:14
Измерений больше неть ?
31 Eugeneer
 
08.01.14
19:16
это самое у тебя прямое обращение к региистру
Регистр.ОстаткиТоваров

Через СоздатьОбъект же надо!!!!
32 Voronve
 
08.01.14
19:17
(31) Если на ТА то пох
33 palpetrovich
 
08.01.14
19:20
(31) уже давно не прямое, уже так, но без толку
ВремРегистры = СоздатьОбъект("Регистры");
ОстаткиТоваров = ВремРегистры.ОстаткиТоваров;
...
34 Злопчинский
 
08.01.14
19:20
Версия движка какая?
35 palpetrovich
 
08.01.14
19:20
+(33) ну и это
    Если ДатаРег < ПолучитьДатуТА() Тогда
        ОстаткиТоваров.ВременныйРасчет();
        РассчитатьРегистрыПо(ДатаРег);
    КонецЕсли;
36 ChMikle
 
08.01.14
19:21
(33) проверьте последовательность указание значения измерений, если местами перепутали будет нуль
37 Злопчинский
 
08.01.14
19:21
Сделай выгрузку и загрузку базы.
38 palpetrovich
 
08.01.14
19:21
(34) версия 25, повторюсь, на типовом ТиС-е все ок !
39 Злопчинский
 
08.01.14
19:22
Как вариант в значениях измерений - кривые данные
40 Злопчинский
 
08.01.14
19:23
если что - выгружай базу на файлообменник, ссылку на мыло [email protected]
41 palpetrovich
 
08.01.14
19:25
(37) сделал, без изменений
(39) от данных сейчас избавлюсь - проверю
42 palpetrovich
 
08.01.14
19:32
(41) на "пустой" базе - то-же самое
ладно, всем спасибо, буду завтра думать..
43 Злопчинский
 
08.01.14
20:28
(42) че тут думать? косячишь где-то конкретно и все - такое со всеми бывает.
.
выложил бы базу - уже б давно нашли скорее весго
44 palpetrovich
 
08.01.14
21:10
Народ, прощу у всех прощения, владельцы базы делали ей обрезание и при последующем переносе остатков задвоились некоторые справочники :)

единственное непонятно, почему не работало как надо это:
СводныйОстаток = ОстаткиТоваров.СводныйОстаток(, Товар, , "ОстатокТовара");
дома работает, завтра гляну еще раз на работе

Всем спасибо!
45 Злопчинский
 
08.01.14
21:22
944) в сводном остатке первые пустые запятые нельяз.. (могу ошибаться)
46 Злопчинский
 
08.01.14
21:23
(44) я рад что меня интуаиция в 43 насчет косяка крупного не подвела
47 palpetrovich
 
08.01.14
21:27
(45) не суть, правильней конечно: ПолучитьПустоеЗначение("Справочник.Фирмы")
(46) ну хоть не мой :)
48 ЧеловекДуши
 
08.01.14
22:28
(0) Может потому, что нам невидно кода и судя по сему:
1. Нет остатка
2. Остаток берется на ТА...
3. Остаток берется на момент, где его нет...
(А вы скажите, что отчеты его кажут, дак отчет берет остаток на конец Дня, не на начало нужного документа) :)
4. Волшебство, бросай 1С, иди в дворники :)
49 ЧеловекДуши
 
08.01.14
22:29
+(48) 5. У вас съехали остатки, и вам нужно запустить ТиИ - Пересчет служ. значений и Итого :)
50 ЧеловекДуши
 
08.01.14
22:31
(44) И что? :)
Ребята резали БД да так, что измерения еще похерили? О_О...
Бред... все же склонен думать, что "4. Волшебство, бросай 1С, иди в дворники :)"
51 palpetrovich
 
08.01.14
23:58
(50) бросай бухать!
...движения сделаны по складу "Склад1", а проверяются по "Склад1"
и это, "Склад1" и "Склад1" не путай ;)
52 zak555
 
09.01.14
03:46
(7) значит есть выше стоящее измерение, по которому есть
+100
и
-100

поэтому по товару в целом выводит 0