metaclass: (Default)
[personal profile] metaclass
А вот скажите мне, как истинные оперденьщики, модно ли сейчас делать в оперденях функцию "откатить изменения в паре сотен документов на неделю назад, потому что пользователи сошли с ума и сделали что-то не то"?

Возникает такая потребность нечасто, поэтому я обхожусь старой копией БД и экспортом-импортом из нее в текущую БД, но может быть, это рукожопие за которое положено быть запсенным кахесом и давно все делают иммутабельные БД со всеми версиями происходящего и дичайшими алгоритмами отката части графа документов на предыдущую версию?

Date: 2012-09-28 06:17 pm (UTC)
From: [identity profile] falcrum.livejournal.com
А документы не уходят в сторонние системы за неделю-то? Как откатывать?

Date: 2012-09-28 06:24 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Сторонние системы тоже должны поддерживать иммутабельность и версионность!

Date: 2012-09-28 06:26 pm (UTC)
From: [identity profile] falcrum.livejournal.com
А какое им дело до твоих откатов даже в Волшебной Стране Грибов Иммутабельности? Входные контроли пройдены - всё, до свидания.

Date: 2012-09-28 07:29 pm (UTC)
From: [identity profile] rumas-d.livejournal.com
Чувствуется разработчик клиент-банка ;-)

Date: 2012-09-28 08:10 pm (UTC)
From: [identity profile] falcrum.livejournal.com
Отчего же? Общее правило как бы.

Date: 2012-09-29 06:36 am (UTC)
From: [identity profile] trueblacker.livejournal.com
помню свое недоумение, когда впервые получил мыло, в котором русскоговорящий чел по английски просил меня удалить предыдущее письмо от него же. Потом узнал, что это за него старается outlook.

Date: 2012-09-29 06:45 am (UTC)
From: [identity profile] berezovsky.livejournal.com
Поговорил с ботами? :-)))

Date: 2012-09-29 07:01 am (UTC)
From: [identity profile] trueblacker.livejournal.com
чего только не бывало. Но в тот конкретный раз удержался.

Date: 2012-09-28 06:18 pm (UTC)
From: [identity profile] vp.livejournal.com
откатить изменения все или откатить изменения какие-то определенные? если все, то это таки да, резервная копия.

Date: 2012-09-28 06:26 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Определенные. Или все. Как паук прикажет.
С кнопочкой у Главного Пользователя и подтверждением у еще более Главного Пользователя.
А резервную копию нельзя - она за подписью DBA хранится в сейфе у безопасников, которые будут неделю согласовывать доступ к ней :)

Date: 2012-09-28 06:41 pm (UTC)
ext_659950: (normal)
From: [identity profile] perplexed-bear.livejournal.com
Лет 6 назад я такое делал в системе коммерческого кредитования. Там автоматически делались сторно до даты отката (мы назвали это "размоткой "), и кредит приводился к исходному виду. А потом можно было менять события за даты в прошлом, и всё автоматически пересчитывалось, генерились корректировочные проводки с задними датами валютирования (это мы назвали "накатка").

Вроде, работает до сих пор.

Date: 2012-09-28 07:10 pm (UTC)
From: [identity profile] gds.livejournal.com
да, ровно такое же делал. Даже гуй к такому, чтобы пользователь сам выбирал, докуда "снимать провОдки".

Date: 2012-09-28 09:35 pm (UTC)
From: [identity profile] jdevelop.livejournal.com
с леджером это работает ок, а вот если там зависимости-справочники и прочее вуду, то уже ойц

особенно когда справочник отдается отдельным сервисом, который черный ящик

Date: 2012-09-28 06:31 pm (UTC)
From: [identity profile] avnik.livejournal.com
git же.
Вам и иммутабельность, и версионность и пауки.

PS appendonly еще очень можно и инстаграмно.

Date: 2012-09-28 07:15 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Вот именно. 21-й век на дворе.

Date: 2012-09-28 09:06 pm (UTC)
From: [identity profile] potan.livejournal.com
+1
Когда-то билинговые системы на RCS делали, пора на более современные технологии переходить!

Date: 2012-09-28 06:55 pm (UTC)
From: [identity profile] denisioru.livejournal.com
В опердени не бывает откатов. Документ, попавший в систему остается в ней навсегда. Коррекция выполнется новыми документами (как сторнирование в бухгалтерии).

Date: 2012-09-28 06:59 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Undo работает только в форме, которая не зарегистрирована. Всё, что попало в двойную бухгалтерию может исправляться только корректирующими проводками.

Date: 2012-09-28 07:21 pm (UTC)
From: [identity profile] lazy-flyer.livejournal.com
За попытки undo в двойной - надо сношать ломом в анус.

Date: 2012-09-28 08:15 pm (UTC)
From: [identity profile] vit-r.livejournal.com
На российских просторах встречал особое понимание термина "двойная бухгалтерия"

Date: 2012-09-29 10:52 am (UTC)
From: [identity profile] migmit.livejournal.com
Особое — это как раз здесь.

Date: 2012-09-28 07:28 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Второй пункт не совсем понятен. Это же может быть ввод первичного документа, пользователь ошибся, ввел не ту цифру. До тех пор, пока отчетный период не закрыт (или пока этот документ не стал основанием для создания других документов) - его можно исправлять.

Date: 2012-09-28 08:14 pm (UTC)
From: [identity profile] vit-r.livejournal.com
А сделал проводку в один лимон. Потом Б решает, что была ошибка и один нолик лишний.

Правильные записи:
01.01 А - приход + 1 000 000.00
10.01 Б - корректура - 900 000.00

Записи за которые могут посадить:
01.01 А - приход + 100 000

Потому как не А, не 01.01 и в промежутке могло много чего произойти.

Date: 2012-09-29 05:21 pm (UTC)
From: [identity profile] lazy-flyer.livejournal.com
Ребе, если можно исправлять - зачем тогда откат? После того, как разнесли главную книгу - любые откаты de facto являются преступлением.

Date: 2012-09-29 05:31 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Я не совсем понимаю, что значит "разнесли главную книгу".
У меня главные книги (общая и по счетам) являются отчетами (кросс-таблицей), которые создаются из проводок.
Проводки можно менять, до закрытия периода целиком, или по отдельным счетам. Т.е. пока период не закрыт - можно исправлять, после этого - сторнирование, уже в другом отчетном периоде.
История изменений проводок, само собой хранится, но неотъемлемой частью учета не является.

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

Date: 2012-09-29 05:47 pm (UTC)
From: [identity profile] lazy-flyer.livejournal.com
Ну...Грубо.
Введенные документы хранятся в журналах. Там их можно править. Потом они заносятся в главную книгу. Распихиваются по счетам, грубо. После этого - документ нерушим. Как правило закрытие периода и есть моментом внесения записей в главную книгу.
Отчёты в любом случае - вторичны. Первичны - проводки.
А меняем данные - это пиздец. Есть "Закон о бухгалтерском учёте...", где подробно расписано, что можно, а что нельзя.

Date: 2012-09-29 05:58 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да, у меня первичны проводки. И есть специально для этих целей функция "закрыть проводки от изменения".
Просто "заносятся в главную книгу" в рамках моих представлений звучит странно, как "заносятся в sql-запрос" или "заносятся в предикат".

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

Date: 2012-09-29 06:01 pm (UTC)
From: [identity profile] lazy-flyer.livejournal.com
Аха.
Я начинаю понимать, почему в РБ так популярны кастомизированные и писаные на заказ системы бухучёта.

Date: 2012-09-28 07:06 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
ещё должна быть кнопка, чтоб пространство и время сворачивались и разворачивались из нужного места, ну, чтоб наверняка

Date: 2012-09-28 07:18 pm (UTC)
From: [identity profile] x-a-e-p.livejournal.com
Ну если потребность возникает нечасто, то делать версионность смысла нету. Достаточно бекапов.

Date: 2012-09-28 08:55 pm (UTC)
From: [identity profile] chumpa.livejournal.com
такое популярно и требуется. Если готовая система (SAP, 1c) это не умеет, её ломают/"энханцируют" на предмет. Ибо нефиг.

Date: 2012-09-28 08:56 pm (UTC)
From: [identity profile] chumpa.livejournal.com
по поводу двойных проводок и пр. -- есть сторно и "красное сторно". Оба в ходу, пауки из розетки у курси.

Date: 2012-09-29 05:08 am (UTC)
From: [identity profile] rssh.livejournal.com
после закрытия периода -- только сторнирование

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

Date: 2012-09-29 05:27 am (UTC)
From: [identity profile] mudasobwa.livejournal.com
У меня была похожая задача. Я в соседней базе хранил «дельты» (ну, не дельты, а предыдущие версии, повторять систему контроля версий как-то странно) с датами (типа: doc_id, date_of_change, old_version). С индексом по дате.

Есть два варианта отката: иногда нужно, чтобы документ откатился назад, но стал «новой версией» (откат на две недели от версии 20 к версии 3 создает не версию 3, но версию 21 с содержимым 3), а иногда можно просто «вернуться к бэкапу».

Соседняя база никак не влияет на работоспособность системы без нее, пурджится по крону и позволяет элегантно откатиться куда угодно. От оригинальной базы нужен один несложный триггер со слабым приоритетом.

Date: 2012-09-29 09:06 am (UTC)
From: [identity profile] molnij.livejournal.com
в самом общем случае - только руками. ибо выясняется что в половине случаев надо откатить, в половине заодно поправить в учетных, вот тут вообще не трогать и т.п. но история всех изменений ведется. да.

Date: 2012-09-30 02:59 pm (UTC)
From: [identity profile] ng67.livejournal.com
Журнал транзакций в SQL плюс архивирование этого журнала раз в сутки.
Откатываем до резервной копии за нужный день, потом по журналу транзакций смотрим что было до нужного нам момента.

В 1С есть кстати версионирование объектов, то есть можно узнать какая сволочь поменяла дебет с кредитом.

Date: 2012-09-30 06:56 pm (UTC)
From: [identity profile] Дмитрий Васильев (from livejournal.com)
http://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_flashback.htm
http://www.postgresql.org/docs/8.3/static/contrib-spi.html#AEN107671

Date: 2012-10-01 04:35 pm (UTC)
From: [identity profile] dennab.livejournal.com
Lotus Domino?
FileNet?
IBM Content Manager?

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 11th, 2025 08:37 am
Powered by Dreamwidth Studios