Мобильная версия

Еще один взгляд на проблему "жизнь без последовательностей"

21.12.2009

Еще один взгляд на проблему "жизнь без последовательностей"

Предлагаю свой взгляд на решение проблемы "документы без последовательности". Решение навеяно обсуждениями http://infostart.ru/public/62785/ и http://infostart.ru/forum/forum11/topic28666/. Даже попытался описать его там (152). Теперь думаю, что оно может быть опубликовано и самостоятельно. Я считаю это решение теоретически исчерпывающим и готовым к практическому воплощению, а что скажете Вы?

Для краткости и ясности используем язык математики.

Обозначим номенклатуру i, приход j, расход k. 

Функция X(i,j,k) определяет структуру списания, сложившуюся в интересующий нас момент t. 

То есть отвечает на вопрос - сколько номенклатуры i из прихода j было списано при расходе k. 

Функцию можно представить в виде куба со сторонами: Номенклатура, Приход, Расход. 

Исправление задним числом можно представить как функцию dX(i,j,k). Так что Xt+1(i,j,k)=Xt(i,j,k)+dX(i,j,k). 

То есть корректировка документа не должна быть перепроведением, а должна рассчитывать дельту структуры списания. 

Предложение объединить два измерения (номенклатуру и приход) ничего не меняет. 

В этом случае используется структура Y(l,k), где l=i*N+j. N - количество номенклатуры. 

А уравнение превращается в Yt+1(l,k)=Yt(l,k)+dY(l,k).

Как решается задача определения dX? 

Куб X делится на слои номенклатуры i: Z=X(i=i,j,k). В каждом слое применяется изменение d (уменьшается или увеличивается приход или расход или изменяется их порядок). 

Затем решается частный случай ТРАНСПОРТНОЙ ЗАДАЧИ (это разновидность задач линейного программирования) с ограничениями: 

Σj Zjk = Rk

(общий расход из всех приходов равен количеству Rk в расходной накладной k)

Σk Zjk <= Sj

(общий приход из всех расходов ограничен количеством Sj прихода j)

и целевой функцией:

Σjk Zjk * Cjk -> min

При этом для метода ФИФО, например,  коэффициенты Сjk будут определяться правилом

Cjk = 1/(T(k) - T(j)), если T(k) > T(j) и  Cjk = ∞, если T(k) <= T(j),

где T(j), T(k) - время прихода и расхода соответственно.

В качестве опорного решения берется текущее значение Z. 

Правда, так мы фактически вычисляем не dX, а непосредственно Xt+1.

Почему же тогда 1С использует перепроведение и последовательность? 

Потому что в этом случае не нужен отдельный алгоритм расчета dX и структуры данных под него. 

dX определяется последовательным повторением элементарных проведений одного документа, 

начиная с момента нарушения последовательности. 

Такие алгоритмы называются решением методом "грубой силы". 

Можно предложить различные частичные усовершенствования. Например, "softpoint", в котором восстановление последовательности проводится отдельно по каждому слою номенклатуры.

Можно оптимизировать хранение структуры списания. 

Хотя сам собой напрашивается регистр сведений с измерениями: Номенклатура, Приход, Расход и ресурсом Количество. 

Так раньше и хранили разреженные матрицы.

Можно поставить задачу найти самый быстрый алгоритм расчета dX. 

Сам алгоритм решения ТРАНСПОРТНОЙ ЗАДАЧИ (метод потенциалов, симплекс-метод) хорошо исследован, 

новое можно попробовать поискать в ускорении для данного частного случая задания целевой функции и опорного решения. 

Или уже учесть особенности реализации: самый быстрый с использованием промежуточных записей в БД, самый быстрый в оперативной памяти, 

самый быстрый при использовании структур данных 77 и т.п. 

Только сначала нужно определиться: зачем? 

Дело в том, что генезис платформ 1С - от бухгалтерии, от учетных задач, нацеливает решения не на отражение настоящего, а на рисование прошлого. 

Бухгалтер раскладывает на столе первичку и решает: в какой момент произвести списание? 

Когда товар был подороже или подешевле? Показывать или нет авансы? 

Ну и пусть попробует один вариант, восстановит последовательность (пересчитает себестоимость), подождет. 

Вам хочется, чтобы это делалось максимально быстро? Стоит ли овчинка выделки? Раз в месяц, раз в квартал - компьютер не перетрудится! 

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


Текст публикации

Все новости



ИНТЕХ

купить, программ, 1С, 1, С, в, Егорьевске, Московской, бухгалтерия, предприятие, продукт, 2, 3, 8, 7, 10, 11, 5, 0, торговля, склад, зарплата, кадры, управление, персонал, настроить, обучение, на, курсы, компьютерный, центр, ООО, ИНТЕХ, учет, производство, ERP, УПП, УТ, ЗУП, упрощенка,  документооборот, розница, небольшая, фирма, деньги, скачать, сопровождение, внедрить, обновить, обучить, франчайзи, организация, поддержка, сертифицированный, аттестованный, компьютер, Егорьевск, Москва, область, Воскресенск, Шатура, Ликино, Коломна, Рошаль, Бронницы, Шувое, Куровское, Луховицы, ЭЦП, отчетность, ИТС, электронный, архив, автоматизация, оперативный, техподдержка, телефон, Интернет, аренда, автосервис, магазин, бухфон, горячая, линия, битрикс, версия, лицензия, линк, релиз, сайт, фреш, ЦСО, ЭДО, яндекс, карта. купить, программ, 1С, 1, С, в, Егорьевске, Московской, бухгалтерия, предприятие, продукт, 2, 3, 8, 7, 10, 11, 5, 0, торговля, склад, зарплата, кадры, управление, персонал, настроить, обучение, на, курсы, компьютерный, центр, ООО, ИНТЕХ, учет, производство, ERP, УПП, УТ, ЗУП, упрощенка,  документооборот, розница, небольшая, фирма, деньги, скачать, сопровождение, внедрить, обновить, обучить, франчайзи, организация, поддержка, сертифицированный, аттестованный, компьютер, Егорьевск, Москва, область, Воскресенск, Шатура, Ликино, Коломна, Рошаль, Бронницы, Шувое, Куровское, Луховицы, ЭЦП, отчетность, ИТС, электронный, архив, автоматизация, оперативный, техподдержка, телефон, Интернет, аренда, автосервис, магазин, бухфон, горячая, линия, битрикс, версия, лицензия, линк, релиз, сайт, фреш, ЦСО, ЭДО, яндекс, карта,

Обновление 1С, управленческий учет, бухгалтерский учет

Наша компания также занимается разработкой собственных программных продуктов на платформе «1С:Предприятие 8». 

В нашей компании работают сертифицированные фирмой «1С» специалисты, которые постоянно совершенствуют свои знания и навыки. Они помогут качественно и оперативно решить задачи по автоматизации управления и учета на вашем предприятии.
Наша компания опирается в своей работе на знание и повседневное применение стандартов качества, проектных методов в управлении, процессного подхода в организации нашей деятельности.
Компания хорошо организована, в ней четко распределены обязанности, процедуры, соблюдается технология работы, имеются оперативные инструкции, документированные и известные всему персоналу, существуют отработанные процедуры контроля выполняемых работ и, конечно, профессиональный и хорошо обученный персонал, способный качественно выполнять свою работу.