Имя: Пароль:
1C
1C 7.7
v7: прямой запрос по виду документа
, ,
0 BolshoySmal
 
03.10.16
14:48
Добрый день . Подскажите (можно ссылку на нормальный букварь) как сделать прямой запрос в1С к регистру с отбором по типу документа ?
1 Это_mike
 
03.10.16
14:49
скрипт-кодинг.ру
2 Это_mike
 
03.10.16
14:50
а отбор по типу - если включен флаг быстрая обработка движений, то тип в регистре, иначе - джойнить с журналом
3 BolshoySmal
 
03.10.16
15:30
может вот это http://www.script-coding.com/  ?
4 Это_mike
 
03.10.16
15:43
5 BolshoySmal
 
03.10.16
15:47
Понял. Спасибо.эту матчасть как раз и курю :)
6 Эльниньо
 
03.10.16
16:37
|SELECT
    |right(Рег.ПозицияДокумента,9) as [Док $Документ],
    |Рег.ВидДокумента  as Док_вид,
...
    |WHERE Рег.ВидДокумента=3862 //заменить на нужный
7 BolshoySmal
 
03.10.16
16:49
А где его узнать ?  |WHERE Рег.ВидДокумента=3862//заменить на нужный
8 Ёпрст
 
03.10.16
16:59
(7) where iddocdef  = $ВидДокумента.Реализация
9 BolshoySmal
 
03.10.16
17:03
Спасибо большое. Тогда еще вопрос в рамках темы. У документа есть реквизит (допустим склад ) как в запрос добавить отбор по списку значений складо
Попробовал вот такую конструкцию - не работает -
    |SELECT
    |    Рег.IDDoc as [Док $Документ],
    |    Жур.IDDocDef as Док_вид,
    |    $Рег.Склад as [Склад $Справочник.Склады],
    |    $Рег.Номенклатура as [Товар $Справочник.Номенклатура],
    |    $Рег.Количество as Количество
    |FROM
    |    $Регистр.ОстаткиТМЦ as Рег
    |INNER JOIN
    |    _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc
    |WHERE
    |    Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND
    |   Жур.IDDocDef = $ВидДокумента.ПеремещениеТМЦ AND Жур.IDDoc.Склад IN IN (SELECT Val FROM #Группа);";
Параметр задал вот так
RS.УложитьСписокОбъектов(СПМол, "#Группа", "ФизЛица");
10 Ёпрст
 
03.10.16
17:51
>>>AND Жур.IDDoc.Склад

Это вообще за гранью добра
ну так, хотя бы
AND $Рег.Склад in (select val from #Группа)
11 Ёпрст
 
03.10.16
17:52
Ну и тут
RS.УложитьСписокОбъектов(СПМол, "#Группа", "ФизЛица");
нужно наверное, список складов, а не физ лиц.
Либо отбор по МОЛ-у, а не складу в тексте запроса.
12 Ёпрст
 
03.10.16
17:53
Да и, сам запрос, непонятно, зачем такой вообще нужен.
13 BolshoySmal
 
04.10.16
08:53
Мне нужно отобрать движения по определённым складам , за определённые даты , которые двигали регистр Остатки ТМЦ.
У документа перемещение есть реквизит "склад " и реквизит "склад получатель". Пытаюсь сделать отбор по складу.
Вот такой запрос рисую :
    ТекстЗапроса = "
    |SELECT
    |    Рег.IDDoc as [Док $Документ],
    |    Жур.IDDocDef as Док_вид,
    |    $Рег.Склад as [Склад $Справочник.Склады],
    |    $Рег.Номенклатура as [Товар $Справочник.Номенклатура],
    |    $Рег.Количество as Количество
    |FROM
    |    $Регистр.ОстаткиТМЦ as Рег
    |INNER JOIN
    |    _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc
    |WHERE
    |    Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND
    |   Жур.IDDocDef = $ВидДокумента.ПеремещениеТМЦ AND
    |    Жур.IDDoc.Склад  IN (SELECT Val FROM #Группа);";
    
    RS.УложитьСписокОбъектов(СпСклад, "#Группа", "Склады");
    
    RS.УстановитьТекстовыйПараметр("НачДата", НАчДата);
    RS.УстановитьТекстовыйПараметр("КонДата", КонДата);
14 BolshoySmal
 
04.10.16
08:54
вот такая ошибка tate 42000, native 258, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось вызвать методы для char.
15 BolshoySmal
 
04.10.16
08:55
Что это - я не знаю, поэтому прошу помощи
16 Это_mike
 
04.10.16
08:59
(13) не будет у тебя никогда Жур.IDDoc.Склад
17 Это_mike
 
04.10.16
09:12
вместо
Жур.IDDoc.Склад  IN (SELECT Val FROM #Группа);
напиши
$Рег.Склад  IN (SELECT Val FROM #Группа)

и точку с запятой убери
18 BolshoySmal
 
04.10.16
09:18
не прокатит , потому как мне надо еще отбор делать по складу получателю Жур.IDDoc.СкладПолучатель и тоже в списке значений.
19 BolshoySmal
 
04.10.16
09:19
$Рег.Склад  реквизит регистра один и тот же.
20 Это_mike
 
04.10.16
09:26
(18) значит, цепляй еще таблицы нужных документов.
21 palpetrovich
 
04.10.16
09:26
(18) забудь про ДВЕ точки в прямом запросе! Нужен СкладПолучатель  - джойни Жур с документом или регистром где есть СкладПолучатель
22 BolshoySmal
 
04.10.16
09:39
Документ тот же-  перемещениеТМЦ. необходимо выбрать из регистра движение где Жур.IDDoc.Склад в одном списке значений и Жур.IDDoc.СкладПолучатель в другом списке значений . дайте пожалуйста кусок запроса . Я 3-ий день занимаюсь с прямыми запросами.
23 Это_mike
 
04.10.16
09:41
(22) пля...
Жур - это таблица такая. в которой есть поле IDDoc
так вот, Жур.IDDoc - это 9 символов. откуда там ".Склад"??????
24 Это_mike
 
04.10.16
09:44
слелай
inner join $Документ.ПеремещениеТМЦ ДокПеремещение (nolock) on ДокПеремещение.iddoc=Жур.iddoc

ну а уже в условиях $ДокПеремещение.СкладПолучатель in(select val...)
25 BolshoySmal
 
04.10.16
09:49
вот эту строку
|Inner join $Документ.ПеремещениеТМЦ ДокПеремещение (nolock) on ДокПеремещение.iddoc=Жур.iddoc  
вместо
    |INNER JOIN
    |    _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc
я правильно понял ?
26 Это_mike
 
04.10.16
09:50
(25) _вместе_
27 BolshoySmal
 
04.10.16
09:56
то есть должно быть так
|Inner join $Документ.ПеремещениеТМЦ ДокПеремещение (nolock) on ДокПеремещение.iddoc=Жур.iddoc  
   |INNER JOIN
   |    _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc  ?
28 Это_mike
 
04.10.16
10:01
да
29 BolshoySmal
 
04.10.16
10:05
Спасибо большое, что просвятил !!!
30 BolshoySmal
 
04.10.16
10:06
Должен буду как земля колхозу :) !!! куда нести коньяк ?
31 Это_mike
 
04.10.16
10:06
(29) я просвещаю. а святить - это к нуралиеву :-)
32 BolshoySmal
 
04.10.16
10:17
А реально ли к этому запросу еще и период прикрутить ?
33 BolshoySmal
 
04.10.16
10:18
например месяц ?
34 Это_mike
 
04.10.16
10:19
(33) в смысле?
вывод месяца? или условие по месяцу?
35 BolshoySmal
 
04.10.16
10:35
в разрезе месяцев. То есть если Начдата=01.08 а КонДата 03.10 получить результаты в разрезе месяцев ?
36 BolshoySmal
 
04.10.16
10:36
Август,Сентябрь,Октябрь
37 Это_mike
 
04.10.16
10:47
(35)
SELECT

--    Рег.IDDoc as [Док $Документ],
--    Жур.IDDocDef as Док_вид,
--    $Рег.Склад as [Склад $Справочник.Склады],
--    $Рег.Номенклатура as [Товар $Справочник.Номенклатура],
substr(Жур.Date_Time,5,2) [Месяц]
    Sum($Рег.Количество) as Количество
...
...
group by substr(Жур.Date_Time,5,2)
38 BolshoySmal
 
04.10.16
10:53
Пасиба
39 BolshoySmal
 
04.10.16
10:53
Пасиба.
40 BolshoySmal
 
04.10.16
11:16
substr не является известным имя встроенной функции.
41 BolshoySmal
 
04.10.16
11:16
А как это победить ?
42 Ёпрст
 
04.10.16
11:17
(41) substring
43 BolshoySmal
 
04.10.16
11:19
уже нашел :)
44 BolshoySmal
 
04.10.16
11:19
Спасибо
45 МихаилМ
 
04.10.16
11:30
по виду документа из регистра можно и обычным одинесным 77 запросом , если указан быстрый отбор у регистра.
46 Это_mike
 
04.10.16
11:35
(45) судя по всему, у него не указан...
47 Это_mike
 
04.10.16
11:36
(45) ну и прямые запросы - прямее и быстрее...
48 Это_mike
 
04.10.16
11:39
(40) пардон, забываю ужо...
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой