Имя: Пароль:
1C
1С v8
Проблема "В данной транзакции уже происходили ошибки"
0 darth Fiery
 
15.05.17
11:16
Доброе время суток.
Не так давно в системе начали происходить следующие ситуации:
- пользователь, запускающий сеанс "Предприятие" получает ошибку на то, что система не может получить значение константы (подробного текста нет, но суть похожа на пример, расположенный ниже) и предлагает завершить работу.

- при работе в системе только что зашедший пользователь и начавший работать с каким-либо механизмом, получает уведомление, например следующего характера:
"{Форма.Форма.Форма(32)}: Ошибка при вызове метода контекста (НайтиПоКоду)
            СписокПодразделений.Добавить(Справочники.Подразделения.НайтиПоКоду("00001"));
по причине:
В данной транзакции уже происходили ошибки!"

При этом никакие транзакции еще у него не открывались и не закрывались.
Помогает перезапуск сервера 1С и СУБД. Через некоторое время проблема повторяется.
Подскажите, в каком направлении решать ?
1 МихаилМ
 
15.05.17
11:20
ознакомьтесь с правилами форума. в них есть ссылка , как задавать правильно вопросы
2 polosov
 
15.05.17
11:23
(0)   СписокПодразделений.Добавить(Справочники.Подразделения.НайтиПоКоду("00001"));

Эта та еще  быстродописка. Но если все работает периодически, то необходимо  пробовать запускаться только в толстом клиенте
3 darth Fiery
 
15.05.17
11:26
(1) Я об не спрашивал.
(2) Ну суть не в этом, работать то должно в любом случае. Это лишь пример участка на который только что получили ссылку.
4 darth Fiery
 
15.05.17
11:30
Добавлю по программной и аппаратной части:
SQL-сервер и сервер 1С Предприятия стоят на раздельных машинах под 2008-м Сервером.
СУБД - SQL Server 2014 Developer.
Платформа: 8.2.19.83.
Конфа - переписанная УТ.
5 МихаилМ
 
15.05.17
11:48
(0)
сколько рабочих процессов 1с ?
6 ptiz
 
15.05.17
12:03
(0) Заходим в конфигуратор, запускаем отладку от имени проблемного пользователя с остановкой по ошибке. Профит.
7 cons74
 
15.05.17
12:06
Погуглить про "система не может получить значение константы" не пробовали?
Варианты:
1) реструтуризацию сделать
2) в ОФ - поменяли значение функциональной опции
8 cons74
 
15.05.17
12:07
"При этом никакие транзакции еще у него не открывались и не закрывались. " - "видишь суслика? Нет. А он есть"
Транзакция есть, но не явная. И не закрылась она - вывалилась в ошибке чтения видимо. См.(6)
9 Elatiell
 
15.05.17
12:32
Ищите конструкцию Попытка...исключение...КонецПопытки
10 darth Fiery
 
15.05.17
14:33
(5) 4 процесса на несколько ИБ. На сервере 1С два восьмиядерных проца.
(6) Пробовал само собой, но суть в том, что ошибки возникают на фрагментах кода, которые безошибочны.
Пример такой "ошибочной строки" :
Константы.РежимЗавершенияРаботыПользователей.Получить()

(7) ошибка то не в том, что система не может получить значение константы, а в том, что она возникает в местах, где ошибок нет. Что гуглить-то в этом случае ? )
Реструктуризация сделана средствами скуля. Средствами 1С не получается - база большая и времени столько нет, так как компания работает 6 дней в неделю.
Что такое ОФ ?

(9) Их там нет, до мест возникновения проблем.
11 1dvd
 
15.05.17
14:35
Динамически обновляете?
12 МихаилМ
 
15.05.17
14:41
(0) добавьте процессов из расчета озу 1 (лучше 2) гига на ос
+ по 700 мег на процесс.
13 DDwe
 
15.05.17
14:42
(11) +100
14 МихаилМ
 
15.05.17
14:46
+ (12) проблема может быть в том что 1 8.2 создает пул подключений на процесс . и если на одно подключение приходится много соединений то ошибки одного соединения могут влиять на другие. соответственно такие ошибки сложно выявить, если не умееть работать с тж. сокращается частота ошибок путем увеличения числа раб.процессов.

но это для для 1с 8.2.
15 darth Fiery
 
15.05.17
16:11
(11) Не обновляем.
(12) Не до конца понял, какая механика добавления рекомендуется.
Вот к примеру мой случай: у меня сервер 1С х64 и 96Гб ОЗУ.
Вообще у Гилева или Инфостарте читал, что 4 процесса - это самое оптимальное, если памяти 96 и более и более 12 ядер на сервере.

(14) Как вариант. Еще у нас иногда стала выходить ошибка у пользователей: "Рабочий процесс не найден", может имеет с этим связь.
Как раз прирост пользователей был месяц назад. Не сказать, чтобы существенный, всего человек 30.