|   |   | 
| 
 | остатки номенклатуры | ☑ | ||
|---|---|---|---|---|
| 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) спасибо огромное, так всё работает, надо запросы учить начать...     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |