Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Склад - Как контролировать цепочку перемещений? / 14 сообщений из 14, страница 1 из 1
19.06.2009, 07:31
    #36049745
r2d22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
Простой пример движения ТМЦ:
Условия: 1 товар, 2 склада.
Таблицы: Приход, Межсклад, Расход, Текущий остаток (обновляется на триггерах, ограничение на остаток - должен быть >= 0). Наивно предполагал, что ограничения на таблице остатков будет достаточно, но...

Хронология:
1. Приход на склад №1 товара в кол-ве 100 шт.
2. Межскладское перемещение со склада №1 на склад №2 70 шт.
3. Межскладское перемещение со склада №2 на склад №1 70 шт.
4. Межскладское перемещение со склада №1 на склад №2 70 шт.

Текущий остаток: Склад №1 - 30 шт.; Склад №2 - 70 шт.

Если при такой хронологии удалить межскладской документ №3 то ограничение по остаткам не даст завершить транзакцию, т.к. на складе №1 нет 70 шт. Все правильно.
Как сделать правильно, чтобы не было возможности удалить межскладской документ №2? Ограничение по остаткам не сработает т.к. на складе №2 на текущий момент есть 70 шт.
...
Рейтинг: 0 / 0
19.06.2009, 10:45
    #36050092
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
Для этого надо ввести полноценный партионный учет. Хотя там есть свои проблемы.
...
Рейтинг: 0 / 0
19.06.2009, 13:22
    #36050631
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
r2d22Как сделать правильно, чтобы не было возможности удалить межскладской документ №2? Ограничение по остаткам не сработает т.к. на складе №2 на текущий момент есть 70 шт.Для этого надо сначала ответить на вопрос чем в данном случае документ 2 отличается от документа 4? Какое логическое ограничение не позволяет документы удалять? И затем уже думать, как это логическое ограничение в модели реализовать.
Например:
а) Датой. Значит и ограничения должны дату учитывать. Для этого можно не только текущий остаток хранить, но и всю историю. И тогда ограничение по остатку будет работать.
б) "Последовательностью". В этом случае надо последовательность документов (их зависимости) явно прописать. Что-то вроде "документ 3" зависит от "документ 1". В этом случае будут ссылочные огравничения и удалить тоже будет нельзя. Неким обощение этого варианта является упомянутый LSV партионный учет.
...
Рейтинг: 0 / 0
22.06.2009, 03:21
    #36052966
r2d22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
LSVДля этого надо ввести полноценный партионный учет. Хотя там есть свои проблемы. Поиск по партионному учету все вопросы не развеял, но вывел на ваше сообщение:LSV* Справочник товара: Код,название,ссылка на баз ед.изм., ссылка на НДСГруппу и пр.
* Справочник ед.изм.: Код, ссылка на товар, коеф. кратности по отн. к базовой ед., деноминатор, ссылка название ед.изм. (ШТ, КГ, УП и пр.), штрихкод если надо.
Одна из ссылок обязательно соотв. базовой ед.изм. Деноминатор - допустимость дробления (для КГ=0,001, для ШТ=1 и т.п.)
* Товарный журнал: Автонум., Ссылка на документ, дата док-та, тип док-та, ссылка на склад, ссылка на контрагента, ссылка на товар, кол-во баз.ед./сумма (согласно +/- знака операции), ссылка на НДСгруппу
* Журнал ФИФО-привязок приход-расход: КодТовЖурВх.Опер, КодТовЖурВых.Опер., Кол-во
* Шапка/строки всех товарных док-тов в двух отдельных таблицах. Тип документа содержит знак(+/-) операции. Я так понял мне должен был помочь Журнал ФИФО-привязок. Не могли бы вы привести пример по моей хронологии движения товара с участием этого журнала или хотя бы объяснить как туда попадают данные и как это препятствует в моем случае удалению документа №2.
Bogdanov AndreyДля этого надо сначала ответить на вопрос чем в данном случае документ 2 отличается от документа 4? Документы представлены в виде последовательности перемещений. Каждый из них изменяет текущий остаток.
Bogdanov AndreyКакое логическое ограничение не позволяет документы удалять? Логика - нельзя удалять документ №2, т.к. документ №3 использует запасы склада №2 для перемещения.
Bogdanov AndreyДля этого можно не только текущий остаток хранить, но и всю историю. И тогда ограничение по остатку будет работать.Я правильно понял, что, например, в журнале движения необходимо создать поле [ОстатокПослеОперации], в котором перерасчитывать остаток по каждой строке с данным товаром в таблице движения с датой позднее документа №2? По логике вроде должно помочь, но неужели есть такие системы, с расчетом остатка по каждой операции? Есть опасения связанные с производительностью.
Bogdanov AndreyВ этом случае надо последовательность документов (их зависимости) явно прописать. Что-то вроде "документ 3" зависит от "документ 1".Это похоже на вариант LSV, но мне не понятно как это реализовать. Можете привести пример, как это должно работать в моем случае?
...
Рейтинг: 0 / 0
22.06.2009, 11:00
    #36053232
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
r2d22Bogdanov AndreyВ этом случае надо последовательность документов (их зависимости) явно прописать. Что-то вроде "документ 3" зависит от "документ 1".Это похоже на вариант LSV, но мне не понятно как это реализовать. Можете привести пример, как это должно работать в моем случае?Этой последовательностью являются привязки между приходами и расходами. В случае удаления привязок док.3 нарушится баланс остатков партий и это будет знаком для отката действия.
Напомню, что в некоторых случаях нарушение баланса допустимо , например "продажа в красное", т.е. без наличия в системе. Это часто происходит в торговых залах супермаркетов, т.к. пересорт - обычное явление, устраняемое только инвентаризацией.
И тут календарная хронология может быть нарушена, т.к. продали вчера, а дооприходуют (и привяжут приход-продажа) инвентаризацией только через неделю.
...
Рейтинг: 0 / 0
23.06.2009, 10:04
    #36055027
Склад - Как контролировать цепочку перемещений?
r2d22,

Не удаляй документы
...
Рейтинг: 0 / 0
06.07.2009, 13:19
    #36075006
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
Я тут в отпуске был, так что извиняюсь, если мои ответы запоздали.
r2d22Bogdanov AndreyДля этого надо сначала ответить на вопрос чем в данном случае документ 2 отличается от документа 4? Документы представлены в виде последовательности перемещений. Каждый из них изменяет текущий остаток.
Я как раз и спрашиваю чем определяется "последовательность"? Вот Вы говорите, что №2 нельзя удалять, пока жив №3. Это не самоочевидное утверждение. Понимать его можно многими способами. Например, одно (скорее всего, неправильное) толкование - номера документов не должны иметь пропусков.
Из Ваших остальных реплик у меня складывается впечатление, что бизнес-ограничением является неотрицательность остатка каждого товара на любой момент в истории. Если это так, то тривиальное решение я и предлагал:

r2d22Bogdanov AndreyДля этого можно не только текущий остаток хранить, но и всю историю. И тогда ограничение по остатку будет работать.Я правильно понял, что, например, в журнале движения необходимо создать поле [ОстатокПослеОперации], в котором перерасчитывать остаток по каждой строке с данным товаром в таблице движения с датой позднее документа №2? По логике вроде должно помочь, но неужели есть такие системы, с расчетом остатка по каждой операции? Есть опасения связанные с производительностью.

Я бы не в журнале движения поля создавал, а в таблице остатков предсмотрел поле дата, точнее, две даты - начало действия и конец действия. Тогда изменение остатка при движении выглядит следующим образом: update всех записей у которых дата начала больше даты движения (если таковые есть) + insert новой записи с датой начала равной дате движения + update даты конца у записи в которой даты начала меньше даты движения, а дата конца - больше.
Естественно, снижение скорости при выполнении операций будет, но моя практика показывает, что проигрыш небольшой (индексы правильные надо не забыть сделать), и в случае проблем с производительностью узкие места будут в других операциях.
Зато получение остатков на любую дату в прошлом проблем не представляет, так же как и реализация ограничения по остатку.

r2d22Bogdanov AndreyВ этом случае надо последовательность документов (их зависимости) явно прописать. Что-то вроде "документ 3" зависит от "документ 1".Это похоже на вариант LSV, но мне не понятно как это реализовать. Можете привести пример, как это должно работать в моем случае? А что тут приводить? Делаете табличку "Документ зависит от" с двумя полями: "зависимый документ" - каскадная ссылка на список документов, "документ от которого зависит" - рестриктная ссылка. Соответственно пока не удален зависимый документ будет нельзя удалить документы от которых он зависит. А уж как вы эту табличку заполните - автоматически расчитывая остатки или заставие оператора вбивать - ваше дело.
...
Рейтинг: 0 / 0
07.07.2009, 09:01
    #36076536
дддддд
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
Дебет слева, кредит справа

Д-т К-т количество
склад 1 Поставщик 100
Склад2 Склад1 70
Склад1 Склад2 70
Склад2 Склад1 70

Правда за такие перемещения бухгалтер вас убьет, т.к. увеличивается оборот между подразделениями, с которого надо заплатить налог + траспортные расходы.
...
Рейтинг: 0 / 0
07.07.2009, 09:32
    #36076586
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
ддддддДебет слева, кредит справа

Д-т К-т количество
склад 1 Поставщик 100
Склад2 Склад1 70
Склад1 Склад2 70
Склад2 Склад1 70

Правда за такие перемещения бухгалтер вас убьет, т.к. увеличивается оборот между подразделениями, с которого надо заплатить налог + траспортные расходы.

Вы просто несете чушь, читайте бух.учет. Еще нигде не платили налогов со внутренних перемещений внутри одной организации. Потом, где здесь транспортные расходы? так наоборот удобно приписать фиктивные расходы на транспортировку и тем самым занизить учетную прибыль опять таки для уменьшения налога на прибыль.
...
Рейтинг: 0 / 0
07.07.2009, 11:16
    #36076912
Борис Бритва
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
r2d22Простой пример движения ТМЦ:
Условия: 1 товар, 2 склада.
Таблицы: Приход, Межсклад, Расход, Текущий остаток (обновляется на триггерах, ограничение на остаток - должен быть >= 0). Наивно предполагал, что ограничения на таблице остатков будет достаточно, но...

Хронология:
1. Приход на склад №1 товара в кол-ве 100 шт.
2. Межскладское перемещение со склада №1 на склад №2 70 шт.
3. Межскладское перемещение со склада №2 на склад №1 70 шт.
4. Межскладское перемещение со склада №1 на склад №2 70 шт.

Текущий остаток: Склад №1 - 30 шт.; Склад №2 - 70 шт.

Если при такой хронологии удалить межскладской документ №3 то ограничение по остаткам не даст завершить транзакцию, т.к. на складе №1 нет 70 шт. Все правильно.
Как сделать правильно, чтобы не было возможности удалить межскладской документ №2? Ограничение по остаткам не сработает т.к. на складе №2 на текущий момент есть 70 шт.

Все нормально контролируется.
Вопрос! С какой стати удалять документы?
...
Рейтинг: 0 / 0
07.07.2009, 11:47
    #36077029
дддддд
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
Naf,

А кто сказал, что Склад1 и Склад2 одно и тоже юридическое лицо?
Межскладскими перемещениями могут быть перемещения между филиалами.
Не каждый пользователь 1С сможет различить разницу...
...
Рейтинг: 0 / 0
07.07.2009, 12:47
    #36077169
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
ддддддNaf,
А кто сказал, что Склад1 и Склад2 одно и тоже юридическое лицо?
Межскладскими перемещениями могут быть перемещения между филиалами.
Не каждый пользователь 1С сможет различить разницу...В некот.системах это называют "Трансфер". Типо Внут.Пер. внутри корпорации между юрлицами.
Формально часто это отпуск по договору комиссии.
...
Рейтинг: 0 / 0
07.07.2009, 13:05
    #36077232
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
ддддддNaf,

А кто сказал, что Склад1 и Склад2 одно и тоже юридическое лицо?
Межскладскими перемещениями могут быть перемещения между филиалами.
Не каждый пользователь 1С сможет различить разницу...

ну там был Дт и Кт еще, что говорит о бух. учете, с сохранением баланса внутри предприятия
...
Рейтинг: 0 / 0
07.07.2009, 14:13
    #36077455
дддддд
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склад - Как контролировать цепочку перемещений?
LSVддддддNaf,
А кто сказал, что Склад1 и Склад2 одно и тоже юридическое лицо?
Межскладскими перемещениями могут быть перемещения между филиалами.
Не каждый пользователь 1С сможет различить разницу...В некот.системах это называют "Трансфер". Типо Внут.Пер. внутри корпорации между юрлицами.
Формально часто это отпуск по договору комиссии.

+1
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Склад - Как контролировать цепочку перемещений? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]