Имя: Пароль:
1C
 
Как установить отбор по номенклатуре
, , , ,
0 Sv4org
 
20.10.16
09:36
Всем доброго времени суток.
Подскажите как установить отбор по номенклатуре в СКД?
Т.е. Добавить возможность в отборе использовать множественный выбор (выбрать 2 или более товаров)
1 DrShad
 
20.10.16
09:38
в запросе на вкладке компоновка данных выбрать номенклатуру в условиях
2 catena
 
20.10.16
09:40
Что не так со стандартным отбором или отбором по параметру?
3 Sv4org
 
20.10.16
09:42
(2) Да всё так, но сейчас можно формиовать отчёт только по одному товару, а нужен множественный выбор.
4 DrShad
 
20.10.16
09:43
(3) не верю
5 Sv4org
 
20.10.16
09:43
(4) Не понял?
6 catena
 
20.10.16
09:43
(3)Наверное условие и "=&Параметр"?
7 trooba
 
20.10.16
09:44
(0) В Запросе использовать В(&Номенклатура), а на закладке Параметров указать, что доступен список значений
8 DrShad
 
20.10.16
09:45
это уже не отбор получается )))
9 Sv4org
 
20.10.16
15:42
Помогите с таким же отчётом только он сделан на макете.Изменил немного и в результате вот такая ошибка

{Форма.ФормаОтчета.Форма(358)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
    ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
по причине:
{(106, 21)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И (Номенклатура <<?>>= &Номенклатура


Подскажите что изменить в запросе?
10 azt-yur
 
20.10.16
15:45
(9) а что ты посылаешь в параметр Номенклатура?
11 Sv4org
 
20.10.16
15:45
(10) Номенклатура = &Номенклатура
12 Sv4org
 
20.10.16
15:46
как раз такие не знаю на что заменить "&Номенклатура"
13 azt-yur
 
20.10.16
15:47
(11) Запрос.УстановитьПараметр("Номенклатура", <Здесь у тебя что?>)
14 Sv4org
 
20.10.16
15:48
(13) Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
15 Wirtuozzz
 
20.10.16
15:48
В параметр надо список значений передать или массив.
16 Sv4org
 
20.10.16
15:50
На форме у реквизита я установил параметр список сзначений
17 azt-yur
 
20.10.16
15:51
(14) а выше Номенклатура чему присваивается, вернее какой тип имеет, судя по ошибке должна быть ссылка на справочник номенклатуры, а ты видимо массив пытаешься запихнуть.
18 azt-yur
 
20.10.16
15:51
(16) Меня в запросе
Номенклатура = &Номенклатура
на
Номенклатура В (&Номенклатура)
19 Wirtuozzz
 
20.10.16
15:51
(16) Красаучик, так воткни в параметр запроса список значений
20 azt-yur
 
20.10.16
15:51
(18) *Меняй
21 Wirtuozzz
 
20.10.16
15:52
(18) вауще красавэц, ээээээ.
Втыкай туда параметр
22 Wirtuozzz
 
20.10.16
15:52
или дай я воткну параметр туда
23 Wirtuozzz
 
20.10.16
15:54
Я этот параметр сейчас точно сам воткну, только дотянусь до него через монитор...
24 Wirtuozzz
 
20.10.16
15:58
Ты его прямо беспощадно так втыкай, с прогиба, главное не бойся.

СписокДляВтыкания = новый СписокЗначений;

тут ты его готовишь...
готовишь...
готовишь...
потом процедуру делаешь:
ВоткнутьПараметр(СписокДляВтыкания, запрос);

Процедура ВоткнутьПараметр(СписокДляВтыкания, запрос)
Запрос.УстановитьПараметр("Номенклатура", СписокДляВтыкания);
КонецПроцедуры
25 Wirtuozzz
 
20.10.16
15:59
Все, воткнул параметр, красавчик, идешь курить.
26 Sv4org
 
20.10.16
16:01
(18) Поменял и вот такая ошибка

{Форма.ФормаОтчета.Форма(358)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
    ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
по причине:
{(106, 23)}: Синтаксическая ошибка "В"
И (Номенклатура = <<?>>В (&Номенклатура)
27 Sv4org
 
20.10.16
16:14
В чём причина?
28 aleks_default
 
20.10.16
16:16
(27)Перечитай (18)
29 Wirtuozzz
 
20.10.16
16:20
ты что воткнул? зачем сломал когда втыкал????
И (Номенклатура = <<?>>В (&Номенклатура)
Что это ?

Если не исправишь на
(Номенклатура В (&Номенклатура)

Я тебя воткну как этот параметр )))
30 Wirtuozzz
 
20.10.16
16:21
А еще сломаю палец твой шаловливый и в коленку выстрелю.
31 Sv4org
 
20.10.16
16:22
(29) поменя на ( Номенклатура в (&Номенклатура)  и вот какая теперь ошибка

{Форма.ФормаОтчета.Форма(366)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
    ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
по причине:
{(107, 24)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ИЛИ &Номенклатура <<?>>= ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
32 aleks_default
 
20.10.16
16:22
(30) да он твой дом труба шатал
33 Wirtuozzz
 
20.10.16
16:24
да он конфигуратор ушатал
34 Wirtuozzz
 
20.10.16
16:25
(31) давай сюда отчет. Сейчас я его кастрирую
35 Wirtuozzz
 
20.10.16
16:25
не отчет а запрос полностью
36 Wirtuozzz
 
20.10.16
16:26
и не лги, что там три строчки. Давай сюда свое изобретение в виде запроса.
37 Sv4org
 
20.10.16
16:33
(35) ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    Организации.Ссылка
                   |ПОМЕСТИТЬ ТаблицаОрганизаций
                   |ИЗ
                   |    Справочник.Организации КАК Организации,
                   |    Константа.ИспользоватьРазделениеУчета КАК ИспользоватьРазделениеУчета
                   |ГДЕ
                   |    &УПР
                   |    И ВЫБОР
                   |            КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                   |                ТОГДА ИСТИНА
                   |            ИНАЧЕ Организации.Ссылка = &Организация
                   |        КОНЕЦ
                   |    И Организации.ФинансоваяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.Пустаяссылка)
                   |    И ИспользоватьРазделениеУчета.Значение
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    Организации.ФинансоваяОрганизация
                   |ИЗ
                   |    Справочник.Организации КАК Организации,
                   |    Константа.ИспользоватьРазделениеУчета КАК ИспользоватьРазделениеУчета
                   |ГДЕ
                   |    НЕ &УПР
                   |    И Организации.ФинансоваяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.Пустаяссылка)
                   |    И ВЫБОР
                   |            КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                   |                ТОГДА ИСТИНА
                   |            ИНАЧЕ Организации.Ссылка = &Организация
                   |        КОНЕЦ
                   |    И ИспользоватьРазделениеУчета.Значение
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    Организации.Ссылка
                   |ИЗ
                   |    Константа.ИспользоватьРазделениеУчета КАК ИспользоватьРазделениеУчета,
                   |    Справочник.Организации КАК Организации
                   |ГДЕ
                   |    НЕ ИспользоватьРазделениеУчета.Значение
                   |    И ВЫБОР
                   |            КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                   |                ТОГДА ИСТИНА
                   |            ИНАЧЕ Организации.Ссылка = &Организация
                   |        КОНЕЦ
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    ВЫБОР
                   |        КОГДА ЗапасыОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
                   |                ИЛИ ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
                   |                    И ВЫРАЗИТЬ(ЗапасыОстаткиИОбороты.Регистратор КАК Документ.ЗаказПокупателя).ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
                   |                ИЛИ ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЗаказНаПроизводство
                   |            ТОГДА NULL
                   |        ИНАЧЕ ЗапасыОстаткиИОбороты.Регистратор
                   |    КОНЕЦ КАК Документ,
                   |    ЗапасыОстаткиИОбороты.Номенклатура КАК Номенклатура,
                   |    ЗапасыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
                   |    ВЫБОР
                   |        КОГДА ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПриходнаяНакладная
                   |            ТОГДА ВЫБОР
                   |                    КОГДА ВЫРАЗИТЬ(ЗапасыОстаткиИОбороты.Регистратор КАК Документ.ПриходнаяНакладная).ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПриходнаяНакладная.ВозвратОтПокупателя)
                   |                        ТОГДА -ЗапасыОстаткиИОбороты.КоличествоРасход
                   |                    ИНАЧЕ ЗапасыОстаткиИОбороты.КоличествоПриход
                   |                КОНЕЦ
                   |        КОГДА ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.РасходнаяНакладная
                   |            ТОГДА ВЫБОР
                   |                    КОГДА ВЫРАЗИТЬ(ЗапасыОстаткиИОбороты.Регистратор КАК Документ.РасходнаяНакладная).ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ВозвратПоставщику)
                   |                        ТОГДА 0
                   |                    ИНАЧЕ ЗапасыОстаткиИОбороты.КоличествоПриход
                   |                КОНЕЦ
                   |        ИНАЧЕ ЗапасыОстаткиИОбороты.КоличествоПриход
                   |    КОНЕЦ КАК КоличествоПриход,
                   |    ВЫБОР
                   |        КОГДА ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПриходнаяНакладная
                   |            ТОГДА ВЫБОР
                   |                    КОГДА ВЫРАЗИТЬ(ЗапасыОстаткиИОбороты.Регистратор КАК Документ.ПриходнаяНакладная).ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПриходнаяНакладная.ВозвратОтПокупателя)
                   |                        ТОГДА 0
                   |                    ИНАЧЕ ЗапасыОстаткиИОбороты.КоличествоРасход
                   |                КОНЕЦ
                   |        КОГДА ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.РасходнаяНакладная
                   |            ТОГДА ВЫБОР
                   |                    КОГДА ВЫРАЗИТЬ(ЗапасыОстаткиИОбороты.Регистратор КАК Документ.РасходнаяНакладная).ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ВозвратПоставщику)
                   |                        ТОГДА -ЗапасыОстаткиИОбороты.КоличествоПриход
                   |                    ИНАЧЕ ЗапасыОстаткиИОбороты.КоличествоРасход
                   |                КОНЕЦ
                   |        ИНАЧЕ ЗапасыОстаткиИОбороты.КоличествоРасход
                   |    КОНЕЦ КАК КоличествоРасход,
                   |    ЗапасыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
                   |    ЗапасыОстаткиИОбороты.Регистратор.Дата КАК РегистраторДата
                   |ИЗ
                   |    РегистрНакопления.Запасы.ОстаткиИОбороты(
                   |            &НачалоПериода,
                   |            &КонецПериода,
                   |            Авто,
                   |            ,
                   |            Организация В
                   |                    (ВЫБРАТЬ
                   |                        ТаблицаОрганизаций.Ссылка
                   |                    ИЗ
                   |                        ТаблицаОрганизаций КАК ТаблицаОрганизаций)
                   |                И СчетУчета.ТипСчета = ЗНАЧЕНИЕ(Перечисление.ТипыСчетов.Запасы)
                   |                И (Номенклатура В (&Номенклатура)
                   |                    ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
                   |                И (СтруктурнаяЕдиница = &СтруктурнаяЕдиница
                   |                    ИЛИ &СтруктурнаяЕдиница = ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка))) КАК ЗапасыОстаткиИОбороты
                   |ГДЕ
                   |    ВЫБОР
                   |            КОГДА ЗапасыОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
                   |                    ИЛИ ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
                   |                        И ВЫРАЗИТЬ(ЗапасыОстаткиИОбороты.Регистратор КАК Документ.ЗаказПокупателя).ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
                   |                    ИЛИ ЗапасыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЗаказНаПроизводство
                   |                ТОГДА ЛОЖЬ
                   |            ИНАЧЕ ИСТИНА
                   |        КОНЕЦ
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    РегистраторДата
                   |ИТОГИ
                   |    СУММА(КоличествоНачальныйОстаток),
                   |    СУММА(КоличествоПриход),
                   |    СУММА(КоличествоРасход),
                   |    СУММА(КоличествоКонечныйОстаток)
                   |ПО
                   |    ОБЩИЕ,
                   |    Номенклатура ИЕРАРХИЯ
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    ЗапасыОстаткиИОбороты.Номенклатура КАК Номенклатура,
                   |    ЗапасыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
                   |    ЗапасыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
                   |ИЗ
                   |    РегистрНакопления.Запасы.ОстаткиИОбороты(
                   |            &НачалоПериода,
                   |            &КонецПериода,
                   |            Период,
                   |            ,
                   |            Организация В
                   |                    (ВЫБРАТЬ
                   |                        ТаблицаОрганизаций.Ссылка
                   |                    ИЗ
                   |                        ТаблицаОрганизаций КАК ТаблицаОрганизаций)
                   |                И СчетУчета.ТипСчета = ЗНАЧЕНИЕ(Перечисление.ТипыСчетов.Запасы)
                   |                И (Номенклатура В (&Номенклатура)
                   |                    ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
                   |                И (СтруктурнаяЕдиница = &СтруктурнаяЕдиница
                   |                    ИЛИ &СтруктурнаяЕдиница = ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка))) КАК ЗапасыОстаткиИОбороты
                   |ИТОГИ
                   |    СУММА(КоличествоНачальныйОстаток),
                   |    СУММА(КоличествоКонечныйОстаток)
                   |ПО
                   |    ОБЩИЕ,
                   |    Номенклатура ИЕРАРХИЯ";
38 aleks_default
 
20.10.16
16:41
Глядя на этот запрос возникают только философские мысли.
Можно ли измерить количество ничто? Имеет ли ничто начало и конец?
39 Wirtuozzz
 
20.10.16
16:44
Зачем в запросе вот этот код:

&Номенклатура <<?>>= ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)

Ты ищешь строки где в РН у тебя не заполнена номенклатура?
40 Wirtuozzz
 
20.10.16
16:45
ЛЮСЬКА!!! Неси ружье! Сейчас будем запросам учить!
41 Sv4org
 
20.10.16
16:45
(39) Этот запрос не я писал
мне нужно сделать возможно множественного выбора номенклатуры
42 Wirtuozzz
 
20.10.16
16:46
(41) Прежде чем ты будешь делать то что тебе говорят, ты должен хорошо понять что ты делаешь. Ты судя по всему не понимаешь.
43 Wirtuozzz
 
20.10.16
16:49
я бы на твоем месте выпилил это безумное условие, а не то мы тебя побьем.
44 Sv4org
 
20.10.16
16:52
(43) Смотри что мне сказали сделать с этим условуием


Создать параметр
Запрос.УстановитьПараметр("ПоВсемНоменклатурам",Номенклатура.Количество() = 0);

и кинуть вместо ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
45 Wirtuozzz
 
20.10.16
16:54
(44) Так пусть они тебе и скажут почему ошибки тогда.
46 aleks_default
 
20.10.16
16:58
(44) А они у тебя только параметрами запроса говорить умеют?
По-русски совсем никак?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший