Имя: Пароль:
1C
1С v8
Запрос остатки товаров по документу
0 ShS2
 
29.03.21
11:07
Добрый день
Прохожу на сайте курсы-по-1с.рф Программирование в 1С 8.3 – за 21 день
Остановился на здесь https://курсы-по-1с.рф/free/programming-in-1c-in-21-days/balances-and-turnovers-day-11/

Делаю домашнее задание №11
Вот запрос
ВЫБРАТЬ
    ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
    ОстаткиТоваровОстатки.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки(
            ,
            Номенклатура В
                (ВЫБРАТЬ
                    РеализацияТоваровТовары.Номенклатура
                ИЗ
                    Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
                ГДЕ
                    РеализацияТоваровТовары.Ссылка = &ДокументПродажи)) КАК ОстаткиТоваровОстатки
В отчете выбираю дату и документ реализации, и получаю пустую таблицу
Остатки товаров есть на складе и в реализация товаров есть строки.
1С:Предприятие 8.3, учебная версия (8.3.18.1128)
Подскажите что не так в запросе ?
1 mikecool
 
29.03.21
11:08
на сайте-оригинале не отвечают?
2 mikecool
 
29.03.21
11:09
если запрос не работает - убери условия, заработал - значит условия ложные
3 ShS2
 
29.03.21
11:15
Убрал в запросе условие
ВЫБРАТЬ
    ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
    ОстаткиТоваровОстатки.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки(
            ,
            Номенклатура В
                (ВЫБРАТЬ
                    РеализацияТоваровТовары.Номенклатура КАК Номенклатура
                ИЗ
                    Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары)

Получил пустой список
Оставил только так
ВЫБРАТЬ
    ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
    ОстаткиТоваровОстатки.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки(, ) КАК ОстаткиТоваровОстатки
Получил нормальные остатки остатки
4 ShS2
 
29.03.21
11:16
Сделал отдельный отчет с запросом
ВЫБРАТЬ
    РеализацияТоваровТовары.Номенклатура КАК Номенклатура
ИЗ
    Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
ГДЕ
    РеализацияТоваровТовары.Ссылка.Ссылка = &ДокументПродажи
Получил список товаров из документа реализации
5 Волшебник
 
29.03.21
11:17
(0) >> В отчете выбираю дату

В запросе нет даты
6 Kassern
 
29.03.21
11:19
(4) запихни его в виртуальную таблицу, а далее во втором пакете, сделай через левое соединеие по номенклатуре с регистом остатков
7 Волшебник
 
29.03.21
11:20
(6) Не в виртуальную, а во временную
8 Kassern
 
29.03.21
11:22
(7) да опечатался немного))
9 mikecool
 
29.03.21
11:26
(3) номенклатура в остаткам и реализации не совпадает
10 mikecool
 
29.03.21
11:26
+9 или типы не совпадают
11 ShS2
 
29.03.21
11:26
(6) Прости но я пока это не умею.
Я делаю все как в видео разбор домашнего задания День 11. Получение данных из регистров
а в отчет не попадают остатки.

(5) Изменил отчет так
ВЫБРАТЬ
    ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
    ОстаткиТоваровОстатки.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки(
            &Период,
            Номенклатура В
                (ВЫБРАТЬ
                    РеализацияТоваровТовары.Номенклатура
                ИЗ
                    Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
                ГДЕ
                    РеализацияТоваровТовары.Ссылка = &ДокументПродажи)) КАК ОстаткиТоваровОстатки

Все равно пустые остатки.
12 mikecool
 
29.03.21
11:28
(11) см 9,10
13 Kassern
 
29.03.21
11:38
(11) Берешь твой запрос с номенклатурой из реализации из (4), переходишь на вкладку "дополнительно" - создание временной таблицы, называешь ее к примеру "ТЧРеализации". Переходишь в на вкладку "Пакет запросов", нажимаешь на плюсик. У тебя откроется новый пакет запросов, в нем у тебя будет слева отображаться уже временные таблицы. Выбираешь от туда твою "ТЧРеализации" и и твой регистр остатков. На вкладке связи таблица 1 это твоя временная, таблица 2 это твой регистр, рядом с временной таблицей там поставь галочку (чтобы было левое соединение). В условии связи выбери номенклатуру. И вуаля, запрос уже не будет у тебя пустой, а вот остатки, если они есть то будут, если нет - null. Лучше конечно вместо ОстаткиТоваровОстатки.КоличествоОстаток написать ЕстьNull(ОстаткиТоваровОстатки.КоличествоОстаток,0).
14 ShS2
 
29.03.21
11:42
(9) Проверил совпадают
Остатки
Карандаш 16шт
Ручки 89шт
Стерка 4шт

В документе реализация
Карандаш 5шт
Стерка 2шт

(10) Как типы не совпадают ?
15 Kassern
 
29.03.21
11:47
(14) а если убрать подзапрос по реализации в виртуальной таблице остатков, там будет твой карандаш, стерка?
16 Михаил Козлов
 
29.03.21
11:50
(15) ТС пишет, что будут. Попробуйте подзапрос заменить внутренним соединением, хотя это странно.
17 Kassern
 
29.03.21
11:52
(16) да хз, может он остатки смотрит типовым отчетом на старую дату, а на текущую по факту остатков нет
18 Масянька
 
29.03.21
11:59
(0)
ВЫБРАТЬ
    ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
    ОстаткиТоваровОстатки.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки(
            &Момент,
            Номенклатура В
                (ВЫБРАТЬ
...............
ГраницаПоДокумент=Новый Граница(МоментВремени(), ВидГраницы.Включая);
("Момент", ГраницаПоДокумент) - параметр

Не?
19 ShS2
 
29.03.21
12:01
(15) Если убрать запрос в параметрах виртуальной таблицы, то в отчете исчезает документ реализация и показывает все остатки
Карандаш 16шт
Ручки 89шт
Стерка 4шт
20 ShS2
 
29.03.21
12:05
(18)
ГраницаПоДокумент=Новый Граница(МоментВремени(), ВидГраницы.Включая);
("Момент", ГраницаПоДокумент) - параметр

Не понял куда это писать ?
21 ShS2
 
29.03.21
12:10
Вот моя база https://www.dropbox.com/s/3rp6eiw4etjwg32/1Cv8.dt?dl=0
Посмотрите, пожалуйста если не сложно.
Отчет называется ОстаткиТоваровПоДокументу
22 Kassern
 
29.03.21
12:10
(19) Сделай, как я тебе в (13) написал и будет тебе счастье
23 ShS2
 
29.03.21
12:27
(22) Спасибо, разбираюсь с (13)
24 ShS2
 
31.03.21
15:27
В регистре ОстаткиТоваров измерение Номенклатура было типа Строка.
Поэтому в отчет не попадало.
Изменил на тип СправочникСсылка.Номенклатура и все заработало.
Все спасибо, за ответы.
25 Kassern
 
31.03.21
15:29
(24) временные таблицы осилил?
26 ShS2
 
31.03.21
15:35
(25) Пока еще разбираюсь.
27 Mikeware
 
31.03.21
15:38
хм. миздюк со стажем в 15 лет проходит курс "программирование за 21 день"? у меня когнитивный диссонанс...
28 Kassern
 
31.03.21
15:44
(27) видимо откладывал на завтра, а завтра наступило лишь через 15 лет)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.