Переключение на Главную Страницу Страницы: 1 2 3 [4] 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Помогите с 1sqlite (число прочтений - 16825 )
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #45 - 26. Мая 2011 :: 14:22
Печать  
вроде как не выбирает списанные ос, но они в спр. не помечены на удаление
убрала вообще условие where- и тогда вроде бы выводятся все ОС
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #46 - 26. Мая 2011 :: 14:46
Печать  
А, ну да. Торможу. Журнал с документами надо в подзапрос обернуть, а справочник соединять уже с этим подзапросом.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с 1sqlite
Ответ #47 - 26. Мая 2011 :: 14:53
Печать  
Интересно, кто-ниь пересилит себя и напишет наконец то, что хочет автор целиком.. или, пусть мучается  -учится ?
Улыбка
  
Наверх
 
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #48 - 26. Мая 2011 :: 15:03
Печать  
можно более поточнее: это каким образом??
типа так:
|left JOIN
     |       _1SJOURN  Журнал With (NOLOCK) on (Перем.iddoc=Журнал.iddoc or (СписСт.IDDOC=Журнал.IDDOC) or (ПереоценкаСт.iddoc=Журнал.iddoc) or (Компл.IDDOC=Журнал.IDDOC)or (ПостСт.IDDOC=Журнал.IDDOC)or (Пост2009Ст.IDDOC=Журнал.IDDOC)or (Журнал.IDDOC IS NULL))
     

union oll
$Справочник.ОС ОС With (NOLOCK)

и дальше связь со справочником и документами???




и еще хочу спросить по этому отчету лично у Вас, berezdetsky:
подключила класс AccountsRecordSet
нужно получить различные суммы  СНД(). получила виртуальную табличу $БИОстатки, а вот как получить код субконто и соединить ее с отчетом, с тем, что делаю сейчас- не знаю.
Когда соединяю со справочником- пишет ошибку что-то типа слишком длинная строка
  
Наверх
 
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #49 - 26. Мая 2011 :: 15:07
Печать  
методом проб и ошибок я постепенно сама научусь. а вот где и из-за чего конкретно возникают ошибки, к сожалению пока не понимаю
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #50 - 26. Мая 2011 :: 17:56
Печать  
Eprst писал(а) 26. Мая 2011 :: 14:53:
Интересно, кто-ниь пересилит себя и напишет наконец то, что хочет автор целиком.. или, пусть мучается  -учится ?
Улыбка

Для этого, как минимум, нужно понять, чего хочет автор? Я лично пока не понял.  Озадачен

Настенок писал(а) 26. Мая 2011 :: 15:03:
можно более поточнее: это каким образом??
типа так:

Типа так:
Код
Выбрать все
SELECT ОС.CODE as Код
	, NullIf($ОС.ДатаВводаЭкспл, '17530101') ДатаВводаЭкспл
	, $ОС.ШифрИзноса [ШифрИзноса $Справочник.КлассификаторОС]
	, $КлассификаторОС.СрокСлужбы СрокСлужбы
	, sq.Документ [Документ $Документ]
	, sq.Документ_вид [Документ_вид $ВидДокумента]
	, sq.Документ_дата
	, ОС.id [ОС $Справочник.ОС]
	, sq.МОЛ [МОЛ $Справочник.МОЛ]
	, sq.Подр [Подр $Справочник.Подразделения]
	, sq.Счет [Счет $Счет]
	, sq.ИнвНомер
	, sq.К Коэф
FROM $Справочник.ОС ОС With (NOLOCK)
	left JOIN $Справочник.КлассификаторОС AS КлассификаторОС With (NOLOCK) on ($ОС.ШифрИзноса = КлассификаторОС.id)
	left JOIN (
		select IsNull(coalesce(substring($СписСт.С1, 7, 9), substring($ПеремСт.С1Стар, 7, 9), $Компл.ОС, $ПереоценкаСт.ОС), '') ОС
			, IsNull(coalesce($ПостСт.ИнвНомер, $Пост2009Ст.ИнвНомер), '') ИнвНомер
			, МОЛ.id МОЛ
			, $МОЛ.Подр Подр
			, $ПереоценкаСт.К Коэф
			, coalesce($ПостСт.Счет,$Пост2009Ст.Счет) Счет
			, Журнал.IDDOC Документ
			, Журнал.IDDOCDEF Документ_вид
			, NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101') Документ_дата
		from _1SJOURN  Журнал With (NOLOCK)
			left join $ДокументСтроки.ОС_Списание as СписСт With (NOLOCK) on СписСт.IDDOC=Журнал.IDDOC
			left JOIN $Документ.ОС_Списание as Спис With (NOLOCK) on Спис.iddoc=Журнал.iddoc
			left JOIN $ДокументСтроки.ОС_Перемещение as ПеремСт With (NOLOCK) on ПеремСт.iddoc=Журнал.iddoc
			left JOIN $Документ.ОС_Перемещение as Перем With (NOLOCK) on Перем.iddoc=Журнал.iddoc
			left JOIN $Документ.ОС_Комплектация AS Компл With (NOLOCK) on Компл.IDDOC=Журнал.IDDOC
			left JOIN $ДокументСтроки.Переоценка as ПереоценкаСт With (NOLOCK) on ПереоценкаСт.iddoc=Журнал.iddoc
			left JOIN $ДокументСтроки.ТМЦ_Поступление as ПостСт With (NOLOCK) on ПостСт.IDDOC=Журнал.IDDOC
			left JOIN $ДокументСтроки.ТМЦ_Поступление2009 as Пост2009Ст With (NOLOCK) on Пост2009Ст.IDDOC=Журнал.IDDOC
			left JOIN $Справочник.МОл МОЛ With (NOLOCK) on coalesce($Компл.МОЛОС, $Перем.МОЛОбщ, $Спис.МОЛОбщ, substring($Пост2009Ст.Субконто2Т, 7, 9), substring($ПостСт.Субконто2Т, 7, 9))=МОЛ.ID
			left JOIN $Справочник.Подразделения AS ПОдр With (NOLOCK) on ($МОЛ.ПОдр = ПОдр.id)
		Where Журнал.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~
			and Журнал.iddocdef in ($ВидДокумента.ОС_Списание, $ВидДокумента.ОС_Перемещение, $ВидДокумента.ОС_Комплектация, $ВидДокумента.Переоценка, $ВидДокумента.ТМЦ_Поступление, $ВидДокумента.ТМЦ_Поступление2009)
	) sq on ОС.id = sq.ОС or ОС.code = sq.ИнвНомер
Order By ОС.CODE
 



Настенок писал(а) 26. Мая 2011 :: 15:03:
и еще хочу спросить по этому отчету лично у Вас, berezdetsky:
подключила класс AccountsRecordSet
нужно получить различные суммы  СНД(). получила виртуальную табличу $БИОстатки, а вот как получить код субконто и соединить ее с отчетом, с тем, что делаю сейчас- не знаю.
Когда соединяю со справочником- пишет ошибку что-то типа слишком длинная строка

Как-то так:

left join $БИОстатки(...) as БИОстатки on ОС.id = БИОстатки.Субконто1

"Слишком длинная строка" - 1С это пишет, когда сообщение об ошибке не помещается в окне сообщений.

Настенок писал(а) 26. Мая 2011 :: 15:07:
методом проб и ошибок я постепенно сама научусь. а вот где и из-за чего конкретно возникают ошибки, к сожалению пока не понимаю

Из известных мне способов обучения, метод проб и ошибок - самый медленный. Ты сэкономишь много  времени, если купишь толстую книгу по SQL и прочитаешь её по главу по команде SELECT, выполняя все примеры и упражнения на живой демо-базе.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с 1sqlite
Ответ #51 - 27. Мая 2011 :: 04:55
Печать  
  
Наверх
 
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #52 - 27. Мая 2011 :: 06:32
Печать  
благодарю за помощь. книгу почитаю
berezdetsky, спасибо, работает запрос. Но мне нужно для каждого вида документа новая колонка (это у меня работало)

и еще по поводу
|      Субконто1 [Субконто1 $Субконто]
     |      , ОС.Code
     
     |      , Субконто1_вид
     |      , Субконто2 [Субконто2 $Субконто]
     |      , Субконто2_вид
     |      , Sum(СуммаОстатокДт) СуммаОстатокДт
     |      , Sum(СуммаОстатокКт) СуммаОстатокКт
     |      
     |FROM
     |      $Справочник.ОС ОС With (NOLOCK)
     |
     |LEFT JOIN
     |$БИОстатки.Основной(:КонДата ~,,
     |            Счет = :ВыбСчет,
     |            (Субконто1,Субконто2)) БИОстатки ON БИОстатки.Субконто1 = ОС.ID

все равно возникает ошибка:
получаемая строка превысит допустимые размеры
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #53 - 27. Мая 2011 :: 06:45
Печать  
Код
Выбрать все
|SELECT Субконто1 [Субконто1 $Субконто]
|	, ОС.Code
|	, Субконто1_вид
|	, Субконто2 [Субконто2 $Субконто]
|	, Субконто2_вид
|	, Sum(СуммаОстатокДт) СуммаОстатокДт
|	, Sum(СуммаОстатокКт) СуммаОстатокКт
|FROM  $Справочник.ОС ОС With (NOLOCK)
|	LEFT JOIN $БИОстатки.Основной(:КонДата ~,,
|		Счет = :ВыбСчет,
|		(Субконто1,Субконто2)) БИОстатки ON БИОстатки.Субконто1 = ОС.ID
|GROUP BY Субконто1
|	, ОС.Code
|	, Субконто1_вид
|	, Субконто2
|	, Субконто2_вид 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #54 - 27. Мая 2011 :: 07:06
Печать  
спасибо.
только не могу понять, что изменилось..сейчас посмотрю еще раз сама
как я сравнила, дело было в пробелах и то, что с новой строки?? так?
а если нужно 2 счета-01 и 02 (амортизация)?
01- можно выбирать, а 02.0-весь

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с 1sqlite
Ответ #55 - 27. Мая 2011 :: 07:09
Печать  
пихай счета в список значений, список упаковывай, далее счет in (select val from :ВыбСписокСчетов)
  
Наверх
 
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #56 - 27. Мая 2011 :: 08:36
Печать  
пока еще не получилось по 2-м счетам. Печаль
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #57 - 27. Мая 2011 :: 10:06
Печать  
Настенок писал(а) 27. Мая 2011 :: 07:06:
спасибо.
только не могу понять, что изменилось..сейчас посмотрю еще раз сама
как я сравнила, дело было в пробелах и то, что с новой строки?? так?
а если нужно 2 счета-01 и 02 (амортизация)?
01- можно выбирать, а 02.0-весь


По двум счетам:

Счет = :ВыбСчет1 OR Счет = :ВыбСчет2

Изменилось: появилось ключевое слово SELECT и секция GROUP BY.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #58 - 27. Мая 2011 :: 10:52
Печать  
у меня тоже была группировка. (вопрос по коду субконто)
посмотрела и почитала- возможно было все дело в пробелах

а по счетам- добавила условие
Счет = :ВыбСчет1 OR Счет = :ВыбСчет2
но наверное нужно добавить еще колонку : сумма по счету 01 сумма по счету 02

и еще вопрос: где есть примеры использования класса AccountsRecordSet (благодарю за этот класс, супер все быстро)

читала файл описание, но там очень мало примеров.
Также читаю Эффективное использование MSSQL в 1С при помощи ВК 1С++ тоже мне помогло
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #59 - 27. Мая 2011 :: 10:59
Печать  
Настенок писал(а) 27. Мая 2011 :: 10:52:
но наверное нужно добавить еще колонку : сумма по счету 01 сумма по счету 02

Нужно добавить поле Счет (в SELECT и в GROUP BY). Суммы по разным счетам будут в разных строках.

Настенок писал(а) 27. Мая 2011 :: 10:52:
и еще вопрос: где есть примеры использования класса AccountsRecordSet

Здесь на форуме есть несколько топиков по запросам к БИ.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 
ОтправитьПечать