Имя: Пароль:
1C
1С v8
Отбор по типу регистратора в скд.
0 tg30000
 
26.05.14
23:06
Подскажите как можно реализовать данный отбор?
Не в СКД делал так:


Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет");
    Запрос = Новый Запрос;
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
    |    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
    |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &ОкончаниеПериода, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты"
    ;
    
    Если ЗначениеЗаполнено(ЭтотОбъект.Склад) тогда
        ТекстЗапроса =ТекстЗапроса+ "
        |ГДЕ
        |    ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад "
        ;
        
        СтаршийИндекс = СписокТиповРегистратора.Количество() - 1;
        Для Сч = 0 по СтаршийИндекс Цикл
            //Сообщить(СписокТиповРегистратора[Сч].Значение);
            Если Сч=0 Тогда
                ТекстЗапроса =ТекстЗапроса+ "    
                |    И ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+СписокТиповРегистратора[Сч].Значение;
            ИначеЕсли Сч>0 Тогда
                ТекстЗапроса =ТекстЗапроса+ "    
                |    ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+СписокТиповРегистратора[Сч].Значение;
            КонецЕсли;    
        КонецЦикла;  
        
    Иначе
        
        СтаршийИндекс = СписокТиповРегистратора.Количество() - 1;
        Для Сч = 0 по СтаршийИндекс Цикл
            //Сообщить(СписокТиповРегистратора[Сч].Значение);
            Если Сч=0 Тогда
                ТекстЗапроса =ТекстЗапроса+ "    
                |ГДЕ
                |     ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+СписокТиповРегистратора[Сч].Значение;
            ИначеЕсли Сч>0 Тогда
                ТекстЗапроса =ТекстЗапроса+ "    
                |    ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+СписокТиповРегистратора[Сч].Значение;
            КонецЕсли;    
        КонецЦикла;  
    КонецЕсли;
    
    ТекстЗапроса =ТекстЗапроса+ "
    |ИТОГИ
    |    СУММА(КоличествоНачальныйОстаток),
    |    СУММА(КоличествоПриход),
    |    СУММА(КоличествоРасход),
    |    СУММА(КоличествоКонечныйОстаток)
    |ПО
    |    Номенклатура,
    |    Склад,
    |    Регистратор";
    
    Запрос.Текст=ТекстЗапроса;
    Запрос.УстановитьПараметр("НачалоПериода", ЭтотОбъект.НачалоПериода);
    Запрос.УстановитьПараметр("ОкончаниеПериода", ЭтотОбъект.ОкончаниеПериода);
    Запрос.УстановитьПараметр("Склад", ЭтотОбъект.Склад);
    
    РезультатЗапроса = Запрос.Выполнить();
1 Defender aka LINN
 
27.05.14
00:03

{ГДЕ
    ТИПЗНАЧЕНИЯ(Регистратор) КАК ТипРегистратора}
2 tg30000
 
28.05.14
19:52
(1) и как это к СКД прикрутить?
3 echo77
 
28.05.14
21:41
(2) вставить в запрос после раздела ГДЕ
4 За пределами РФ
 
28.05.14
22:39
В виртуальных таблицах остатки и обороты нельзя использовать отбор по регистратору
5 За пределами РФ
 
28.05.14
22:40
И откуда к людей только желание такое берется...
6 Tateossian
 
29.05.14
00:06
(4) Можно, если указана периодичность "Регистратор"
7 За пределами РФ
 
29.05.14
08:51
(4) и какая смысловая нагрузка будет у остатков и оборотов с отбором по регистратору?
8 Godofsin
 
29.05.14
09:15
(7) у остатков никакая, а вот по оборотам юзать впринципе можно
9 nufnufcheg
 
29.05.14
09:18
(8) речь не про обороты, а про остатки и обороты.
10 Defender aka LINN
 
29.05.14
09:31
(7) Остатки и обороты по определенным регистраторам, что тут такого?
11 tg30000
 
29.05.14
23:01
(1)Да точно)
Спасибо.
Можно просто поле добавить:
ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор)
к примеру. Тогда можно не использовать ГДЕ, а в отборе выбирать в списке типы регистратора.