Имя: Пароль:
1C
 
нет данных в запросе
0 falselight
 
28.07.16
11:06
Розница. Подскажите пожалуйста в чем причина отсутствия данных во втором запросе.
Не могу разобраться.
В первый запрос передаются движения документа. В параметр &ТоварыНаСкладах ->  Источник.Движения.ТоварыНаСкладах.
Во второй по аналогии я передаю значения табличной части документа.
Вроде все так же. Но по одному документу первый запрос выбирает 2 записи.
Второй по этому же документу, в итоговом запросе не выбирает данных.

Запрос первый.

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ДвиженияТоварыНаСкладах.Номенклатура,
    ДвиженияТоварыНаСкладах.Характеристика
ПОМЕСТИТЬ ТаблицаПоТоварам
ИЗ
    ДвиженияТоварыНаСкладах КАК ДвиженияТоварыНаСкладах
ГДЕ
    ДвиженияТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    И ДвиженияТоварыНаСкладах.Номенклатура.ВидНоменклатуры.ор_ИнвентарныйУчет
    И НЕ ДвиженияТоварыНаСкладах.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДвиженияТоварыНаСкладах.ВидДвижения,
    ДвиженияТоварыНаСкладах.Склад,
    ДвиженияТоварыНаСкладах.Номенклатура,
    ДвиженияТоварыНаСкладах.Характеристика,
    ДвиженияТоварыНаСкладах.Количество
ИЗ
    ДвиженияТоварыНаСкладах КАК ДвиженияТоварыНаСкладах
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТаблицаПоТоварам.Номенклатура,
    ТаблицаПоТоварам.Характеристика
ИЗ
    ТаблицаПоТоварам КАК ТаблицаПоТоварам
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Характеристика,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    ТаблицаПоТоварам КАК ТаблицаПоТоварам
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
                ,
                (Номенклатура, Характеристика) В
                    (ВЫБРАТЬ
                        ТаблицаПоТоварам.Номенклатура,
                        ТаблицаПоТоварам.Характеристика
                    ИЗ
                        ТаблицаПоТоварам КАК ТаблицаПоТоварам)) КАК ТоварыНаСкладахОстатки
        ПО ТаблицаПоТоварам.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И ТаблицаПоТоварам.Характеристика = ТоварыНаСкладахОстатки.Характеристика
ГДЕ
    ТоварыНаСкладахОстатки.КоличествоОстаток > 1

Запрос второй.

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ДвиженияТоварыНаСкладах.Номенклатура,
    ДвиженияТоварыНаСкладах.Характеристика
ПОМЕСТИТЬ ТаблицаПоТоварам
ИЗ
    ДвиженияТоварыНаСкладах КАК ДвиженияТоварыНаСкладах
ГДЕ
    ДвиженияТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    И ДвиженияТоварыНаСкладах.Номенклатура.ВидНоменклатуры.ор_ИнвентарныйУчет
    И НЕ ДвиженияТоварыНаСкладах.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДвиженияТоварыНаСкладах.ВидДвижения,
    ДвиженияТоварыНаСкладах.Склад,
    ДвиженияТоварыНаСкладах.Номенклатура,
    ДвиженияТоварыНаСкладах.Характеристика,
    ДвиженияТоварыНаСкладах.Количество
ИЗ
    ДвиженияТоварыНаСкладах КАК ДвиженияТоварыНаСкладах
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТаблицаПоТоварам.Номенклатура,
    ТаблицаПоТоварам.Характеристика
ИЗ
    ТаблицаПоТоварам КАК ТаблицаПоТоварам
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Характеристика,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    ТаблицаПоТоварам КАК ТаблицаПоТоварам
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
                ,
                (Номенклатура, Характеристика) В
                    (ВЫБРАТЬ
                        ТаблицаПоТоварам.Номенклатура,
                        ТаблицаПоТоварам.Характеристика
                    ИЗ
                        ТаблицаПоТоварам КАК ТаблицаПоТоварам)) КАК ТоварыНаСкладахОстатки
        ПО ТаблицаПоТоварам.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И ТаблицаПоТоварам.Характеристика = ТоварыНаСкладахОстатки.Характеристика
ГДЕ
    ТоварыНаСкладахОстатки.КоличествоОстаток > 1
1 Ёпрст
 
гуру
28.07.16
11:12
ТоварыНаСкладахОстатки.КоличествоОстаток > 1

мот с нулём сравнивать, хотя бы ?
2 falselight
 
28.07.16
11:13
(1) когда это выполняется первым запросом и при проведении документа, процедура подключена через подписку на событие обработка проведения, в запрос передается движения документа Источник.Движения.ТоварыНаСкладах и вот там все выбирается
3 falselight
 
28.07.16
11:14
(1) заменил движения на таблицу документа
выполняю в консоле запросов, в выборке итогового запроса пусто (((
4 Ёпрст
 
гуру
28.07.16
11:15
(2) дык остатков нема, вот и в запросе пусто
+ смотри содержимое временных таблиц в консоле
5 Nuobu
 
28.07.16
11:15
(3) Эти запросы ввыполняются в одно и то же время, или в разное? Может, в регистре "ТоварыНаСкладах" еще нет записей?
6 vicof
 
28.07.16
11:20
вот развел-то тем
7 falselight
 
28.07.16
11:21
(4) во временных таблицах есть записи в итоговой нет
а когда передаются движения документа при проведении
в итоговом 2 записи, как мне получить эти записи во втором запросе?

(5) первый запрос выполняется во время проведения документа
второй я выполняю в консоле запросов, передавая в него ссылку на документ
8 falselight
 
28.07.16
11:22
при проведении данные первого запроса выводятся в сообщениях
если проводить или записывать документ обработкой
можно ли как то получить содержимое сообщений что выводятся при проведении документа?
9 Ёпрст
 
гуру
28.07.16
11:23
(7) дык сравни результаты первого и второго, в части получения таблицы Номенклатура-характеристика, это для начала.
Потом, что в останках.
10 Ёпрст
 
гуру
28.07.16
11:24
Ну и в консоли, ты получаешь остнаки уже с учетом движений самого документа, в момент проведения - без них.
11 Nuobu
 
28.07.16
11:24
(7) Ну так правильно. У тебя в ф-и "ОбработкаПроведения" еще нету записей в регистре. Поэтому и второй не отрабатывает.
А в консоли отрабатывает, потому что записи в регистре уже есть.
12 falselight
 
28.07.16
11:25
(11) наоборот, отрабатывает при проведении докумнета
13 falselight
 
28.07.16
11:25
(11) а в консоле я передаю табличную часть в первый пакет запросе и ничего не отрабатывает
а при проведении туда передается движения документа
14 falselight
 
28.07.16
11:26
как мне симитировать выполнение запроса который отрабатывает при проведении документа? не получилось в него передать табличную часть докумнета
15 Ёпрст
 
гуру
28.07.16
11:37
(14) нафига ?
16 Ёпрст
 
гуру
28.07.16
11:37
ну , делай в консоли всё тоже самое + вычитай движения самого документа
17 falselight
 
28.07.16
11:43
(15) мне нужно получить выборку первого запроса что выполняется при проведении документа, что бы не вносить эти позиции в табличную часть документа

но а второй запрос это не тоже самое???? как вычитать движения самого документа?
Во второй запрос выполняемый в консоле я передаю табличную часть документа. И он ничего не выбирает в итоговом запросе.
18 Nuobu
 
28.07.16
11:44
(17) Потому что остатков уже нет.

Установить дату
МоментВремени(Новый Граница(Дата, ВидГраницы.НеВключая))
19 Ёпрст
 
гуру
28.07.16
11:55
(18) это не верно, ибо он смотрит оперативные останки..Может быть хренова куча документов опосля этого документа.
20 falselight
 
28.07.16
11:57
(19) это нужно для загрузке этого документа обработкой
симитировать то как работает первый запрос при проведении документа
и не дабавлять эту номенклатуру в табличную часть
которую он выбирает
21 falselight
 
28.07.16
11:58
(18) дату эту куда установить при выполнении второго запроса?
я передаю туда табличную часть документа
22 Ёпрст
 
гуру
28.07.16
12:01
(20) в своей имиттации, смотри движения в регистре по регистратору и прибавляй их к остаткам. Усё.
23 Ёпрст
 
гуру
28.07.16
12:02
будет просто 2 запроса через объеденить все - один к вт останки и второй - к реальной табличке регистра с условием на регистратор. Усё.
24 vicof
 
28.07.16
12:11
(23) Зря стараешься, ему за 10 лет никто ничего вдолбить в голову не смог.
25 Ёпрст
 
гуру
28.07.16
12:12
(24) ну а вдруг придёт оно, просветление ?
26 vicof
 
28.07.16
12:16
(25) Если только к тебе) сможешь ванговать на 80 уровне и гадать по скриншотам.
27 falselight
 
28.07.16
14:57
(23) там не так все будет
будет совсем другой запрос
это контроль поступления товаров
специфичная конфигурация
появились идеи