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


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: прямой запрос по виду документа

v7: прямой запрос по виду документа
Я
   BolshoySmal
 
03.10.16 - 14:48
Добрый день . Подскажите (можно ссылку на нормальный букварь) как сделать прямой запрос в1С к регистру с отбором по типу документа ?
 
 
   Это_mike
 
1 - 03.10.16 - 14:49
скрипт-кодинг.ру
   Это_mike
 
2 - 03.10.16 - 14:50
а отбор по типу - если включен флаг быстрая обработка движений, то тип в регистре, иначе - джойнить с журналом
   BolshoySmal
 
3 - 03.10.16 - 15:30
может вот это http://www.script-coding.com/  ?
   Это_mike
 
4 - 03.10.16 - 15:43
   BolshoySmal
 
5 - 03.10.16 - 15:47
Понял. Спасибо.эту матчасть как раз и курю :)
   Эльниньо
 
6 - 03.10.16 - 16:37
|SELECT
    |right(Рег.ПозицияДокумента,9) as [Док $Документ],
    |Рег.ВидДокумента  as Док_вид,
...
    |WHERE Рег.ВидДокумента=3862//заменить на нужный
   BolshoySmal
 
7 - 03.10.16 - 16:49
А где его узнать ?  |WHERE Рег.ВидДокумента=3862//заменить на нужный
   Ёпрст
 
8 - 03.10.16 - 16:59
(7) where iddocdef  = $ВидДокумента.Реализация
   BolshoySmal
 
9 - 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
Да и, сам запрос, непонятно, зачем такой вообще нужен.
   BolshoySmal
 
13 - 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.УстановитьТекстовыйПараметр("КонДата", КонДата);
   BolshoySmal
 
14 - 04.10.16 - 08:54
вот такая ошибка tate 42000, native 258, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось вызвать методы для char.
   BolshoySmal
 
15 - 04.10.16 - 08:55
Что это - я не знаю, поэтому прошу помощи
   Это_mike
 
16 - 04.10.16 - 08:59
(13) не будет у тебя никогда Жур.IDDoc.Склад
   Это_mike
 
17 - 04.10.16 - 09:12
вместо
Жур.IDDoc.Склад  IN (SELECT Val FROM #Группа);
напиши
$Рег.Склад  IN (SELECT Val FROM #Группа)

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

ну а уже в условиях $ДокПеремещение.СкладПолучатель in(select val...)
   BolshoySmal
 
25 - 04.10.16 - 09:49
вот эту строку 
|Inner join $Документ.ПеремещениеТМЦ ДокПеремещение (nolock) on ДокПеремещение.iddoc=Жур.iddoc  
вместо 
    |INNER JOIN
    |    _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc
я правильно понял ?
   Это_mike
 
26 - 04.10.16 - 09:50
(25) _вместе_
   BolshoySmal
 
27 - 04.10.16 - 09:56
то есть должно быть так 
|Inner join $Документ.ПеремещениеТМЦ ДокПеремещение (nolock) on ДокПеремещение.iddoc=Жур.iddoc   
   |INNER JOIN 
   |    _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc  ?
   Это_mike
 
28 - 04.10.16 - 10:01
да
   BolshoySmal
 
29 - 04.10.16 - 10:05
Спасибо большое, что просвятил !!!
   BolshoySmal
 
30 - 04.10.16 - 10:06
Должен буду как земля колхозу :) !!! куда нести коньяк ?
   Это_mike
 
31 - 04.10.16 - 10:06
(29) я просвещаю. а святить - это к нуралиеву :-)
   BolshoySmal
 
32 - 04.10.16 - 10:17
А реально ли к этому запросу еще и период прикрутить ?
   BolshoySmal
 
33 - 04.10.16 - 10:18
например месяц ?
 
 
   Это_mike
 
34 - 04.10.16 - 10:19
(33) в смысле?
вывод месяца? или условие по месяцу?
   BolshoySmal
 
35 - 04.10.16 - 10:35
в разрезе месяцев. То есть если Начдата=01.08 а КонДата 03.10 получить результаты в разрезе месяцев ?
   BolshoySmal
 
36 - 04.10.16 - 10:36
Август,Сентябрь,Октябрь
   Это_mike
 
37 - 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)
   BolshoySmal
 
38 - 04.10.16 - 10:53
Пасиба
   BolshoySmal
 
39 - 04.10.16 - 10:53
Пасиба.
   BolshoySmal
 
40 - 04.10.16 - 11:16
substr не является известным имя встроенной функции.
   BolshoySmal
 
41 - 04.10.16 - 11:16
А как это победить ?
   Ёпрст
 
42 - 04.10.16 - 11:17
(41) substring
   BolshoySmal
 
43 - 04.10.16 - 11:19
уже нашел :)
   BolshoySmal
 
44 - 04.10.16 - 11:19
Спасибо
   МихаилМ
 
45 - 04.10.16 - 11:30
по виду документа из регистра можно и обычным одинесным 77 запросом , если указан быстрый отбор у регистра.
   Это_mike
 
46 - 04.10.16 - 11:35
(45) судя по всему, у него не указан...
   Это_mike
 
47 - 04.10.16 - 11:36
(45) ну и прямые запросы - прямее и быстрее...
   Это_mike
 
48 - 04.10.16 - 11:39
(40) пардон, забываю ужо...


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