|
|
|
| есть база товаров,не могу по считать остаток на складе. т.е.(поступило - получили=остаток)
если получить весь товар, нет проблем,получают частями. пробывал создать запрос с группировкой по коду товара и сум. получили - работает но проблема нет новой записи в форме на базе запроса.
помогите если можно я начинающий
зарание спасибо | |
|
| |
|
|
|
| Запрос с группировкой не может быть обновляемым
остатки отдельно - ввод данных отдельно. | |
|
| |
|
|
|
| а как же учет прихода и расхода по поставкам?
я бы сначала изучил предметную область в которой собираюсь писать, а уже потом инструмент и алгоритмы бы продумывал... что, собственно всегда и делаю.
в вашем случае, возможно, создалбы временную таблицу, в которую бы загружал справочник товаров с остатками и ценами (сгруппированные). таблица была бы редактируемая. а затем, когда пользователь бы в форме выбрал бы товар для продажи, я бы программно списывал сначала те поставки, которые первые пришли.... | |
|
| |
|
|
|
| спасибо на счет учета - мысль прекрасна - но это дальше
1- это остаток на складе. я думаю это должно быть просто (наСкладе = НаСкладе - выдал)
но только куда это вставить. или НаСкладе - получил = остаток
if получил = 0 THEN
остаток = НаСкладе
Else
НаСкладе = НаСкладе - остаток
А насчет временной таблицы я незнаю как её создать на основе группированного запроса
может есть где посмотреть | |
|
| |
|
|
|
| остаток на складе всегда будет
начальный остаток + приход - расход
Как Вы будете это учитывать ваш выбор
МОжно создать регистр для учета остатков на какую-то дату и от этой даты прясать при получении нии остатков на нужную дату.
или просто будете всегда при необходимости получить остаток суммировать все операции до текущей даты... все зависит от объемов и специфики, и в том и в том варианте есть как плюсы так и минусы.
Мне не понятно, почему в форму где отображаются остатки нужно вводить приход или расход? Сделайте операции отдельной формой | |
|
| |
|
|
|
| просто я хотел чтобы при выдаче было видно сколько на остатке...
можно попроше что такое регистр и как его создать.. | |
|
| |
|
|
|
| Регистр это таблица в которой хранятся агрегированные данные по какому либо параметру.
Например регистр остатков.
Устройстов регистра может быть разным:
например 1 строка содержит остаток конкретного товара на конкретную дату (не обязательно каждый день, можно на 1-е число месяца или на понедельник, а может быть и по часам в зависимочти от оборотов), в этом случае для одного товара в регистре будет много записей, на каждую дату (момент времени) свой остаток.
В этом случае остаток для нужной даты высчисляется следующим образом:
из регистра берется остаток на дату ближайшую к требуемой дате и добавляются (вычитаются) все операции прихода/расхода из журнала операций которые произошли в период от даты в регистре до требуемой даты.
Другой вариант регистра, 1 строка содержит остаток конкретного товара на текущий момент времени, т.е. в таблице-регистре для каждого товара всегда только одна запись.
В этом случае остаток есть только на сейчас, остатки на все другие даты вычисляется обратными операцииями из журнала операций.(т.е. приход вычитается, расход прибавляется)
Работать с регистрами можно по разному:
вариант 1 - процедура закрытия периода, это когда регистр рассчитывается в момент закрытия периода (длинна периода может быть любой в зависимости от желания) так реализовано в 1С. при таком варианте только операции проведенные "задним" числом приводят к пересчету регистров, даты в "открытом" периоде вводятся быстро без дополнительных рассчетов.
вариант 2 - рагистр рассчитывается сразу после проведения операции. в этом случае любая операция приводит к пересчету, но зато не нужно проводить "закрытие" периода.
Какой вариант выбрать, опять зависит от многих факторов и желаемых скоростей
Вариатн используемый Вами это вариант без регистров, когда остаток считается от момента начала ведения базы минусы очевидны, плюсы в том что не нужно следить за актуальностью регистров. В вашем случае таблицы остатков нет, есть только таблица операций.
Как я уже сказал, разделите остатки и ввод в разные формы, одна на запросе с группировкой который вычисляет остатки, другая форма на таблице с операциями.
Вообще на мой взгляд при вводе операции нужно показывать остаток только по товару учавствующему в операции, а это можно сделать с помощью Dsum, или DlookUp в зависимости от выбранной схемы.
Так же можно показать остаток по товару в поле со списком где выбирается название товара, при выборе товара сразу видет его остаток.
Существует вариант с временной таблицей (это тоже своего рода регистр, но не постоянный а создаваемый в нужный момент), но он мне кажется не слишком нужным, т.к. все равно данные в эту таблицу вносить бессмысленно, она же временная.
Остатки тема вообще очень итрересная если подключить сюда товары в пути, резервирование, полученные но не оприходоавнные товары, то могут появится так называемые "теневые обороты", т.е. операции которые уже произошли, но еще не могут быть внесены в остатки.
Ну хватит лекций с утра... | |
|
| |
|
|
|
| разделил остатки и ввод на две формы - работает... но при получении товара можно уйти в минус.сначало надо полистать одну форму с остатком, потом записать в другой.
возможна ли работа двух форм... или вытащить поле из запроса с группировкой или из формы
а насчет регистра я понял так... форма заполняет регистр, но вычисления будут в форме или запросе или програмно... можно ли из запроса вставить вычисляемое поле в таблицу | |
|
| |
|
|
|
| Тут все зависит от того КАК ВЫ сделаете. Если все будет в отдельных можельных формах...и если Вы собираетесь возложить контроль на пользователя, то конечно "нужно полистать".
Интерфейсных решений может быть множество:
1. при выборе товара в поле со списком 2-м столбцом этого поля (рядом с названием товара) показывается остаток товара на складе
2. товар выбирается двойным кликом или выделением в отрывающейся форме со списокм товара и остатком
3. при выборе товара в полеСоСписком остаток товара автоматически вносится в поле "количество", тем самым показывая максимальное возможное кол-во
4. Вверху форма для ввода, под ней форма со списком товаров и остатком (не редактируемая). При вводе в верхней форме товара, в нижней форме ткурсор автоматически устанавливается на строку с остатком выбранного товара
При двойном клике на товаре в "нижней" форме (там где остатки), выбранный товар автоматичсеки добавляется в форму для ввода.
Это не все возможыне варианты....
Любой из 4-х предложенных вариантов не исключает проверку введенного пользователем кол-ва товара на наличие такого кол-ва на складе с последующим предупреждением. Или эту проверку можно перенести на момент сохранения документа | |
|
| |
|
|
|
| почитайте HELP про DSUM и DLOOKUP | |
|
| |
|
15 Кб. |
|
| что-то я напутал по незнанию у меня не работает так как Вы пишите...форма с группировкой и форма ввода на одной таблице строятся.... у меня на 3х .......может поможет схема...
help- я прочитал в перую очередь.. не очень понятно там нет примеров | |
|
| |
|
|
|
|
| >>спасибо на счет учета - мысль прекрасна - но это дальше
ахренеть!
ну продолжайте изобретать велосипед не зная о чем пишеите программу
я вам больше не советчик, гений мля... | |
|
| |
|
|
|
| У меня склад сделан так (объясняю упрощенно):
Таблица [Склад] с 3 полями [Дата], [Код товара] и [К-во товара]
В таблицу вносятся данные (способов множество, но лучше из форм):
приход товара [Дата], [Код товара], [К-во товара] со знаком "+";
расход товара [Дата], [Код товара], [К-во товара] со знаком "-"
Далее в запросах можно получать любую информацию об остатках на любую дату | |
|
| |
|
|
|
| у меня примерно таже база....
из запросов я немогу вставить вычисляемое поле в таблицу | |
|
| |
|
|
|
| вариант без регистров, когда остаток считается от момента начала ведения базы минусы очевидны, плюсы в том что не нужно следить за актуальностью регистров. В вашем случае таблицы остатков нет, есть только таблица операций.
Если нетрудно, то в чем очевидные минусы | |
|
| |
|
|
|
| оборотах хотя бы 200 товаров в обе стороны на приход и расход (не накладных а именно товаров в них), за год наберется 60 тысяч записей. если к этому прибавить номенкратурухотя бы в пару тысяч наименований...Если каждый раз когда нужно получить остаки на сегодня делать запрос с группировкой что бы просумировать все операции по товару, это даже по трафику не мало... т.е. через 2-3 года открытие запроса с остатками будет занимать секунд 5 а то и больше...
IMHO, такое решение подходит только для 2-3 тысяч записей в год | |
|
| |
|
|
|
| У меня в таблице склад порядка 300 000 записей. Действительно отчет с остатками открывается 15 сек.
Примного благодарен за предаставленную информацию, которую можно попробовать применить для увеличения быстрдействия работы со складом. | |
|
| |
|
|
|
| тут же все от задачи зависит.
если отчет по складу делается раз в день, то можно и 15 секунд подождать. Зато никаких закрытий периодов и возможность вводить данные любым числом. | |
|
| |
|