Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возврат товара [D7, Access]


Kley ©   (2007-12-16 20:47:00) 

Здравствуйте!
подскажите добры люди как реализовать следующую задачу
даны 3 таблицы Prihod,poziz,tov
Prihod и poziz связаны между собой один ко многим (одной записи Prihod соответствует несколько записей в poziz)
в таблице poziz хранится выбранный товар (наименование,количество,сумма, итд) из таблицы tov
(поле poziz.tovar соответствует полю tov.number) и если пользователь поставил отметку о возврате товара в текщей записи
таблицы prihod то нужно вернуть количество и сумму товара из таблицы Poziz в таблицу tov

Prihod                  Poziz                                Tov
-----------------       ----------------------------       -------------------------
KontrA | vozvrat |      |tovar  |Name  |kolvo  |Sum |      |Number|kolvo                  |Sum     |Name
------------------      -----------------------------      -------------------------  
Иван       Yes   |----->  1       Сок      1     15           1     1(остаток)+1из poziz   15+15     Сок
                |----->  2       кофе     2     20           2     2+2 из poziz           40+40     кофе


sniknik   (2007-12-18 00:27:00) [1]

> а соответствие таблиц-полей MSSQL "понятиям" 1С - где взять? имея доступ к базе MSSQL?
только к MSSQL? тогда никак, они в конфе "зашиты" (*.md вроде).
хотя, это только для семерки может быть верно, про восьмерку не знаю где оно хранит.


Petr V. Abramov   (2007-12-17 22:58:00) [2]


> tesseract ©   (17.12.07 15:29) [13]

/off/
а соответствие таблиц-полей MSSQL "понятиям" 1С - где взять? имея доступ к базе MSSQL?


tesseract   (2007-12-17 15:29:00) [3]


> таблица остатков это тоже документ с которого начинается
> расчетный период... и все. (1С так работает)


Это при вводеостатков.  Таблицы остатков и движений там есть - основа 1с можно сказать. Так-же есть отдельные таблицы для "версионных" полей и BLOB-данных. Документы храняться в сводной таблице и в двух раздельных - отдельно шапка, отдельно табличная часть.

К ним можно даже на SQL обращаться при большом желании.


> там еще и не таких чудес много


Все написано сугубо теориии. Просто 1С не законченное решение.


Petr V. Abramov   (2007-12-17 15:05:00) [4]


> sniknik ©   (17.12.07 15:04) [11]


> 1С так работает

там еще и не таких чудес много


sniknik   (2007-12-17 15:04:00) [5]

> А куда без них. 8-)
а нафига?
таблица остатков это тоже документ с которого начинается расчетный период... и все. (1С так работает)


Sergey13   (2007-12-17 15:01:00) [6]

> [9] Petr V. Abramov ©   (17.12.07 14:56)

А куда без них. 8-)


Petr V. Abramov   (2007-12-17 14:56:00) [7]


> Sergey13 ©   (17.12.07 14:40) [7]

и так мы приходим к таблице остатков и таблице операций


sniknik   (2007-12-17 14:49:00) [8]

>> В таблице Prihod поле ActionX=1 приход, 2 расход
> Можно было бы сделать +1 и -1. Тогда простое умножение на него можно было бы легко использовать в запросах на подсчет суммы.
в запросе выражение  iif(ActionX=1, 1,-1) заменяющее первое на второе.


Sergey13   (2007-12-17 14:40:00) [9]

> [6] Petr V. Abramov ©   (17.12.07 14:36)

У движения товара всего 2 состояния: приход и расход. Каждый различаются по типам/видам, типа первичный приход и возврат товара на склад - все равно это приход.


Petr V. Abramov   (2007-12-17 14:36:00) [10]


> Можно было бы сделать +1 и -1.

можно, только завтра автора попросят отчет
пришло | продано | возврат

а послезавтра - учтывать, по какой отгрузке был возврат


Sergey13   (2007-12-17 14:13:00) [11]

> [3] Kley   (17.12.07 14:00)

> досталась по наследству
Это не причина не переписывать ее. 8-)

> В таблице Prihod поле ActionX=1 приход, 2 расход
Можно было бы сделать +1 и -1. Тогда простое умножение на него можно было бы легко использовать в запросах на подсчет суммы.

Как то странно видеть наименование товара в poziz, а не в tov. Откуда в poziz так же поля Sum (кстати это зарезервированное слово в SQL) и откуда оно берется? Вообще мутная структура какая то.


Petr V. Abramov   (2007-12-17 14:04:00) [12]


> я только хотел возврат товара на склад замутить.

потом захочешь списание брака замутить....


Kley   (2007-12-17 14:00:00) [13]

>Sergey13 ©   (17.12.07 08:30) [2]
>Раз дана таблица Prihod, рискну предположить, что существует и таблица >Rashod. Так?
>Почему бы не заменить ВСЕ подобные таблицы одной Document с указанием >типа движения товара. При отмене действия формируй документ обратного >действия.
В таблице Prihod поле ActionX=1 приход, 2 расход
Прога уже была написана до меня досталась по наследству с исходниками
я только хотел возврат товара на склад замутить.


Sergey13   (2007-12-17 08:30:00) [14]

> [0] Kley   (16.12.07 20:47)
> даны 3 таблицы Prihod,poziz,tov

Раз дана таблица Prihod, рискну предположить, что существует и таблица Rashod. Так?
Почему бы не заменить ВСЕ подобные таблицы одной Document с указанием типа движения товара. При отмене действия формируй документ обратного действия.


Petr V. Abramov   (2007-12-17 00:09:00) [15]

спроси:
подскажите, как лучше организовать базу приходов-расходов-возвратов.
опиши, с какими трудностями сталкиваешься счас.
будет флейм на 30 постов, тебя поругают, между собой поругаются, что-нить из этого вынесешь.
а существующую идею выкинь прям счас, твоя идея работает в простейших ситуациях, но если возник вопрос, значит, она простоту переросла


Наверх

Титульная страница Поиск, карта сайта Написать письмо