Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Вниз

Возврат товара   Найти похожие ветки 

 
Kley   (2007-12-16 20:47) [0]

Здравствуйте!
подскажите добры люди как реализовать следующую задачу
даны 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     кофе


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

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


 
Sergey13 ©   (2007-12-17 08:30) [2]

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

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


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

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


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


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

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


 
Sergey13 ©   (2007-12-17 14:13) [5]

> [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:36) [6]


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

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

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


 
Sergey13 ©   (2007-12-17 14:40) [7]

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

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


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

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


 
Petr V. Abramov ©   (2007-12-17 14:56) [9]


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

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


 
Sergey13 ©   (2007-12-17 15:01) [10]

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

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


 
sniknik ©   (2007-12-17 15:04) [11]

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


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


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


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

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


 
tesseract ©   (2007-12-17 15:29) [13]


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


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

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


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


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


 
Petr V. Abramov ©   (2007-12-17 22:58) [14]


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

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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.059 c
2-1208758852
Vudu
2008-04-21 10:20
2008.05.18
Как преобразовать char в integer


15-1207555479
vajo
2008-04-07 12:04
2008.05.18
Windows XP часто требует ввести код активации


2-1208271421
webpauk
2008-04-15 18:57
2008.05.18
PageControl, Hint


2-1208336709
4ort
2008-04-16 13:05
2008.05.18
Уничтожение массива компонентами ...


2-1208321156
djaUser
2008-04-16 08:45
2008.05.18
Скачать файл с русскими буквами в имени





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский