Bug 3596

Summary: Падает расчет зарплаты
Product: SELTA@Etersoft Reporter: Alexey Vtorov <root>
Component: ODBC-драйверAssignee: Станислав Коробейников <stas>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P2 CC: goga, lav, shan
Version: 1.0.5   
Target Milestone: версия 1.0.5   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3166    

Description Alexey Vtorov 2009-03-03 18:00:44 MSK
Имеем конфигурацию "Зарплата и Кадры" от АВРО-БУС. На Postges 8.2.4-alt1e6 и selta 1.0.4 все работает. Перешли на postgres 8.3.5-alt1e1 и 8.3.6-alt2e1 (пробовали оба, с вашего сайта) и selta 1.0.5. Конфигурация загружается, но при попытке пересчета зарплаты за любой месяц имеем фатальную ошибку. В логах postgres это выглядит так:

---
ERROR:  could not find member 1(16391,16391) of opfamily 16594
STATEMENT:  DECLARE dyn_cur_12429_0242A3D8 SCROLL CURSOR WITH HOLD FOR SELECT SC121.DESCR, SC121.PARENTID, CJ1752.IDS, CJ1752.RESULT, _1SCONST1.VALUE, _1SCONST2.VALUE, SC121.PARENTID, CJ1752.RESULT FROM CJ1752 LEFT OUTER JOIN SC121 ON CJ1752.IDS=SC121.ID LEFT OUTER JOIN _1SCONST ON (CJ1752.IDS=_1SCONST.OBJID AND _1SCONST.ID=94 AND to_mchar((_1SCONST.DATE)::TIMESTAMP, 'yyyymmdd')::MCHAR(8)+to_mchar(_1SCONST.TIME)::MCHAR(10)=(SELECT MAX(to_mchar((DATE)::TIMESTAMP, 'yyyymmdd')::MCHAR(8)+to_mchar(TIME)::MCHAR(10)) FROM _1SCONST WHERE ID=94 AND OBJID=CJ1752.IDS AND (DATE<'20090131' OR DATE='20090131' AND TIME<=936600000)) AND _1SCONST.DOCID=(SELECT MAX(DOCID) FROM _1SCONST _1SCONST_OTHER1 WHERE ID=94 AND OBJID=CJ1752.IDS AND _1SCONST.DATE=DATE AND _1SCONST.TIME=TIME)) LEFT OUTER JOIN _1SCONST _1SCONST1 ON (_1SCONST.VALUE=_1SCONST1.OBJID AND _1SCONST1.ID=364 AND to_mchar((_1SCONST1.DATE)::TIMESTAMP, 'yyyymmdd')::MCHAR(8)+to_mchar(_1SCONST1.TIME)::MCHAR(10)=(SELECT MAX(to_mchar((DATE)::TIMESTAMP, 'yyyymmdd')::MCHAR(8)+to_mchar(TIME)::MCHAR(10)) FROM _1SCONST WHERE ID=364 AND OBJID=_1SCONST.VALUE AND (DATE<'20090131' OR DATE='20090131' AND TIME<=936600000)) AND _1SCONST1.DOCID=(SELECT MAX(DOCID) FROM _1SCONST _1SCONST1_OTHER1 WHERE ID=364 AND OBJID=_1SCONST.VALUE AND _1SCONST1.DATE=DATE AND _1SCONST1.TIME=TIME)) LEFT OUTER JOIN _1SCONST _1SCONST2 ON (_1SCONST.VALUE=_1SCONST2.OBJID AND _1SCONST2.ID=367 AND to_mchar((_1SCONST2.DATE)::TIMESTAMP, 'yyyymmdd')::MCHAR(8)+to_mchar(_1SCONST2.TIME)::MCHAR(10)=(SELECT MAX(to_mchar((DATE)::TIMESTAMP, 'yyyymmdd')::MCHAR(8)+to_mchar(TIME)::MCHAR(10)) FROM _1SCONST WHERE ID=367 AND OBJID=_1SCONST.VALUE AND (DATE<'20090131' OR DATE='20090131' AND TIME<=936600000)) AND _1SCONST2.DOCID=(SELECT MAX(DOCID) FROM _1SCONST _1SCONST2_OTHER1 WHERE ID=367 AND OBJID=_1SCONST.VALUE AND _1SCONST2.DATE=DATE AND _1SCONST2.TIME=TIME)) WHERE CJ1752.PERIOD='20090101M'
ERROR:  cursor "dyn_cur_12429_0242a3d8" does not exist
STATEMENT:  CLOSE dyn_cur_12429_0242A3D8
---

Что делать?
Comment 1 Alexey Vtorov 2009-03-05 09:15:20 MSK
Дополнительная информация.

Только что проверил - selta 1.0.5 и postgres 8.2.4 - все работает. То есть дело в новой версии postgres.
Comment 2 Станислав Коробейников 2009-03-05 09:51:36 MSK
Да, скорее всего происходит из-за http://bugs.etersoft.ru/show_bug.cgi?id=3601
Comment 3 Alexey Vtorov 2009-03-05 10:43:11 MSK
А меня туда не пускают :(

You are not authorized to access bug #3601. 
Comment 4 Vitaly Lipatov 2009-03-06 00:29:44 MSK
(In reply to comment #3)
> А меня туда не пускают :(
> 
> You are not authorized to access bug #3601. 
Доступ сделали.
Comment 5 Станислав Коробейников 2009-03-27 12:28:56 MSK
Истпривил так же, как и в http://bugs.etersoft.ru/show_bug.cgi?id=3560. Работать будет.