powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Непротиворечивость данных
47 сообщений из 47, показаны все 2 страниц
Непротиворечивость данных
    #33467959
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Под непротиворечивостью данных я имею ввиду не ссылочную целостность, а отсутствие в наборе данных явных внутренних противоречий как со здравым смыслом,

например:
Остаток товара ААА = -1;
Поступление = 50, Отгрузка = 51,

так и с действующими в конкретной компании правилами,

например:
«Клиентам категории VIP возможна отгрузка без предоплаты, остальным клиентам отгрузка без предоплаты в 30% не производится»;
при этом в системе существует отгрузка без предоплаты для клиента, который не VIP

Хотелось бы обсудить:
- Насколько важно обеспечение такой непротиворечивости – стоит ли овчинка выделки
- Если это важно, то каким образом она обеспечивается в практике различных внедренцев.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33467984
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практикПод непротиворечивостью данных я имею ввиду не ссылочную целостность, а отсутствие в наборе данных явных внутренних противоречий как со здравым смыслом
Это называется логической целостностью.
Поищите. Много чего написано и на этом форуме и в других местах в рамках обсуждения целостности базы данных.

Ответы:
1. Очень важно.
2. Технически - дописыванием проверки при записи (validate write). Технических сложностей в этом вопросе много.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33467995
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Важно.
Лучше всего достигается серверными процедурами постинга (учета, проведения). Это означает, что в базу можно записать все что угодно, но запись в регистры, по которым формируется отчетность производится пакетной процедурой, в теле которой и выполняются проверки на логическую целостность полученных в результате данных. Если целостность нарушается, учет отменяется и пакет записей возвращается на корректировку.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468012
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmв базу можно записать все что угодно, но запись в регистры...
Можно спросить в целях повышения образованности?
Чем отличается запись в базу от записи в регистры?
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468016
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Технических сложностей не замечено. Упрощенно, примерно так. Сначала делаете результирующие действия, потом проверяете целостность и если ее нет - отменяете транзакцию.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
begin tran
-- учет записей документа
update invtrbatch set st= 1  where id = :pBatchId

if @@ERROR <>  0  or exists (
-- проверка отрицательных остатков на карточках, с которых выполняется списание
select d.itemid
from vwhitemsavailable d,
invtrline t
where t.batchid = :pBatchId and t.whitemid = d.id and  d.oh <  0  )
rollback tran
else
commit tran
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468034
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mazzy iscrafmв базу можно записать все что угодно, но запись в регистры...
Можно спросить в целях повышения образованности?
Чем отличается запись в базу от записи в регистры?
Можно конечно :) Как пример цепочка Entry-Jornal-Ledger, Вам знакомая. Строить отчеты по сохраненным документам гиблое дело. А запись в Ledger требует процедуры учета, в которой проверяется целостность. Не все данные сохраненные в БД являются актуальными и правильными...
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468059
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmТехнических сложностей не замечено. Упрощенно...
А теперь напишите это для нескольких таблиц, которые обновляются в одной транзакции :)

Например, должна ли проверка кредитного лимита учитывать проводимый в данный момент документ? А если должна, то как и когда? И т.п...

iscrafm mazzy iscrafmв базу можно записать все что угодно, но запись в регистры...
Можно спросить в целях повышения образованности?
Чем отличается запись в базу от записи в регистры?
Можно конечно :) Как пример цепочка Entry-Jornal-Ledger,...
:)
Разве это не таблицы?
Почему вы хоите логически выделить термин регистры?
Еще раз, Чем отличается запись в базу от записи в регистры?
Вообще говоря, запись в базу данных и логическая целостность...
Ладно, в сторону уходим...
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468084
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mazzy2. Технически - дописыванием проверки при записи (validate write). Технических сложностей в этом вопросе много.

Возможных противоречий - просто миллион. И все описывать в SP? И даже если описать, то как потом это развивать? А если не описать, то у работающей системы с завидной регулярностью будут появляться всякие непредсказуемые баги. Есть ли вообще теория создания непротиворечивых наборов данных?
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468086
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmТехнических сложностей не замечено. Упрощенно, примерно так. Сначала делаете результирующие действия, потом проверяете целостность и если ее нет - отменяете транзакцию.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
begin tran
-- учет записей документа
update invtrbatch set st= 1  where id = :pBatchId

if @@ERROR <>  0  or exists (
-- проверка отрицательных остатков на карточках, с которых выполняется списание
select d.itemid
from vwhitemsavailable d,
invtrline t
where t.batchid = :pBatchId and t.whitemid = d.id and  d.oh <  0  )
rollback tran
else
commit tran


Ничего себе технических сложностей не замечено!! Попробуйте-ка таким способом предотвратить ВСЕ ВОЗМОЖНЫЕ противоречия в данных даже для некрупной компании.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468092
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MazzyА теперь напишите это для нескольких таблиц, которые обновляются в одной транзакции

Разве это принципиально что-то меняет?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
begin tran
-- оприходование
insert into whitems (
id,
itemid,
qty,
pdate,
sertnum,
sertdue,
rdate,
whid,
...
)
select
newid(),
d.itemid,
d.qty,
s.pdate,
d.sertnum,
d.sertdue,
d.rdate,
s.batchto,
...
from invtrline d
inner join invtrbatch s on s.id = d.batchid
inner join inventory t on t.id = d.itemid
where d.batchid = :pBatchId
-- учет записей документа
update invtrbatch set st= 1  where id = :pBatchId

if @@ERROR <>  0  or exists (
-- проверка отрицательных остатков на карточках, с которых выполняется списание
select d.itemid
from vwhitemsonhand d,
invtrline t
where t.batchid = :pBatchId and t.whitemid = d.id and  d.oh <  0  )
rollback tran
else
commit tran

mazzyНапример, должна ли проверка кредитного лимита учитывать проводимый в данный момент документ? А если должна, то как и когда? И т.п...
Зависит от политики работы с клиентами. Встречалось и так и так. В любом случае проверяется процедурой учета. Как? Делается запись в карточку клиента, если кредитный лимит в результате записи получается превышенным - делается откат. Принцип работы известен по интернет-формам. Попробуйте в форме регистрации не заполнить обязательные поля и нажать Submit. Вернетесь назад и не сможете выполнить последующие действия. Проверка на клиенте мало что дает.

mazzyРазве это не таблицы?
Почему вы хоите логически выделить термин регистры?
Конечно, это обычные таблицы. Отличие в том, что в них запрещена прямая запись, путем ввода данных через формы. Отчеты формируются на основании записей, сделанных в такие таблицы. Вся логика заложена в таких таблицах. Очень удобно расширять систему, подключая новые формы и дополнительные процедуры учета, не изменяя при этом отчетность и общую логику. Назвать можно как угодно, регистры - не принципиально.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468097
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсть ли вообще теория создания непротиворечивых наборов данных?Вряд ли.. Точнее вряд ли существует к-л "особая теория", выходящая за рамки теории построения РСУБД.
Вопрос (не)противоречивости решается в каждом случае индивидуально в т.ч. где распологать логику "на клиенте" или "на сервере".
ТУТ НЕ СУЩЕСТВУЕТ ЗОЛОТОЙ СЕРЕДИНЫ. ВСЁ ОПРЕДЕЛЯЕТСЯ ЦЕЛЛЕСООБРАЗНОСТЬЮ ВЫПОЛНЕНИЯ той или иной проверки. Особенно если учесть, что кроме общей логики могут присутствовать "особые полномочия" некоторых пользователей (разрешать действие/учёт только при наличии набора прав).
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468112
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практикПопробуйте-ка таким способом предотвратить ВСЕ ВОЗМОЖНЫЕ противоречия в данных даже для некрупной компании
А Вы не пытайтесь устранить сразу все возможные противоречия. Разбейте систему до элементарных наборов данных и поработайте с каждым. Допустим, тот же журнал движения товара. Сколько наберете условий, для выполнения в него записи об отгрузке? Два известны: в результате не должно быть красных остатков, кредитный лимит не должен быть превышен. Цена не должна быть меньше установленной минимальной, нельзя "разрывать" упаковку, если для товара установлен флаг - продажа только упаковками, подобранный товар должен быть не просрочен и т.п.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468128
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Отличие в том, что в них запрещена прямая запись, путем ввода данных через формы.

1 Минимальный слой кода лежит под кнопкой "Добавить"/"Обновить" всех известных лично мне многопользовательских учетных систем,поправьте указанием источников.
2 Может быть Вы имеете в виду двухфазный ввод через промежуточные(временные) таблицы ? Как при этом выглядит интерфейс со стороны оператора , т.е. кнопок 2 тест и ввод или одна с асинхронной отменой введеного ?
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468133
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практик mazzy2. Технически - дописыванием проверки при записи (validate write). Технических сложностей в этом вопросе много.

Возможных противоречий - просто миллион. И все описывать в SP? И даже если описать, то как потом это развивать? А если не описать, то у работающей системы с завидной регулярностью будут появляться всякие непредсказуемые баги. Есть ли вообще теория создания непротиворечивых наборов данных?
1. про SP я ничего не говорил. давайте говорить о просто проверке. А уж в SP или не в SP - вопрос технический. Главное - при записи :) Причем обратите внимание, что не уточняется при записи чего.
2. Квантор ВСЕ - опасный квантор. Когда появляется слово ВСе - жди логической ошибки.

3. Насчет теории. Есть теория предикатов. На ее базе основаны базы знаний и экспертные системы. Теория занимается двумя вещами:
3.1. минимальный и ортогональный набор предикатов инвариантный вашему набору условий
3.2. работа с вашим набором, без преобразований к непротиворечивому набору...

В общем, ищите теорию предикатов.
Но
а) эта тема выходит далеко за рамки темы данного форума
б) скорее всего, ваш набор существенно проще. Скорее всего, вы просто не знаете вашу предметную область, если боитесь описать "ВСЕ противоречия". В бизнес-приложениях пока число проверок исчисляется десятками. Вовсе не сотнями и не тысячами. Подумайте о следующем: пока бизнесом управляют люди. И они держат эти проверки в памяти... Да, ошибаются. Да, периодически забывают. Но держат :) iscrafm об этом хорошо сказал.

Вот если бы вы переходили с базы знаний на ERP... тогда да, в базе знаний проверок может быть ОЧЕНЬ много...
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468139
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhard1 Минимальный слой кода лежит под кнопкой "Добавить"/"Обновить" всех известных лично мне многопользовательских учетных систем,поправьте указанием источников.
Вы забыли про Удалить :)

Теоретически еще может быть Реплицировать.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468141
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в дополнение mazzy мне случилось построить сложную очистку стат.отчетности на основе теории конечных автоматов , писал свой макропроцессор и язычок.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468146
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mazzyВы забыли про Удалить :)

т.е. сторнировать - забыл , виноват.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468174
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhard1 Минимальный слой кода лежит под кнопкой "Добавить"/"Обновить" всех известных лично мне многопользовательских учетных систем,поправьте указанием источников.
2 Может быть Вы имеете в виду двухфазный ввод через промежуточные(временные) таблицы ? Как при этом выглядит интерфейс со стороны оператора , т.е. кнопок 2 тест и ввод или одна с асинхронной отменой введеного ?
1. У всех по разному
Nav: Сохранение и учет - разные по сути веши. Учет вынесен на отдельную кнопку. Документ можно сохранить, учесть в любой момент.
Ax: тот же постинг
SBO: противоречивые данные нельзя даже сохранить. По кнопке Добавить сразу выполняется проверка. Т.е. пойти на перекур, предварительно не сохранив правильный документ нельзя, по крайней мере у меня не получилось.
ISCRA: Примерно как в Navision, только кнопка меняет свое назначение с Учет на Отмена учета и обратно. Выполняется вызов назначенных процедур. Править учтенные записи так же, нельзя.

2. Не всегда. Когда это выгодно. Часто - изменение статуса и формирование связанной цепочки. Отмена - обратные действия. Про кнопки в п.1
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468184
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s.
Варианты:
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468203
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSVОсобенно если учесть, что кроме общей логики могут присутствовать "особые полномочия" некоторых пользователей (разрешать действие/учёт только при наличии набора прав).

Не понял. Разные логики для разных пользователей?
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468227
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
SBO: противоречивые данные нельзя даже сохранить. По кнопке Добавить сразу выполняется проверка. Т.е. пойти на перекур, предварительно не сохранив правильный документ нельзя, по крайней мере у меня не получилось.

Черновик - любые данные , вплоть до дат вперед
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468232
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
1. У всех по разному
Nav: Сохранение и учет - разные по сути веши. Учет вынесен на отдельную кнопку. Документ можно сохранить, учесть в любой момент.
Ax: тот же постинг
ISCRA: Примерно как в Navision, только кнопка меняет свое назначение с Учет на Отмена учета и обратно. Выполняется вызов назначенных процедур. Править учтенные записи так же, нельзя.

и в 1С8.0 отдельные галки для разных учетов, речь шла о прямом вводе в таблицы , во всех приведенных системах сидят обработчики
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468235
Ц4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ц4
Гость
практик LSVОсобенно если учесть, что кроме общей логики могут присутствовать "особые полномочия" некоторых пользователей (разрешать действие/учёт только при наличии набора прав).

Не понял. Разные логики для разных пользователей?

Нет, это просто логика такая :)
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468238
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за подсказку
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468270
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm Разбейте систему до элементарных наборов данных и поработайте с каждым.

Не окажется так, что не удастся выделить достаточно независимые наборы? Та же отгрузка товаров клиентам управляется правилами а)продаж б)логистики. А в правила логистики управляют и закупками и ...

iscrafm в результате не должно быть красных остатков, кредитный лимит не должен быть превышен.

Например: как может быть получен "красный" остаток?
- Отгрузить количество больше, чем есть на остатке
- Отгрузить количество меньше, чем есть на остатке, и поменять даты:
а) приходной накладной, по которой пришел отгружаемый товар
б) расходной накладной, по которой товар отгрузился
так, чтобы "красный" остаток возник на некоторый диапазон дат.
- Отгрузить задним числом такое количество, которое меньше остатка на прошлую дату, но которое приведет к "красному" остатку в последующие даты с учетом уже совершенных отгрузок. Пример. Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. Вводим: 03.01.2006 отгрузка 8 шт.
Что каждый раз при вводе задним числом рассчитывать "разрешенное количество"? А если есть отгрузки введенные будущими датами, постоянно рассчитывать "разрешенное количество"?
- Удалить (отменить, сторнировать) приходный документ
- Поменять у приходного документа "склад поступления".
- Поиграться с единицами измерения товара (не знаю как в разных системах, а в стандартном 1С Предприятии 7.7 точно можно, я пробовал)
Уф..
Про кредитный лимит примерно то же самое.
Запрещать редактировать вышеперечисленное (хотел написать ВСЕ, но вспомнил mazzy ;-)))? Системой становится тяжело пользоваться.

mazzyВ бизнес-приложениях пока число проверок исчисляется десятками. Вовсе не сотнями и не тысячами.

Без кредитного лимита, при рассмотрении исключительно отгрузки товара, уже набралось 7 точек контроля непротиворечивости. Причем каждая такая точка может контролировать далеко не только движения товара, чего только стоит контроль ввода/редактирования даты, склада ...
Это мы пока не коснулись продаж в целом...
маркетинга в целом ...
закупок, финансов, персонала ...
не говоря уже о производстве .... Вообще не вспоминали о планировании, где есть свои жесткие правила, в разных планах (или бюджетах) разные... Не вспоминали о справочниках, а в них также могут быть внесены противоречивые данные (не только единицы измерения у товара, например клиенту не назначен менеджер или назначен уволенный человек)
Короче, мое мнение - только в продажах таких точек контроля сотни (это если делать по взрослому).
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468281
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практикНапример: как может быть получен "красный" остаток?
- Отгрузить количество больше, чем есть на остатке
- Отгрузить количество меньше, чем есть на остатке, и поменять даты:
а) приходной накладной, по которой пришел отгружаемый товар
б) расходной накладной, по которой товар отгрузился
так, чтобы "красный" остаток возник на некоторый диапазон дат.
- Отгрузить задним числом такое количество, которое меньше остатка на прошлую дату, но которое приведет к "красному" остатку в последующие даты с учетом уже совершенных отгрузок. Пример. Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. Вводим: 03.01.2006 отгрузка 8 шт.
Что каждый раз при вводе задним числом рассчитывать "разрешенное количество"? А если есть отгрузки введенные будущими датами, постоянно рассчитывать "разрешенное количество"?
- Удалить (отменить, сторнировать) приходный документ
- Поменять у приходного документа "склад поступления".
- Поиграться с единицами измерения товара (не знаю как в разных системах, а в стандартном 1С Предприятии 7.7 точно можно, я пробовал)
Учтенные документы не редактируются - это правило. Отмена учета тоже проверяет логическую целостность. Нельзя отменить Приход, если расход по нему уже расписан. Отмена такого прихода или запрещается или влечет за собой отмену всех связанных расходов. Зависит от логики.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468283
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практикЗапрещать редактировать вышеперечисленное (хотел написать ВСЕ, но вспомнил mazzy ;-)))? Системой становится тяжело пользоваться
Запрещать не нужно, нужно проверять возможность редактирования
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468284
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mazzy 1. про SP я ничего не говорил. давайте говорить о просто проверке. А уж в SP или не в SP - вопрос технический. Главное - при записи :) Причем обратите внимание, что не уточняется при записи чего.


Ваша правда.

mazzy2. Квантор ВСЕ - опасный квантор. Когда появляется слово ВСе - жди логической ошибки.

Согласен, нужно было объяснить. Дело в том, что у каждого, кто работает с системой, использует систему, есть свое представление о логических противоречиях, которое постоянно изменяется и дополняется. Под словом ВСЕ я имел в виду некоторый формализованный набор логических связей, сформулированный на определенный момент времени. Другое дело, что создать такой набор, особенно согласованный с разными потребителями одной системы ... скажем так - очень долго.

mazzyВ общем, ищите теорию предикатов.

Спасибо, обязательно посмотрю.

mazzyПодумайте о следующем: пока бизнесом управляют люди. И они держат эти проверки в памяти... Да, ошибаются. Да, периодически забывают. Но держат.

Мне казалось, что покупатели приобретают софт как раз для того, чтобы некоторые "механические" действия софт делал за них. Это назвали автоматизацией. :-))
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468306
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
статью дописываете ?
http://www.imetrika.ru/archives/1/18/
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468336
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shuhardстатью дописываете ?

Давно написал. Просто дальше размышляю. ))
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468348
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm
Учтенные документы не редактируются - это правило.
"Учтенные" - это "проведенные" в терминах 1С?

А как быть, если в документе допущена ошибка?

"бизнесом управляют люди ... да, ошибаются" (с) mazzy
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468367
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468374
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практик iscrafm
Учтенные документы не редактируются - это правило.
"Учтенные" - это "проведенные" в терминах 1С?

А как быть, если в документе допущена ошибка?

"бизнесом управляют люди ... да, ошибаются" (с) mazzy
В терминах 1С - проведенные, точно.
Если ошибка - 2 варианта:
1. Корректирующие записи
2. Отмена учета (с откатом произведенных учетом изменений), если возможно, правка и повторный учет.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468390
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm Если ошибка - 2 варианта:
1. Корректирующие записи
2. Отмена учета (с откатом произведенных учетом изменений), если возможно, правка и повторный учет.

И в том и в другом варианте не вижу препятствий для попадания в систему данных, противоречащих уже имеющимся. Получается, что вносить противоречивые данные нельзя, но если очень хочется, то можно, причем любые. С таким подходом активно работающей компании нужно подождать всего лишь месяц - дальше только удивляться и не забывать весь этот бардак оплачивать.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468393
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практик iscrafm Если ошибка - 2 варианта:
1. Корректирующие записи
2. Отмена учета (с откатом произведенных учетом изменений), если возможно, правка и повторный учет.

И в том и в другом варианте не вижу препятствий для попадания в систему данных, противоречащих уже имеющимся. Получается, что вносить противоречивые данные нельзя, но если очень хочется, то можно, причем любые. С таким подходом активно работающей компании нужно подождать всего лишь месяц - дальше только удивляться и не забывать весь этот бардак оплачивать.
В процедуре учета проверяются не вводимые данные , а состояние системы, которое будет после учета этих данных . Почувствуйте разницу :)
Выполняется расчет "что если.." эти данные попадут в систему. Если возникают противоречия, то учет отменяется. Если все нормально - принимается.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468398
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Представьте, образно:
у Вас есть счет расчетов с кредиторами и счет учета запасов.
Так вот процедура учета делает проводки и смотрит получившееся в результате сальдо. Если оно отрицательное - делает откат. Таких регистров для контроля ес-но может быть много.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468399
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s. Как в системе резервирования. Не запрашивается свободный остаток, а сразу расходуется. Если в результате расхода минус - отменяется. Все это в транзакции конечно.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468522
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практикДругое дело, что создать такой набор, особенно согласованный с разными потребителями одной системы ... скажем так - очень долго.
Вы все-таки попробуйте.

Начните с более-менее формализованных вещей - возьмите список корреспонденций...
Добавьте небухгалтерские условия для каждой встреченной корреспонденции.

Попробуйте прорядить полученные условия (упростить и унифицировать).

Вы будете приятно удивлены, с очень большой вероятностью.
Глаза боятся - руки делают. :)

Оффтопик... Помнится, лет 10 назад, когда мы делали Пролог-Д, то постоянно удивлялись к какому небольшому числу предикатов сводились очень сложные логические задачи... Тогда же были жаркие обсуждения экспертной системы для построения экспертных систем... В нее закладываешь кучу эмпирический условий и ограничений, а она на выходе дает минимальный и ортогональный набор предикатов... Попутно показывая противоречия и возможности для упрощения... Взять, например, наше законодательство... Эх, вот бы вернуться в то время... или сейчас иметь ресурсы, чтобы сделать систему с пресетами предикатов...

Практик, решительно желаю вам удачи.
Завидую, что вы можете заниматься этой задачей.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468738
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm Выполняется расчет "что если.." эти данные попадут в систему. Если возникают противоречия, то учет отменяется. Если все нормально - принимается.
Если взять модернизированный пример "Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. в) 07.01.2006 приход 100 шт. Сегодня 09.01.2006. Вводим: 03.01.2006 отгрузка 8 шт.", то состояния склада на какую дату будет проверяться?
На момент отгрузки 03.01.2006 остаток 2 шт
На сегодня остаток 96 шт
Отгрузка разрешена?
Но в период с 05.01.2006 по 07.01.2006 остаток -4 шт.

Далее как? Запретить ввод задним числом? Нереально.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33468739
практик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mazzy Практик, решительно желаю вам удачи.
Завидую, что вы можете заниматься этой задачей.
Спасибо, mazzy.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33469045
Guest_12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практик "Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. в) 07.01.2006 приход 100 шт. Сегодня 09.01.2006. Вводим: 03.01.2006 отгрузка 8 шт.", то состояния склада на какую дату будет проверяться?
На момент отгрузки 03.01.2006 остаток 2 шт
На сегодня остаток 96 шт
Отгрузка разрешена?
Но в период с 05.01.2006 по 07.01.2006 остаток -4 шт.

Далее как? Запретить ввод задним числом? Нереально.

Еще одна часто встречающаяся ситуация, опасная неопределенностью: в один и тот же день есть несколько приходов и расходов. В зависимости от их порядка, либо от порядка ввода оператором, либо от порядка вычислений в контролирующем модуле ситуация отрицательных остатков может возникать либо отсутствовать. И мы при вводе можем отказать в транзакции при отсутствии отрицательных остатков, и наоборот, ввести ошибочные данные.

Это Вам, практик, еще одно усложнение.
Похоже не в запретах дело, искать надо выход в других местах. Каких???
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33469327
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жёсткий запрет отпуска "в красное" делать категорически нельзя. Это связано со складскими ошибками при отпуске/приёмке (человечекий фактор). Эти ошибки всплывут спустя некоторое время когда их будет реально обнаружить, например уход "в красное" или длительная непродажа ходового товара (пересорт/недостача/зависалово).
Этих ошибок нереально избежать. Можно только снизить их кол-во.
Если отпускаемый товар после повторной проверки реально соответствует указанному в документе, то ЭТОТ ТОВАР НАДО ОТПУСТИТЬ вне зависимости, какие отстатки показывает система.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33470282
Guest_12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЖёсткий запрет отпуска "в красное" делать категорически нельзя. Это связано со складскими ошибками при отпуске/приёмке (человечекий фактор). Эти ошибки всплывут спустя некоторое время когда их будет реально обнаружить, например уход "в красное" или длительная непродажа ходового товара (пересорт/недостача/зависалово).
Этих ошибок нереально избежать. Можно только снизить их кол-во.
Если отпускаемый товар после повторной проверки реально соответствует указанному в документе, то ЭТОТ ТОВАР НАДО ОТПУСТИТЬ вне зависимости, какие отстатки показывает система.

Согласен, поддерживаю и применяю на практике. Допускаю отрицательные остатки с требованием проверки. Всегда после проверок ситуация проясняется. А чем и кого пугают отрицательные остатки, как сигнал наличия ошибки? Как правило ошибка не в последней транзакции, вот в чем суть.

Почему поддерживаю? Потому что нет достойных механизмов контроля даже в простейшем случае отрицательных остатков. А на каждый выдуманный сколь угодно красивый алгоритм контроля найдется исключительная ситуация. Примеры в предыдущих сообщениях участников.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33470305
Guest_12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каким алгоритмом проверить следующее: оператор рассыпал пакладные, собрал их в произвольном порядке, ввел расходную и ушел курить. А приход за более раннюю дату остался на столе. Все алгоритмы сойдут с ума до его возвращения, а он может еще и кофе захочет:-).
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33470647
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если расход сильно связан с приходом (даже отложенным), то многие проблемы отпадают. Но возникают новые сложности (обходимые) - типа пересмотр цепочек.
...
Рейтинг: 0 / 0
Непротиворечивость данных
    #33486789
iamhere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest_12345Каким алгоритмом проверить следующее: оператор рассыпал пакладные, собрал их в произвольном порядке, ввел расходную и ушел курить. А приход за более раннюю дату остался на столе.

Алгоритмом начисления зарплаты ;)

А если серьезно - то как вот так просто разрешать отпуск в минус? Если товар есть, а по базе его нет это может означать как то, что его ОШИБОЧНО нет по базе, так и то, что он ОШИБОЧНО есть в наличии. И будет хуже, если вы его отдадите, а потом выяснится, что он уже был продан, просто его не забрали или еще что-то такое.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Непротиворечивость данных
    #39701246
eugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
практик,
вообще терминология путаная то что вы назвали непротиворечивостью в другом руководстве классифицируется как один из видов целостности - ограничение атрибута
Ограничением переменных отношения наз ограничения на зн, кот разреш приним указан перем отношения.
Ограничением атрибута наз ограничение на значения, кот разрешено принимать указанному атрибуту.
Ограничением типа - не что иное, как определение множества значений, из которых состоит данный тип.
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Непротиворечивость данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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