Как стать автором
Обновить

Комментарии 8

В Конфигураторе же надо остановка по ошибке. Включили и ждем, пока упадёт. Зачем по шагам ходить было?

При хорошем стиле программирования так и должно быть. Но если у вас вложенные попытки - исключения, то остановка будет работать только при первой ошибке. В данном случае, запись в регистры была второй ошибкой, после какой-то незначительной ошибки, связанной толи с проверкой данных, толи еще с чем.

Проблема не во вложенных попытках как таковых. Проблема в том что транзакция испорчена. Не каждая ошибка в транзакции приведет к такому эффекту. Например, обращение к несуществующей процедуре в попытке не приведет к "протуханию" транзакции. А вот ошибки, связанные с обращением к данным - приведут, даже если исключение перехвачено.
В этом случае, любое следующее действие внутри транзакции приведет к "В данной транзакции уже происходили ошибки". Т.е. сама ошибка возникла ранее, но выстрелила в каком-то рандомном коде, который попытался выполнить действие в контексте протухшей транзакции.
Это делает дебаггинг этой ошибки одним из самых неприятных.

Полезно будет упомянуть, что на ИТС есть стандарт описывающий работу с транзакциями , рекомендую к ознакомлению.

В современном ЗУП 3.1 эта проблема решена.

Я однажды наблюдал со стороны модуль планирования на заводе, в котором была учтена посменная работа нескольких представителей (или выходцев) из двух противоборствующих банд. Их нельзя было в одном цеху ставить в одну смену, и выработку ихнюю нельзя было доверить другой банде. А вы тут про календарь какой-то, фу, нисмишнодаже.

Нетривиальная задача! А как матрица банд и их совместимость задавалась? Это ведь динамичные социальные структуры)))

Вы еще Озон с Вайлдберрис не парсили без официального API. Чувствуется, что я нанялся Шерлок Холмсом, а не программистом

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации