Имя: Пароль:
1C
1C 7.7
v7: Не выводятся остатки
,
0 Observer51
 
13.07.12
03:30
Доброго времени суток :)
Сильно не пинайте, 1С вижу первый и, надеюсь, последний раз :)
Задача - получить остатки товара.
Код:
Процедура КолТест()
   ТМЦ =    СоздатьОбъект ( "Справочник.Номенклатура" ) ;
   Остатки = СоздатьОбъект ( "Регистр.ОстаткиТМЦ" ) ;
   ТМЦ.ВыбратьЭлементыПоРеквизиту ( "Артикул" , "123123123" ,0 ) ;
   ТМЦ.ПолучитьЭлемент();      
   Остатки.СводныеОстатки (,ТМЦ,,) ;
   Сообщить    (    ТипЗначенияСтр ( ТМЦ ) ) ;
   Сообщить    (    "Наименование = "    + ТМЦ.ПолнНаименование +
                   "; Осталось "        + Остатки.Количество
               ) ;
КонецПроцедуры

Вывод:
Справочник
Наименование = Крупа гречневая в упаковках по 1 кг; Осталось 0

Товар, конечно же, есть - 300 штук.

Вторая попытка (пробую СводныйОстаток() )
Код:
Процедура КолТест1()
   ТМЦ =    СоздатьОбъект ( "Справочник.Номенклатура" ) ;
   Остатки = СоздатьОбъект ( "Регистр.ОстаткиТМЦ" ) ;
   ТМЦ.ВыбратьЭлементыПоРеквизиту ( "Артикул" , "123123123" ,0 ) ;
   ТМЦ.ПолучитьЭлемент();      
   Остатки.Номенклатура = ТМЦ.ТекущийЭлемент();
   Сообщить    (    ТипЗначенияСтр ( ТМЦ ) ) ;
   Сообщить    (    "Наименование = "    + ТМЦ.ПолнНаименование +
                   "; Осталось "        + Остатки.СводныйОстаток(,ТМЦ,,,"Количество")
               ) ;
КонецПроцедуры

Вывод аналогичен предыдущему.
Измерений у регистра 4 - Фирма, Номенклатура, Склад, ЦенаПрод . Ресурс - Количество.
Прошу помощи! Сам уже и Синтакс-Помощника всего облазил и тут темы по  подобным ошибкам перечитал, но ничего не помогло :(
1 Злопчинский
 
13.07.12
03:58
мляин еще один мчудак.
.
(0) автор ты вкуриваешь, что СпрДеятельность - это (упрощенно) ВЫБОРКА, то есть некий глобальный объект из кучи более мелких сущностей. и увать ВСЮ ВЫБОРКУ в качесте чего-то - бред.
.
а СпрДеятельность.ТекущийЭлемент() - это типа как указательна конкретное положение в выборке, т.е. конкретная записб справочника.
.
для особо тупых:
СпрДеятельность - это логарифмическая линейка.
СпрДеятельность.ТекущийЭлемент() - это риска на бегунке, по которой позиционируются на этой линейке.
.
скорее всего автор и логлинейку в глаза не видел...
.
вместо СпрДеятельность - замени ТМЦ и еще раз прочитай и кури сво йкод ав (0)
2 Злопчинский
 
13.07.12
03:59
(0) что НЕЯСНОГО в синтакс помощнике написано про СВОДНЫЙОСТАТОК?
3 Observer51
 
13.07.12
04:15
(1) мляин? мчудак? спрДеятельность? увать?  - местный жаргон?
(2) В помощнике все написано очень доступно и мной понятно, однако остатки-то всё равно не показывает. Измерение передаю нужное и на нужном месте, ресурс - существущий . Вроде все ок, но остатки всё равно недосягаемы :(
4 izekia
 
13.07.12
04:18
Остатки.СводныйОстаток(,ТМЦ.ТекущийЭлемент(),,,"Количество")
5 shag008
 
13.07.12
04:21
и что такое во втором примере "Остатки.Номенклатура = ТМЦ.ТекущийЭлемент();"?
6 izekia
 
13.07.12
04:22
(5) да там весь код надо выкинуть ... да точно весь
7 Observer51
 
13.07.12
04:26
(4) Огромное спасибо!) как и ожидалось - проблема в отсутствии опыта обращения с объектами 1С ) все работает, ОГРОМНОЕ СПАСИБО!
(6) Этот код для этого вопроса был написан, просто что бы понять механизм)
8 Observer51
 
13.07.12
04:27
(5) случайно остался от другого способа)
9 izekia
 
13.07.12
05:27
(7) ну он все равно ужасен, посмотри как в типовых сделано
ТМЦ.ВыбратьЭлементыПоРеквизиту ( "Артикул" , "123123123" ,0 ) ;
ТМЦ.ПолучитьЭлемент();
вместо этого можно просто по коду найти
потом почитай про временный расчет регистров

вот это вообще ни к чему
   Остатки.Номенклатура = ТМЦ.ТекущийЭлемент();
   Сообщить     (    ТипЗначенияСтр ( ТМЦ ) ) ;
10 big
 
13.07.12
05:28
Настоящая пятничная ветка!! Зачёт!! )))
11 1Сергей
 
13.07.12
08:20
Зря вы так. Тут многие с многомесячным стажем перлы похлеще выдают. А этот в первый раз видит 1С, извинился, и код чуть не доработанный.
12 Ыщъ
 
13.07.12
13:02
(11)+100
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший