HighLoad ›
Боремся с Dirty read / Read uncommitted / NOLOCK при формировании отчетов в 1С:8.1, 8.2 под MSSQL ›
#17
16.08.13 17:48
(15) hogik, Иван Иванов случайно провел документ, который проводить не надо было. На следующую секунду Петя Петров сформировал отчет, который учел данные Иванова. На следующую секунду Иванов понял, что он промахнулся мышкой, после чего отменил проведение старого документа и провел совсем другой. Разве в таком случае нельзя сказать, что в отчет попали данные, которых никогда в реальной жизни не было (не на уровне данных в базе, а на уровне процесса)?
(16) а если этот заказ поставщику провели на 1 секунду позже формирования отчета? Получаем данные в отчете опять таки не те, что так же приведет к неправильному заказу.
Я просто считаю, что данная проблема высосана из пальца. Нет, я не говорю, что везде, я говорю, что это высосано из пальца в контексте отчетов. Т.к. никто не принимает решения сейчас на сейчас за доли секунд. И, например, в случае заказа товара, лицо, которое принимает решение о закупке сначала проверит количество на складе, потом проверит существующие заказы (вдруг уже заказали), потом посмотрит у какого поставщика лучше заказать и т.п. И на это все уйдет какое-то время, а не доли секунды и вероятность того, что за это время что-то изменится - на порядки больше, чем в случае с "несогласованными данными". И подобные проблемы, я считаю, может решить только запрет неоперативного проведения документов. И то, даже это в полной мере не решит эту проблему (сегодня сделали заказ, завтра его закрыли, т.к. сроки поставки не устроили). Поэтому, на мой взгляд, овчинка выделенки не стоит, в данном контексте.
ПС. Все вышесказанное ИМХО и может не совпадать с чьим-либо мнением. И я с удовольствием приму участие в дальнейшем обсуждении (если оно будет) =) .