Имя: Пароль:
1C
1C 7.7
v7: вопрос по методу СводныйОстаток
,
0 lucifer
 
01.02.12
17:29
регс = СоздатьОбъект("регистр.склады");
регс.СводныйОстаток(скл.текущийэлемент(),дог.наименование,,,,,сотрудник,"кол");

мне нужно получить остаток по ресурсу кол только по измерением
склад - скл.текущийэлемент()
наименование - дог.наименование
сотрудник - сотрудник

код что выше возвращает 0, хотя если посмотреть сальдо через отчет (там запрос формируется) то в разрезе этих измерений кол = 14
Попробовал так:
регс.Остаток(скл.текущийэлемент(),дог.наименование,,,,,сотрудник,"кол");
выводит остаток, но странно как-то выводит 13 вместо 14.
просто если смотреть отчет то 13 лежат в разрезе из.
склад - значение
наименование - значение
сотрудник - значение
поставщик - пустой
а 1 лежит
склад - значение
наименование - значение
сотрудник - значение
поставщик - значение

получается что регс.Остаток() вернул остаток где поставщик пусто, хотя я вообще пропустил это измерение, по идеи он должен был вообще его не учитывать.
И кстати чем Остаток от СводныйОстаток отличается ?
1 Ёпрст
 
01.02.12
17:30
>>>наименование - дог.наименование

Это полный ПЭ
2 Ёпрст
 
01.02.12
17:31
>>>И кстати чем Остаток от СводныйОстаток отличается ?

Это, спроси у мужика в кепке в пофигураторе
3 lucifer
 
01.02.12
17:34
(1) что значит ПЭ? тебе не нравится как я измерение назвал?
4 lucifer
 
01.02.12
17:34
(3)+ мож ты не понял что я написал, это пояснение к коду выше
5 viktor_vv
 
01.02.12
17:35
(4) У тебя тип значения измерения договор строка что ли ?
6 lucifer
 
01.02.12
17:36
по поводу Остатока и СводныйОстатока разобрался
7 lucifer
 
01.02.12
17:36
(5) у меня такого измерения нет
8 viktor_vv
 
01.02.12
17:38
(7) Ладно, тип значения второго сверху измерения строка ?
9 Ёпрст
 
01.02.12
17:39
(3)
1.Если Наименование - измерение агрегатного типа, а ты ему строку дог.наименование пихаешь - это полный ПЭ
2.Если Наименование - измерение типа "Строка" - это п..ц, он не лечится
10 lucifer
 
01.02.12
17:40
(3) дог.наименование - это товар, это не строка
11 lucifer
 
01.02.12
17:43
(10)+ в смысле позиция в документе дог, но тип у него справочник.товар
12 viktor_vv
 
01.02.12
17:45
Ну все еще не так уж плохо :).
13 Эльниньо
 
01.02.12
17:46
(10) Огорчу.
дог.наименование - это строка, это не товар
14 lucifer
 
01.02.12
17:47
(13) ок, как тогда товар получить?
дог.наименование.текущийэлемент() - тоже самое
15 lucifer
 
01.02.12
17:48
(13) да и с чего строка? если тип в табличной части документа реквизита наименования это справочник.товар
16 Ёпрст
 
01.02.12
17:50
(15) и кто же тебя так учил имена реквизитам задавать ?
Давая имена реквизитам из зарезервированных слов, типа Наименование - огребешь потом в запросах и других конструкциях языка, не говоря уже о взрыве мозга при прочтении кода в (0)
17 lucifer
 
01.02.12
17:54
(16) ну явно не в этом трабл и кстати конфигурация до меня писалась.
(13)  вывел    
Сообщить(ТипЗначения(скл.текущийэлемент()));  
Сообщить(ТипЗначения(дог.наименование));
Сообщить(ТипЗначения(сотрудник));
все 3 это 11, т.е. элемент справочника
18 lucifer
 
01.02.12
17:55
вот скажите если я пропускаю измерение в СводныйОстаток() то оно учитываться не должно?
19 Jaffar
 
01.02.12
18:01
А почему у тебя в (0) Сотрудник (я бы писал с большой буквы, кстати) стоит 7-м, а в "трассировке" результатов отчета - 3-м, а поставщик - 4-м? :-)
20 Эльниньо
 
01.02.12
18:02
(18) У тебя 7 измерений?
21 lucifer
 
01.02.12
20:52
(20) да
(19) ну я указал только используемые измерения, а вообще порядок измерений правильный, как в конфигураторе
22 lucifer
 
01.02.12
20:52
чувствую я что придется запросом делать (((
23 Эльниньо
 
01.02.12
22:01
Остатки на ТА получаешь?
24 lucifer
 
01.02.12
22:20
(23) ах да, вот еще вопрос методы СводныйОстаток и остаток возвращают остаток на тек. дату или на дату ТА ?
Но в принципе это на результат повлиять не должно просто самому интересно
25 Эльниньо
 
01.02.12
22:22
(24) Очень может повлиять.
Возвращают на ТА, если нет временного расчета.
26 lucifer
 
01.02.12
22:24
"Очень может повлиять"
как может повлиять?

"Возвращают на ТА, если нет временного расчета"
где это я могу посмотреть? и если нет задать его
27 Эльниньо
 
01.02.12
22:39
(26) "если посмотреть сальдо через отчет (там запрос формируется) то в разрезе этих измерений кол = 14"

В отчете какая дата стоит? И что выдает ПолучитДатуТА()?
28 lucifer
 
01.02.12
23:15
в отчете формировал сальдо на сегодня, насчет ПолучитДатуТА() завтра посмотрю, но я помню ТА где-то на лето 2012 я ставил
29 Ёпрст
 
02.02.12
08:26
(28) >>> ТА где-то на лето 2012

Это п..ц 3 раза, он не лечится
30 Mikeware
 
02.02.12
08:41
(29) Не скудеет россия идиотами....
31 lucifer
 
02.02.12
09:53
(29) что опять то не так?
ты аналогию с бухгалтерией проводишь, а у нас самописная конфигурация и от того на какую дату выставлена ТА разницы нет никакой, если она не просрочена конечно
32 lucifer
 
02.02.12
09:54
(29) ты лучше по тебе ответь, а то от тебя только и видно "Это п..ц "
ты выше тоже возмущался, не разобравшийся в ситуации
33 lucifer
 
02.02.12
10:06
ТА у меня стоит 29.02.2012
в чем разница? если СводныйОстаток показывает остаток  на ТА то он должен быть таким же как на тек. дату.
34 lucifer
 
02.02.12
10:18
что меня еще смущает, то это то что регс.Остаток() выводит значение правильно
35 Ёпрст
 
02.02.12
10:28
(32) при работе с регистрами, есть понятие временного расчета.
Тебе это о чем то говорит ?
Что такое ТА в курсе ?
Как рассчитывается остаток (из каких табличек) ведаешь ?
Что такое проведение в потоке, работа "задним" числом ?

ЗЫ: то, что конфа самописная не имеет значения при работе с регистрами
36 lucifer
 
02.02.12
10:30
(35) ну так расскажи, ради совета и пришел на форум.
А то от твоего "Это п..ц" пользы не какой.
ТА - это дата актуальности итогов
37 Mikeware
 
02.02.12
10:31
(36) Ты не поверишь....©
это вполне нормальноописано в документации.
38 Эльниньо
 
02.02.12
10:33
(33) Доки передним числом есть?
39 Ёпрст
 
02.02.12
10:34
40 lucifer
 
02.02.12
10:34
еп... ну так что мне делать в конкретной ситуации, что бы СводныйОстаток() вывел правильное значение?
41 Ёпрст
 
02.02.12
10:34
42 Ёпрст
 
02.02.12
10:35
(40) правильно выставить  параметры, если нужен остаток не на ТА - рассчитать регистр
43 Ёпрст
 
02.02.12
10:35
на нужную дату
44 lucifer
 
02.02.12
10:45
"рассчитать регистр"
это операции -> управление бух. итогами?

"если нужен остаток не на ТА"
я вот не понимаю, пусть даже остаток на ТА, но у меня ТА стоит 29.02.2012 почему остаток 0, он должен быть как на тек. дату
45 Ёпрст
 
02.02.12
10:47
(44)
>>>"рассчитать регистр"
>>>>это операции -> управление бух. итогами?

нет, это рассчитатьрегистрыНА/По+ВременныйРасчет(1)
46 Ёпрст
 
02.02.12
10:48
(44)
для начала, проверить типы измерений, что ты в метод подсовываешь.
47 lucifer
 
02.02.12
10:48
(45) аааа.. спасибо, счас попробую
48 lucifer
 
02.02.12
10:49
(46) типы вчера еще, проверел, перепроверил, такие же как в конфигураторе
49 Ёпрст
 
02.02.12
10:57
(48) возможно, заместо ссылки на объект ты передаешь переменную стипом туда.
50 lucifer
 
02.02.12
10:58
да е мое,  Поле агрегатного объекта не обнаружено (РассчитатьРегистрыПо)
51 lucifer
 
02.02.12
10:59
что ему надо (((
52 lucifer
 
02.02.12
10:59
(51) коду в смысле
53 Эльниньо
 
02.02.12
11:05
(50) Код выкладывай.
54 lucifer
 
02.02.12
11:08
рег = СоздатьОбъект("регистр.склады");
55 lucifer
 
02.02.12
11:08
ой
56 lucifer
 
02.02.12
11:09
рег = СоздатьОбъект("регистр.склады");
рег.ВременныйРасчет(1);  
рег.РассчитатьРегистрыПо(ТекущаяДата(),);
КолО = рег.СводныйОстаток(скл.текущийэлемент(),дог.наименование,,,,,сотрудник,"кол");
57 lucifer
 
02.02.12
11:17
главное когда пишу рег.РассчитатьРеги.. 1с мне выводит этот метод, а во время работы программы ругается
58 Эльниньо
 
02.02.12
11:37
(56)
рег = СоздатьОбъект("регистр.склады");
рег.ВременныйРасчет(1);  
РассчитатьРегистрыНа(ТекущаяДата(),);
КолО = рег.СводныйОстаток(скл.текущийэлемент(),дог.наименование,,,,,сотрудник,"кол");

Есть 2-й вариант. Попробуй этот для начала.
59 lucifer
 
02.02.12
12:47
Ёпрст4, был прав, отчасти.
плюнул я на СводныйОстаток, решил через запрос сделать и фиг.
Долбался я с ним, даже голова разболелась, потом попробовал так
вместо
дог.наименование
и
скл
(скл раньше брался так
Если пер.ЗначениеНаДату(ТекущаяДата()).код=3 Тогда  
скл.найтипокоду(9);
иначе              
скл.найтипокоду(глсклад);    
КонецЕсли;
)
изменил на
Если пер.ЗначениеНаДату(ТекущаяДата()).код=3 Тогда  
скл.найтипокоду(9);
иначе              
скл.найтипокоду(глсклад);    
КонецЕсли;
скл=скл.ТекущийЭлемент();
товр=дог.наименование.ТекущийЭлемент();

м потом товр и скл подставил в запрос и все заработало, но только через запрос, а СводныйОстаток()
так и не работал.
Отсюда вопрос чем дог.наименование отличается от дог.наименование.ТекущийЭлемент() в последнем ссылка передается а в первом сам объект?
и почему не работает если сразу в запрос написать
дог.наименование.ТекущийЭлемент(), именно надо присвоит значение переменной и уже переменную в запрос вставлять.
Когда это все сработало, товар добавился в заявку (это все я делаю что бы проверить есть ли у сотрудника необходимое кол-во товара когда он создает заявку на отгрузку этого товара)
ну так вот, когда товар добавился в заявку, я сохранил ее, и решил попробовать опять СводныйОстаток, убрал комментарии и на мое удивление СводныйОстаток вернул правильное значение, я на радостях закоментил код с запросом оставил с СводныйОстаток, попробовал еще, и опять сработало, потом я удалил добавленые строки с дока, пробую, фиг. Почему-то СводныйОстаток работает только тогда когда в документ добавлена строка, короче оставил вариант с запросом.
60 1Сергей
 
02.02.12
12:54
Про полный ПЭ говорили уже?
61 lucifer
 
02.02.12
12:56
на вопросы кто-нить ответит? или стебаться будете дальше?
62 1Сергей
 
02.02.12
12:57
(61) как мы могли протелепатить про твой "пер"?

Ты можешь более внятно объяснить что откуда берётся?
63 Voronve
 
02.02.12
12:58
(0) Структуру регистра "Склады" в студию
64 1Сергей
 
02.02.12
13:00
(63)+1

Поставщик - какой по счёт реквизит?
65 1Сергей
 
02.02.12
13:00
*по счёту
66 lucifer
 
02.02.12
13:10
(63)http://s018.radikal.ru/i518/1202/69/c0324793c6c2.jpg
(64) не понял вопрос
67 Эльниньо
 
02.02.12
13:13
(66) Стопудово не закрывается.
68 Voronve
 
02.02.12
13:16
(66) Судя по картинке, твое
регс = СоздатьОбъект("регистр.склады");
регс.СводныйОстаток(скл.текущийэлемент(),дог.наименование,,,,,сотрудник,"кол");

работать и не должно, попробуй так

регс = СоздатьОбъект("регистр.склады");
регс.СводныйОстаток(<Элемент справочника "Склады">,<Элемент справочника "Товары">,,,,,<Элемент справочника "Сотрудники">,"кол");

Должен выдать остаток на ТА.
Да кстати регистр остатков ? или оборотный ?
69 Mikeware
 
02.02.12
13:18
А что вообще хранит столь оригинальный регистр?
70 Эльниньо
 
02.02.12
13:23
(68) Ты ветку читал?
Читать надо, дабы не выглядеть...
71 lucifer
 
02.02.12
13:24
(67) нет
(69) остатки товаров
(68)
"регс.СводныйОстаток(<Элемент справочника "Склады">,<Элемент справочника "Товары">,,,,,<Элемент справочника "Сотрудники">,"кол"); "
так у меня так и есть
72 lucifer
 
02.02.12
13:25
я все таки надеюсь увидеть ответ на вопрос
"вопрос чем дог.наименование отличается от дог.наименование.ТекущийЭлемент() в последнем ссылка передается а в первом сам объект? "
73 Ёпрст
 
02.02.12
13:29
(66) весьма забавная структура..
То что он не закрывается, это очевидно
74 Ёпрст
 
02.02.12
13:30
(69) ФСЁ!
:)
75 Mikeware
 
02.02.12
13:31
(73) Думаешь, оно знает,  что такое "закрывается"? и почему он должен закрываться? :-)))
76 Ёпрст
 
02.02.12
13:32
(71)
скл - это что ?
дог - это что ?

Это реквизиты документа ? Или это переменные ?
Если реквизиты дока, ТО КАКИЕ ? Шапки ? Табличной части ? Общие реквизиты?

Запрос этот где пишешь ?
77 lucifer
 
02.02.12
13:35
(75) оно знает.
(76)
скл = СоздатьОбъект("Справочник.Склады");
скл.найтипокоду(глсклад);
78 lucifer
 
02.02.12
13:36
дог = СоздатьОбъект("Документ.Счет");
дог.найтидокумент(табл.получитьзначение(номстр,1));
79 Ёпрст
 
02.02.12
13:38
(77) :)
ну вот, уже ошибка нумер раз.
нужно передавать не переменную скл, а скл.ТекущийЭлемент()

И это, глсклад - это строка ? Че за переменная? Или это реквизит документа ?
80 Ёпрст
 
02.02.12
13:39
(78) ошибка нумер 2
нужно передавать табл.получитьзначение(номстр,1) без всяких поисков
81 lucifer
 
02.02.12
13:40
(79) вы наверное не все читаете
"чем дог.наименование отличается от дог.наименование.ТекущийЭлемент() в последнем ссылка передается а в первом сам объект?
и почему не работает если сразу в запрос написать
дог.наименование.ТекущийЭлемент(), именно надо присвоит значение переменной и уже переменную в запрос вставлять. "
82 Ёпрст
 
02.02.12
13:41
Наименование - это ты так имя реквизиту задал ?
Весьма оригинально
83 Ёпрст
 
02.02.12
13:41
>>>"чем дог.наименование отличается от дог.наименование.ТекущийЭлемент

в твоём случае ничем
84 lucifer
 
02.02.12
13:42
(79)"нужно передавать не переменную скл, а скл.ТекущийЭлемент() "
да пробовал, и так пробовал
скл=скл.ТекущийЭлемент();
85 lucifer
 
02.02.12
13:42
"в твоём случае ничем"
но почему-то заработало только когда я
изменил на

Если пер.ЗначениеНаДату(ТекущаяДата()).код=3 Тогда  
скл.найтипокоду(9);
иначе              
скл.найтипокоду(глсклад);    
КонецЕсли;
скл=скл.ТекущийЭлемент();
товр=дог.наименование.ТекущийЭлемент();
86 Ёпрст
 
02.02.12
13:44
И это, ты хочешь сказать, что реквизит документа Счет с идентификатором Наименование у тебя имеет тип Справочник.Товары ?

И еще и поди это Реквизит ТАБЛИЧНОЙ части ?
:))
87 lucifer
 
02.02.12
13:46
(80) зачем мне передавать счет, мне товар надо, поэтому я нахожу счет выбираю строки и в цикле по строкам проверяю нал. товара для каждой позиции
"что реквизит документа Счет с идентификатором Наименование у тебя имеет тип Справочник.Товары"
именно
да эта табличная часть, но я ж циклом по ней прохожусь
88 Ёпрст
 
02.02.12
13:48
(87) И в каком месте цикл по строкам счета у тебя ?
Нам отсюда не видно - больше кода
89 lucifer
 
02.02.12
13:51
(88)ок
90 lucifer
 
02.02.12
13:55
дог.найтидокумент(табл.получитьзначение(номстр,1));
рег = СоздатьОбъект("регистр.склады");    
скл = СоздатьОбъект("Справочник.Склады");
пер = СоздатьОбъект("Периодический");  
зпр  = СоздатьОбъект("Запрос");  
           
дог.выбратьстроки();
Пока Дог.Получитьстроку() = 1 Цикл  
Если дог.Вид()=глсчет Тогда
пер.ИспользоватьОбъект("производитель",наименование);
Если пер.ЗначениеНаДату(ТекущаяДата()).код=3 Тогда  
скл.найтипокоду(9);
иначе              
скл.найтипокоду(глсклад);    
КонецЕсли;
скл=скл.ТекущийЭлемент();
товр=дог.наименование.ТекущийЭлемент();
КолО = рег.СводныйОстаток(скл,товр,,,,,сотрудник,"кол"); //сотрудник - это реквизит в заявки (тек. док.)
Если (КолО<дог.Кол)и(число(дог.наименование.родитель.код)<>9) Тогда   // 9 - код группы уплотнители
Сообщить("Не хватает товара "+дог.наименование+" ("+Строка(дог.наименование.код)+")
   |на складе "+Строка(скл)+"
   |у сотрудника "+Строка(сотрудник));
СтатусВозврата(0);
           Возврат;
КонецЕсли;  
конецесли;
конеццикла;
91 Ёпрст
 
02.02.12
14:08
(90) тихий ужас
92 Ёпрст
 
02.02.12
14:09
пер.ИспользоватьОбъект("производитель",наименование);
наименование - это что ?
93 Ёпрст
 
02.02.12
14:11
ну и далее,

Сообщить(скл.Выбран());
Сообщить(дог.наименование.Выбран());
Сообщить(сотрудник.Выбран())
94 lucifer
 
02.02.12
14:19
(92) это реквизит табл. части дог, тип справочник товары
сообщить все 3 вывели 1
95 Ёпрст
 
02.02.12
14:23
>>>это реквизит табл. части дог ????

Это как ?
96 lucifer
 
02.02.12
14:36
97 Ёпрст
 
02.02.12
14:55
И ? какое отношеие ЭТо имеет к
пер.ИспользоватьОбъект("производитель",наименование);

Наименование - ЭТО что здесь ?

ТЫ этот есь код ГДЕ пишешь ?
М модуле формы докумета ?
В отчет ?
Еще гдее ?
98 Jaffar
 
02.02.12
14:57
(97) кажется в модуле формы документа - при подборе товара...
99 Mikeware
 
02.02.12
14:58
(97) Ты чо, нипанимаешь?
этот код он пишет В ФОРУМЕ!!!
100 Ёпрст
 
02.02.12
15:00
сотко!

(99) хрен знает, я вообще не догоняю, как ТАК можно кодить
101 Ёпрст
 
02.02.12
15:00
ведь кто-то же потом будет всё переделывать
102 Mikeware
 
02.02.12
15:04
(100) Причем больше года...
103 lucifer
 
02.02.12
15:10
(97) в модуле формы документа заявка, в ней нажимается кнопка выбрать счет,
идет выборка счетов по покупателю что указан в счете и еще по кой каким значениям, те счета что находятся выводятся в ТЗ сотрудник выбирает счет из ТЗ и уже в этом счете проходимся циклом по табличной части. Наименование это реквизит табличной части счета которого выбрал сотрудник из ТЗ имеет тип справочник.товары (я хз как еще понятней объяснить)
в этом условии я проверяю если код у производителя в тек. товаре (производитель периодический) = 3 то это 1 склад, иначе другой.
Вы не на том внимание заостряете, я еще вчера первым делом проверил склад правильный выбирается или нет, правильный!
(100) "ведь кто-то же потом будет всё переделывать"
этот кто-то Я. Не я строил архитектуру конфигурации, это все писалось до меня.
104 lucifer
 
02.02.12
15:10
(103)
"по покупателю что указан в счете "
не в счете а в заявке
105 Ёпрст
 
02.02.12
15:13
(103) т.е Наименование - это реквизит заявки ? И реквизит чего Это ? Шапки ? Табличной части документа ? Какого он типа ?
106 Mikeware
 
02.02.12
15:14
(105) табчасть, Справочник.Товары :-)))
107 Ёпрст
 
02.02.12
15:15
(106) не-не-не.. так слишком очевидно!
108 Voronve
 
02.02.12
15:16
(0) Может специалиста пригласить ?
109 lucifer
 
02.02.12
15:19
тааак да я не прав, надо так
пер.ИспользоватьОбъект("производитель",дог.наименование);
но это лиж имело б разницу если у нас склад был бы 9 (код)
а это редко бывает, восновном глсклад
и даже если условие всегда переходило на иначе, в данном случаи роли не играет, склад был правильный
110 lucifer
 
02.02.12
15:21
исправил, та же байда, что подтверждает мои слова (109)
111 Эльниньо
 
02.02.12
15:27
"это лиж" - вообще в мемориз.
Или это олбанский?
112 lucifer
 
02.02.12
15:28
(111) ну если нечего сказать по сабжу, что писать-то ?
113 Эльниньо
 
02.02.12
15:29
(112) Просто пытаюсь понять "это лиж имело 6 разницу"
114 Jaffar
 
02.02.12
15:33
(113) телепатирую: в переводе на русский, видимо, означает "имело бы разницу лишь в случае ..."
ЗЫ: "в данном случаи" - не на много лучше...
115 Ёпрст
 
02.02.12
15:37
Так..
Что сообщает это:
Сообщить(скл.найтипокоду(глсклад));
116 lucifer
 
02.02.12
15:40
(115) сообщает 1
117 Ёпрст
 
02.02.12
15:47
Сообщить(дог.наименование.Вид()) ?
118 Ёпрст
 
02.02.12
15:48
И это, что сейчас "не работает"?
119 lucifer
 
02.02.12
15:50
(117) Товары
(118) нет
120 viktor_vv
 
02.02.12
15:56
Командир :  Приборы ?
Штурман  : 60.
Командир : Что 60 ?
Штурман  : А что приборы ?

:)
121 Ёпрст
 
02.02.12
16:03
(119) ок

Если смотреть тут

Рег = создатьОбъект("Регистры");
РегОст = Рег.Склады;
ТЗ=СоздатьОбъект("ТаблицаЗначений");
РегОст.ВыгрузиьтИтоги(ТЗ);
ТЗ.ВыбратьСтроку()


есть останки нужные по твоим измерениям?
122 lucifer
 
02.02.12
16:25
(121) Поле агрегатного объекта не обнаружено (ВыгрузиьтИтоги)
123 Ёпрст
 
02.02.12
16:26
(122) ВыгрузитьИтоги
124 lucifer
 
02.02.12
16:36
(121) да есть
125 Ёпрст
 
02.02.12
16:38
теперь сверни эту ТЗ по нужным измерениям (те которые склад тоар сотрудник).. есть то, что ты туда пихаешь в метод сводный остаток ?
И количество остатка совпадает ?
126 lucifer
 
02.02.12
16:40
что интересно, у меня в коде сначала выполняется запрос (через запрос работает), проверяется что бы товара было достаточно если да строка добавляется, после запроса я вывожу
КолО = рег.СводныйОстаток(скл,товр,,,,,сотрудник,"кол");  
Сообщить(КолО);
просто для наглядности.
когда первый раз я выбираю счет в ТЗ выполняется запрос,
Сообщить(КолО); возвращает 0
товар добавляется (т.к. запрос работает нормально и через запрос кол-во правильное можно получить)
и запускаю эту процедуру повторно (позиция уже добавлена в заявку)
со второго раза
Сообщить(КолО);
возвращает правильное значение, почему так не пойму. Могу видео даже отснять для наглядности.
127 Ёпрст
 
02.02.12
16:43
(126) не надо видео, нужно просто задавать правильные Имена переменным, отличными от идентификаторов Этого документа
128 lucifer
 
02.02.12
16:49
я сделал так (вместо сворачивания)
Пока тз.ПолучитьСтроку()=1 Цикл  
Если ПустаяСтрока(тз.товар)=1 Тогда  
Продолжить;
КонецЕсли;
Сообщить(строка(тз.товар)+" ("+строка(тз.товар.код)+") "+строка(тз.сотрудник)+" "+строка(тз.склад)+" "+Строка(тз.кол));
КонецЦикла;

и поиском по коду товара нашел нужный, да все как в отчете, остаток верный
129 Ёпрст
 
02.02.12
16:51
(128) прям так и руками посчитал все строки с совпадающим набором измерений в окошке сообщения ?
130 lucifer
 
02.02.12
16:55
а там по нужному сотруднику значение рябом, в одной строке 1 в др. 13
получается правильно, у него сальдо 14
131 lucifer
 
02.02.12
16:55
*рядом
132 Ёпрст
 
02.02.12
17:04
(130) значит, в метод сводный Остаток ты кидешь "не те же самые значения"
133 lucifer
 
02.02.12
17:09
да те же.
вот почему тогда это:
КолО = рег.СводныйОстаток(скл,товр,,,,,сотрудник,"кол");  
Сообщить(КолО);                       Сообщить(рег.Остаток(скл,товр,,,,,сотрудник,"кол"));
выводит
КолО - 0
рег.Остаток() - 13
ну почему 13 объяснимо, потому что 1 штука лежит еще по 3-му измерению, а у 13 3-е изм. пустое.
Но выводит же.
134 Ёпрст
 
02.02.12
17:11
а так что кажет ?
Сообщить(рег.СводныйОстаток(скл,товр,,,,,сотрудник,"кол"));
135 lucifer
 
02.02.12
17:13
о епт... работает
136 lucifer
 
02.02.12
17:13
вот дурак, надо было сразу так проверить
137 Ёпрст
 
02.02.12
17:16
(135) :)
тепереча смотри, что за реквизит формы у тебя с идентификатором КолО
138 Jaffar
 
02.02.12
17:18
(137) контрагент. или валюта например :-)
139 Ёпрст
 
02.02.12
17:19
(138) не.. это слишком просто
:)
140 lucifer
 
02.02.12
17:21
да мля дурак, из-за невнимательности и вас мучал столько времени
141 Эльниньо
 
02.02.12
17:25
(140) Ну раз осознал, покаялся - нещитово.
Тока больше так не делай.