Имя: Пароль:
1C
1C 7.7
v7: Журналы расчетов. Мне кажется или...
0 Lexxxxx
 
13.01.12
15:31
Можно получать разные результаты расчетов при интерактивном расчете по правой кнопке "Рассчитать объект" и при программном расчете того же объекта документом "Расчет ЗП"?
1 Lexxxxx
 
13.01.12
15:32
Нечаянно создал тему не в той ветке! Нужно в v7! Перенести кто нибудь может?
2 Naumov
 
13.01.12
15:34
вообще вызывается один и тот же метод одного и того же объекта.
Результат не должен быть разным.
3 filh
 
13.01.12
15:35
Чего?
4 NWsFF
 
13.01.12
15:40
Может, если кто-то параллельно сидит и меняет какие либо данные в базе для расчета )
Или кто-то допилил фичу, которая работает на только при вызове из формы
5 zak555
 
13.01.12
15:41
да
6 zak555
 
13.01.12
15:41
дело в вирусах
7 zak555
 
13.01.12
15:42
8 Lexxxxx
 
13.01.12
15:46
Да, не. Похоже фокус действительно связан с тем, что написано в модуле документа расчет ЗП. Хотя я уже модуль расчета сократил до Результат = 1000; У человека есть две записи по НДФЛ в декабре. Одна внесена документом расчет ЗП за октябрь и имеет красную галочку Перерасчет. Вторая внесена расчетом ЗП за декабрь. Если рассчитывать интерактивно получаем один результат по записи перерасчету. А программно другой. Не пойму в чем дело?!
Авиры нету у нас.
9 zak555
 
13.01.12
15:47
(8) никакого антивиря нет ?
10 Lexxxxx
 
13.01.12
15:50
(9) Кашперовский.
11 Lexxxxx
 
13.01.12
15:54
Поясните кто нибудь толком, как влияет на результат расчета признак Перерасчет записи ЖР? Есть две записи по НДФЛ, первая перерасчет, вторая обычная.
Текст модуля расчета:
Результат = 1000;
При расчете интерактивно в первой записи получаем результат (примерно) 750.
второй 1000.
При расчете программно в первой записи получаем результат (примерно) 950.
второй 1000.
Как так?!
12 zak555
 
13.01.12
15:55
(10) удали и проверь
13 zak555
 
13.01.12
15:55
(11) у меня была аналогичная херня : отладчик показывал разное на одной точке
14 Lexxxxx
 
13.01.12
16:00
(12) Не могу, дофига людей на сервере сидит. Могу поднять виртуалку, но это долго.
Так вот в том-то и дело что отладчик при выходе из поцедуры  ПровестиРасчет() показывает Результат = 1000, а вот потом уже глядя в журнал мы видим, что запись перерасчета уменьшена, и при чем если  ПровестиРасчет()вызывалась по правой кнопке, то на одну сумму, а если программно методом .Расчитать(), то на другую. Вычитание происходит уже где-то внутри платформы!
15 zak555
 
13.01.12
16:02
(14) сделай так :
выдели запись и несколько раз её подряд пересчитай
результат будет один и тот же ?
16 Lexxxxx
 
13.01.12
16:04
(15) Да.
17 zak555
 
13.01.12
16:06
(16) показывай темом
18 zak555
 
13.01.12
16:06
*тимом
19 Lexxxxx
 
13.01.12
16:14
(18) Тож пока не могу. Не против если через часок?
20 zak555
 
13.01.12
16:15
(19) хз, я на "чумаданах" - жду
21 Lexxxxx
 
13.01.12
16:17
(20) ща, 5 мин. А как нам явками паролями обменяться?
22 zak555
 
13.01.12
16:17
(21) в аську пиши
23 Lexxxxx
 
13.01.12
16:18
(22) нету аськи, скайп есть и электропочта.
24 filh
 
13.01.12
16:20
(23) выкладывай тут, делов то :)
25 zak555
 
13.01.12
16:23
(23) мыло
26 Lexxxxx
 
13.01.12
16:30
27 zak555
 
13.01.12
16:33
(26) я уже тю-тю =)
28 Lexxxxx
 
13.01.12
16:34
(27) Дык может позже?
29 zak555
 
13.01.12
16:37
(28) возможно, но не обещаю
30 Lexxxxx
 
13.01.12
16:37
И все таки, кто знает как платформа обращается с записями, имеющими признак Перерасчет = 1?!
31 Lexxxxx
 
13.01.12
18:22
Выяснил еще одну интересную деталь! Если вот такой код:

       ОчиститьОкноСообщений();
   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
   //ЖР.ВыбратьЗаписиПоОбъекту(Сотр, Дата1, Дата2);
   ЖР.ВыбратьПериодПоОбъекту(Сотр, ДатаДок);
   Пока ЖР.ПолучитьЗапись() = 1 Цикл
       ЖР.Рассчитать();
       Сообщить("Расчитывается " + ЖР.ВидРасч + " Результат = " + ЖР.Результат, "I");
   КонецЦикла;
   ЖР = 0;

поместить в обработку, то результаты ее выполнения для записи - перерасчета будут равны тем, которые получаются при интерактивном расчете по ПКМ в ЖР.
Если этот же код поместить в модуль документа (я создал новый вид документа) то результаты его работы для записи - перерасчета будут равны результатам документа "Расчет ЗП". Это глюк такой?!
32 ТакВотЖе
 
13.01.12
18:50
конфа сильно не типовая?
33 Lexxxxx
 
13.01.12
19:55
(32) Уже да.
Вот что еще интересно, в типовой (ЗиК для Украины) в документе "Расчет ЗП" есть галочка "Рассчитать записи жр", но она скрыта! И единственная возможность рассчитать записи жр есть только по кнопке "Расчитать все" в форме ЖР. ИМНО не зря они галочку скрыли! Видать знали о глюках! И вообще у меня складывается впечатление, что журналы расчетов в семерке вещь довольно глюковатая. Например зафиксирован случай, когда при программном расчете из документа записи остаются нерасчитанными, если по логике работы модуля расчета не происходит присвоения значения атрибуту Результат. Из-за чего приходилось в начале модулей, в которых это возможно, писать костыль вида Результат = Результат;
34 ТакВотЖе
 
13.01.12
20:01
ничего не могу сказать по поводу Украины, в российской зарплате никаких глюков нет.
журналы расчетов в семерке - вещь абсолютно не глюковатая)
наверное таки скорее проблема с кривизной рук у писателей конфы.
35 Lexxxxx
 
15.01.12
10:10
(34) Как Вы считаете, поведение описанное в (31) является нормальным? Если нет, то какие проблемы с руками писателей конфы могли вызвать такое?
36 Lexxxxx
 
16.01.12
11:45
(up)
37 zak555
 
17.01.12
14:16
и ?
38 Lexxxxx
 
17.01.12
18:29
(37) Да пока убрали из документа "РасчетЗП" пимпочку "Рассчитать записи" и приладили обработку для перерасчета записей раздельно по подразделениям. Однако причина так и не найдена.
39 mdocs
 
17.01.12
18:37
Удалить запись ндфл перерасчета октября. Зачем оно надо не понятно - ндфл считается накопительным сначала года.
40 mdocs
 
17.01.12
18:41
А причина разных результатов в одинаковых приоритетах расчета двух конкурирующих записей (использующих при расчете результаты друг друша) - это очевидно.
41 mdocs
 
17.01.12
18:42
Хотя для Украины... НДФЛ тоже накопительный с начала года?
42 Lexxxxx
 
17.01.12
18:58
(39)Нельзя уже открыть октябрь и ноябрь.
(40) Можно подробней? Почему при выполнении кода из документа результат один, а при выполнении того же кода из обработки результат другой.
43 mdocs
 
18.01.12
01:45
Скачай ЖР_редактирование и удали. Но это совет для России. С Ураиной я не работал.
>Можно подробней? Почему при выполнении кода из документа результат один, а при выполнении того же кода из обработки результат другой.
Здесь важен порядок расчета записей. Обычно он идет по приоритету видов расчета. А тут у двух записей приоритет одинаковый и мало того, они используют результаты друга. В итоге порядок расчета может быть различным. Наверное так.
А может просто руками исправить результат и париться?
44 Lexxxxx
 
18.01.12
10:02
(43)
Процедура ПровестиРасчет()  
   НалогНаДоход = 1000;
       Результат = НалогНаДоход;
КонецПроцедуры

Как они при таком модуле расчета могут использовать друг друга?

Руками конечно можно, только вот сейчас они ошибки эти нашли только благодаря тому, что в старой системе расчета ЗП результат был иным. Когда ее выведут из эксплуатации сравнивать будет не с чем и ошибки останутся незамеченными.
45 mdocs
 
18.01.12
10:08
(44) Сумма из ниоткуда взять не может. Например в модуле документа может быть написано ЖР.УстановитьРеквизит("Результат",250) ну или типа того. Я не знаю эту конфигу.
46 Lexxxxx
 
18.01.12
10:34
(45) При чем тут модуль документа?! Прочтите внимательно (31)! Код в нем это и есть весь код модуля документа/обработки. А в (44) весь код модуля расчета. Если стать на него отладчиком на строку КонецПроцедуры, то и при расчете из документа, и при расчете из обработки имеем Результат = 1000. А вот в самом журнале, если глазами в форму посмотреть, после документа написано 1000, а после обработки 7хх.хх. Т.е. перерасчет проводит уже сама платформа!
47 Lexxxxx
 
18.01.12
10:37
Ранее, до того как я поудалял почти все документы документы за месяц, при расчете из документа в форме журнала получалось 9хх.хх, а при расчете из обработки 7хх.хх. что говорит нам о том что платформа перерасчитывает что-то там внутри после ПровестиРасчет() в обеих случаях, но по разным алгоритмам.
48 mdocs
 
18.01.12
10:39
Алгоритм в модуле вида расчета. Госпади да удали ты эти перерасчеты))
49 mdocs
 
18.01.12
10:40
За один месяц должна остаться одна запись ндфл, если они в пределах одного года.
50 Lexxxxx
 
18.01.12
10:42
(48) А что мне сказать расчетному отделу?! Ведь правильный результат получается если записей две, и они расчитаны интерактивно или обработкой. А в следующих периодах мне тоже бегать удалять? А как правиотные результаты получить, не подскажете?