В первой части статьи был рассмотрен один из методов поддержания логической целостности данных в условиях проведения документов задним числом. Статья принесла множество откликов, наиболее интересные из которых я и собираюсь представить Вашему вниманию.
Саму проблему я второй раз описывать не буду, предполагая, что все интересующиеся предметом уже ознакомились с первой статьёй. Итак, кто и каким образом решает проблему “уплывания” итогов при нарушении хронологической последовательности событий в базе данных 1С?
Начнем с наиболее простых способов. Сергей Зима a.k.a. Winter использует вот такой метод:
- Используется штатная последовательность документов.
- В конфигурации создается специальный контрольный справочник.
- При проведении документа задним числом создается новый элемент этого справочника, в реквизиты которого записываются ссылка на документ, дата и время перепроведения, имя пользователя, и вообще любая потребная администратору информация
- Периодически (ночью) запускается служебная обработка, которая анализирует созданные за день элементы контрольного справочника и “интеллектуально” восстанавливает последовательность только по тем элементам “ключевого” справочника (в данном случае — контрагентов), документы по которым были “тронуты”.
Подобную методику, с небольшими различиями, используют многие. В данном случае объем служебных данных сравнительно невелик (контрольный справочник очищается после восстановления последовательности), никаких дополнительных вычислений в момент проведения документа не производится — как следствие, производительность системы не страдает. Принципиальный недостаток такой схемы (на мой взгляд) состоит в следующем: моменты нарушения и восстановления логической целостности данных разнесены во времени как минимум на один рабочий день (а может так получиться, что и больше). И если проведение документа задним числом вызывает сбой в партионном учете, то в течении некоторого времени система будет выдавать пользователям неверные отчеты. Что, согласитесь, не есть хорошо.
Михаил Савин и Михаил Чуриков предлагают воспользоваться методом “красного сторно” (автором метода, по всей видимости, является Лука Паччоли, но за давностью лет точно установить вряд ли возможно ;-). Суть решения такова (цитирую Михаила Савина):
Изменения в документ, нарушаюший последовательность, можно внести только единственным способом: создать его новую версию (копию) и внести исправления уже в эту новую версию документа. При проведении новая версия документа сторнирует движения старого документа (т.е. полностью повторяются движения предыдущей версии, но в ресурс записывается число с обратным знаком) и записывает новые.
Как это выглядит в отчетах. Если в первой версии док-та было указано, скажем, 10 единиц, а во второй исправлено на 12, то в отчете это будет выглядеть как две строчки: +10 (первая версия) +2 (вторая версия).
Тонкости: нумерация документов должна учитывать версии, отбор в журналах только последней версии (в т.ч. отбор по двум признакам: значение отбора+признак последней версии), сохранение истории версий, выбор даты внесения изменений (даты документа новой версии) — либо только текущим числом, либо только числом первой версии.
Плюсы. Сохраняется история всех изменений, и не только автор, дата и время, но и сами документы! Обеспечивается “гладкость” учета без необходимости в постоянных перепроведениях. Дисциплинирует пользователей. Очень хорошо подходит для использования в распределенных БД.
Минусы. Существенно увеличивается объем БД, необходимо постоянно использовать отборы в журналах. Требует отдельное решение задачи отмены проведения, пометки на удаление и снятия пометки на удаление документа — это надо проделать со всеми версиями документа. Соответственно, если мы вторично проводим такой документ после отмены проведения, надо проводить все версии в хронологической последовательности.
Возможные проблемы. Если расчет себестоимости осуществляется в момент списания товара, то использование этого метода нарушит принципы FIFO, LIFO. Изложенное выше не теория: у меня есть своя реализация этой технологии, у Михаила Чурикова — своя (разница в принципе сохранения истории версий документов). У Михаила работает более 1,5 лет (БД >8Gb), у меня чуть больше полугода (БД >1Gb).
Что можно сказать по этому поводу? Очень грамотное и технологичное решение. Но, к сожалению, оно подойдет не каждому — реализация потребует больших трудозатрат и высокой квалификации. Да и расчет себестоимости в момент списания по алгоритмам
FIFO/LIFO (с учетом данных партионного учета) используется практически повсеместно, во всяком случае, в торговле. Поэтому применять описанную методику имеет с мысл в мощных и уникальных конфигурациях, но на роль “народного решения” она не подходит.
Надежные серверы и графические станции на платформе Intel (Xeon) и AMD различного назначения. Большой выбор моделей. Сборка конфигураций на заказ. Трехлетняя гарантия, сервисное обслуживание серверов с выездом к Заказчику. Бесплатная доставка.
Монастырь Новый Иерусалим: Все о Ново Иерусалимском монастыре, экскурсии, фотогаллерея, доска православных объявлений (знакомства, трудоустройство и др.), расписание автобусов и электричек, православный чат, схема проезда до монастыря, форум, православный интернет редактор - окажет профессиональную помощь в поддержке Вашего сайта любой тематики (возможно постоянное сотрудничество) и много другой полезной информации.
Экскурсия - прогулка по храму Новый Иерусалим всего в 1 часе от Москвы. Для тех кто едет в одиночестве, вдвоем, втроем, вчетвером или семьей, уникальная экскурсия - прогулка по храму и окрестностям, которую ведет преподаватель воскресной школы - интересный гид и собеседник, любящий храм и окружающую природу. Тех, кто приезжает на электричке - гид встретит на станции, тех кто приезжает на автобусе - на автобусной остановке и потом проводит до храма. Для заказа экскурсии
можете написать на электронную почту: istra2004@mail.ru, ICQ 340-597-008
Эта
прогулка - экскурсия ежедневно с 10.00 - 13.00 (договариваться нужно естественно заранее). Оплата по договоренности (деньги пойдут на обучение детишек и на
помощь инвалидам).
На этой экскурсии - прогулке Вы побываете:
На утреннем богослужении в храме;
сможете приложиться к мощам св. мученицы Татианы в Успенском приделе;
в Архангельском приделе увидеть список Тихвинской чудотворной иконы Божией матери XVII века и гробницу патриарха Никона в Предтеченском приделе, возле которой происходят чудесные исцеления;
в центральном приделе Воскресенского собора, где можно приложиться к святыне — кресту-мощевику, подаренному монастырю иерусалимскими монахами. Крест содержит частицы Креста Господня и мощей святых, включая евангелиста Марка;
побывать в кувуклии - часовне в храме гроба Господня (место, где покоился после распятия Иисус);
в действующей подземной церкви Константина и Елены с уникальным медным иконостасом;
пройтись по монашеской территории - вдоль братских корпусов;
побываете в деревянном зодчестве; сможете пройтись по крепостной стене и побывать в Гефсиманской, Сионской и Елизаветинской башнях и в надвратной Входоиерусалимской церкви над Золотыми воротами;
у скита патриарха Никона; сможете увидеть реку Иордан (Истра) с ее купелью с рассказом о чудесных исцелениях.
Прогулка по монастырскому полю и Гефсиманскому саду, а также вдоль монастырской стены, где можно увидеть два озера, именуемых Галилейским морем из которых вытекает Кедронский поток.
Не забудьте взять пустую бутылочку, чтобы набрать водички из святого "Силоамского" источника в Гефсиманском саду или из колодца под названием "Живоносный источник" в подземной церкви Константина и Елены.
Пишите мне: istra2004@mail.ru или ICQ: 340597008
Приглашаем Вас размещать любую информацию интересную людям, в виде статей, обзоров и новостей в наших рассылках и сайтах - более 31 034 подписчиков. Заявки присылайте по почте и ICQ 340597008. Подробнее здесь>>>