Created attachment 372 [details] Лог postgres Ubuntu 7.04, wine@etersoft.sql 1.0.8, selta@etersoft 1.0.2 (03/04/08), 1C 7.7.027 При попытке прервать проведение документа (по ESC, после нажатия ОК) 1С падает с сообщением: SQL State: 25P02 Native: 7 Message: ERROR: current transaction is aborted, command ignored until end of transaction block; Error while executing the query Лог postgres с момента начала проведения по момент выпадения 1С приложен.
Проблема не воспроизводится. Либо она уже исправлена в 1.0.2.test, которая сейчас выложена на ftp, либо это что-то спецефическое. Не могли бы вы переслать полный лог проблемной операции, если ошибка повторяется с новыми файлами: утилита c:\windows\system32 -> настройки ODBC драйвера в разделе Пользовательский DNS или системный DNS -> кнопка Global -> первая галочка в диалоговом окне. Спасибо.
Похоже проблема как-то обрисовалась: при отмене проведения документа вызывается откат транзакции и уничтожение курсора, который был в ней создан, а потом попытка закрытия курсора средствами ODBC, что и вызывает ошибку. Будем исправлять.
Я так понимаю что если ошибка локализована дополнительные логи уже не нужны?
Да, как только я исправлю ошибку - вышлю Вам файлы и проверим, повторяется ли ошибка.
Сори не прочитал, задублировал ошибку...
*** Bug 1666 has been marked as a duplicate of this bug. ***
Вот кстати похожий случай, система FreeBSD (№6383): "При формировании тяжелых отчетов один за другим подряд) вылетает (порой!) ошибка вида: "25P02, current transaction is aborted, commands ignored until end of transaction block" и 1С:Предприятие 7.7 SQL захлопывается. На сайте POstgresql http://archives.postgresql.org/pgsql-jdbc/2006-04/msg00002.php проблема затрагивается и предлагаются меры, но как это применить в нашем случае.... право не ведаю."
На данный момент вся проблема заключается в том, что я не могу сделать конструкцию вида: IF курсор_существует THEN закрыть_его PostgreSQL не имеет в своем языке никаких IF, а имитация через Хранимые процедуры, как я это делал для других случаев, приводит к ошибке: "внутри хранмиых процедур нельзя манипулировать курсорами". Похоже придется при закрытии курсора предварительно делать запрос о его существовании, обрабатывать его в ODBC и только после этого закрывать, будет работать чуть-чуть медленнее чем в MS SQL Server.
Андрей, приветствую. Мои извинения за некоторую бестактность, но таким образом получается, что ожидаем обновления релиза SELTA@Etersoft применяем его и вероятно проблема "25P02, current transaction is aborted, commands ignored until end of transaction block" отпадет? Ибо в остальном тестирование SELTA в предверии миграции 1С 7.7 на СУБД PostgreSQL нареканий не вызвало.
Что-то можно сделать?
selta 1.0.3 релиз от 04.07.08 Комплексная конфигурация "Демо" 4.5 релиз 7.70.483 1С вылетает по той же причине (попытка уничтожения несуществующего курсора) при попытке провести документ "Приказ о приеме на работу СТ00000002 от 11.01.01" Открыть документ. Нажать "Провести", 1С сообщит что документ не проводится, нажать "Закрыть", на запрос о сохранении документа ответить "Да". 1С вылетит по ошибке 25P02
Большая просьба отписываться о результатах здесь
В связи с http://bugs.etersoft.ru/show_bug.cgi?id=2231#c10, мне кажется все работает.