|
v7: Получение периодического реквизита в прямом запросе | ☑ | ||
---|---|---|---|---|
0
pofigos
29.01.16
✎
09:59
|
Доброе утро!
Встал в ступоре. Не понимаю, как решить задачу: Есть запрос ТекстЗапроса = " //ОтгрузкаТМЦ |SELECT Журнал.IDDOC [Документ $Документ] | , Журнал.IDDOCDEF [Документ_вид $ВидДокументаПредставление] | , $ОтгрузкаТМЦ.Клиент [Клиент $Справочник.Клиенты] | , $ОтгрузкаТМЦСтроки.Товар [Товар $Справочник.Товары] | , $ОтгрузкаТМЦСтроки.Партия [Партия $Справочник.ПартииТоваров] | , ("+Число(0)+") as ЦенаВал | , SUM($ОтгрузкаТМЦСтроки.ВсегоСНДС) as СуммаСумма | , ("+Число(0)+") as СуммаРыночная | , SUM($ОтгрузкаТМЦСтроки.СуммаОтпускная) as СуммаСуммаБезНДС | , ("+Число(0)+") as СуммаСуммаНДС | , SUM($ОтгрузкаТМЦСтроки.Количество) as СуммаКол |FROM _1SJOURN AS Журнал With (NOLOCK) | LEFT JOIN $Документ.ОтгрузкаТМЦ AS ОтгрузкаТМЦ With (NOLOCK) ON Журнал.IDDOC = ОтгрузкаТМЦ.IDDOC | LEFT JOIN $ДокументСтроки.ОтгрузкаТМЦ AS ОтгрузкаТМЦСтроки With (NOLOCK) ON Журнал.IDDOC = ОтгрузкаТМЦСтроки.IDDOC | LEFT JOIN $Справочник.Товары AS спрТовары With (NOLOCK) ON спрТовары.ID = $ОтгрузкаТМЦСтроки.Товар | LEFT JOIN $Справочник.Клиенты AS спрКлиенты With (NOLOCK) ON спрКлиенты.ID = $ОтгрузкаТМЦ.Клиент | LEFT JOIN $Справочник.Склады AS спрСклады With (NOLOCK) ON спрСклады.ID = $ОтгрузкаТМЦ.Склад | |WHERE (Журнал.IDDOCDEF = $ВидДокумента.ОтгрузкаТМЦ) | AND ((Журнал.CLOSED & 1) = 1) | AND (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime)>=:НачДата) | AND (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime)<=:КонДата) | AND ($ОтгрузкаТМЦ.Склад NOT IN (SELECT val FROM #Склады)) | AND ($спрКлиенты.фИскл = 0) | AND (($спрТовары.ВидТоваров <> $Перечисление.ВидыТМЦ.Тара) | OR ($спрТовары.ВидТоваров <> $Перечисление.ВидыТМЦ.Тара10)"+УсловиеПродукции+") |" +?(ВыбСклад.Выбран() = 1,"AND ($ОтгрузкаТМЦ.Склад IN (SELECT val FROM #СкладыВыбора))","")+" |" +?(ВыбКонтрагенты.РазмерСписка()>0,?(Искл=0,"AND ($ОтгрузкаТМЦ.Клиент IN (SELECT val FROM #ВыбКонтрагенты))","AND ($ОтгрузкаТМЦ.Клиент NOT IN (SELECT val FROM #ВыбКонтрагенты))"),"")+" |" +?(ВыбТМЦ.Выбран() = 1,"AND ($ОтгрузкаТМЦСтроки.Товар) IN (SELECT val FROM #ВыбТовар))","")+" | |GROUP BY Журнал.IDDOC | , Журнал.IDDOCDEF | , $ОтгрузкаТМЦ.Клиент | , $ОтгрузкаТМЦСтроки.Товар | , $ОтгрузкаТМЦСтроки.Партия"; Так же есть запрос: ТекстЗапроса2 =" |select TOP(1) | const.value | from _1sconst const (nolock) | where const.objid = :Валюта | and const.id = $ИсторияРеквизита.Валюты.Курс | and const.date <= :НачДата | ORDER BY const.DATE DESC По отдельности запросы отрабатывают. Помогите, пожалуйста, сделать соединение. Необходимо получить значение периодического реквизита на дату документа из первого запроса. Заранее спасибо. |
|||
1
Ёпрст
29.01.16
✎
10:01
|
$ПоследнееЗначение
|
|||
2
Ёпрст
29.01.16
✎
10:02
|
это тоже зачетное условие:
($спрТовары.ВидТоваров <> $Перечисление.ВидыТМЦ.Тара) OR |
|||
3
Mikeware
29.01.16
✎
10:03
|
(2) слушай, как по Перехватчику тебя спросить?
|
|||
4
Ёпрст
29.01.16
✎
10:04
|
(3) а че с ним ?
:) |
|||
5
Ёпрст
29.01.16
✎
10:04
|
моги кинуть класс.. там всё просто как грабли :)
|
|||
6
pofigos
29.01.16
✎
10:05
|
(1) Последнее значение не понимаю куда прикрутить. По сути мне надо $ПоследнееЗначение.Валюты.Курс(Валюты.ID,Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime
|
|||
7
pofigos
29.01.16
✎
10:06
|
(2) С условием пока не занимался. Данные, самое интересное, выбирает корректные. Сейчас задача переписать отчет, который написан стандартным языком и строится около 30 минут за месяц.
|
|||
8
Mikeware
29.01.16
✎
10:06
|
(4) это не с ним. это со мной. туплю-с :-)
Не могу определить, какую форму открываю (нужно один журнал отловить, и формексовские события в нем.) Ну и есть опаска, что делаю не так (5) кинь пример, плз. на мой ник на мэйл.ру |
|||
9
Ёпрст
29.01.16
✎
10:13
|
(8)
https://cloud.mail.ru/public/CNvt/YFpgkgipQ в глобальничке Процедура ПриНачалеРаботыСистемы() ЗагрузитьВнешнююКомпоненту("1cpp.dll"); Настройки=СоздатьОбъект("УправлениеНастройками"); Настройки.Сбросить("Проверка типов"); Настройки.Сбросить("Отладка"); //Настройки.Сбросить("Оптимизация"); Настройки.Включить("Оптимизация"); Настройки.Включить("TurboBL"); Настройки.Включить("ПерехватитьСобытияГК"); Перехватчик = СоздатьОбъект("Перехватчик"); ПерехватчикСобытийГМ = СоздатьОбъект("ПерехватСобытий"); Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ПерехватчикСобытийГМ); ПерехватчикСобытийГМ.ПерехватитьПроведение(); //это, если перехватывать проведение //Перехватчик.ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации(); //это если нужно ЖР перехватывать |
|||
10
Ёпрст
29.01.16
✎
10:14
|
+9 посмотришь там к коде класса, есть как определять тип формы и т.д, т.е откуда идёт вызов.
Могу и рабочий класс с конфы посмотреть |
|||
11
Ёпрст
29.01.16
✎
10:21
|
(7) ну сам подумай, как на условие неравенства можно ставить или. Там нужно и
|
|||
12
pofigos
29.01.16
✎
10:32
|
(11) Согласен.
А вот куда прикрутить выборку курса валюты на дату документа так и не могу дойти ( |
|||
13
ЧеловекДуши
29.01.16
✎
10:39
|
(0) Вот, что-что, а на SQL запросе это куда приятней лепить, чем на запросах от 1С 8.ххх :)
|
|||
14
ЧеловекДуши
29.01.16
✎
10:41
|
+(0) Соединение не надо!!! Это не 8-ка.
Тут можно запрос в Поле лепить :) |
|||
15
Mikeware
29.01.16
✎
10:44
|
(9) (10) спасибо. вроде так и делал. Но не работало.
Т.е.если я правильно понял, смысл в том, что объект класса перехватывает созданиеконтекста, и на каждый контекст создает еще экземпляр, который уже и перехватыает события этого контекста? |
|||
16
Ёпрст
29.01.16
✎
10:46
|
(12) ну так и воткни в селект последнее значение, валюту из дока, дату из журнала (туда можно и сам док пихать). усё.
|
|||
17
Ёпрст
29.01.16
✎
10:46
|
(15) ага
|
|||
18
Ёпрст
29.01.16
✎
10:47
|
Хотя Артур и утверждал, что нужно по двум классам разносить, события локального и глобального контекста, но я всегда лепил всё в одном классе - вроде "глюков" не замечал.
|
|||
19
pofigos
29.01.16
✎
10:51
|
Вопрос закрыт ) нашел ошибку и все взлетело.
Отдельное спасибо за (2) |
|||
20
Mikeware
29.01.16
✎
11:04
|
(17) т.е. получается, что не экземпляр объекта ПерехватСобытий првязвывется к открытому контексту? а как он потом уничтожается?
|
|||
21
Ёпрст
29.01.16
✎
12:51
|
(20) дык закрыл объект , улетел объект
|
|||
22
Mikeware
04.02.16
✎
14:59
|
(21) а события OnDrop() у тебя ловятся?
|
|||
23
Ёпрст
05.02.16
✎
07:47
|
(22) ага
|
|||
24
Ёпрст
05.02.16
✎
07:48
|
Хотя, за активикс не скажу, надо посмотреть, давно в 7.7 не кодил
|
|||
25
Mikeware
09.02.16
✎
10:15
|
(24) глянь, пожалуйста.
Я так и не смог отловить... ни в ГМ, ни в твоем классе |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |