Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема 1C77(DBF) Проблема отбора период. реквизитов!!! (число прочтений - 2611 )
dave2000
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 2
Зарегистрирован: 26. Декабря 2007
1C77(DBF) Проблема отбора период. реквизитов!!!
26. Декабря 2007 :: 10:41
Печать  
Ситуация такая. Хочу отобрать все значения периодического реквизита "Сумма" справочника "Доходы" (т.е. все значения для Справочник.Доходы.Сумма). Что я делаю: я беру значение поле ID таблицы справочника Доходы и отбираю по нему все записи из таблицы констант 1sconst (у которых в поле OBJID равно этому значению). Но! Сюда попадают левые значения реквизитов, т.к. значения идентификаторов реквизитов уникальны только в пределах таблиц справочников. Кроме реквизитов нужно ещё определять к какому объекту относится данный реквизит (в нашем случае к какому справочнику). В таблице констант 1sconst объект определяется по полю ID. Вот тут у меня и проблема!!! С чем сравнивать значение данного поля? Как по этому значению определить объект, которому относится реквизит? Печаль

Вот текст запроса:
Код
Выбрать все
SELECT
	  Доходы.ID as [Доход $Справочник.Доходы],
	  Конст.VALUE as [Сумма $Число]
FROM
	  $Справочник.Доходы AS Доходы
LEFT JOIN
	  1sconst AS Конст ON (Конст.OBJID = Планы.ID) AND (Конст.ID = ????????????????) 




Что поставить в условие вместо "??????????????" ? Если только параметр, то как и что в него передвать?
  
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: 1C77(DBF) Проблема отбора период. реквизитов!!
Ответ #1 - 26. Декабря 2007 :: 11:02
Печать  
Варианта два (на самом деле больше Улыбка ) :
Код
Выбрать все
спр = СоздатьОбъект( "Справочник.Номенклатура" );
мдв = СоздатьОбъект( "MetaDataWork" );
ИДвидаСпр = лев( мдв.ЗначениеВДлиннуюСтрокуБД( спр.ТекущийЭлемент()), 4 );
 



или
Код
Выбрать все
мдв = СоздатьОбъект( "MetaDataWork" );
ИДвидаСпр = Прав(_IdToStr(мдв.ИДСправочника( "Номенклатура" )),4);
 


  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C77(DBF) Проблема отбора период. реквизитов!!
Ответ #2 - 26. Декабря 2007 :: 11:14
Печать  
Есть ещё модификаторы http://www.1cpp.ru/docum/html/ODBC.html#id40
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 1C77(DBF) Проблема отбора период. реквизитов!!
Ответ #3 - 26. Декабря 2007 :: 11:19
Печать  
Код
Выбрать все
SELECT
	  Доходы.ID as [Доход $Справочник.Доходы],
	  Конст.VALUE as [Сумма $Число]
FROM
	  $Справочник.Доходы AS Доходы
LEFT JOIN
	  1sconst AS Конст ON (Конст.OBJID = Планы.ID) AND (Конст.ID = $ИсторияРеквизита.Доходы.Сумма)

 



есть еще индекс
, котрый бы неплохо задействовать, но это уже высшая математика Улыбка
  
Наверх
 
IP записан
 
dave2000
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 2
Зарегистрирован: 26. Декабря 2007
Re: 1C77(DBF) Проблема отбора период. реквизитов!!
Ответ #4 - 26. Декабря 2007 :: 14:27
Печать  
Спасибо всем! Заработало!  Подмигивание
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать