powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как построить изменение справочников?
16 сообщений из 16, страница 1 из 1
Как построить изменение справочников?
    #33287029
Kulavert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Пример ситуации:
Бух. счет с 01.01.06 изменяет свой номер и название. К 01.01.06 на нем есть остатки, и естественно прошло куча документов с ссылкой на его SchetID.
Просто поменять 01.01.06 в таблице номер и название счета нельзя - документы пред. периода должны показываться по-старому.
Поэтому нужно ввести новую запись, но как перебрасывать остатки? Бухгалтер создавать документ по перебросу остатков отказывается (да и прав наверное).
Похожая ситуация при изменении названия/реквизитов контрагента.

Поискал по форуму - ситуации рассматриваются похожие, но не совсем такие.
Подскажите, какие могут быть решения?
Спасибо!
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287040
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы не стал пользоваться для бухгалтреских нужд естественными ключами...
а в данной ситуации добавил бы поле с суррогатным ключом и сделал связку записей именно по суррогатному ключу. Тогда любые номера, названия и т.п. можно менять хоть по сто раз на дню не потеряв связей...

или я что-то не так понял?
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287083
RVB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RVB
Гость
KulavertЗдравствуйте!
Пример ситуации:
Бух. счет с 01.01.06 изменяет свой номер и название. К 01.01.06 на нем есть остатки, и естественно прошло куча документов с ссылкой на его SchetID.
Просто поменять 01.01.06 в таблице номер и название счета нельзя - документы пред. периода должны показываться по-старому.
Поэтому нужно ввести новую запись, но как перебрасывать остатки? Бухгалтер создавать документ по перебросу остатков отказывается (да и прав наверное).
Похожая ситуация при изменении названия/реквизитов контрагента.


Может завести еще одну табличку, в которой отображать изменения реквизитов? SchetID, DateChange, поля реквизитов. Источник данных документа связывать по SchetID, DateChange . Т. о. реквизиты будут отображаться зависимо от даты.
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287720
Kulavert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftя бы не стал пользоваться для бухгалтреских нужд естественными ключами...
а в данной ситуации добавил бы поле с суррогатным ключом и сделал связку записей именно по суррогатному ключу. Тогда любые номера, названия и т.п. можно менять хоть по сто раз на дню не потеряв связей...

или я что-то не так понял?
Используется суррогатный ключ SchetID int IDENTITY(1,1)
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287741
Фотография daw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мои пять копеек:
имхо, если "документы пред. периода должны показываться по-старому" - то это не изменение названия, а введение _нового_ счета, пусть он хоть десять раз имеет тот же номер, что и старый. а любое изменение сумм на счетах бух. учета должно оформляться именно проводкой. у нас такие фокусы проделываются через "служебный" счет 00 двумя проводками: красное сторно по старому счету и проводка на новый - во избежание завышения оборотов. и ни у кого никаких возражений до сих пор не было, хотя аудиторские проверки проходят с завидной периодичностью. в самом крайнем случае, такие проводки и соответствующие документы можно просто скрыть от клиента, так что никто и никогда их нигде не увидит :). то же самое с изменением реквизитов контрагента или введением аналитики по счету, на котором ранее аналитики не было...
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287749
Kulavert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RVBМожет завести еще одну табличку, в которой отображать изменения реквизитов? SchetID, DateChange, поля реквизитов. Источник данных документа связывать по SchetID, DateChange . Т. о. реквизиты будут отображаться зависимо от даты.
А как построить запросы?
Сейчас так:
SELECT ....., NSchet, Schet
FROM .....
LEFT JOIN spSchet ON spSchet.SchetID=Docum.SchetID --например
WHERE ...
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287755
Kulavert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dawмои пять копеек:
имхо, если "документы пред. периода должны показываться по-старому" - то это не изменение названия, а введение _нового_ счета, пусть он хоть десять раз имеет тот же номер, что и старый. а любое изменение сумм на счетах бух. учета должно оформляться именно проводкой. у нас такие фокусы проделываются через "служебный" счет 00 двумя проводками: красное сторно по старому счету и проводка на новый - во избежание завышения оборотов. и ни у кого никаких возражений до сих пор не было, хотя аудиторские проверки проходят с завидной периодичностью. в самом крайнем случае, такие проводки и соответствующие документы можно просто скрыть от клиента, так что никто и никогда их нигде не увидит :). то же самое с изменением реквизитов контрагента или введением аналитики по счету, на котором ранее аналитики не было...
Вариант с одной проводкой через 00 прост, если не ведется аналитика по счету. А если на новом счете нужно получить остатки в разрезах по подотчетникам, цехам и т.д., то проводок нужно ооочень много.
А с изменением реквизитов контрагентов не совсем то же самое, как с этим быть?
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287787
Фотография daw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KulavertА если на новом счете нужно получить остатки в разрезах по подотчетникам, цехам и т.д., то проводок нужно ооочень много.
и что мешает генерировать их автоматически, нажатием на волшебную кнопучку?
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287800
Фотография daw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что же касается изменения реквизитов контрагента, то тут пути два: если меняется нечто существенное, типа названия, или, скажем, ИНН, то это опять же явно появление нового контрагента. соответственно, получаем ситуацию с переброской остатков с одного контрагента на другого. другой путь - сохранять эти реквизиты прямо в документе. на мой взгляд, дублирование информации в данном случае не такая уж страшная вещь, как кажется.
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287801
Kulavert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
daw KulavertА если на новом счете нужно получить остатки в разрезах по подотчетникам, цехам и т.д., то проводок нужно ооочень много.
и что мешает генерировать их автоматически, нажатием на волшебную кнопучку?
Ни что, а кто... бухгалтер. Но этот вариант понятен, нужно преодолеть орг. меры.
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287811
Kulavert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dawчто же касается изменения реквизитов контрагента, то тут пути два: если меняется нечто существенное, типа названия, или, скажем, ИНН, то это опять же явно появление нового контрагента. соответственно, получаем ситуацию с переброской остатков с одного контрагента на другого. другой путь - сохранять эти реквизиты прямо в документе. на мой взгляд, дублирование информации в данном случае не такая уж страшная вещь, как кажется.
А тут нет остатков в чистом виде, есть куча типов документов: договоры, заказы, расходные накладные, акты п/п векселей, бухг. док. и т.д.
Т.е., как например "перевесить остатки" по документам "Заказ"? Этот документ имеет бумажный оригинал с печатями и подписями, а в БД к нему и к его подчиненным записям привязаны уже прошедшие ранее операции, например по исполнению заказа... То же с СФ: что такое "остатки по СФ"? Должна быть возможность распечатать старую СФ (как саму по себе, так и учесть ее в отчете) со старыми реквизитами. Делать сторно при изменении реквизитов - пользователи будут смотреть как на дурака (ИМХО, конечно).
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33287864
Фотография daw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KulavertА тут нет остатков в чистом виде, есть куча типов документов: договоры, заказы, расходные накладные, акты п/п векселей, бухг. док. и т.д.
Т.е., как например "перевесить остатки" по документам "Заказ"? Этот документ имеет бумажный оригинал с печатями и подписями, а в БД к нему и к его подчиненным записям привязаны уже прошедшие ранее операции, например по исполнению заказа... То же с СФ: что такое "остатки по СФ"? Должна быть возможность распечатать старую СФ (как саму по себе, так и учесть ее в отчете) со старыми реквизитами. Делать сторно при изменении реквизитов - пользователи будут смотреть как на дурака (ИМХО, конечно).
я имел в виду переброску остатков именно сторнированием. на нас, например, как на дураков не смотрят. иногда, правда, приходится популярно объяснять, что если у организации "поменялся" ИНН, то это уж никак не та же самая организация. и что "перевесить" остатки означает изменение на счетах бух. учета... да, на синтетическом счете изменений нет, но на аналитических - есть: "видите, были остатки по этой СФ, а стали по вот этой. изменение на лицо. а оформлять такие изменения можно лишь одним способом. и дело не в программе, а в том, что таковы основы бух. учета..." правда, опять же, зависит от того, что за реквизиты меняются... что-то целесообразнее прописывать в документах.
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33288720
RVB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RVB
Гость
[quot Kulavert А как построить запросы?[/quot]
Надо написать функцию, которая будет возвращать счет по его ID в документе и дате документа из таблицы изменений счета.
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33289131
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменение ИНН организации и номера счета не обязательно означает новую учетную позицию. Спросите бухгалтера, как с его точки зрения следует понимать запрос
"Анализ оборотов за период с 01-11-2005 по 01-02-2006 по счету имевшему на начало период номер... и организации, имевшей ИНН ..." ? Готов ли он к тому, что еиу придется получать 3 отчета с фиктивным закрытием/открытием учетных позиций ?
Т.е. аккуратнее все таки вести историю учетных объектов (счетов, организаций), а не считать их новыми при изменении реквизитов и не генерировать фиктивные проводки.

Запросы конечно будут сложнее типа

SELECT ....., NSchet, Schet_Number
FROM .....
LEFT JOIN spSchet_history ON spSchet_history.SchetID=Docum.SchetID
and spSchet_history.Date =
(select max(h.Date) from spSchet_history h where
h.SchetID=Docum.SchetID and h.Date <=Docum.Date)
WHERE ...
Для отчета можно брать данные на начало/конец периода по выбору.
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33300486
Kulavert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. предлагается введение доп. таблицы spSchet_history?
Dokum -> spSchet -> spSchet_history?
А какую информацию хранить в самой spSchet? Получается, что лучше всего никакой информации там и не хранить, а только SchetID?
А может тогда историю перенести в собственно spSchet (в спр. контрагентов, банков и т.д. и т.п.)? По этой теме на форуме высказывались мнения, что мусор хранить в основной таблице нежелательно (хотя в данном случае может это и не мусор).
...
Рейтинг: 0 / 0
Как построить изменение справочников?
    #33300767
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вполне возможно. Если у счета нет неисторических атрибутов то одной таблицы достаточно.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как построить изменение справочников?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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