|
остатки номенклатуры | ☑ | ||
---|---|---|---|---|
0
who respawn
29.11.23
✎
15:46
|
Привет, подскажите, как получить свободный остаток номенклатуры
Я получаю общий остаток, вычитаю из него резерв, вот пример Общий остаток 100 Свободный 20 Резерв 75 а 5 штук эта те, которые в документах но в них нет расходников из какого регистра мне эти 5 получать? УТ 10 |
|||
1
mikecool
29.11.23
✎
15:59
|
в 10ке есть набор регистров, поищи по конфигурации СвободныйОстаток()
|
|||
2
who respawn
29.11.23
✎
16:16
|
(1) нет ничего со содержащее "Свобод"
|
|||
3
who respawn
29.11.23
✎
16:23
|
ТоварыКПередачеСоСкладовОстатки это те самые без расходника?
|
|||
4
Homer
29.11.23
✎
16:24
|
РегистрНакопления.СвободныеОстатки
РегистрНакопления.ТоварыВРезервеНаСкладах РегистрНакопления.ТоварыВРознице РегистрНакопления.ТоварыКПередачеОрганизаций РегистрНакопления.ТоварыКПередачеСоСкладов РегистрНакопления.ТоварыНаСкладах РегистрНакопления.ТоварыОрганизаций РегистрНакопления.ТоварыПереданные |
|||
5
who respawn
29.11.23
✎
16:25
|
(4) у меня нетиповая, видимо из-за этого СвободныеОстатки - нет такого
|
|||
6
Homer
29.11.23
✎
16:30
|
(5) у вас древня конфигурация. СвободныеОстатки появился через какое-то время и он заменил другие регистры.
|
|||
7
Homer
29.11.23
✎
16:34
|
как вариант глянуть данный отчет
АнализДоступностиТоваровНаСкладах |
|||
8
Tatitutu
29.11.23
✎
17:39
|
(0) а как ты Свободный = 20 получил ?
а 5 штук эта те, которые в документах но в них нет расходников из какого регистра мне эти 5 получать? МАТЕМАТИКА 100 - 75 -20 = 5 Не , благодари ! |
|||
9
who respawn
29.11.23
✎
17:48
|
(8) спасибо, но мне нужен регистр где эти 5 хранятся
|
|||
10
who respawn
29.11.23
✎
17:48
|
(6) да, древняя, я разобрался
спасибо |
|||
11
who respawn
01.12.23
✎
07:47
|
не разобрался
что не так делаю? Запрос1 = Новый запрос; Запрос1.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК Количество, | ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток КАК Количество1 |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки | ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура | И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры | И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки КАК ТоварыКПередачеСоСкладовОстатки | ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыКПередачеСоСкладовОстатки.Номенклатура | И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыКПередачеСоСкладовОстатки.ХарактеристикаНоменклатуры | И ТоварыНаСкладахОстатки.Склад = ТоварыКПередачеСоСкладовОстатки.Склад |ГДЕ | ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура | И ТоварыНаСкладахОстатки.Склад = &Склад | И ТоварыКПередачеСоСкладовОстатки.Склад = &Склад | И ТоварыНаСкладахОстатки.Склад = &Склад | И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры"; Запрос1.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("Ц123")); Запрос1.УстановитьПараметр("Номенклатура",ВыборкаСтрокТовары.Номенклатура); Запрос1.УстановитьПараметр("ХарактеристикаНоменклатуры", ВыборкаСтрокТовары.Характеристика); Рез1 = Запрос1.Выполнить().Выгрузить(); Для каждого ОстаткиНом из Рез1 цикл ОстатокКонечный = ОстаткиНом.КоличествоОстаток - ОстаткиНом.КОличество - ОстаткиНом.Количество1; ОбластьДанных.Параметры.КолВоСклад = ОстатокКонечный; Если ОстатокКонечный > 0 Тогда ОбластьДанных.Параметры.Остаток = "Да" иначе ОбластьДанных.Параметры.Остаток = "Нет" КонецЕсли; КонецЦикла; |
|||
12
who respawn
01.12.23
✎
07:51
|
Хочу получить свободный остаток и потом заполнить печатную форму строки ТЧ им но у меня что-то не так видимо в коде
|
|||
13
Галахад
01.12.23
✎
08:09
|
1С не любит когда в арифметических операциях встречаются данные других типов.
|
|||
14
who respawn
01.12.23
✎
08:35
|
(13) так везде число?
|
|||
15
who respawn
01.12.23
✎
08:37
|
(13) у меня проблема не в арифметических операциях, а я думаю проблема в коде в целом потому что у меня например идёт так
Перчатки Остаток 2222 потом в отладчике идёт Ботинки Остаток 234, а в печатной форме Ботинки Остаток 2222 |
|||
16
Галахад
01.12.23
✎
09:09
|
(15) Вероятно, потому что Рез1 пустой.
|
|||
17
who respawn
01.12.23
✎
09:25
|
(16) так как пустой, я ж отладкой прохожу по циклу рез1
|
|||
18
who respawn
01.12.23
✎
09:32
|
(16) не пустой, но нет в результате некоторой номенклатуры, да
вопрос, почему Остатки товаров на складах и Ведомость по товарам на складах показывает что остаток есть а мой запрос ВЫБРАТЬ ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество, ЕСТЬNULL(ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток, 0) КАК Количество1 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки КАК ТоварыКПередачеСоСкладовОстатки ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыКПередачеСоСкладовОстатки.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыКПередачеСоСкладовОстатки.ХарактеристикаНоменклатуры И ТоварыНаСкладахОстатки.Склад = ТоварыКПередачеСоСкладовОстатки.Склад ГДЕ ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура И ТоварыНаСкладахОстатки.Склад = &Склад И ТоварыКПередачеСоСкладовОстатки.Склад = &Склад И ТоварыНаСкладахОстатки.Склад = &Склад И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры не показывает остатки |
|||
19
who respawn
01.12.23
✎
09:41
|
ВЫБРАТЬ
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ГДЕ ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры И ТоварыНаСкладахОстатки.Склад = &Склад если так, то остаток есть что не так в моём запросе? |
|||
20
who respawn
01.12.23
✎
09:54
|
??? подскажите пожалуйста что я не так сделал в запросе своём, Что он перестал остатки показывать
|
|||
21
Галахад
01.12.23
✎
10:02
|
(20) Ты же в (15) говоришь, что показывает.
|
|||
22
Homer
01.12.23
✎
10:04
|
(18)
Убери И ТоварыКПередачеСоСкладовОстатки.Склад = &Склад |
|||
23
who respawn
01.12.23
✎
10:20
|
(21) да, показывает, но не всю номенклатуру, просто в доке много
|
|||
24
who respawn
01.12.23
✎
10:23
|
(22) да, можешь пожалуйста объяснить почему это мешало запросу?
|
|||
25
who respawn
01.12.23
✎
11:41
|
Вопрос ещё такой, в счёте 2 номенклатуры одинаковые с разными характеристиками
1)абв 102 2)абв 103 если так стоят, то некорректно в печатную форму выводит, а точнее в 1ой строке просто ничего не пишет, а если их поменять в документе местами, то и по 1 и по 2 корректно пишет почему так может быть? |
|||
26
Homer
01.12.23
✎
12:01
|
(24) https://forum.infostart.ru/forum76/topic145929/
(25) тут магия бессильна |
|||
27
who respawn
01.12.23
✎
12:06
|
Я чёто не понял, а как мне быть, если остатков нет, получается результат запроса пустой и как мне обрабатывать его? он же не пишет остаток = 0, он просто записи не выводит
|
|||
28
who respawn
01.12.23
✎
12:23
|
(26) Если в условиях оставить только по основному регистру Склад = &Склад, то остатки неверные показывает, если добавить склады из двух других регистров то остатки верные
|
|||
29
who respawn
01.12.23
✎
12:25
|
НО как я понял если убрать СКлад = &склад двух других регистров то он начинает смотреть не по выбранному складу а по всем не смотря на то что в "Связи" я указал РН1 склад = РН2 склад и РН1 склад = РН 3 склад
|
|||
30
Homer
01.12.23
✎
12:53
|
(29) вы не правильно поняли.
(27) Обычно делают соединение со справочником Номенклатура. Отбор номенклатуры накладывают на данный справочник и делают соединение с регистрами + куда удобнее работать в запросе с объединением |
|||
31
who respawn
01.12.23
✎
13:02
|
(30) можете подсказать что изменить в моём запросе и как? я честно не понимаю
|
|||
32
who respawn
01.12.23
✎
13:06
|
Запрос1 = Новый запрос;
Запрос1.Текст = "ВЫБРАТЬ | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество, | ЕСТЬNULL(ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток, 0) КАК Количество1 |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки КАК ТоварыКПередачеСоСкладовОстатки | ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыКПередачеСоСкладовОстатки.Номенклатура | И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыКПередачеСоСкладовОстатки.ХарактеристикаНоменклатуры | И ТоварыНаСкладахОстатки.Склад = ТоварыКПередачеСоСкладовОстатки.Склад | И ТоварыНаСкладахОстатки.Склад = ТоварыКПередачеСоСкладовОстатки.Склад | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки | ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура | И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры | И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад | И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад |ГДЕ | ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура | И ТоварыНаСкладахОстатки.Склад = &Склад | И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры"; Запрос1.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("Ц0021")); Запрос1.УстановитьПараметр("Номенклатура",ВыборкаСтрокТовары.Номенклатура); Запрос1.УстановитьПараметр("ХарактеристикаНоменклатуры", ВыборкаСтрокТовары.Характеристика); Рез11 = Запрос1.Выполнить(); Рез1 = рез11.Выгрузить(); Для каждого ОстаткиНом из Рез1 цикл ОстатокКонечный = ОстаткиНом.КоличествоОстаток - ОстаткиНом.КОличество - ОстаткиНом.Количество1; ОбластьДанных.Параметры.КолВоСклад = ОстатокКонечный; Если ОстатокКонечный > 0 Тогда ОбластьДанных.Параметры.ОстатокКомплекс = "Да" иначеесли ОстатокКонечный <= 0 тогда ОбластьДанных.Параметры.ОстатокКомплекс = "Нет" КонецЕсли; КонецЦикла; этот код показывает неверные остатки |
|||
33
Homer
01.12.23
✎
13:11
|
ВЫБРАТЬ РАЗРЕШЕННЫЕ
мНоменклатура.Ссылка КАК Номенклатура, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, 0 КАК Количество, 0 КАК Количество1 ПОМЕСТИТЬ м1 ИЗ Справочник.Номенклатура КАК мНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( , Склад = &Склад И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры) КАК ТоварыНаСкладахОстатки ПО мНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура ГДЕ мНоменклатура.Ссылка В(&Номенклатура) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ мНоменклатура.Ссылка, 0, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0), 0 ИЗ Справочник.Номенклатура КАК мНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( , Склад = &Склад И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры) КАК ТоварыНаСкладахОстатки ПО мНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура ГДЕ мНоменклатура.Ссылка В(&Номенклатура) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ мНоменклатура.Ссылка, 0, 0, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) ИЗ Справочник.Номенклатура КАК мНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки( , Склад = &Склад И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры) КАК ТоварыНаСкладахОстатки ПО мНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура ГДЕ мНоменклатура.Ссылка В(&Номенклатура) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ м1.Номенклатура, СУММА(м1.КоличествоОстаток) КАК КоличествоОстаток, СУММА(м1.Количество) КАК Количество, СУММА(м1.Количество1) КАК Количество1 ИЗ м1 КАК м1 СГРУППИРОВАТЬ ПО м1.Номенклатура |
|||
34
Галахад
01.12.23
✎
13:35
|
(33) А для чего соединение с Номенклатурой?
|
|||
35
who respawn
01.12.23
✎
13:36
|
(33) спасибо огромное, так всё работает, надо запросы учить начать...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |