Имя: Пароль:
1C
1С v8
Условие в запросе на регистратор
,
0 Ly_Alena
 
18.05.16
12:57
Добрый день! Такая задача отобрать все товары со склада, у которых нет регистратора например реализация товаров и услуг.
Например на складе лежит 10 велосипедов
из них продали 2 шт. мне нужно чтобы мне не 8 показал, а совсем эту позицию не отображал. Как это сделать?
1 Тролль главный
 
18.05.16
12:59
регистр ТоварыНаСкладах.Остатки соедини с регистром Продажи.Обороты и выбери те, которых нет
2 Ly_Alena
 
18.05.16
13:02
(1) как выбрать "те которых нет"?
3 Jonny_Khomich
 
18.05.16
13:04
(2) is null
4 Тролль главный
 
18.05.16
13:04
(2) этот простой вопрос я задаю на собеседованиях
знаю ТРИ принципиально разных решения этой задачи запросом (правда одно из них глупое)
5 Ly_Alena
 
18.05.16
13:11
Я думала взять ТоварыНаСкладах - отбирала всю номенклатуру с регистратором реализация, а вот как потом соединить с таким же регистром, чтобы номенклатуру эту не взял? естьnull не сталкивалась...
6 ДенисЧ
 
18.05.16
13:16
(5) Столкнись. С разбегу. Только сначала ядом его обмажь. Для гарантии
7 Тролль главный
 
18.05.16
13:18
Вариант 1.

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
        ПО ТоварыНаСкладахОстатки.Номенклатура = ПродажиОбороты.Номенклатура
ГДЕ
    ПродажиОбороты.Номенклатура ЕСТЬ NULL

Вариант 2.

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

Вариант 3 (извращенный).

   ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура
ИЗ
    (ВЫБРАТЬ
        ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
        0 КАК Флаг
    ИЗ
        РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ПродажиОбороты.Номенклатура,
        1
    ИЗ
        РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура

ИМЕЮЩИЕ
    СУММА(ВложенныйЗапрос.Флаг) = 0
8 Ly_Alena
 
18.05.16
13:35
(6) я так рада что Вы родились со знаниями программирования на 1С. Нам смертным приходится сначала учиться кушать, ползать, ходить, потом читать, писать... и только потом получать первые навыки в программировании...
9 TeMochkiN
 
18.05.16
13:40
(7) во втором варианте, условие было бы правильней использовать в параметрах виртуальной таблицы
10 Бледно Золотистый
 
18.05.16
13:49
(8) У вас верно указан порядок, сначала читать, а потом писать. На практике вы почему то придерживаетесь обратного порядка. Вот, например, достал я из тумбочки 1С:Предприятие 8.1 Простые примеры разработки, Габец, Гончаров. На 205-206 страницах есть вся необходимая информация для вас смертных.
11 тарам пам пам
 
18.05.16
13:50
(6) я бы извращенным назвал второй вариант - он с большой вероятностью будет тормозить, в отличии от третьего
12 Ly_Alena
 
18.05.16
14:01
(7) Спасибо! Буду пробовать
13 lodger
 
18.05.16
14:07
(11) если в первом пакете сбацать ВремТаб, а во втором искать вхождение в ВТ будет экономичнее к инфо.ресурсам, но производительность будет жрать так же.
14 aleks_default
 
18.05.16
14:18
А вы уверены что правильно поняли что нужно? Я вот вообще ниче не понял из топика.
15 Nuobu
 
18.05.16
14:21
(14) Отобразить остатки товаров, которые ВООБЩЕ не продавались.
16 aleks_default
 
18.05.16
14:27
(15)Теперь понял. Спасибо.
17 lodger
 
18.05.16
14:31
(0) выдвигаю на рассмотрение еще один вариант

ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура КАК Номенклатура
ИЗ
    (ВЫБРАТЬ
        ТоварыНаСкладах.Номенклатура КАК Номенклатура,
        МАКСИМУМ(ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК Поле1
    ИЗ
        РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    
    СГРУППИРОВАТЬ ПО
        ТоварыНаСкладах.Номенклатура) КАК ВложенныйЗапрос
ГДЕ
    НЕ ВложенныйЗапрос.Поле1
18 lodger
 
18.05.16
14:32
хотя (17) лучше наверное делать по таблице Обороты с ограничением по просматриваемому периоду.
19 lodger
 
18.05.16
14:33
(18) точнее я затупил. не рассматривайте запрос :DD
20 catena
 
18.05.16
14:37
Вообще-вообще никогда в истории? А если когда-то давно было 10 велосипедов, продали 10 велосипедов и спустя много лет положили на склад новые 10 велосипедов и никак они, заразы, не продаются...
21 lera01
 
18.05.16
14:47
(0) На начало периода было 10 велосипедов, продали в периоде 2. Значит, 8 лежат там весь период и эту позицию показывать не надо, потому что за период не все продалось, что лежало там на начало периода? Тогда объединением запросов по остаткам и оборотам и продажам получай продажи и начальные остатки, суй во временную таблицу и выбирай из таблицы только те записи, где продажи больше или равны начальным остаткам. Как-то так.
22 Тролль главный
 
18.05.16
16:54
(9) да, писал на ходу
23 Ly_Alena
 
18.05.16
18:05
Я сделала без регистров. Первый запрос выбираю из товаров всю номенклатуру, у которой регистратор реализация и ещё ряд документов (помещаю во временную таблицу) соединяю снова с товарами через есть null как посоветовали. Хотелось бы услышать комментарии по такому варианту решения этой задачи.
24 Тролль главный
 
19.05.16
10:08
(23) решение гауно
25 Defender aka LINN
 
19.05.16
10:37
(23) "сделала без регистров" и тут же "выбираю из товаров всю номенклатуру, у которой регистратор".
Вам бы в хохляндию, там ценятся люди, которые способны в одном предложении высказать две противоположные точки зрения
26 Ly_Alena
 
19.05.16
10:38
(24) почему?
27 Ly_Alena
 
19.05.16
10:38
(25) Кличко покусал )
28 Ly_Alena
 
13.07.16
12:09
Можно возобновить тему?
Два регистра - в одном отбираем все что не нужно соединяем со вторым по номенклатуре и году выпуска. В условиях есть Null по номенклатуре. Задача была такая, если номенклатура хоть с одного склада бралась, то нам ее отображать в отчете не надо.
Теперь ситуация - пользователь берет со склада А номенклатуру под производство перемещает на себя (склад Б), потом со своего склада Б списывает. Если отчет формировать по номенклатуре - она не отображается. Если сформировать по складу А - то она отображается. Связи по складу нет. Как быть?
29 Ly_Alena
 
13.07.16
12:10
up
30 Ёпрст
 
13.07.16
12:15
(28) показать текст запроса, для начала
31 Ly_Alena
 
13.07.16
12:19
ВЫБРАТЬ
    ВложенныйЗапрос1.Склад,
    ВложенныйЗапрос1.Номенклатура,
    ВложенныйЗапрос1.ГодВыпуска,
    ВложенныйЗапрос1.КоличествоНачальныйОстаток,
    ВложенныйЗапрос1.СтоимостьНачальныйОстаток,
    ВложенныйЗапрос1.КоличествоПриход,
    ВложенныйЗапрос1.СтоимостьПриход,
    ВложенныйЗапрос1.КоличествоРасход,
    ВложенныйЗапрос1.СтоимостьРасход,
    ВложенныйЗапрос1.КоличествоКонечныйОстаток,
    ВложенныйЗапрос1.СтоимостьКонечныйОстаток
ИЗ
    (ВЫБРАТЬ
        ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад КАК Склад,
        ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура КАК Номенклатура,
        ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ КАК ГодВыпуска,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьПриход) КАК СтоимостьПриход,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьРасход) КАК СтоимостьРасход,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
        СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток
    ИЗ
        РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
    ГДЕ
        ВЫБОР
                КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ.Код = "13"
                        ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ.Код = "11"
                        ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры = &ПустаяХарактеристика
                    ТОГДА НЕ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток = 0
                            И ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток > 0
                ИНАЧЕ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток > 0
            КОНЕЦ
    
    СГРУППИРОВАТЬ ПО
        ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ,
        ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
        ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад) КАК ВложенныйЗапрос1
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура КАК Номенклатура,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ХарактеристикаНоменклатуры.ГВ КАК ГВ
        ИЗ
            РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Обороты(&НачалоПериода, &КонецПериода, Запись, ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОбороты
        ГДЕ
            (ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугАлматы
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугАстана
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугУстьК
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.НакладныеУчета
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор.ДокументОснование ССЫЛКА Документ.АктНаСписание
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.МодернизацияОССЗаменойКомплектующихСоСклада
                    ИЛИ ВЫБОР
                        КОГДА НЕ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура В ИЕРАРХИИ (&ТоварыОП)
                            ТОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                    КОНЕЦ)
        
        СГРУППИРОВАТЬ ПО
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ХарактеристикаНоменклатуры.ГВ) КАК ВложенныйЗапрос
        ПО ВложенныйЗапрос1.Номенклатура = ВложенныйЗапрос.Номенклатура
            И ВложенныйЗапрос1.ГодВыпуска = ВложенныйЗапрос.ГВ
ГДЕ
    ВложенныйЗапрос.Номенклатура ЕСТЬ NULL
32 Ly_Alena
 
13.07.16
12:37
СКД
33 Ly_Alena
 
13.07.16
13:01
Форумчане, есть какие-то соображение?
34 Ёпрст
 
13.07.16
13:10
(31) это же не весь текст, да ?
35 Ly_Alena
 
13.07.16
13:10
(34) Это весь код
36 hhhh
 
13.07.16
13:18
(33) может выкинуть это? Переписать заново? Что-то нереальное.
37 Ёпрст
 
13.07.16
13:18
(28) своим ГДЕ
    ВложенныйЗапрос.Номенклатура ЕСТЬ NULL
ты левое соединение превратила во внутреннее
38 Ly_Alena
 
13.07.16
13:21
Сейчас кину другой - это я уже мудрила и так и эдак.
39 catena
 
13.07.16
13:22
(38)В СКД в конструкторе запроса на закладке Компоновка добавь отборы на поля результирующего запроса.
40 Ly_Alena
 
13.07.16
13:33
(37) (38)
Оставила связь только по году выпуска и условие на номенклатуру, оставила один вложенный. Проверочные позиции ушли. Остальные по списку нужно перепроверить. Спасибо большое!
41 Ly_Alena
 
13.07.16
13:40
(40) Не подумавши сказала... Не фига. Вернула на исходную код.

ВЫБРАТЬ
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ КАК ГодВыпуска,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьКонечныйОстаток,
    ВЫБОР
        КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДТ)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&УслугиДТ)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&УслугиСМР)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&СМР)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДТ)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&СМР)
            ТОГДА &ООПДТ
        КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДЭИЖД1)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДЭИЖД2)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДЭИЖД3)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&УслугиЖД)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДЭИЖД1)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДЭИЖД2)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДЭИЖД3)
            ТОГДА &ООПДЭИЖД
    КОНЕЦ КАК Подразделение
ПОМЕСТИТЬ Оснавная
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура КАК Номенклатура,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ХарактеристикаНоменклатуры.ГВ КАК ГВ
        ИЗ
            РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Обороты(&НачалоПериода, &КонецПериода, Запись, ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОбороты
        ГДЕ
            (ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугАлматы
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугАстана
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугУстьК
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.НакладныеУчета
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор.ДокументОснование ССЫЛКА Документ.АктНаСписание
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.МодернизацияОССЗаменойКомплектующихСоСклада
                    ИЛИ ВЫБОР
                        КОГДА НЕ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура В ИЕРАРХИИ (&ТоварыОП)
                            ТОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                    КОНЕЦ)
        
        СГРУППИРОВАТЬ ПО
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ХарактеристикаНоменклатуры.ГВ) КАК ВложенныйЗапрос
        ПО ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
            И ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ = ВложенныйЗапрос.ГВ
ГДЕ
    ВложенныйЗапрос.Номенклатура ЕСТЬ NULL
    И ВЫБОР
            КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ.Код = "13"
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ.Код = "11"
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры = &ПустаяХарактеристика
                ТОГДА НЕ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток = 0
                        И ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток > 0
            ИНАЧЕ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток > 0
        КОНЕЦ
    И ВложенныйЗапрос.ГВ ЕСТЬ NULL
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Оснавная.Склад,
    Оснавная.Номенклатура,
    Оснавная.ГодВыпуска,
    СУММА(Оснавная.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    СУММА(Оснавная.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток,
    СУММА(Оснавная.КоличествоПриход) КАК КоличествоПриход,
    СУММА(Оснавная.СтоимостьПриход) КАК СтоимостьПриход,
    СУММА(Оснавная.КоличествоРасход) КАК КоличествоРасход,
    СУММА(Оснавная.СтоимостьРасход) КАК СтоимостьРасход,
    СУММА(Оснавная.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    СУММА(Оснавная.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток,
    Оснавная.Подразделение
ИЗ
    Оснавная КАК Оснавная

СГРУППИРОВАТЬ ПО
    Оснавная.Склад,
    Оснавная.Номенклатура,
    Оснавная.ГодВыпуска,
    Оснавная.Подразделение
42 Ly_Alena
 
13.07.16
13:42
(39) что за вкладка компоновка?
43 catena
 
13.07.16
13:54
44 catena
 
13.07.16
13:57
(42)Если СКД четко не сказать, куда накладывать ее отборы, она отберет по всем полям, которые подойдут по имени. Таким образом при отборе по складу вложенный запрос выполняется тоже только по выбранному складу. А со склада А, естественно, эти номенклатуры и не реализовывались.
45 catena
 
13.07.16
13:57
Документ.РеализацияТоваровУслугАлматы
Документ.РеализацияТоваровУслугАстана
Документ.РеализацияТоваровУслугУстьК

Вот это вообще порадовало.
46 Ly_Alena
 
13.07.16
14:01
(45) почему?
47 hhhh
 
13.07.16
14:03
(45) усть-каменогорск
48 catena
 
13.07.16
14:10
(46)Ну видимо реализация в Алмату и реализация в Устькам - принципиально разные операции, раз под них отдельные документы сделали.

(47)Да ну??
49 Ly_Alena
 
14.07.16
05:20
(44) не совсем понятно какие условия нужно указать, чтобы условие по складу накладывалось только на партии, а не на вложенный запрос.
50 Ly_Alena
 
14.07.16
05:23
в инэте ничего путного по этому вопросу не нашла.
51 hhhh
 
14.07.16
05:28
(50) может разные названия полей? Там написать Склад, а тут СкладВложенногоПодзапроса?
52 Ly_Alena
 
14.07.16
05:52
(51) во вложенном склад я вообще не выбираю.
53 catena
 
14.07.16
06:32
(52)Добавляешь в компоновке в условия оба склада, но даешь им разные псевдонимы. Примерно так будет выглядеть текст:

ВЫБРАТЬ
    п1.Номенклатура,
    п1.Склад,
    п2.Номенклатура КАК Номенклатура1,
    п2.Склад КАК Склад1
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Остатки КАК п1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Остатки КАК п2
        ПО п1.Номенклатура = п2.Номенклатура
            И п1.Склад <> п2.Склад
{ГДЕ
    п1.Склад.* КАК СкладПравый,
    п2.Склад.* КАК СкладЛевый}
54 Ly_Alena
 
14.07.16
06:42
(53) ВЫБРАТЬ
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ КАК ГодВыпуска,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьКонечныйОстаток,
    ВЫБОР
        КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДТ)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&УслугиДТ)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&УслугиСМР)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&СМР)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДТ)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&СМР)
            ТОГДА &ООПДТ
        КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДЭИЖД1)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДЭИЖД2)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&ОПДЭИЖД3)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&УслугиЖД)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДЭИЖД1)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДЭИЖД2)
                ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.ПринадлежностьКОП В ИЕРАРХИИ (&ОПДЭИЖД3)
            ТОГДА &ООПДЭИЖД
    КОНЕЦ КАК Подразделение,
    ВложенныйЗапрос.СкладИзВложенного
ПОМЕСТИТЬ Оснавная
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура КАК Номенклатура,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ХарактеристикаНоменклатуры.ГВ КАК ГВ,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Склад КАК СкладИзВложенного
        ИЗ
            РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Обороты(&НачалоПериода, &КонецПериода, Запись, ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОбороты
        ГДЕ
            (ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугАлматы
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугАстана
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслугУстьК
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.НакладныеУчета
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор.ДокументОснование ССЫЛКА Документ.АктНаСписание
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.МодернизацияОССЗаменойКомплектующихСоСклада
                    ИЛИ ВЫБОР
                        КОГДА НЕ ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура В ИЕРАРХИИ (&ТоварыОП)
                            ТОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                    КОНЕЦ)
        
        СГРУППИРОВАТЬ ПО
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ХарактеристикаНоменклатуры.ГВ,
            ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Склад) КАК ВложенныйЗапрос
        ПО ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
            И ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад <> ВложенныйЗапрос.СкладИзВложенного
ГДЕ
    ВЫБОР
            КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ.Код = "13"
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры.ГВ.Код = "11"
                    ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры = &ПустаяХарактеристика
                ТОГДА НЕ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток = 0
                        И ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток > 0
            ИНАЧЕ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток > 0
        КОНЕЦ
    И ВложенныйЗапрос.Номенклатура ЕСТЬ NULL
{ГДЕ
    ВложенныйЗапрос.СкладИзВложенного.*,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад.*}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Оснавная.Склад,
    Оснавная.Номенклатура,
    Оснавная.ГодВыпуска,
    СУММА(Оснавная.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    СУММА(Оснавная.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток,
    СУММА(Оснавная.КоличествоПриход) КАК КоличествоПриход,
    СУММА(Оснавная.СтоимостьПриход) КАК СтоимостьПриход,
    СУММА(Оснавная.КоличествоРасход) КАК КоличествоРасход,
    СУММА(Оснавная.СтоимостьРасход) КАК СтоимостьРасход,
    СУММА(Оснавная.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    СУММА(Оснавная.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток,
    Оснавная.Подразделение,
    Оснавная.СкладИзВложенного
ИЗ
    Оснавная КАК Оснавная

СГРУППИРОВАТЬ ПО
    Оснавная.Склад,
    Оснавная.Номенклатура,
    Оснавная.ГодВыпуска,
    Оснавная.Подразделение,
    Оснавная.СкладИзВложенного

Список тот же. Я что-то не так делаю?
55 catena
 
14.07.16
06:45
(54)Разные псевдонимы в _компоновке_.

{ГДЕ
    п1.Склад.* КАК СкладПравый,
    п2.Склад.* КАК СкладЛевый}
56 catena
 
14.07.16
06:46
И не надо их тащить до конца. Даже выбирать склад во вложенном не обязательно прям там внутри и напиши

{ГДЕ
    ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Склад.* КАК СкладНенужный}
57 Ly_Alena
 
14.07.16
06:53
{ГДЕ
    ВложенныйЗапрос.СкладИзВложенного.* КАК СкладИзВложенного1,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад.* КАК СкладОтбора}

Все равно список тот же
58 Ly_Alena
 
14.07.16
08:57
Упростила запрос. Поигралась с галочками в условиях, с псевдонимами, с галочками во вкладке таблица из компоновки. Как-то результат не изменился. Не поняла как это должно работать.
59 Ly_Alena
 
14.07.16
10:39
Две таблицы - связь по номенклатуре и по характеристике. отбор делаю из второй по складу, каким образом он делает отбор по складу по первой таблице для меня загадка... Форумчане хелп!
60 catena
 
14.07.16
11:13
(59)Запускаешь отладку и смотришь, что у тебя идет в
МакетКомпоновки.НаборыДанных.НаборДанных1.Запрос
61 catena
 
14.07.16
11:13
В отборах, я надеюсь, СкладОтбора заполняешь, а не просто Склад?
62 Ly_Alena
 
14.07.16
12:26
(61) что значит склад отбора а не просто склад?
63 catena
 
14.07.16
12:32
(62)Ты в отбор добавила СкладИзВложенного1 и СкладОтбора. Еще просто "Склад" СКД туда добавит сама. В пользовательском режиме отбор на какой склад накладываешь?
64 Ly_Alena
 
14.07.16
12:56
я так поняла из (56) сообщения что до конца их тащить не надо. Каким образом я тогда должна их установить в отборе?
65 catena
 
14.07.16
13:02
(64)Тут должен быть смайл, бьющийся об стену.
После того, как ты в полях условий в компоновке добавила свои два поименованных склада, у тебя в выборе полей отбора должны появиться два этих псевдонима.
66 Ly_Alena
 
14.07.16
13:40
(65) ТЫсяча извинений за вынос мозга! Все получилось! Спасибо!