Имя: Пароль:
1C
1C 7.7
v7: Отобрать Товары( и единицы), которые есть расходных накладных за период
0 1Сергей
 
22.07.15
07:14
Совсем забыл черные запросы. Подскажите как отобрать Товары, которые есть в расходных накладных за период, и отобрать единицы по этим товарам

    Запрос = СоздатьОбъект("Запрос");
    Если Запрос.Выполнить("
    |Период с НачДата По КонДата;
    |Товар = Документ.РасходнаяНакл.Товар, Справочник.Единицы.Владелец;
    |Единица = Справочник.Единицы.ТекущийЭлемент;
    |ЕдиницаПоКлассификатору = Справочник.Единицы.Единица;
    |Группировка Товар;
    |Группировка Единица;") <> 1 Тогда
        Возврат;
    КонецЕсли;


Отбирает все единицы
1 AntiBuh
 
22.07.15
07:56
(0) а если прям из самого документа Единицы повыдергивать?
2 dk
 
22.07.15
08:05
либо (1)
либо попробовать

Период с НачДата По КонДата;
Товар1 = Документ.РасходнаяНакл.Товар;
Товар2 = Справочник.Единицы.Владелец;
Единица = Справочник.Единицы.ТекущийЭлемент;
ЕдиницаПоКлассификатору = Справочник.Единицы.Единица;
Группировка Товар;
Группировка Единица;
Условие Товар1 = Товар2;
3 1Сергей
 
22.07.15
08:15
Сделал выборку товаров запросом, а единицы обычной выборкой
4 1Сергей
 
22.07.15
08:16
(1) мне нужны все единицы каждого товара, участвовавшего в реализации
5 Злопчинский
 
23.07.15
01:22
ща попробуем прикинуть...
6 Simod
 
23.07.15
09:15
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Без итогов;
|Номенклатура = Документ.Реализация.Номенклатура;
|ОКЕИ = Документ.Реализация.Единица.ОКЕИ;
|Группировка Номенклатура без упорядочивания без групп;
|Группировка ОКЕИ без упорядочивания без групп;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
КонецЕсли;

тз = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(тз, 1);

тз.ВыбратьСтроку();
7 1Сергей
 
23.07.15
09:18
(6) ветку не читал, но осуждаю? :)
8 Остап Сулейманович
 
23.07.15
09:31
(0)
Товар = Документ.РасходнаяНакл.Единица.Владелец;
Единица = Документ.РасходнаяНакл.Единица;
9 Simod
 
23.07.15
09:38
(7) Чем недоволен?
10 palpetrovich
 
23.07.15
09:57
если нужны ВСЕ единицы товар,а я-бы делал в два запроса
первый
|Товар = Документ.РасходнаяНакл.Товар

второй
|Товар = Справочник.Единицы.Владелец;
|Единица = Справочник.Единицы.ТекущийЭлемент;
|Группировка Товар без Групп;
|Группировка Единица;
|Условие (Товар В СписоеТоваровИзПервогоЗапроса)
11 1Сергей
 
23.07.15
10:03
(9) нужны все единицы, а не только те, которые есть в документах
12 Злопчинский
 
23.07.15
11:15
Навскидку у меня не получилось, но Ёпрст - точно сможет... ;-)
13 palpetrovich
 
23.07.15
11:37
(12) че не получилось-то? чему там получаться?

Процедура Сформировать()
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Товар = Документ.РасходнаяНакладная.Товар;
    |Группировка Товар без групп;
    |";
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ);
    СписТоваров = СоздатьОбъект("СписокЗначений");
    ТЗ.Свернуть("Товар", );
    ТЗ.Выгрузить(СписТоваров);


    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Товар = Справочник.Единицы.Владелец;
    |Ед = Справочник.Единицы.ТекущийЭлемент;
    |Группировка Товар без групп;
    |Группировка Ед;
    |Условие(Товар в СписТоваров);
    |";
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

    Пока Запрос.Группировка(1) = 1 Цикл
        Таб.ВывестиСекцию("Товар");
        Пока Запрос.Группировка(2) = 1 Цикл
            Таб.ВывестиСекцию("Ед");
        КонецЦикла;
    КонецЦикла;
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");

КонецПроцедуры
14 Ёпрст
 
23.07.15
11:38
(13) в одном запросе.
15 Ёпрст
 
23.07.15
11:38
чорном
16 Ёпрст
 
23.07.15
11:40
ТЗ.Свернуть("Товар", ); //это лишнее, она и так свёрнута
17 palpetrovich
 
23.07.15
11:56
(16) точно, подул на воду :)
(14) в одном - требования небыло
18 Злопчинский
 
23.07.15
15:31
(17) иначе - некузяво... ;-)
2 + 2 = 3.9999999999999999999999999999999...