Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 00:59

Помогите разобраться

Автор sdilshod, 22 мая 2014, 08:40

0 Пользователей и 1 гость просматривают эту тему.

sdilshod

Всем привет!
Возможно тупой вопрос, но хочу в этом разобраться. Прошу не пинать

Есть управляемая приложения 8.2(файловая) . Сетевой соединение плохое с обрывами. Так вот перед запросам к серверу если соединение отсутствует выдает ошибку и соответственно нужна перезапустить или завершить приложения. Если обрыв идет во время отправки, то есть клиент отправил запрос и не получил ответ из за отсутствии соединение, то иногда приложения отрабатывает не верно(на клиенте видно что данный сохранены, а после перезапуска клиента этот же запись отсутствует).  Приведу код ниже



&НаКлиенте
Чек = Новый ТабличныйДокумент;
Если ПровестиОплату(Чек) Тогда // функцияНаСервере ПровестиОплату(Чек) записывает данный и формирует ТД
ДобавитьВСписокПродажДня();
ОбнулитьФорму();
Чек.Показать();
Иначе
Предупреждение("Не удалось произвести оплату"+"  "+ОписаниеОшибки());
КонецЕсли;



&НаСервере
Функция ПровестиОплату(ТабДокЧек)
Попытка
НачатьТранзакцию();
НовыйДокумент = Документы.Продажа.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.ДатаПродаже = ДатаПродаже;
НовыйДокумент.Сотрудник = Сотрудник;
НовыйДокумент.Сумма = Сумма;
НовыйДокумент.Магазин = ПараметрыСеанса.ТекущийМагазин;
НовыйДокумент.Записать();
СотрудникОбъект = Сотрудник.ПолучитьОбъект();
СотрудникОбъект.ОстатокЛимита = Сотрудник.ОстатокЛимита - Сумма;
СотрудникОбъект.Записать();
СформироватьЧек(ТабДокЧек, Сотрудник, Сумма);
ЗафиксироватьТранзакцию();
Возврат Истина;
Исключение
  ОтменитьТранзакцию();
Возврат Ложь;
КонецПопытки;
КонецФункции


Как быть при таких обстоятельствах?
Можно ли как-то обрабатывать отсутствии соединение в клиенте?
Как надо программировать чтоб данный показывались верно и без утечек?
Или что я делаю не так?

Заранее спасибо!






Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск