Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) AccountsRecordset (число прочтений - 8610 )
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
AccountsRecordset
11. Мая 2007 :: 06:53
Печать  
Можно ли из этого запроса выборку сразу сохранить во временную таблицу на сервере ?
Я делаю это чере ТЗ, а можно ли сразу одним запросом ?
|SELECT
|ОсновнойОстатки.Субконто2 as Dogovor,
|ОсновнойОстатки.Субконто2_вид
|ОсновнойОстатки.Субконто3 as Dok,
|ОсновнойОстатки.Субконто3_вид,
|ОсновнойОстатки.СуммаОстатокКт,
|FROM ,(Счет = :ВыбСч777)) AS ОсновнойОстатки
|INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет =ПланСчетов.ID
|ORDER BY ПланСчетов.SCHKOD

Кстати, спасибо автору класса, очень помогает Улыбка
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #1 - 11. Мая 2007 :: 07:58
Печать  
Цитата:
Код
Выбрать все
SELECT select_list
[ INTO new_table ]
FROM ... 


Arguments
new_table
Specifies the name of a new table to be created, based on the columns in the select list and the rows chosen by the WHERE clause...

А если таблица-получатель уже есть, то
Код
Выбрать все
INSERT INTO table_name
SELECT ... 

  

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


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #2 - 11. Мая 2007 :: 08:13
Печать  
Select ... into #имяВремТаблицы from...
  
Наверх
ICQ  
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: AccountsRecordset
Ответ #3 - 11. Мая 2007 :: 08:15
Печать  
Ага, вот и автор появился.
Еще раз спасибо за класс.
И за подсказку тоже, сейчас попробую.
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: AccountsRecordset
Ответ #4 - 28. Мая 2007 :: 12:41
Печать  
Не было времени попробовать.
Сейчас пробую на простом примере- не пашет. Почему ?
|SELECT
|  CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок,
|Жур.IDDoc as [Док $Документ],
|  Жур.IDDocDef as Док_вид
|INTO
|  #TempTab
|FROM    
|  _1SJourn as Жур (nolock)
|INNER JOIN
|  $Документ.ЗаявлениеНаВозврат as зу ON зу.IDDoc=Жур.IDDoc and $зу.Договор=:выбДог
|INNER JOIN
|   $Справочник.ДоговораСтрахования as дог ON дог.ID=$зу.Договор
|WHERE
|  Жур.Date_Time_IDDoc BETWEEN :Д1 AND :Д2~ AND
|  Жур.IDDocDef = $ВидДокумента.ЗаявлениеНаВозврат

Таблица #TempTab не создается. Но и ошибок не выдает  Печаль
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #5 - 28. Мая 2007 :: 12:48
Печать  
Это временная таблица. Она хранится в течении одного сеанса.
Попробуй после своего запроса сделать:
"select * from #TempTab".
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: AccountsRecordset
Ответ #6 - 28. Мая 2007 :: 12:50
Печать  
Да я понимаю.
При попытке взять из нее данные выдает вот это:

State 42S01, native 2714, message [Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named '#TempTab' in the database.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #7 - 28. Мая 2007 :: 13:03
Печать  
bidler писал(а) 28. Мая 2007 :: 12:50:
Да я понимаю.
При попытке взять из нее данные выдает вот это:

State 42S01, native 2714, message [Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named '#TempTab' in the database.

Только что попробывал у себя - всё нормально работает. А ты как пытаешься взять из неё данные?
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: AccountsRecordset
Ответ #8 - 28. Мая 2007 :: 13:21
Печать  
ВыполнитьИнструкцию - не работает,
Выполнить - работает.

Это принципиально ?
  
Наверх
 
IP записан
 
yuraer
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #9 - 13. Июня 2007 :: 11:25
Печать  
Где скачать класс AccountsRecordSet?
Спасибо.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #10 - 13. Июня 2007 :: 12:14
Печать  
« Последняя редакция: 14. Июня 2007 :: 10:39 - berezdetsky »  

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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #11 - 26. Июня 2007 :: 08:50
Печать  
Выложите плиз работающую обработку (может есть у кого ОСВ Улыбка),
а то ничего не получается.

Пробую пример из описания в случае с V1 возвращается пустая таблица,
а  с V2 -ошибка.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #12 - 26. Июня 2007 :: 08:54
Печать  
В описании нет примера ОСВ.  Озадачен

Выложи свою обработку с ошибкой.
  

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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #13 - 26. Июня 2007 :: 09:17
Печать  
выкладываю
код запроса скопировал из описания
  

AccountTest.zip ( 7 KB | Загрузки )
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #14 - 26. Июня 2007 :: 09:43
Печать  
Обработка рабочая. У тебя может не работать по причинам:
  • ВыбДата > КонецРассчитанногоПериодаБИ() (пустой результат)
  • У ВыбГруппаСчетов нет видов субконто МестаХранения и ТМЦ (пустой результат)
  • В конфигурации не определены виды субконто МестаХранения и ТМЦ (ошибка)
  • Остатков действительно нет (пустой результат)

Собственно ошибкой AccountsRecordset можно считать только п.1. Могу изменить по желанию: либо расчет в этом случае - по КонецРассчитанногоПериодаБИ(), либо вывод сообщения об ошибке.
  

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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #15 - 26. Июня 2007 :: 09:55
Печать  
#  ВыбДата < КонецРассчитанногоПериодаБИ()  проверил
# У ВыбГруппаСчетов есть виды субконто МестаХранения и ТМЦ
# В конфигурации определены виды субконто МестаХранения и ТМЦ
# Остатки есть

Хорошо-бы вывод сообщений об ошибке.
Кстати, рассчитывается началбное сальдо или конечное?

Спасибо.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #16 - 26. Июня 2007 :: 10:13
Печать  
yuraer писал(а) 26. Июня 2007 :: 09:55:
#  ВыбДата < КонецРассчитанногоПериодаБИ()  проверил
# У ВыбГруппаСчетов есть виды субконто МестаХранения и ТМЦ
# В конфигурации определены виды субконто МестаХранения и ТМЦ
# Остатки есть

Проверь ещё, используется ли текущая версия класса (в репозитарии - от 19.06).
Если да, покажи сообщение об ошибке и, по возможности, результат .Отладка(1).

yuraer писал(а) 26. Июня 2007 :: 09:55:
Хорошо-бы вывод сообщений об ошибке.

ok, на днях сделаю.

yuraer писал(а) 26. Июня 2007 :: 09:55:
Кстати, рассчитывается началбное сальдо или конечное?

:ВыбДата - начальное. :ВыбДата~ - конечное.

  

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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #17 - 26. Июня 2007 :: 10:44
Печать  
Наверно что-то где-то прогавил,
вариант с V2 заработал!!
Правда отобрал только по одному субконто...
  
Наверх
 
IP записан
 
yuraer
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #18 - 26. Июня 2007 :: 10:47
Печать  
нет вообще не отобрал ни по первому , ни по второму
всё развернул...
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #19 - 26. Июня 2007 :: 11:22
Печать  
Это нормально.  Подмигивание
Секция <Условие> в твоей обработке - пустая. Напиши там, к примеру,
Код
Выбрать все
		|FROM $БИОстатки.Основной(:ВыбДата,,
		|		(Счет = :ВыбГруппаСчетов),
		|		(МестаХранения, ТМЦ)
//		|	 ,(РазделительУчета = :ВыбФирма)
		|	 ,(Субконто1 = :Субконто1)
		|) AS ОсновнойОстатки 


и будет тебе отбор по месту хранения.
  

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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #20 - 26. Июня 2007 :: 11:27
Печать  
работает только с двумя субконто?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #21 - 26. Июня 2007 :: 12:15
Печать  
Работает с теми субконто, которые указаны в секции <Субконто>.  Круглые глаза В количестве не больше МаксимальноеКоличествоСубконто().
  

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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #22 - 26. Июня 2007 :: 12:21
Печать  
С одним субконто всё ОК,  а вот так не хочет: Плачущий

|FROM $БИОстатки.Основной(:ВыбДата,,
           |            (Счет = :ВыбГруппаСчетов),
           |            (МестаХранения, ТМЦ)
//            |       ,(РазделительУчета = :ВыбФирма)
           |       ,(Субконто1 = :Субконто1)
           |       ,(Субконто2 = :Субконто2)
           |) AS ОсновнойОстатки
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #23 - 26. Июня 2007 :: 12:24
Печать  
Код
Выбрать все
|FROM $БИОстатки.Основной(:ВыбДата,,
|	 (Счет = :ВыбГруппаСчетов),
|	 (МестаХранения, ТМЦ)
|	 ,(Субконто1 = :Субконто1)
|	 AND (Субконто2 = :Субконто2)
|) AS ОсновнойОстатки  

  

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


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #24 - 26. Июня 2007 :: 13:03
Печать  
Всё ок.
Спасибо!
  
Наверх
 
IP записан
 
yuraer
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Июня 2007
Re: AccountsRecordset
Ответ #25 - 26. Июня 2007 :: 14:31
Печать  
а для чего указывать группу (ВыбГруппаСчетов) ?

а в оборотах
в  СчетДт  и в ВыбСчет1 будет одно и тоже?
че-то не понял что куказывать в  ВыбСчет1 и в ВыбСчет2
объясните пожалуйста.
Спасибо.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset
Ответ #26 - 26. Июня 2007 :: 15:07
Печать  
yuraer писал(а) 26. Июня 2007 :: 14:31:
а для чего указывать группу (ВыбГруппаСчетов) ?

Чтобы получить итоги только по ВыбГруппаСчетов.

yuraer писал(а) 26. Июня 2007 :: 14:31:
а в оборотах
в  СчетДт  и в ВыбСчет1 будет одно и тоже?
че-то не понял что куказывать в  ВыбСчет1 и в ВыбСчет2
объясните пожалуйста.

Есль речь о примере из описания, то там отбираются обороты, в которых СчетДт = ВыбСчет1 или СчетДт = ВыбСчет2. Указывать там нужно счета у которых есть субконто МестаХранения и ТМЦ, т.к. эти виды субконто заданы в соответствующей секции. Соответственно, в СчетДт и в ВыбСчет1 может быть одно и то же. А может и не быть. Класс

Рекомендую прочитать какую ни будь книжку по T-SQL и освежить в памяти http://www.1cpp.ru/docum/html/ODBC.html
  

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