Интеллектуальное восстановление последовательности в 1С 7.7 |
Каждую ИТ систему по ведению учета на предприятии можно разделить на две условные категории с точки зрения хронологической коррекции данных: 1) Не допускаются изменения задним числом. Все изменения проводятся корректирующими документами. 2) Допускаются изменения задним числом. Корректность данных по цепочке измененных документов достигается регламентной процедурой перепроведения документов. Система 1С Предприятие 7.7. как правило, реализует вторую схему. Регламентная процедура коррекции измененных документов называется восстановлением последовательности 1С. Основными недостатками при изменении задним числом будут следующие пункты: 1) При изменении задним числом возникает относительно большой временной интервал между самим изменением и восстановлением последовательности в 1С. 2) Восстановление последовательности обычно невозможно в рабочее время в силу большой нагрузки на серверные ресурсы. Увеличиваемый информационный оборот базы данных может привести к невозможности выполнить эту процедуру в нерабочее время. Вследствие чего придется жертвовать либо актуальностью данных, либо удобством работы пользователей. В некоторых случаях нагрузка при фоновом перепроведении документов настолько большая, что база данных на время выполнения этой операции становится на запись практически недоступной. Рассмотрим, почему данная процедура столь ресурсоемкая и какие есть варианты разрешения данной проблемы на примере простой оперативной БД с упрощенным составом документов. Документы БД (усреднённая статистика): Прибыль пускай рассчитывается по FIFO и взаиморасчеты тоже. Вообще нужно отметить, что это типовая реализация схемы расчета для конфигураций 1С предприятие 7.7. В этом случае, в отличие от линейной записи в регистр, при изменении задним числом изменяется вся партионная очередь измерения. Что бы ее восстановить необходимо пересчитать все связанные не только партия-образующие(приход) документы но партия-зависящие(расход). Что произойдет, если мы поменяем данные по одной строчке товара приходной накладной 10-и дневной давности? Что бы рассчитать количество связанных документов необходимо учитывать структуру регистров, по которым ведется расчет. Соответственно для того, что бы восстановить последовательность необходимо пересчитать все документы, которые участвуют в движении по регистрам измененного товара за 10-ть дней. Однако, как правило, мы не знаем в типовой реализации какую именно позицию мы меняли и поэтому пересчитываются все документы за данный период. Учитывая, что измененная строка в приходной накладной могла повлиять на взаиморасчеты нам приходится пересчитывать и ПКО и РКО. Итого получается необходимо даже после одной измененной строки провести порядка Кол.Документов=(10+100+100+100)=310 документов и соответственно обработать (500*10+100*100+100*1+100*1) = 15200 строк! Вдумайтесь еще раз в эти цифры! Даже одна измененная строка задним числом предполагает такую ресурсоемкую обработку. В чем же причины реализации такого механизма восстановления последовательности в 1С? Первая это – потеря истории изменения. Вследствие чего невозможно сказать каким было состояние документа до изменения. Это исключает селективное, выборочное перепроведение документов. Вторая и немаловажная – отсутствие возможности обработки движений регистров построчно. Даже если будет возможно сказать какая именно позиция была изменена в документе то нельзя будет обрабатывать только эту позицию в модуле обработки проведения. Существуют несколько решений. Первое решение позволяет исключить проблему потери истории изменения. Как следствие уменьшение количества перепроводимых документов в зависимости от специфики базы в интервале от 10 до 100 раз. Перепроводится будут только завязанные в последовательность документы. Такой разброс в количественных оценках определяется спецификой базы данных. Краткое описание технической реализации: Включение логирования на T-SQL, следствием которого является ведение надежного лога по изменения в регистрах движения. Преимущества: Относительная простота реализации, отсутствие правки в модуле конфигурации. Второе решение позволяет снять проблемы : потеря истории изменения и отсутствие возможности обработки движений регистров выборочно. Это комплексное решение позволяет максимально снизить количество перепроводимых документов и связанных в них строк. В данном случае независимо от специфики базы будет обрабатываться только та информация, которая была завязана на изменение. Пересчет, возможно, будет выполнять в он-лайн так как он не будет отнимать много производительных ресурсов. Также время пересчета уменьшится на несколько порядков. Краткое описание технической реализации: Включение логирования на T-SQL, следствием которого является ведение надежного лога по изменения в регистрах движения. Реализуются специальные процедуры позволяющие очищать выборочно движения по регистрам. Отдельно производится анализ конфигурации и изменения в ней соответствующие концепции выборочной обработки движений по регистрам учета. Если ЗначениеВходитВСписокИзмененных(СпИзм,Значение)=0 ТогдаТакже аналогичные изменения необходимо провести и в местах модуля, где происходит запись в регистр. Движения по регистрам должны осуществляться только по измененным позициям.
Восстановление последовательности в таком режиме можно выполнять в фоновом режиме с минимальной задержкой и в некоторых случаях даже внутри модуля изменяющего последовательность (если время на выполнение небольшое и блокировки будут незначительны по времени). Преимущества: Максимальная селективность в процедуре восстановления последовательности. Обрабатывается только связанная информация. Минимальное время между изменением и восстановлением последовательности. В случае не массовых изменений задним числом время восстановления будет ускоренно более 100-и раз.(вообще то разница зависит от объема изменения). Минимальная нагрузка при перепроведениии. В завершении необходимо отметить, что многие современные масштабируемые ERP системы имеют подобную реализацию восстановления логической последовательности. Компания "СофтПоинт" представляет готовое решение, которое позволит снять проблему восстановления последовательности.
Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").
|
Статья: Интеллектуальное восстановление последовательности в 1С 7.7 |
Перейти на главную страницу компании "Софтпоинт" |