2009
5
марта
Оптимизация проведения (Ожидание захвата таблицы Журналы для начала транзакции)
марта 5, 2009 | Комментариев: 2
Бывают ситуации когда 1С с строке состояния пишет Ожидание захвата таблицы «Журналы» для начала транзакции.
Такое происходит в следствии того, что 1С не может проводить одновременно 2 документа. Сделано это специально, для того, чтобы исключить некоторые неприятные ситуации, например, чтобы 2 менеджера не продали один и тот же товар (последний) одновременно. Когда 1ый менеджер проводит документ( продает товар) второй ожидает, пока документ проведется и у него высвечивается в строке состояния сообщение «Ожидание захвата таблицы Журналы для начала транзакции«. Если интервал ожидания превышен, то выскакивает ошибка:
При выполнении транзакции произошла ошибка!Таблица: 1SJOURN
Ошибка обращения к данным при транзакции, выполняемой другим пользователем.
Повторить попытку выполнить транзакцию?
Если это происходит не часто, то в принципе ничего страшного можно работать, а вот если такое состояние возникает часто, то с этим надо что-то делать.
Авторские права на предоставленный материал принадлежат автору сайта http://extremallife.ru
Почему возникает такая ошибка и что можно сделать.
1. База слишком большая и время проведения документа велико.
2. Сервер, на котором лежит база 1С медленный (тормозной), соответсвенно документы проводятся долго.
3. В базе проводится очень много документов (например начиная от нескольких сотен в день).
4. В базе 1С работает много пользователей, которые проводят много документов.
Как с этим бороться?
Я для себя нашел такой способ, который успешно внедрил в нескольких организациях.
Дело в том, что такая ошибка в подавляющем большинстве случаев случаев возникает при проведении реализации, т.к. это самый распространенный документ для торговой фирмы.
Так вот, при проведении Реализации 1С рассчитывает достаточно много различных данных, чтобы разрешить или запретить проводить документ и тому подобное.
А потом из Обработки проведения вызывается процедура ПроведениеПоРегистрам, внутри которой происходит формирование необходимых данных для проведения по регистрам остатков, продаж, партий.

На самом деле для быстрого проведения и учета нам совсем не обязательно проводить документ по ВСЕМ регистрам. Вполне достаточно списать остатки со склада и увеличить долг контрагента.
Для Этого я написал в модуле документа еще одну процедуру, которая является копией процедуры проведениеПоРегистрам, но с вырезанным проведением по партиям.
Страницы статьи:| В Мой Мир | В FaceBook |

июня 24, 2010 at 7:29
Ну а что, делать, если в 7ке этого нет, пользователей много. Постоянно висит «Ожидание захвата транзакции». Скорость проведения увеличивается в разы (десятки раз).
Более того, можно пойти дальще и не производить расчет регистров при каждом проведении документа. Зачем? Регистры расчитаны и остатки хранятся на ТА.
июня 24, 2010 at 3:20
Интересное решение, которое с успехом применено в 1С 8.х версиях – а именно разделение на Оперативное и Неоперативное проведение