Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

помогите с условием в запросе

помогите с условием в запросе
Я
   Razzle Kay
 
17.05.18 - 14:09
нужен отчет в виде 
ФИО
Ящик            КолВо
Ящик            КолВо

берётся из Возврат товара от покупателя

всё понятно, только ФИО - реквизит "водитель"
нужно, чтобы водители были только те, которые присутствуют в справочнике уатСотрудники
т.е. я знаю, как сделать всё, кроме "отбора" водителя по справочнику уатСотрудники как делать не понятно
 
 
   palladyi
 
1 - 17.05.18 - 14:10
Внутренним соединением?
   Волшебник
 
2 - 17.05.18 - 14:11
ГДЕ Сотрудник В (ВЫБРАТЬ Ссылка ИЗ уатСотрудники)
   Волшебник
 
3 - 17.05.18 - 14:11
Запрос к документу — плохая примета.
   DrWatson
 
4 - 17.05.18 - 14:12
а в возвратах какие ФИО, не справочник уатСотрудники?
   Razzle Kay
 
5 - 17.05.18 - 14:13
(4) не только
   palladyi
 
6 - 17.05.18 - 14:16
Внутреннее соединение ПО Водитель.Ссылка = уатСотрудники.Ссылка
   DrWatson
 
7 - 17.05.18 - 14:16
(5) Опиши что у тебя в возвратах - какой реквизит(ы), какого он типа?
   Razzle Kay
 
8 - 17.05.18 - 14:22
(7) физлицо
   DrWatson
 
9 - 17.05.18 - 14:29
(8) И что бы это значило? Тип такой?
Т.е. ссылки на уатСотрудники там напрямую нет?
   Razzle Kay
 
10 - 17.05.18 - 14:30
(9) справочник ФизЛица
и в уатСотрудники есть реквизит с ссылкой на ФизЛица
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя.ВозвратнаяТара КАК ВозвратТоваровОтПокупателяВозвратнаяТара
        ПО (ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Водитель.Ссылка = уатСотрудники.Ссылка)
пойдёт?
 
 Рекламное место пустует
   DrWatson
 
11 - 17.05.18 - 14:32
ПО (ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Водитель.= уатСотрудники.ФизЛицо)
   Razzle Kay
 
12 - 17.05.18 - 14:35
(11) спасибо, надо скд почитать )
   Razzle Kay
 
13 - 18.05.18 - 13:32
ВЫБРАТЬ
    ВозвратТоваровОтПокупателяВозвратнаяТара.Номенклатура.Ссылка КАК НаименованиеЯщика,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Количество,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель.Ссылка КАК ФИОВодителя
ИЗ
    Документ.ВозвратТоваровОтПокупателя.ВозвратнаяТара КАК ВозвратТоваровОтПокупателяВозвратнаяТара
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.уатСотрудники КАК уатСотрудники
        ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель = уатСотрудники.ФизЛицо
ГДЕ
    ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Проведен
    И ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.ПометкаУдаления = ЛОЖЬ
    И ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Дата МЕЖДУ &ДатаНачало И &ДатаКонец

Как оптимизировать ? На некоторых компах пишет недостаточно оперативной памяти при клике на 'Сформировать" с дата с 01 04 18 по 30 04 18
   Nikoss
 
14 - 18.05.18 - 13:36
(13) зачем везде ".Ссылка..."

убери и все заработает
   Razzle Kay
 
15 - 18.05.18 - 13:37
(14) шутите ?
   kda26
 
16 - 18.05.18 - 13:39
По грамотному нужно делать запрос к регистру накопления  Продажи.
   catena
 
18 - 18.05.18 - 13:42
(15) В полях .Ссылка убирай.
   Nikoss
 
19 - 18.05.18 - 13:42
(15) пародон... это же ТЧ, не углядел
   Nikoss
 
20 - 18.05.18 - 13:42
(18) в полях да, но не более
   Nikoss
 
21 - 18.05.18 - 13:43
Надо заранее отобрать данные... иначе запрос берет сначала все документы, делает внутренне соедение, и только потом условия накладываются
   catena
 
22 - 18.05.18 - 13:44
"    И ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.ПометкаУдаления = ЛОЖЬ
"

Так не надо. Во-первых, НЕ ПометкаУдаления, во-вторых проведенный документ не может быть помечен на удаление.
   palladyi
 
23 - 18.05.18 - 13:44
Присоедини таблицу ВозвратТоваровОтПокупателя внутренним соединением, все обращения через две "." замени на обращение через эту таблицу с 1 "."
   palladyi
 
24 - 18.05.18 - 13:46
И тут "ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель.Ссылка" не нужна .Ссылка
   Razzle Kay
 
25 - 18.05.18 - 13:48
(23) а у меня же и так внутреннее соединение ?

ВЫБРАТЬ
    ВозвратТоваровОтПокупателяВозвратнаяТара.Номенклатура КАК НаименованиеЯщика,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Количество,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель КАК ФИОВодителя
ИЗ
    Документ.ВозвратТоваровОтПокупателя.ВозвратнаяТара КАК ВозвратТоваровОтПокупателяВозвратнаяТара
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.уатСотрудники КАК уатСотрудники
        ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель = уатСотрудники.ФизЛицо
ГДЕ
    ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Проведен
    И ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
   palladyi
 
26 - 18.05.18 - 13:51
(25) добавь еще одно. К самому документу, не к его таблице тары.
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК Возврат
ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка = Возврат.Ссылка
   palladyi
 
27 - 18.05.18 - 13:51
+ (26) даже лучше сам документ основным сделать, а к нему присоединить тару и сотрудников
   Razzle Kay
 
28 - 18.05.18 - 13:53
(27) с СКД ток начинаю работать и не особо понимаю, зачем (25) ?
   Razzle Kay
 
29 - 18.05.18 - 13:53
ВЫБРАТЬ
    ВозвратТоваровОтПокупателяВозвратнаяТара.Номенклатура КАК НаименованиеЯщика,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Количество,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель КАК ФИОВодителя
ИЗ
    Документ.ВозвратТоваровОтПокупателя.ВозвратнаяТара КАК ВозвратТоваровОтПокупателяВозвратнаяТара
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.уатСотрудники КАК уатСотрудники
        ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель = уатСотрудники.ФизЛицо
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК Возврат
        ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка = Возврат.Ссылка
ГДЕ
    ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Проведен
    И ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.Дата МЕЖДУ &ДатаНачало И &ДатаКонец

имеете ввиду так?
   palladyi
 
30 - 18.05.18 - 13:56
(29) Нужно уйти от запросов через две точки (то есть через 2 таблицы обращение) для этого нужно все присоединять к документу, а не к его таблице тары

ВЫБРАТЬ
    ВозвратТоваровОтПокупателяВозвратнаяТара.Номенклатура КАК НаименованиеЯщика,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Количество,
    Возврат.битВодитель КАК ФИОВодителя
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК Возврат
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.уатСотрудники КАК уатСотрудники
        ПО Возврат.битВодитель = уатСотрудники.ФизЛицо
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя.ВозвратнаяТара КАК ВозвратТоваровОтПокупателяВозвратнаяТара
        ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка = Возврат.Ссылка
ГДЕ
    Возврат.Проведен
    И Возврат.Дата МЕЖДУ &ДатаНачало И &ДатаКонец

так
   palladyi
 
31 - 18.05.18 - 13:58
(28) тут суть не в СКД, а в запросах)
   Razzle Kay
 
32 - 18.05.18 - 13:58
(31) имел ввиду запросы*)
   Razzle Kay
 
33 - 18.05.18 - 14:00
(31) Всё равно, так же долго формируется
 
 
   Razzle Kay
 
34 - 18.05.18 - 14:02
японимаю, что правильнее было бы обращаться к РН продажи
но не совсем понимаю, как правильно запрос написать
   Nikoss
 
35 - 18.05.18 - 14:06
(34)
если к документу обращаться, то вот так:

ВЫБРАТЬ
    Возврат.Ссылка КАК Ссылка,
    Возврат.битВодитель КАК ФИОВодителя
ПОМЕСТИТЬ ВремТаб
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК Возврат
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.уатСотрудники КАК уатСотрудники
        ПО Возврат.битВодитель = уатСотрудники.ФизЛицо
       
ГДЕ
    Возврат.Проведен
    И Возврат.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
;
ВЫБРАТЬ
    ВремТаб.ФИОВодителя,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Номенклатура,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Количество
ИЗ
    ВремТаб КАК ВремТаб
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя.ВозвратнаяТара КАК ВозвратТоваровОтПокупателяВозвратнаяТара
    ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка = Возврат.Ссылка

писал на коленке, поэтому могут быть синтаксические ошибки
   Razzle Kay
 
36 - 18.05.18 - 14:10
хз, все варианты долг оформируют за месяц(
   palladyi
 
37 - 18.05.18 - 14:13
(36) Долго, это сколько? И сколько документов за месяц?
И еще - долго запрос работает, или долго формируется отчет в СКД?
   Nikoss
 
38 - 18.05.18 - 14:14
последний вариант, если и он долго, надо идти в сторону регистра

ВЫБРАТЬ
    Возврат.Ссылка КАК Ссылка,
    Возврат.битВодитель КАК ФИОВодителя
ПОМЕСТИТЬ ВремТаб
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК Возврат
ГДЕ
    Возврат.Проведен
    И Возврат.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
    И Возврат.битВодитель В (ВЫБРАТЬ уатСотрудники.ФизЛицо ИЗ Справочник.уатСотрудники КАК уатСотрудники
;
ВЫБРАТЬ
    ВремТаб.ФИОВодителя,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Номенклатура,
    ВозвратТоваровОтПокупателяВозвратнаяТара.Количество 
ИЗ
    ВремТаб КАК ВремТаб
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя.ВозвратнаяТара КАК ВозвратТоваровОтПокупателяВозвратнаяТара
    ПО ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка = Возврат.Ссылка
   Razzle Kay
 
39 - 18.05.18 - 14:17
(37) отчет формируется минуты 4 за месяц документов достаточно, но не много
   Nikoss
 
40 - 18.05.18 - 14:18
(39) в консоле запросов, запрос из (38) за сколько отрабатывает?
   kda26
 
41 - 18.05.18 - 14:19
ВЫБРАТЬ
    ПродажиОбороты.Регистратор КАК Ссылка
ПОМЕСТИТЬ ВТ_ВОЗВРАТЫ    
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты
    
ГДЕ
    ПродажиОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Регистратор


Далее левое соединение с ТЧ Возвратная тара по ссылке, далее левое соединение с Справочник.уатСотрудники
   Nikoss
 
42 - 18.05.18 - 14:32
(41) ох я сомневаюсь, что такой подход будет более производительный

и вообще в регистре продаж есть возвратная тара?
   kda26
 
43 - 18.05.18 - 14:35
(42) Нет, ВозвратнаяТара это ТЧ, потому и соединение с ТЧ. ТСу замерить производительность и выбрать оптимум.
   Razzle Kay
 
44 - 18.05.18 - 14:38
(40) (38) вообще ничего не выбирает
   Nikoss
 
45 - 18.05.18 - 14:38
(43) если движений возвратной тары нет в регистре, то и смысла к нему обращаться никакого...
Только для того чтобы отобрать документы? Явно производительнее будет по самому документу сделать запрос.
   Nikoss
 
46 - 18.05.18 - 14:41
(44) не могёт такого быть

перовая часть запроса, до ";" сколько записей выдаёт?
   kda26
 
47 - 18.05.18 - 14:47
//вложенный запрос в условии плохо.

//поместить водителей в ВТ

ВЫБРАТЬ уатСотрудники.ФизЛицо ПОМЕСТИТЬ ВТ_ВОДИТЕЛИ ИЗ Справочник.уатСотрудники КАК уатСотрудники
   Razzle Kay
 
48 - 18.05.18 - 14:47
(46) а как его выполнить ДО ;
   Razzle Kay
 
49 - 18.05.18 - 14:48
 
 Рекламное место пустует
   Nikoss
 
50 - 18.05.18 - 14:49
(47), из ВТ все равно выбирать)
хотя да, ВТ в памяти храниться будет, то должно быть получше, опять же зависит от кол-во записей, может быть совсем незначительное изменение времени исполнения запроса
   Nikoss
 
51 - 18.05.18 - 14:50
(49) убери строку с "поместить" и ";"
   Nikoss
 
52 - 18.05.18 - 14:50
+(51) убери = удали ))
   kda26
 
53 - 18.05.18 - 14:51
(50) Не будет на каждой итерации дергать базу
   Razzle Kay
 
54 - 18.05.18 - 14:53
(51) повисло и предложило 'Отладка" и "закрыть программу"
   Nikoss
 
55 - 18.05.18 - 14:54
(54) Вот такой запрос повесил базу?
ВЫБРАТЬ
    Возврат.Ссылка КАК Ссылка,
    Возврат.битВодитель КАК ФИОВодителя
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК Возврат
ГДЕ
    Возврат.Проведен
    И Возврат.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
    И Возврат.битВодитель В (ВЫБРАТЬ уатСотрудники.ФизЛицо ИЗ Справочник.уатСотрудники КАК уатСотрудники
   Razzle Kay
 
56 - 18.05.18 - 14:56
ну
   Razzle Kay
 
57 - 18.05.18 - 14:56
мб из-за говно пк?
   Nikoss
 
58 - 18.05.18 - 15:00
ВЫБРАТЬ уатСотрудники.ФизЛицо 
    ПОМЕСТИТЬ ВТ_ВОДИТЕЛИ 
ИЗ Справочник.уатСотрудники КАК уатСотрудники
;
ВЫБРАТЬ
    Возврат.Ссылка КАК Ссылка,
    Возврат.битВодитель КАК ФИОВодителя
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК Возврат
ГДЕ
    Возврат.Проведен
    И Возврат.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
    И Возврат.битВодитель В (ВЫБРАТЬ ВТ_ВОДИТЕЛИ.ФизЛицо ИЗ ВТ_ВОДИТЕЛИ КАК ВТ_ВОДИТЕЛИ)
   kda26
 
59 - 18.05.18 - 15:00
Параметры проверь, может там мега большой период.
   Nikoss
 
60 - 18.05.18 - 15:01
(58) это последний шанс)
если и это повешает базу - беда)

или у тебя там по 100 тыс документов в месяце и 200 тыс уатСотрудниев?
   Razzle Kay
 
61 - 18.05.18 - 15:02
(59) месяц
   Razzle Kay
 
62 - 18.05.18 - 15:03
(60) ну доков в 2 раза помньше
а сотров подавно не 200к
   Razzle Kay
 
63 - 18.05.18 - 15:04
ладно, со свежей головой в пн с утра сяду и сделаю, всем спасибо за инфу)
   ColonelAp4u
 
64 - 18.05.18 - 15:26
(62) 50к документов?
   Nikoss
 
65 - 18.05.18 - 17:25
(64) причем возвратов? :-/
   Razzle Kay
 
66 - 22.05.18 - 05:50
(65) возвратная тара
подскажите, как в скд уловие поставить "где реквизит1 заполнен"
   catena
 
67 - 22.05.18 - 06:08
(66)Зависит от типа незаполненности.
"не Есть NULL", 
"<>Неопределено",
"<>Значение(Справочник.Такойто.ПустаяСсылка)"
   Razzle Kay
 
68 - 22.05.18 - 06:20
(67) ну вообще тип реквизита ссылка на спр физлица
   Razzle Kay
 
69 - 22.05.18 - 06:29
(67) ВозвратТоваровОтПокупателяВозвратнаяТара.Ссылка.битВодитель <> 
с этим как правильно ?
   catena
 
70 - 22.05.18 - 06:30
<>Значение(Справочник.ФизическиеЛица.ПустаяСсылка)
   Razzle Kay
 
71 - 22.05.18 - 06:41
омг, я даун (70) спасибо, туплю жестко )
   Razzle Kay
 
72 - 05.06.18 - 08:05
чтоб не плодить
как сделать в запросе условие "Если на основании Реализации есть Возврат, то эту Реализацию выводить не нужно"
   catena
 
73 - 05.06.18 - 08:23
1) не в (реализация,возврат)

2) левое соединение с Возврат где Возврат есть NULL


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует