|
|
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Ситуация: Есть база данных, в которой ведётся учёт документов и расчётов с различными фирмами. Работа ведётся с разными фирмами, поэтому оплата бывает и по счетам без счёт-фактур, и по счёт-фактурам без счетов. Вопрос: как вести учёт счетов и счёт-фактур, что бы они были разными документами, но платёж вязался через счёт к счёт-фактуре и через счёт-фактуру к счёту автоматически. Кажется несколько путано написал... но постараюсь сориентировать по вопросам. Заранее спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 14:50 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Есть вариант сделать в одной таблице разделение по типу и связь внутри таблицы на додительский документ. Потом при выборке первичными будут считаться документы с пустым родителем, но затрудняюсь предсказать насколько это затруднит аналитические выборки в будущем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 15:03 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
> Вопрос: как вести учёт счетов и счёт-фактур, что бы они были разными документами, но платёж вязался через счёт к счёт-фактуре и через счёт-фактуру к счёту автоматически. не ставьте их в соответствие, тк идея не ахти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 15:16 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, попробуйте перевернуть: есть платеж, в атрибутах которого указана ссылка на документ. т.е. выборка будет не через клиент->счет-фактура->платеж, а через клиент->платеж->ISNULL(счет-фактура, счет) связка клиент->счет-фактура сохранится у "платеж" видимо еще будет дочерняя "фактические транзакции оплат" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 15:19 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
прилагаю схему фрагмента базы сейчас в интерфейсе можно смотреть и счета (счёт-фактуры) по платежам и платежы по счетам (счёт-фактурам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 16:03 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, схема в которой захочется разбираться, как минимум, не имеет пересекающихся связей. или эти пересечения минимизированы, сделаны аккуратненько, и никого не запутывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 16:13 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Схему делал на скорую руку и пересечения там, потомучто вязки делал от полей, а не от какого-нибудь края таблицы. Догически в устройстве таблиц пересечений не нашёл (если я правильно это понимаю), максимум есть ссылка из bank_payment в RS, потомучто в платеже участвует 2 фирмы, плательщик и получатель. Если сильно напрягает, но могу перерисовать, но только вечером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 17:06 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, я не сильна в проблемной среде до конца, но опираясь на озвученую задачу делала бы для таблицы "Счетов" и "Счетов-фактур" общий ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 16:08 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, разбейте задачу на подзадачи: 1. Имеет смысл объединение таблиц Счет и Счет-фактура в одну или это создаст больше проблем, чем решит? Но проблему организации связей это не решит в любом случае. 2. Что все-таки первично - счет или счет-фактура? Имхо все-таки счет (хотя я могу ошибаться), т.е. имеет смысл Счет-Фактуру привязывать к Счету, но сделать эту связь необязательной (NULLABLE). Либо можно создать отдельную таблицу связей между ними. 3. Если создана таблица связей Счет-Счет-фактура, то проблема, считайте, уже решена:в платеже ставите ссылку на запись в этой таблице и через нее вытаскиваете счета. Если нет - тогда создаете в платеже 2 отдельных необязательных связи и накладываете условие проверки, что указаны связанные счета. Либо триггерами поддерживаете валидность этих полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 17:50 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
а разве одна платежка не может оплачивать несколько счетов или счет не мб оплачен несколькими платежками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 18:17 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Тут давеча в другом форуме так и не сумели убедить упертого ТС (другого) что в РЕАЛЬНОЙ жизни плановые платежи, счета и т.п. и фактические поступления на счет, платежки ВСЕГДА М:М. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 18:34 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительТут давеча в другом форуме так и не сумели убедить упертого ТС (другого) что в РЕАЛЬНОЙ жизни плановые платежи, счета и т.п. и фактические поступления на счет, платежки ВСЕГДА М:М. подтверждаю, на моей практике доказано н-цать раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 11:29 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
to iljy: очень рад последовательному подходу 1. этот вопрос возникает если воспользоваться вариантом, который я предложил вначале. Вообще пока я ближе к нему. объединить имеет смысл только для уменьшения количества таблиц, других практических плюсов я не вижу, если подскажите буду благодарен (в сторону скорости выборок не смотрел). Сейчас эта таблица (BILL) существует для отслеживания наличия документа и связывания фирм и оплат. Если организовать связь типа parent внутри таблицы, то на сейчас задача решится. Вопрос как оно может отразиться в будущем (если в ту же таблицу отправятся товарные накладные например) 2. Когда думал на данным вопросом, на что опираться (счёт или фактура), то пришёл к выводу, что важнее счёт-фактура, т.к. бывают ситуации, когда выписывается счёт и на него идёт ссылка при оплате, а потом едут забирать товар (попутно получают счёт-фактуру и ТН по этой сделке), а заодно набирают ещё товара и получается что по одной операции есть предварительный счёт, по которому была частичная оплата и счёт-фактура на другую (полную) сумму. В таком случае счёт перестаёт быть опорным документом и учёт по оплате и товарам лучше вести по счёт-фактуре. Так же бывает, когда есть только счёт без счёт-фактуры, тогда учёт расходов надо вести по счёту. Таким образом мне кажется, что нет смысла делать опорным один вид документа, т.к. операции, в которых опора идёт не на основной документ придётся отслеживать вручную. Думую лучше сделать гибкую привязку типа опорный/не опорный (флажок), а для того, чтобы не заводить отдельное поле можно совместить его с полем связи между счётом и счёт-фактурой при реализации связи внутри одной таблицы (типа parent) (документ который не ссылается на другой является опорным) 3. Мне кажется, что может быть ситуация когда для одной счёт-фактуры будет несколько счетов (аванс + остатки), так и для одного счёта может быть несколько счёт-фактур (забираем товар несколькими партиями). В такой если будет отдельная таблица для связи счетов и счёт-фактур, на которую будут ссылаться платежи, то нужно будет делать отдельную таблицу для вязки платёж-документ. Мне кажется что из них потом будет не очень удобно выбирать данные для аналитики (большие запросы с многими таблицами) Поправьте меня пожалуйста, если я ошибаюсь, или есть вариант при котором такой способ будет работать замечательно, а предложенный мной упадёт. Создавать в платеже больше одной связи с опорным документом считаю не дальновидным. Если потом добавлять другие типы документов, то их нужно будет на прямую вводить во всех платежах (а в моём случае только сделать ссылку на основной опорный документ) и будет расти количество полей в платеже (+ товарная накладная и может что ещё) Большое Вам спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:11 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
да и потом когда приходов\расходов и платежей по ним много нет особого восторга и желания у пользователей дробить платежку на части и указывать что из 50 р 5 сюда 15 сюда 20 предоплата, а оставшиеся 10 переплата и надо сделать возврат, те в мелких расчетах не важно по большому счету за что мы\нам должны 5 р и в рамках годового договора с частыми не крупными поставками\расчетами тоже, - акт сверки и общее сальдо есть и норм, при желании увидеть в отчете по деб\кред задолженности для рук всеже за что можно привязываться к датам по принципу первое пришло первое оплачено, но вот когда договор на поставку 'мелкоштучной' но дорогой продукции или целевые\текущие авансы под конкретные объекты то тут да нужна связка точнее детализация расчетов в рамках договора - орг\дог как я глянул бухгалтерам вообще не важно что за что им общее сальдо по орг нужно, точнее так хотят вести учет - с минимальными телодвижениями, но если ГД за опу возьмет и спросит, тогда чтобы им все было видно в программе под разными углами\детализациями\группировками вот меня тоже от недостатка опыта и знаний терзают смутные сомнения как тут быть и как сделать ) я больше склоняюсь к идее указывать при 'приход\расход', оплаты в рамках какого договора происходит движение и возможность перекидки\взаимозачетов между договорами хотя в принципе это тоже самое как и у автора ток я не понял ваших связей\определений документов - договор, счет-договор, счет, счет-фактура зы пойти на обед что-ли? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:31 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, 1. Про уменьшение количества таблиц ничего больше добавить не могу - информации мало. Только, учитывая, что связь счет-счет-фактура фактически N-N (вроде как вы с этим согласились), ссылку на "опорный документ" использовать все равно не удастся, нужна таблица связей. 2. А вы уверены, что одна платежка не может в таком разе закрывать несколько счетов-фактур/счетов? Может тут тоже таблицу связей придется использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:43 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, > Создавать в платеже больше одной связи с опорным документом считаю не дальновидным. Если потом добавлять другие типы документов, то их нужно будет на прямую вводить во всех платежах (а в моём случае только сделать ссылку на основной опорный документ) и будет расти количество полей в платеже (+ товарная накладная и может что ещё) количество полей и должно расти главное чтобы они росли вниз, а не вправо, для этого и для развития дальнозоркости можно сделать documet (id, id_paret, doc_type, number, data, ...) и потом сколько нужно таблиц\связок_таблиц для разных документов да и платежка ведь должна иметь вить по идее тбл_шапка (id, ...) табличная_часть (id, id_шапка, вот сюда и можно пристроить id_document) тогда при росте кол документов все норм будет, наверное ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 12:51 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Сейчас подготовлю наглядную схемку и уточню правильно ли я Вас понимаю и заодно поясню, что сам имелл в виду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 13:29 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Как я представляю связь внутри таблицы счетов (BILL) и вязки к ним платежей (bank_payment) Сразу оговорюсь, что при оплате одним платежом нескольких счетов-фактур сейчас делаются несколько записей в платежах (bank_payment) с параметрами этого платежа (номер, дата, получатель ... ), но разными суммами и опорными документами. Тоесть платёжка разбивается на проводки по опорным документам и чтобы получить данные по платёжке целиком, а не по платежу по счёту нужно выбрать конкретную платёжку (номер документа, или другие уникальные данные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 16:59 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
Как мне кажется, предлагает сделать iljy Поправьте меня если я ошибаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 17:00 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, эммм.... ну вообще про номенклатуру речи не было. А раз уж она появилась - зачем вы пытаетесь запихать ее в таблицы счетов???? И потом, вы так и не ответили - платеж собствено к чему привязан? Допустим если у вас 2 счета сч1 и сч2, два счета-фактуры сф1 (закрывающий половину сч1 и половину сч2) и сф2 (закрывающий вторую половину сч1 и сч2), и один платеж на общую сумму- как вы это будете хранить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 17:32 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
то iljy >как оно может отразиться в будущем (если в ту же таблицу отправятся товарные накладные например) (мой пост в 12:11, конец п.1) > один платеж на общую сумму- как вы это будете хранить? в таком случае в платежах (bank_payment) будет 2 записи: 1 ссылается на счёт-фактуру1 и 2 ссылается на счёт-фактуру2, но обе записи имеют данные одной платёжки (номер, дату, отправитель, получатель и т.д.) > Допустим если у вас 2 счета сч1 и сч2, два счета-фактуры сф1 (закрывающий половину сч1 и половину сч2) и сф2 (закрывающий > вторую половину сч1 и сч2) Честно говоря затрудняюсь предствить, как это можно корректно хранить... Попытался представить случай, когда такое может быть: нам выставили счёт на аванс 30%,потом мы забираем товар 50%, потом счёт на доплату 70%, и мы забираем оставшийся товар 50% ... гм, но тогда будет 2 платежа, каждый на свой счёт. Учёт товара пойдёт по счетам. А отслеживать расходы приобретённых материало придётся по другим прзнакам (договор или объект) Конец дня, голова уже кругом. Буду признателен, если подскажите схему, при которой ваш пример будет считаться без дополнительных измерений (договор, объект) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 18:35 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
foworkто iljy >как оно может отразиться в будущем (если в ту же таблицу отправятся товарные накладные например) (мой пост в 12:11, конец п.1) > один платеж на общую сумму- как вы это будете хранить? в таком случае в платежах (bank_payment) будет 2 записи: 1 ссылается на счёт-фактуру1 и 2 ссылается на счёт-фактуру2, но обе записи имеют данные одной платёжки (номер, дату, отправитель, получатель и т.д.) А если платежей тоже 2, и первый гасит часть суммы из сф1, а второй - остаток сф1 и всю сумму сф2? Не делайте так. Вы повеситесь, а потом ваше бренное дело закоптят на медленном огне и распнут на дверях в назидание преемникам. Сделайте еще одну таблицу связей, или вообще откажитесь от привязки платежей к счетам и анализируйте сальдо на дату. fowork > Допустим если у вас 2 счета сч1 и сч2, два счета-фактуры сф1 (закрывающий половину сч1 и половину сч2) и сф2 (закрывающий > вторую половину сч1 и сч2) Честно говоря затрудняюсь предствить, как это можно корректно хранить... Попытался представить случай, когда такое может быть: нам выставили счёт на аванс 30%,потом мы забираем товар 50%, потом счёт на доплату 70%, и мы забираем оставшийся товар 50% ... гм, но тогда будет 2 платежа, каждый на свой счёт. Вот вам пример: в разное время выставлялись 2 независымых счета, затем по этим счетам одним платежем быть выплачен аванс 30%, затем логист поехал и забрал то, что было в наличии, получив сф1, через неделю курьер привез остаток и сф2, после чего был платеж оставшихся 70%. Может такое быть? Если может - тогда отказывайтесь от привязки платежей к счетам, привызывайте их к контрагентам, а счета и счета-фактуры связывайте через номенклатуру. Если нет - тогда сформулируйте требования и ограничения предметной области, иначе итераций будет очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 18:56 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
iljyА если платежей тоже 2, и первый гасит часть суммы из сф1, а второй - остаток сф1 и всю сумму сф2? Допустим счёт-фактура на 20 000 р., а счёт-фактура 2 на 30 000 р. В таком случае в платежах (bank_payment) будет 3 записи: № платёжкиДатасуммаопорный документ101.01.201110 000 р.счёт-фактура 1205.02.201110 000 р.счёт-фактура 1205.02.201130 000 р.счёт-фактура 2 iljyВот вам пример: в разное время выставлялись 2 независымых счета, затем по этим счетам одним платежем быть выплачен аванс 30%, затем логист поехал и забрал то, что было в наличии, получив сф1, через неделю курьер привез остаток и сф2, после чего был платеж оставшихся 70%. В таком случае: № платёжкиДатасуммаопорный документ101.01.201130% от счёт 1 счёт 1101.01.201130% от счёт 2 счёт 2207.01.201170% от счёт 1 счёт 1207.01.201170% от счёт 2 счёт2 А таблица счетов будет выглядеть следующим образом: № документа дата тип документа основной документ101.01.2011 счёт 201.01.2011 счёт 107.01.2011 счёт-фактура счёт 1207.01.2011 счёт-фактура счёт 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 20:55 |
|
||
|
Как связать счета и счёт-фактруы
|
|||
|---|---|---|---|
|
#18+
fowork, 1. bank_payment в таком виде не удовлетворяет 3НФ. Насколько это серьезно для вас - решайте сами. 2. Ссылочную целостность можно будет контроллировать только триггерами. 3. Подумайте над тем, какие выборки вам придется делать из таблиц и насколько это будет удобно. 4. У вас еще где-то должна быть номенклатура - как вы ее планируете вписать в эту схему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 21:29 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37428599&tid=1542034]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 452ms |

| 0 / 0 |
