Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Альтернатива транзакции на клиенте
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
pablo
Собственно, возникла нужда использовать некий мьютекс, доступный на клиенте. Сейчас кандидатом мне видится некая константа, но не будет ли частое изменение значения константы тормозить работу системы? Другая идея состоит в использовании для этого регистра сведений. Возможно есть какие-то более подходящие кандидаты?
logist
Ничего не понятно. Можно без абстракций описать задачу?
MATEVI
А почему константа? Константа как бы это нечто неизменное (ну или хотя бы не так часто изменяемое)
pablo
Попытаюсь без абстракций smile.gif
1. Перед сохранением документа на клиенте осуществляется
а)назначение ему номера
б)выгрузка его в единый дбф файл.
в)Если выгрузка прошла неудачно, то сохранение блокируется.
2. сохранение документа на сервере 1с

Процесс выгрузки в файл достаточно длительный (порядка 3 секунд)+ с документами такого типа работают одновременно несколько человек и из-за этого возникают ситуации, когда в дбф файл попадают записи о документе с некорректным номером (). Собственно идея алгоритма была добавление блокирующего кода (мьютекса) наподобие транзакции, но на стороне клиента.
модифицированный алгоритм:
1. Перед сохранением документа на клиенте осуществляется
а)"НачатьТранзакцию"
б)назначение ему номера
в)выгрузка его в единый дбф файл.
г)Если выгрузка прошла неудачно, то сохранение блокируется. + "ОтменитьТранзакцию"
2. сохранение документа на сервере 1с
3. После сохранения на клиенте "ЗафиксироватьТранзакцию".

Вопрос: что использовать вместо транзакции?
Zaval
Что значит "сохранение блокируется"? Пользователь, выполнив работу ждет 3 секунды и не может сохранить результаты своей работы по одной из полудесятка не зависящих от него причин?
Это какой же юзероненавистник задачу ставил? smile.gif
pablo
Сохранение блокируется с выдачей сообщения "попробуйте еще раз" smile.gif
Юзера просто хитрые: если в дбф неудачно выгрузился - их не волнует, им главное - распечатать документ. Есть у нас на работе "любимый" отдел, который максимально урезаем в возможностях.
pumbaE
Цитата(pablo @ 20.03.12, 13:48) необходимо зарегистрироваться для просмотра ссылки
Сохранение блокируется с выдачей сообщения "попробуйте еще раз" smile.gif
Юзера просто хитрые: если в дбф неудачно выгрузился - их не волнует, им главное - распечатать документ. Есть у нас на работе "любимый" отдел, который максимально урезаем в возможностях.

реквизит на документ "МожноПечатать" ? При печати проверять дополнительно его?
pablo
Особого смысла нет, поскольку все равно выгрузка в дбф организована на клиентской стороне (поскольку на серверной стороне Линукс). А ошибки с дбф случаются часто и приходится возлагать такой "контроль за ошибками" на юзеров.

Пока что мне хорошим видится вариант с регистром сведений с измерением ИмяФайла и ресурсами Заблокирован, ИмяПользователя.
Magdych
А пишут в один и тот же файл? Или каждый документ создает новый файл?
pablo
Цитата
единый дбф файл
Magdych
Сорри невнимательно прочитал. Ну так вот Вам и семафор. Пока кто-то будет писать, у Вас ошибка будет при открытии вываливаться если с полным доступом открывать.
pablo
В дбф писать возможно только при полном доступе и на такой семафор до сих пор надеялся... Но вот начали выскакивать данные, каким-то образом прошедшие мимо такого решения...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.