Имя: Пароль:
1C
1C 7.7
v7: ТиС итоги по регистрам
,
0 _alex_mst_
 
22.10.12
15:38
Уважаемые, в чем разница итогов полученных методом "СводныйОстаток" и итогов полученных через запрос по регистру. почему они отличаются? Пересчет базы не предлагать - сутки считалось - не пересчиталось )))
Итог полученный через запрос - верный, а вот другой другую цифру кажет
1 _alex_mst_
 
22.10.12
15:39
не в ту ветку ушло....
2 _alex_mst_
 
22.10.12
15:39
вопрос по 7-ке
3 Mikeware
 
22.10.12
15:39
Соотношение радиусов, наверное...
4 _alex_mst_
 
22.10.12
15:41
каких радиусов?! ))
5 aka AMIGO
 
22.10.12
15:42
"СводныйОстаток" - смотри, какие у тебя параметры в запросе по остатку
6 Mikeware
 
22.10.12
15:42
Отношение радиуса кривизны рук к радиусу кривизны извилин стремится к нулю...
7 dk
 
22.10.12
15:43
что такое ТА в курсе?
8 _alex_mst_
 
22.10.12
15:43
(6) ты такой умный - тебе череп не давит?!
9 _alex_mst_
 
22.10.12
15:43
(7) в курсе
10 aka AMIGO
 
22.10.12
15:43
+5 ну, там фирма, склад, номенклатура..

временный расчет регистра делал?
11 _alex_mst_
 
22.10.12
15:45
(5) - измерения стоят все 4 из 4-х возможных, ресурс 1, другие документы нормально обрабатываются, вот только с одним заморочка.... после манипуляций с ТА - док нормальные движения сделал по регистру, но вот почему то нач.остаток документ неверно получает через сводныйОстаток, а вот обработка REGPRINT - всё нормально показывает
12 1Сергей
 
22.10.12
15:47
(11) код показывать будем или дальше в телепатов поиграем?
13 _alex_mst_
 
22.10.12
15:47
(10) нет, подскажи как его делать?
14 aka AMIGO
 
22.10.12
15:49
(13)так вот в документе-то он и делается! Либо на дату документа, либо на позицию документа - посмотри по коду модуля, да в отладчике формулы подставь в табло
отладчик - хорошая штука
15 aka AMIGO
 
22.10.12
15:50
+14 какой документ?
16 _alex_mst_
 
22.10.12
15:51
???????????? = ?????????????("????????");
??????????? = ????????????.??????????????????;
????????????.????????????????????(???????????????());
?????????????????? = ???????????.??????????????(?????,?????,????????????,???????????????,"??????????");
17 _alex_mst_
 
22.10.12
15:51
оп..
18 aka AMIGO
 
22.10.12
15:52
(16)язык на компе поставь RU, потом копипасть
19 1Сергей
 
22.10.12
15:52
(17) на русский переключись, и там и тут
20 _alex_mst_
 
22.10.12
15:53
как всё хитрог то.. ))) спасибо за подсказку (19)

ВремРегистры = СоздатьОбъект("Регистры");
ВремОстатки = ВремРегистры.ОстаткиРезервуаров;
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
ОбъемНаНачалоСмены = ВремОстатки.СводныйОстаток(Фирма,Склад,Номенклатура,НомерРезервуара,"Количество");  

документ не типовой
21 _alex_mst_
 
22.10.12
15:54
и вот ОбъемНаНачалоСмены - меньше, чем "Количество" с теми же измерениями в обработке REGPRINT
22 aka AMIGO
 
22.10.12
15:54
(20)так вот, в REGPRINT тоже на позицию документа сделай отчет
23 aka AMIGO
 
22.10.12
15:55
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент()); - а ты на дату делаешь.. отсюда не видать, на какую, сколь напряженно ни вглядывайся в монитор :)
24 _alex_mst_
 
22.10.12
15:56
на дату 01.09, на такую же дату и REGPRINT формирую (с 01.09 по 01.09)
25 aka AMIGO
 
22.10.12
15:57
На(ТекущийДокумент()) и на дату - видишь разницу?
26 1Сергей
 
22.10.12
15:57
(24) не на дату, а на позицию документа. Чуешь разницу?
27 _alex_mst_
 
22.10.12
15:58
(25) в REGPRINT'е время не указывается )))
28 aka AMIGO
 
22.10.12
15:58
(26)продолжайте, сэр! :)
я убёг :)
29 1Сергей
 
22.10.12
15:59
(28) я тоже убёг, мсье :)
30 1Сергей
 
22.10.12
15:59
(27) читай ЖКК, кароче
31 _alex_mst_
 
22.10.12
16:02
что обижаться то сразу? )) может у меня не та версия обработки?
32 Джинн
 
22.10.12
18:29
(31) Дело не в версии, дело... А в моменте времени. Ну в общем в радиусах.. Без обид.
33 Эльниньо
 
22.10.12
18:48
Думаю, что ещё несколько веток "ТиС итоги по регистрам" не помешают.
34 Злопчинский
 
23.10.12
01:36
..узкий кругозор рано или поздно превращается в точку зрения...
35 Партизан
 
23.10.12
02:11
(0) пересчет итогов в десятки раз быстрее делается через простую выгрузку-загрузку
36 _alex_mst_
 
24.10.12
13:27
(32) движения по данному регистру в указанную дату (01.09.2012) делает только один документ. других док-ов в этот день не было (смотрю по общему журналу). При этом запрос по регистру возвращает правильный начальный остаток на 01.09.2012, а вот документ при проведении и расчёте СводногоОстатка видит меньший начальный остаток. Уже сделал выгрузку-загрузку данных, документов с пустой датой нет.
37 _alex_mst_
 
24.10.12
13:28
В чем может быть дело?
38 _alex_mst_
 
24.10.12
13:29
пробовал менять время проводимого документа - и в начале дня, и в середине, и в конце - результат тот же. Повторюсь что других документов оперирующих данным регистром в этот день нет
39 _alex_mst_
 
24.10.12
13:37
база 6 гигов (на всякий случай)
40 Mikeware
 
24.10.12
13:41
(37) Сказали же уже...
41 _alex_mst_
 
24.10.12
13:51
да вроде везде уже посмотрел - ничего не помогает
42 Ёпрст
 
24.10.12
14:01
сделай временный расчет на дату, для начала, а не на позицию дока - потом ужо сравнивай с регпринтом
43 _alex_mst_
 
24.10.12
14:05
(42) пробовал - результат тот же - СводныйОстаток меньше чем начальный остаток по запросу
44 Ёпрст
 
24.10.12
14:08
(43) и фильтры в запросе прям совпадают ?
45 Ёпрст
 
24.10.12
14:09
и.. какой остаток смотришь в заросе, конечный или начальный ?
:)
46 _alex_mst_
 
24.10.12
14:10
(44) да, 4 измерения - одни и те же элементы справочников, - и в запросе и в док-те одинаковы. Ресурс "количество".
(45) НО и КО совпадают, т.к. в эту дату движений не было по регистру - движение делает документ, который при проведении начинает видеть не правильный остаток
47 Ёпрст
 
24.10.12
15:17
(46) дык если останки совпадают, что тебе еще надбно ?
48 _alex_mst_
 
24.10.12
15:33
не совпадает остаток по запросу и остаток полученный методом "СводныйОстаток(измерения, ресурс)", в документе используется последний. НО и КО - получены из запроса.
49 _alex_mst_
 
24.10.12
15:34
ВремРегистры = СоздатьОбъект("Регистры");
ВремОстатки = ВремРегистры.ОстаткиРезервуаров;
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
ОбъемНаНачалоСмены = ВремОстатки.СводныйОстаток(Фирма,Склад,Номенклатура,НомерРезервуара,"Количество");

ОбъемНаНачалоСмены < НО(по запросу)
НО(по запросу) - верный
50 Ёпрст
 
24.10.12
15:43
(49) :)
опять 25

У тя сводный остаток на позицию документа, запрос на дату, ты разницу понимаешь или нет ?
51 Mikeware
 
24.10.12
15:45
(50) он утверждает, что у него движений по этому регистру за день больше нет...
52 Ёпрст
 
24.10.12
15:48
ну напиши так тогда:

Запрос.Выполнить("
|Период с (ТекущийДокумент()) по (ТекущийДокумент());
|Количество = регистр.ОстаткиРезервуаров.Количество;
|ВыбФирма= регистр.ОстаткиРезервуаров.Фирма;
|ВыбСклад= регистр.ОстаткиРезервуаров.Склад;
|ВыбНоменклатура= регистр.ОстаткиРезервуаров.Номенклатура;
|ВыбНомерРезервуара= регистр.ОстаткиРезервуаров.НомерРезервуара;
|Функция КонОст= КонОст(Количество);
|Условие (ВыбФирма = Фирма);
|Условие (ВыбСклад= Склад);
|Условие (ВыбНоменклатура = Номенклатура);
|Условие (ВыбНомерРезервуара= НомерРезервуара);

");
Сообщить(Запрос.КонОстОст);
53 _alex_mst_
 
24.10.12
15:52
методом тыка нашёл что если воткнуть строчку
ВремОстатки.ВременныйРасчет(1);
перед ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
то остаток отображается верный, но если это изменение ввести в обработку проведения (а не только в процедуру проверки перед записью док-а) там многократно (в цикле) используется ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент()), но для другого регистра проведение док-а теперь тормозит.

синтаксис (49) вообще правильный?
54 Ёпрст
 
24.10.12
15:59
(53) >>>там многократно (в цикле) используется ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент())

за это расстрел на месте.
55 Ёпрст
 
24.10.12
16:00
открыть наконец типовой Тис и посмотерть там глДвижениеПоПартиям и по останкам
56 _alex_mst_
 
24.10.12
16:03
ок, Спасибо, Ёпрст4!
буду всё переделывать на запросы, видимо пред.автор чего-то не предусмотрел...
57 Ёпрст
 
24.10.12
16:03
(56) не надо переделывать на запросы, если только они не прямые.
58 Ёпрст
 
24.10.12
16:04
нужно всего лишь выставить нужные фильтры и один раз сделать временный расчет итогов, если он НеобХодим, затем выгрузить итоги в ТЗ и уже потом обход этой тз в поиске останков.
59 _alex_mst_
 
24.10.12
16:10
ВремРегистры = СоздатьОбъект("Регистры");
ВремОстатки = ВремРегистры.ОстаткиРезервуаров;
ВремОстатки.ВременныйРасчет(1);
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
ОбъемНаНачалоСмены = ВремОстатки.СводныйОстаток(Фирма,Склад,Номенклатура,НомерРезервуара,"Количество");

так работает, а вот как по описанию:
РегТовары = СоздатьОбъект("Регистр.Товары");
РегТовары.ВременныйРасчет(1);
РегТовары.РассчитатьРегистрыНа(<ГраницаРасчета>,<ГрафаОтбора>) - тут пишет поле агрегатного объекта "РассчитатьРегистрыНа" не обнаружено

как нужно сделать?
60 Ёпрст
 
24.10.12
16:14
(59) :)
открой типовой ТиС..там всё есть.
А так, прежде чем делать ВремРегистры.РассчитатьРегистрыНа
нужно поставить фильтры (у тебя как минимум на склад и фирму)
+ проверить ИтогиАктуальны()
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой