Имя: Пароль:
1C
1С v8
остатки товаров по произвольному складу
0 semuss
 
21.04.16
17:55
Добрый день! В конфигурации Розница (базовая), редакция 1.0 (1.0.18.1) при вставке след. запроса в процедуру "обработка проведения" модуля объекта:

    ЗапросОстатки.Текст =
    "ВЫБРАТЬ
    |    ЕСТЬNULL(ТоварыНаСкладахОстатки1.КоличествоОстаток,0) КАК КоличествоОстаток1,
    |    ПеремещениеТоваровТовары.Номенклатура
    |ИЗ
    |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
    |                &Период,
    |                Номенклатура В
    |                    (ВЫБРАТЬ
    |                        ПеремещениеТоваровТовары.Номенклатура
    |                    ИЗ
    |                        Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
    |                    ГДЕ
    |                        ПеремещениеТоваровТовары.Ссылка = &Ссылка)) КАК ТоварыНаСкладахОстатки1
    |        ПО ПеремещениеТоваровТовары.Номенклатура = ТоварыНаСкладахОстатки1.Номенклатура
    |ГДЕ
    |    ПеремещениеТоваровТовары.Ссылка = &Ссылка
    |    И ТоварыНаСкладахОстатки1.Склад = &Бух";

программа выдает остатки только по складу-получателю или складу-отправителю документа, а для произвольного, через найтиПоКоду или НайтиПоНаименованию не выдает никаких данных. В чем может быть дело?
1 mehfk
 
21.04.16
18:01
Это SQL, дружищще. Что написал - то и получил.
2 semuss
 
21.04.16
18:03
Где ошибка у меня?
3 semuss
 
21.04.16
18:11
Через НайтиПоКоду или через НайтиПоНаименованию тоже работает, если уже в режиме предприятия поменять склад-отправитель или склад-получатель на соответствующий. Тут какое-то ограничение по правам, как мне кажется, но где оно настраивается? Куда копать, подскажите...
4 mehfk
 
21.04.16
18:40
Какие разделы высшей математики были в твоем ВУЗе?
5 echo77
 
21.04.16
18:50
(0)  
|ГДЕ
|     ТоварыНаСкладахОстатки1.Склад = &Бух

- превращает ЛЕВОЕ СОЕДИНЕНИЕ во ВНУТРЕННЕЕ
6 semuss
 
21.04.16
18:50
Сильно туплю, да? Со мной бывает. А подсказать так сложно?
7 mehfk
 
21.04.16
18:51
(5) Выстрел в молоко.
8 mehfk
 
21.04.16
18:52
(6) Ответь на (4)
9 echo77
 
21.04.16
18:53
(6) Отбор пр складу поставь в параметры ВТ ТоварыНаСкладахОстатки1
10 semuss
 
21.04.16
19:10
(9) Пишу в параметры виртуальной таблицы:
Номенклатура В
    (ВЫБРАТЬ
        ПеремещениеТоваровТовары.Номенклатура
    ИЗ
        Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
    ГДЕ
        ПеремещениеТоваровТовары.Ссылка = &Ссылка),
Склад = &Склад

пишет: Неверные параметры "РегистрНакопления.ТоварыНаСкладах.Остатки, 1".
Ваще... Что ему не нравится-то???
11 semuss
 
21.04.16
19:12
(8) я не помню уже ничего... я не программистом работаю, раньше изучал 1С, просто решил чуть доработать код по старой памяти. А видать мозги уже совсем отсохли...
12 mehfk
 
21.04.16
19:19
13 mehfk
 
21.04.16
19:23
(10)

ГДЕ
        ПеремещениеТоваровТовары.Ссылка = &Ссылка),
Склад = &Склад

==>

ГДЕ
        ПеремещениеТоваровТовары.Ссылка = &Ссылка) AND
Склад = &Склад

+ убрать
И ТоварыНаСкладахОстатки1.Склад = &Бух
14 semuss
 
21.04.16
19:38
(13) Понятно, спасибо.

Убрал вообще соединение таблиц, нафиг оно мне?
Вот такой запрос должен же работать?

    ЗапросОстатки.Текст =
    "ВЫБРАТЬ
    |    ЕСТЬNULL(ТоварыНаСкладахОстатки1.КоличествоОстаток, 0) КАК КоличествоОстаток1,
    |    ТоварыНаСкладахОстатки1.Номенклатура
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(
    |            &Период,
    |            Номенклатура В
    |                    (ВЫБРАТЬ
    |                        ПеремещениеТоваровТовары.Номенклатура
    |                    ИЗ
    |                        Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
    |                    ГДЕ
    |                        ПеремещениеТоваровТовары.Ссылка = &Ссылка)
    |                И Склад = &Бух) КАК ТоварыНаСкладахОстатки1";


А не работает...
15 mehfk
 
21.04.16
19:44
Давай гляну через TeamViewer
16 semuss
 
21.04.16
20:07
Нет, так не получится... Спасибо за предложение, конечно...