Переключение на Главную Страницу Страницы: 1 ... 25 26 [27] 28 29 ... 51 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" - обсуждения. Часть № 2. (число прочтений - 258718 )
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #390 - 31. Июля 2012 :: 07:00
Печать  
Kalen писал(а) 30. Июля 2012 :: 19:17:
Так соединяй 2 раза. Сначала по ШК1, потом по ШК2. В итоге выбирай непустую номенклатуру
Код
Выбрать все
coalesce(Ном1.id,Ном2.id) 



Соединяю два раза и пишет OUT OF MEMORY Печаль
  
Наверх
 
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #391 - 31. Июля 2012 :: 07:21
Печать  
Все, разобрался!
Всем спасибо.

Использовал вариант с OR.

а было всего-то ШтрихКоды - строки. По этому в соединении использовал LIKE  и все взлетело Улыбка
  
Наверх
 
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #392 - 31. Июля 2012 :: 07:48
Печать  
Возник новый вопрос. А можно ли на лету добавлять свои индексы к таблицам 1С?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #393 - 31. Июля 2012 :: 08:04
Печать  
Зависит от формата БД, в скуле можно, в дбф - проблематично.
  
Наверх
 
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #394 - 31. Июля 2012 :: 08:37
Печать  
Eprst писал(а) 31. Июля 2012 :: 08:04:
Зависит от формата БД, в скуле можно, в дбф - проблематично.


База дбф.

а жаль Печаль
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #395 - 31. Июля 2012 :: 09:34
Печать  
artamir писал(а) 31. Июля 2012 :: 07:48:
А можно ли на лету добавлять свои индексы к таблицам 1С?

Что есть "на лету"? Можно сначала выбрать во временную таблицу и на нее повесить индексы, как на прошлой странице уже писал vandalsvq
Подозреваю, что захотелось ускорить соединение по ШК. Тогда просто включи галку "Сортировка" для этих реквизитов. Будут индексы...
  
Наверх
GTalkICQ  
IP записан
 
big_ooo
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #396 - 07. Августа 2012 :: 14:08
Печать  
Подскажите пож. как получить владельца в запросе по срезу последних. Ситуация такая что справочник с периодическими реквизитами подчинен спр ТМЦ надо для ТМЦ выбрать период реквизиты пробую вот так соединить ничего не получается(база дбф):
Код
Выбрать все
	|ВЫБРАТЬ $СрезМинМаксОстатки.ТекущийЭлемент AS [минмакс $Справочник.МинМаксОстатки],
	|СрезМинМаксОстатки.МинОст,СрезМинМаксОстатки.МаксОст
	|ИЗ $СрезПоследних.МинМаксОстатки(
	|, (МинОст,МаксОст)
	|,
	|,
	|,0) КАК СрезМинМаксОстатки ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.МинМаксОстатки По ТекущийЭлемент=$Справочник.МинМаксОстатки.ТекущийЭлемент
	|";

 

  
Наверх
 
IP записан
 
Ника
YaBB Newbies
*
Отсутствует


Кулинария

Сообщений: 2
Местоположение: россия
Зарегистрирован: 31. Января 2012
Пол: Женский
Кулинария
Ответ #397 - 07. Августа 2012 :: 16:40
Печать  
Спасибо за простоту и четкость. Отличные обьяснения.
« Последняя редакция: 20. Августа 2012 :: 16:14 - Ника »  
Наверх
www  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #398 - 08. Августа 2012 :: 05:10
Печать  
big_ooo писал(а) 07. Августа 2012 :: 14:08:
Подскажите пож. как получить владельца в запросе по срезу последних.


не видно связи с .Владелец в месте присоединения или где либо в твоём запросе
  
Наверх
 
IP записан
 
big_ooo
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #399 - 08. Августа 2012 :: 06:24
Печать  
Eprst писал(а) 08. Августа 2012 :: 05:10:
big_ooo писал(а) 07. Августа 2012 :: 14:08:
Подскажите пож. как получить владельца в запросе по срезу последних.


не видно связи с .Владелец в месте присоединения или где либо в твоём запросе

мне надо связать спр тмц (справочник владелец) с подчиненным и из подчиненного получить значения периодические. Я в срезе последних не пойму как обратиться к владельцу справочника у меня все время ошибка.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #400 - 08. Августа 2012 :: 07:06
Печать  
Не в курсе, как там срезпоследних реализован в классе,
что касается владельца, то это поле parentext в табличке справочника (это id элемента, являющегося владельцем)

Вот с этим полем и должна быть связь, например, в left join
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #401 - 08. Августа 2012 :: 08:53
Печать  
big_ooo писал(а) 08. Августа 2012 :: 06:24:
мне надо связать спр тмц (справочник владелец) с подчиненным и из подчиненного получить значения периодические. Я в срезе последних не пойму как обратиться к владельцу справочника у меня все время ошибка.

Покажи где и как пытаешься связать со справочником ТМЦ (в твоем примере нету ТМЦ). Попробую телепатировать
Код
Выбрать все
ВЫБРАТЬ $СрезМинМаксОстатки.ТекущийЭлемент AS [минмакс $Справочник.МинМаксОстатки],
СрезМинМаксОстатки.МинОст,СрезМинМаксОстатки.МаксОст
ИЗ $СрезПоследних.МинМаксОстатки(
	, (МинОст,МаксОст), , ,0) КАК СрезМинМаксОстатки
ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.МинМаксОстатки как МинМакс По ТекущийЭлемент=$МинМакс.ТекущийЭлемент
ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.ТМЦ как ТМЦ По $ТМЦ.ТекущийЭлемент=$МинМакс.Владелец
 


Эти соединения можно включить внутрь ВТ параметром чтобы использовать в условиях для оптимизации самого среза.
  
Наверх
GTalkICQ  
IP записан
 
big_ooo
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #402 - 08. Августа 2012 :: 09:56
Печать  
вот пробую вот такой запрос в дбф базе
Код
Выбрать все
	ТестЗапроса="
	|		SELECT $МинМаксОстатки.Владелец as [Владелец $Справочник.ТМЦ],
	|			   $ПоследнееЗначение.МинМаксОстатки.МинОст($МинМаксОстатки.ТекущийЭлемент, :ВыбДата) as МинОст,
	|			   $ПоследнееЗначение.МинМаксОстатки.МаксОст($МинМаксОстатки.ТекущийЭлементD, :ВыбДата) as МаксОст
	|		FROM $Справочник.МинМаксОстатки КАК МинМаксОстатки $nolock
	|		WHERE ($МинМаксОстатки.Владелец = :выбТовар)
	|";

	ПрямойЗапрос2=СоздатьОбъект("ПрямойЗапрос");
	ПрямойЗапрос2.Текст=ТестЗапроса;
	ПрямойЗапрос2.УстановитьТекстовыйПараметр("выбТовар",ВыбТМЦ);
	ПрямойЗапрос2.УстановитьТекстовыйПараметр("ВыбДата",ТекущаяДата());
	ПрямойЗапрос2.РежимОтладки=1;
	ТаблицаДанных = ПрямойЗапрос2.Выполнить();  

 



выписывает такую ошибку:
ПрямойЗапрос::Выполнить(Строка ТипОбъекта=ИндексированнаяТаблица, Строка ТекстВыполнения=, Число БезПодготовки=0) : near "AS": syntax error
ЗапросSQLite.ВыполнитьЗапрос(ТекстЗапроса,ПолучательЗапроса);

подскажите что я не так делаю
  
Наверх
 
IP записан
 
big_ooo
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #403 - 08. Августа 2012 :: 10:00
Печать  
Kalen писал(а) 08. Августа 2012 :: 08:53:
big_ooo писал(а) 08. Августа 2012 :: 06:24:
мне надо связать спр тмц (справочник владелец) с подчиненным и из подчиненного получить значения периодические. Я в срезе последних не пойму как обратиться к владельцу справочника у меня все время ошибка.

Покажи где и как пытаешься связать со справочником ТМЦ (в твоем примере нету ТМЦ). Попробую телепатировать
Код
Выбрать все
ВЫБРАТЬ $СрезМинМаксОстатки.ТекущийЭлемент AS [минмакс $Справочник.МинМаксОстатки],
СрезМинМаксОстатки.МинОст,СрезМинМаксОстатки.МаксОст
ИЗ $СрезПоследних.МинМаксОстатки(
	, (МинОст,МаксОст), , ,0) КАК СрезМинМаксОстатки
ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.МинМаксОстатки как МинМакс По ТекущийЭлемент=$МинМакс.ТекущийЭлемент
ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.ТМЦ как ТМЦ По $ТМЦ.ТекущийЭлемент=$МинМакс.Владелец
 


Эти соединения можно включить внутрь ВТ параметром чтобы использовать в условиях для оптимизации самого среза.


у меня используется поставщик данных справочника тмц и я к нему присоединяю остатки , чтобы вывести в табличное поле и спр. с периодическими реквизитами . с остатками все норм а вот с этими периодическими ничего не получается.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #404 - 08. Августа 2012 :: 10:00
Печать  
big_ooo писал(а) 08. Августа 2012 :: 09:56:
вот пробую вот такой запрос
...
выписывает такую ошибку:
ПрямойЗапрос::Выполнить(Строка ТипОбъекта=ИндексированнаяТаблица, Строка ТекстВыполнения=, Число БезПодготовки=0) : near "AS": syntax error
ЗапросSQLite.ВыполнитьЗапрос(ТекстЗапроса,ПолучательЗапроса);

подскажите что я не так делаю

Обычно это связано с неправильным использованием знака "Доллар"
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 25 26 [27] 28 29 ... 51
ОтправитьПечать