Имя: Пароль:
1C
1С v8
В каких случаях поле "Доступно" больше поля "В наличии" в подборе?
0 SkillUp
 
24.02.20
13:28
Здравствуйте, ситуация - https://drive.google.com/open?id=1O4rhII2qaUHAti_1xWfWer9DkNmEncX1   Вроде как, доступно должно быть всегда рано или меньше чем "В наличии". Или я не прав? А у меня наоборот.

Из интернета:  В наличии показывается весь складской остаток (с учетом всяких резервов под заказы), а в колонке Доступно показан именно свободной складской остаток (за минусом резервов).

И подскажите как вычиляются эти колонки, не могу добраться до кода. Там как-то через объединение, списка номенкдатуры, списка характеристик и остатков. А где именно отсатки вычисляются? Что-то запутался с этими колонками...
1 Галахад
 
гуру
24.02.20
13:41
Скорее всего так и вычисляется. Количество - резерв. Если резерв отрицательный, то свободный остаток может быть бОльшим.
2 Повелитель
 
24.02.20
13:44
(0) Сейчас телепаты попробуют угадать твою конфигурацию.
3 vcv
 
24.02.20
14:56
Либо в конфигурации есть регистр резервов и из-за правок задним числом образовался "красный" резерв. Либо в конфигурации есть регистр свободных/доступных остатков и из-за правок задник числом свободный остаток стал больше фактического. Или не из-за правок задним числом, а из-за программных ошибок. Самое главное - определиться с конфигурацией, телепатов тут нет.
4 SkillUp
 
24.02.20
15:09
(3) Спасибо.
5 Cthulhu
 
24.02.20
15:36
методологическая ошибка разработчика: отмена резервов отдельным документом оперирует не значениями движений резервов отменяемого документа, а единоразово импортирует эти движения и на основании зафиксированных в документе (отмены резервов) данных делает сторно-движения.
последствия, возможные в случаях корректировки документа, по которому уже отменены резервы - рассогласование движений резервов с отменой резервов, в том числе - отрицательные резервы (когда отредактированный документ увеличивает резервы на мЕньшее количество, нежели не измененный соответствующим образом документ отмены резервов их сторнирует).
следствие методологической ошибки разработчика: постоянно держать в уме возможность подобного рассогласования данных, и при любой корректировке документа, формирующего резервы - искать документы, которые отменяют резервы по этому документу и соответствующим образом корректировать еще и снятие резервов. или заказывать доработки, облегчающие подобные (весьма трудоемкие и порой не очевидные) действия.
как-то так...
6 SkillUp
 
24.02.20
15:59
(5) Ого!  Спасибо!
7 SkillUp
 
24.02.20
19:47
Может кто-то искать будет, формирование кода происходит в функции ТекстЗапросаСпискаФормыПодбора(Форма, ТипСписка),  в Общем модуле - "ПодборТоваровСервер".
8 Злопчинский
 
24.02.20
21:42
(5) "...отмена резервов отдельным документом оперирует не значениями движений резервов отменяемого документа..."
как-то мутно непонятно.

есть резерв. резерв, допустим, фиксируется в разрезе "заявки покупателя". но резерв могут двигать кучу разных других документов, а не только сама "заявка покупателя" (или как в 8-ке сделано?).

для отмены резерва (например, условно документ "СнятиеРезерва"), как я полагаю в меру своего незнания, следует прочитать _текущие_остатки_резерва_ (тут мне непонятно почему упоминается "движения резервов отменяемого документа") и снять/закрыть их в 0. В 8-ке не так сделано?

В клюшках я еще для документа СнятиеРезервов (можно снимать не полностью, а частично - столько сколько указано в документе снятия) делал правку - если в результате каких-либо действий на резерве стоит 50шт, а в документе снятия указано 70шт - то снимаем весь возможный резерв НЕ ПРЕВЫШАЮЩИЙ указанное в документе (штатно при описанной ситуации 50-70 документ снятия не проводился)
9 Злопчинский
 
24.02.20
21:44
Насчет Доступон = Количество-Резерв я на формуе писал тыщу раз. такая "ошибка" в клюшках есть (что ведет к нарастанию проблемы снежным комом). Занятно, если такая же ошибка и в 8-ке...
10 SkillUp
 
25.02.20
12:29
(9) Вот строка из запроса по этим колонкам:

ВЫРАЗИТЬ(ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0) / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) КАК ЧИСЛО(15, 3)) КАК ВНаличииОстаток,
    ВЫРАЗИТЬ((ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстатки.ВРезервеПодЗаказОстаток, 0) -
ЕСТЬNULL(СвободныеОстатки.ВРезервеСоСкладаОстаток, 0) + ЕСТЬNULL(ОстаткиИзЗаказов.Количество, 0)) / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) КАК ЧИСЛО(15, 3)) КАК Доступно
11 SkillUp
 
25.02.20
12:39
Конкретно у меня: ВРезервеПодЗаказОстаток идет минусом.

Исходя из строки моего запроса - ВЫРАЗИТЬ((ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстатки.ВРезервеПодЗаказОстаток, 0) -
ЕСТЬNULL(СвободныеОстатки.ВРезервеСоСкладаОстаток, 0) + ЕСТЬNULL(ОстаткиИзЗаказов.Количество, 0)) / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) КАК ЧИСЛО(15, 3)) КАК Доступно

поэтому и плюсует.
12 SkillUp
 
25.02.20
12:41
(11) Два минуса дают плюс.