|   |   | 
| 
 | v7: Условие на справочник в запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        VoditelKobyly 18.07.13✎ 12:29 | 
        Уважаемые программисты, подскажите как в тексте запроса 1с реализовать увсловие вхождения элемента в группу если запрос строится по реквизитам документа типа справочник общего вида. Есть накладная, в табличной части реквизит Товар, тип справочник. Может быть как элементом справочника товаров, так и элементом справочника услуги. Ставлю на форме отчета поле выбора справочника товаров. Пишу условие в запросе Товар в ВыбТовар. Работает как надо. Далее в этой же накладной в шапке есть реквизит Покупатель типа справочник общего вида. Может быть как элементом справочника Клиенты, так и элементом справочника Сотрудники. Ставлю на форме отчета поле выбора справочника Клиенты. Пишу в запросе условие Покупатель в ВыбКлиент.
  Как только добавляю условие результат запроса пустой. Пишу Покупатель=ВыбКлиент, выбираю клиента, который точно должен попасть в выборку - результат пустой. Как правильно написать условие в запросе, чтобы реализовать фильтр по клиентам определенной группы (или одному выбранному клиенту)? | |||
| 1
    
        Ёпрст гуру 18.07.13✎ 12:30 | 
        |условие (Покупатель в ВыбКлиент);     | |||
| 2
    
        1Сергей 18.07.13✎ 12:31 | 
        Покупатель - справочник неопределенного вида или неопределённого типа?     | |||
| 3
    
        VoditelKobyly 18.07.13✎ 12:31 | 
        Спасибо, пробовал, не работает     | |||
| 4
    
        VoditelKobyly 18.07.13✎ 12:32 | 
        Покупатель в шапке документа это справочник.
  На форме отчета это Справочник.Клиенты | |||
| 5
    
        VoditelKobyly 18.07.13✎ 12:34 | 
        (2)То же самое с товаром, но товар это реквизит табличной части документа. С товаром всё работает с покупателем не хочет.     | |||
| 6
    
        1Сергей 18.07.13✎ 12:34 | 
        странно, вообще. Должно работать     | |||
| 7
    
        1Сергей 18.07.13✎ 12:34 | 
        Может, дело не в этом?     | |||
| 8
    
        VoditelKobyly 18.07.13✎ 12:35 | 
        (7) Дай подсказку     | |||
| 9
    
        VoditelKobyly 18.07.13✎ 12:37 | 
        Убираю условие по покупателю из текста запроса в результате попадают документы по всем покупателям. 
  А мне нужно по одному или группе. | |||
| 10
    
        1Сергей 18.07.13✎ 12:38 | 
        ну, не знаю. Другие условия проверяй. "Обрабатывать Все", Период, прочие условия. Пробуй всё отключить     | |||
| 11
    
        mishaPH 18.07.13✎ 12:38 | 
        текст запроса в студию. 
  А то тут некоторые 8ки пытаются в 7ке также присать | |||
| 12
    
        VoditelKobyly 18.07.13✎ 12:42 | 
        Попробовал на форме ВыбПокупатель сделать тоже типом справочник. Условие не срабатывает не на равно, не на вхождение.     | |||
| 13
    
        Ёпрст гуру 18.07.13✎ 12:44 | 
        выбираешь клиентоса, которого нет в выборке     | |||
| 14
    
        VoditelKobyly 18.07.13✎ 12:45 | 
        (13) проверял, точно есть     | |||
| 15
    
        VoditelKobyly 18.07.13✎ 12:46 | 
        - Документ
  - Идентификатор "СчетФактура" - Синоним "Cч.-Факт." - Комментарий "Счет-фактура" - Журнал "Журнал.СчетаФактуры" - ПериодичностьНомера "Год" - ДлинаНомера "5" - ТипНомера "Числовой" - АвтоНумерация "2" - КонтрольУникальности "0" - Нумератор - ОперативныйУчет "1" - Расчет "0" - БухгалтерскийУчет "0" - СоздаватьОперацию - АвтоНумерацияСтрок "1" - АвтоудалениеДвижений "1" - РедактированиеОпераций "0" - РазрешитьПроведение "1" - ВводимыеНаОснованииДокументы - ОснованиеДляЛюбогоДокумента "0" - ОбластьРаспространения "ВсеИнформационныеБазы" - АвтоРегистрация "1" - ДополнительныеКодыИБ - РеквизитШапки - Идентификатор "Покупатель" - Синоним - Комментарий "Покупатель" - Тип "Справочник" - Вид - Длина "0" - Точность "0" - НеОтрицательный "0" - РазделятьТриады "0" | |||
| 16
    
        VoditelKobyly 18.07.13✎ 12:46 | 
        ТекстЗапроса = 
  "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |СФ = Документ.СчетФактура.ТекущийДокумент; |Покупатель = Документ.СчетФактура.Покупатель; |Товар = Документ.СчетФактура.Товар; |Количество = Документ.СчетФактура.Количество; |Функция КоличествоСумма = Сумма(Количество); |Функция ВДаллах = Сумма(КоличествоВДаллах(Количество,Товар)); |Группировка Покупатель без групп; |Группировка Товар без групп; |Группировка СФ; |Условие(Покупатель = ВыбПокупатель); |Условие(Товар в ВыбТовар); |Условие(Товар.Пиво = 1); |"//}}ЗАПРОС ; | |||
| 17
    
        1Сергей 18.07.13✎ 12:47 | 
        (15) запрос покажи     | |||
| 18
    
        1Сергей 18.07.13✎ 12:47 | 
        Вот так работает?
  "//{{ЗАПРОС(Сформировать) // |Период с ВыбНачПериода по ВыбКонПериода; // |Обрабатывать НеПомеченныеНаУдаление; |СФ = Документ.СчетФактура.ТекущийДокумент; |Покупатель = Документ.СчетФактура.Покупатель; |Товар = Документ.СчетФактура.Товар; |Количество = Документ.СчетФактура.Количество; |Функция КоличествоСумма = Сумма(Количество); |Функция ВДаллах = Сумма(КоличествоВДаллах(Количество,Товар)); |Группировка Покупатель без групп; |Группировка Товар без групп; |Группировка СФ; |Условие(Покупатель В ВыбПокупатель); // |Условие(Товар в ВыбТовар); // |Условие(Товар.Пиво = 1); |"//}}ЗАПРОС | |||
| 19
    
        VoditelKobyly 18.07.13✎ 12:48 | 
        (11) Это не про меня     | |||
| 20
    
        Ёпрст гуру 18.07.13✎ 12:49 | 
        ну и   |Условие(Товар.Пиво = 1); это в топку     | |||
| 21
    
        1Сергей 18.07.13✎ 12:49 | 
        вот это тоже лучше закоменть
  |Функция ВДаллах = Сумма(КоличествоВДаллах(Количество,Товар)); | |||
| 22
    
        VoditelKobyly 18.07.13✎ 12:50 | 
        (20) Это не причем, это как раз срабатывает и фильтрует от лишних товаров     | |||
| 23
    
        Ёпрст гуру 18.07.13✎ 12:51 | 
        (22) я в курсе - это мегатормоз.     | |||
| 24
    
        VoditelKobyly 18.07.13✎ 12:51 | 
        (21) Это тоже не причем, работает     | |||
| 25
    
        VoditelKobyly 18.07.13✎ 12:52 | 
        (23) Понял, сделаем по другому, но речь не про тормоза.     | |||
| 26
    
        uno-group 18.07.13✎ 12:52 | 
        вместо "=" "в" Пробывал ставить?
  Может уще условие добавить типа (Покупатель.Вид()="Контрагенты") | |||
| 27
    
        1Сергей 18.07.13✎ 12:52 | 
        (24) это тоже (23). попробуй, говорю, убрать всё лишнее     | |||
| 28
    
        Ёпрст гуру 18.07.13✎ 12:54 | 
        ну и (18) у тебя работает ?     | |||
| 29
    
        uno-group 18.07.13✎ 12:55 | 
        А это зачем?
  |СФ = Документ.СчетФактура.ТекущийДокумент; ... |Группировка СФ; почему не просто группировка.документ | |||
| 30
    
        VoditelKobyly 18.07.13✎ 12:56 | 
        (28) 18 Без условия по Покупателю работает. 
  Выборка показывает все документы всех покупателей | |||
| 31
    
        VoditelKobyly 18.07.13✎ 12:57 | 
        (26)    |Условие(Покупатель.Вид() = ""Клиенты"");
  Дает ошибку в условии и не работает | |||
| 32
    
        uno-group 18.07.13✎ 12:58 | 
        ВыбПокупатель и ВыбТовар Это что реквизит типа товар, контрагент или списки значений может тут собака зарыта.     | |||
| 33
    
        Ёпрст гуру 18.07.13✎ 13:02 | 
        Так работает ?
  Т=" |СФ = Документ.СчетФактура.ТекущийДокумент; |Покупатель = Документ.СчетФактура.Покупатель; |Группировка Покупатель без групп;"; Запрос = СоздатьОбъект("Запрос"); ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выполнить(Т); Запрос.Выгрузить(ТЗ,0,0); Сообщить(ТЗ.НайтиЗначение(ВыбПокупатель,,"Покупатель"); чего сообщает ? | |||
| 34
    
        НЕА123 18.07.13✎ 13:08 | 
        (32)
  очень похоже. (0) проверь в отладчике кто же такой ВыбПокупатель. ну и вставь ВыбПокупательИстинный = ВыбПокупатель.ТекущийЭлемент(); ибо подозрение есть, что ВыбПокупатель выборка или еще что-то... (за синтаксис не ручаюсь, позабыл уже 7). | |||
| 35
    
        VoditelKobyly 18.07.13✎ 13:39 | 
        В отладчике:
  ВыбПокупатель = ООО"Лада" ВыбПокупатель.Вид() = "Клиенты" ТипЗначенияСтр(ВыбПокупатель) = "Справочник" | |||
| 36
    
        Ёпрст гуру 18.07.13✎ 13:39 | 
        на (33) есть ответ ?     | |||
| 37
    
        VoditelKobyly 18.07.13✎ 13:41 | 
        (33) 0     | |||
| 38
    
        НЕА123 18.07.13✎ 13:45 | 
        Не пробовал?
  ВыбПокупательИстинный = ВыбПокупатель.ТекущийЭлемент(); | |||
| 39
    
        VoditelKobyly 18.07.13✎ 13:47 | 
        Все нашел, спасибо всем за помощь.
  ВыбПокупатель = ООО"Лада" ВыбПокупатель.Вид() = "Клиенты" ТипЗначенияСтр(ВыбПокупатель) = "Справочник" Запрос.Покупатель = ООО " Лада" Запрос.Покупатель.Вид() = "Фирмы" ТипЗначенияСтр(Запрос.Покупатель) = "Справочник" | |||
| 40
    
        Ёпрст гуру 18.07.13✎ 13:49 | 
        (37) это собственно ответ на твой вопрос - в выборке НЕТ твоего клиентоса.     | |||
| 41
    
        1Сергей 18.07.13✎ 13:49 | 
        я же говорил, что дело не в этом     | |||
| 42
    
        Ёпрст гуру 18.07.13✎ 13:49 | 
        чего ты там ищещь - не ясно     | |||
| 43
    
        Ёпрст гуру 18.07.13✎ 13:50 | 
        (41) я тоже говорил.. в (13)     | |||
| 44
    
        VoditelKobyly 18.07.13✎ 13:50 | 
        (40) Да.
  Тут что покупатели, что фирмы два справочника практически с одинаковыми реквизитами и копией информации, что в одном, что в другом | |||
| 45
    
        VoditelKobyly 18.07.13✎ 13:51 | 
        (41,42) Вам то хорошо...
  Вы умные. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |