Процитировано сообщение: Перминов Дмитрий от 05.08.2008 :: 12:52:27:
Сергей и все таки поясните что такое транзакционная логика. Т.к. я сам являюсь разработчиком на платформе 1С, то хотелось бы немного получить представление об этом.
ИТАК (много):
Берем обычный подход - есть первичные документы, которые отражают ту или иную хозяйственную операцию. Документ содержит шапку и строки, есть режим проведения когда одним разом записываются ДОПОЛНИТЕЛЬНЫЕ данные для возможности получения отчетов и работы алгоритмов в других документах. При таком подходе документы срисовываются с бумажных копий, а регистры проектируются под поставленные задачи количества разрезов получения информации.
Теперь переворачиваем все вверх ногами! Вначале вводим понятие "складская транзакция" - это операция по перемещению одного артикула продукции с одного носителя/места на другой носитель/место. Вторым важным объектом является структура хранения ТЕКУЩИХ остатков в необходимых разрезах.
Так вот хранилище остатков + журнал транзакций - сердце системы. Все остальное строиться уже от этого. Для выполнения самих транзакций вводится отдельный объект с полным набором информации для осуществления самой единичной транзакции, так и для контроля прав на выполнения + дополнительные реквизиты для распределения между исполнителями. Сами эти объекты создаются из других, которые объединяются в группировки и т.п. и в итоге мы получаем подобие бумажных документов (заметили, что документами мы закончили, а не начали).
В такой системе самые громадные задачи разбиваются на мелкие одиночные задачи и выполняются параллельно в режиме реального времени без возможности изменения задним числом.
Так вот - проблем реализации именно на 1С особых нет, а вот как всю эту структуру организовать чтобы она работала как часы и позволяла с одной стороны работать большому количеству сотрудников параллельно, а с другой стороны не усложнять физические процессы на складе ненужными ограничениями системы, ну и с третьей минимизировать человеческий факт - вот эта задача куда сложнее и как раз требует большого опыта как перед началом проектирования системы, так и время на доведения до совершенства в реальной работе большого склада с его изменениями требований функционала, ошибок персонала, повышение производительности труда.
Проблемой большинства разработчиков является то, что после внедрения системы клиент переводится на сопровождение и реально многие задачи не решаются самой системой, а все что внедренец получает от самого проекта - опыт реализации новой функциональности, которую клиент огласил до начала проекта (или была выяснена в процессе внедрения)
И что мы видим на складах (на которых работает 1С, Exceed, Манхеттен и т.п.)?
Мы видим реализацию базового функционала (поступление, размещение, отбор, отгрузка, инвентаризация и т.п.) с внедренной специфичностью и кучу отчетов, заданий на бумажках, регламентов, штрафов и т.п. подобных отклонений чтобы дополнить отсутствующий функционал и уменьшить количество ошибок и злоупотреблений.
Клиент звонит на линию поддержки только по ошибкам или трудностям, которые резко тормозят процесс. Все остальные вопросы пытаются решить самостоятельно - где-то подстраивают систему, где-то генерируют кучу отчетов и постоянно их обрабатывают выправляя ошибочные ситуации, где-то вводят штрафы за несоблюдение ранее описанных регламентов...
WMS система - это не база данных, в которую закладывается заказы на отгрузку и откуда высыпаются задачи на отбор из ячеек, а комплексное программно-аппаратное решение, которое оптимизирует работу складского персонала для получения наивысших показателей по точности и скорости работ. WMS система с введенными первоначальными данными о товаре, топологии и правилах должна гибко работать без лишнего воздействия операторов, контролировать правильность введения данных, реагировать на ошибки и минимизировать их на выходе, предоставлять всю требуемую информацию в удобном виде для проведения самоконтроля рядовыми сотрудниками, изменять правила размещения и отбора в зависимости от текущего состояния склада (загруженность сотрудников, заполненность ячеек и т.п.), быть удобной и простой для понимания, иметь возможность делать основные операции "в один клик" и многое чего.
После осмысления этих задач проблема реализации на отдельно взятой платформе не так актуальна,
по крайней мере мой опыт показывает, что на 1С можно создать не просто конкурирующий продукт известным мировым брендам,
но и превосходящий их по многим параметрам