Переключение на Главную Страницу Страницы: 1 ... 14 15 [16] 17  ОтправитьПечать
Очень популярная тема (более 25 ответов) AccountsRecordset v3.17. Прямые запросы к БИ. (число прочтений - 130817 )
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #225 - 05. Июня 2014 :: 13:17
Печать  
Делаю не сложный запрос

Код
Выбрать все
	КлассБИ = СоздатьОбъект("AccountsRecordset");
	ТекстЗапроса = "
		|SELECT
		|	БИОстаткиОбороты.Счет [Счет $Счет.Основной],
		|	БИОстаткиОбороты.РазделительУчета [Филиал $Справочник.Филиалы],
		|	БИОстаткиОбороты.Субконто1 [Субконто1 $Субконто],
		|	БИОстаткиОбороты.Субконто1_вид,
		|	БИОстаткиОбороты.Субконто2 [Субконто2 $Субконто],
		|	БИОстаткиОбороты.Субконто2_вид,
		|	БИОстаткиОбороты.Субконто3 [Субконто3 $Субконто],
		|	БИОстаткиОбороты.Субконто3_вид,
		|	БИОстаткиОбороты.Субконто4 [Субконто4 $Субконто],
		|	БИОстаткиОбороты.Субконто4_вид,
		|	БИОстаткиОбороты.Валюта [Валюта $Справочник.Валюты],
		|
		|	БИОстаткиОбороты.СуммаНачальныйОстатокДт,
		|	БИОстаткиОбороты.СуммаНачальныйОстатокКт,
		|	БИОстаткиОбороты.ВалютнаяСуммаНачальныйОстатокДт,
		|	БИОстаткиОбороты.ВалютнаяСуммаНачальныйОстатокКт,
		|	БИОстаткиОбороты.КоличествоНачальныйОстатокДт,
		|	БИОстаткиОбороты.КоличествоНачальныйОстатокКт,
		|
		|	БИОстаткиОбороты.СуммаОборотДт,
		|	БИОстаткиОбороты.СуммаОборотКт,
		|	БИОстаткиОбороты.ВалютнаяСуммаОборотДт,
		|	БИОстаткиОбороты.ВалютнаяСуммаОборотКт,
		|	БИОстаткиОбороты.КоличествоОборотДт,
		|	БИОстаткиОбороты.КоличествоОборотКт,
		|
		|	БИОстаткиОбороты.СуммаКонечныйОстатокДт,
		|	БИОстаткиОбороты.СуммаКонечныйОстатокКт,
		|	БИОстаткиОбороты.ВалютнаяСуммаКонечныйОстатокДт,
		|	БИОстаткиОбороты.ВалютнаяСуммаКонечныйОстатокКт,
		|	БИОстаткиОбороты.КоличествоКонечныйОстатокДт,
		|	БИОстаткиОбороты.КоличествоКонечныйОстатокКт
		|
		|FROM $БИОстаткиОбороты.Основной(:_НачДата_, :_КонДата_~,,,, Счет = :_ВыбСчет_) as БИОстаткиОбороты
		|";
	КлассБИ.УстановитьТекстовыйПараметр("_НачДата_", Начало);
	КлассБИ.УстановитьТекстовыйПараметр("_КонДата_", Конец);
	КлассБИ.УстановитьТекстовыйПараметр("_ВыбСчет_", ВыбСчет);
	Попытка
		ТЗ = КлассБИ.ВыполнитьИнструкцию(ТекстЗапроса);
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;

 



На выходе по определенным счетам:
Класс из шапки v3
1С падает Печаль  или вот выдает ниже

AccountsRecordset::СформироватьОшибку(Строка Ошибка=Error! Cannot allocate memory block) : Error! Cannot allocate memory block
вм.СформироватьОшибку(Ошибка);
{classAccountsRecordsetV3@MD(57) }
  

222.PNG ( 5 KB | Загрузки )
222.PNG

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #226 - 06. Июня 2014 :: 04:32
Печать  
1. Почему то если выбираешь одно только субконто в селекте, количество строк выдает как при всех субконто развернуто. Может как то можно группировать не оборачивая самому?
2. Заметил, что только падает по одному субконто из 4, это 2 субконто, там обычные договора контрагентов, что не так не понятно.
3. Если профайлером перехватить запрос, то в SSMS он легко исполняется и возвращает 700т строк. Без 2 субконто тоже самое количество возвращает, но работает.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #227 - 06. Июня 2014 :: 09:16
Печать  
Ну понятно же пишет - недостаточно памяти. Видимо когда второе субконто добавляешь, размер одной строки в памяти увеличивается. На 700 тыс. строк умножим, вот и падение...
  
Наверх
ICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #228 - 06. Июня 2014 :: 18:18
Печать  
На счет памяти ты прав, но вот ничего оно не прибавляется, я писал, там сколько субконто не ставь, возвращает 700т строк Подмигивание тоесть не группирует только по выбранным в селекте, а по всем и просто не рисует колонки похоже.
Но в остальном понятно, правда Отладка(1) не пашет, пришлось класс править длинные строки делает, что 1с не понимает Улыбка говорит сильно длинные.
И задача была сохранить, пришлось партиями по (образно, но не более 65535) 60т строк сохранять в ексель, как и настаивали по своим там причинам. А в xlsx другая была проблема, админы драйвера не ставят, пока согласуешь помрешь Улыбка
Но из положения вышел Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #229 - 09. Июня 2014 :: 06:21
Печать  
pavlo писал(а) 06. Июня 2014 :: 04:32:
1. Почему то если выбираешь одно только субконто в селекте, количество строк выдает как при всех субконто развернуто. Может как то можно группировать не оборачивая самому?

Можно - используя параметр <Субконто>.
  

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #230 - 09. Июня 2014 :: 10:56
Печать  
я чего то не нашел, может плохо смотрел, а как указать что нужны только 1 и 3 субконто без фильтра?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #231 - 09. Июня 2014 :: 14:38
Печать  
FROM $БИОстаткиОбороты.Основной(,,,,,, (Субконто1, Субконто3),) AS БИОстаткиОбороты
  

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #232 - 10. Июня 2014 :: 06:46
Печать  
спс, огромное
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #233 - 23. Июня 2014 :: 10:45
Печать  
странно, выдает по некоторым позициям всё равно одинаковые строки
счет и субконто одинаковые, но строки 2шт, а в ОСВ конечно эти 2 строки сложив и получаешь нужную сумму.

Код
Выбрать все
		|SELECT
		|	БИДанные.Счет,
		|	БИДанные.Субконто1,
		|	БИДанные.Субконто1_вид,
		|	БИДанные.Субконто2,
		|	БИДанные.Субконто2_вид,
		|	БИДанные.Субконто3,
		|	БИДанные.Субконто3_вид,
		|
		|	БИДанные.СуммаНачальныйОстатокДт,
		|	БИДанные.СуммаНачальныйОстатокКт,
		|	БИДанные.КоличествоНачальныйОстатокДт,
		|	БИДанные.КоличествоНачальныйОстатокКт,
		|
		|	БИДанные.СуммаКонечныйОстатокДт,
		|	БИДанные.СуммаКонечныйОстатокКт,
		|	БИДанные.КоличествоКонечныйОстатокДт,
		|	БИДанные.КоличествоКонечныйОстатокКт,
		|
		|	БИДанные.СуммаОборотДт,
		|	БИДанные.СуммаОборотКт,
		|	БИДанные.КоличествоОборотДт,
		|	БИДанные.КоличествоОборотКт
		|
		|FROM $БИОстаткиОбороты.Основной(:НачДата, :КонДата~,,,, Счет = :ВыбСчет,(Субконто1,Субконто2,Субконто3)) as БИДанные
		|ORDER BY   БИДанные.Счет,
		|			БИДанные.Субконто1, БИДанные.Субконто1_вид

 

  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #234 - 24. Июня 2014 :: 08:33
Печать  
Там ещё валюты могут быть, разделитель учёта и т.п. Сделай select * и посмотри.
  

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #235 - 24. Июня 2014 :: 09:57
Печать  
Я знаю что они есть, но в селекте нет и в группировке нет, не сворачивает ли если не указывать?
ну валюта там пустая везде, хотя ее сворачивать то не нужно, а разделитель учета не нужен для данной задачи если честно нужно в общем видеть суммировано.
« Последняя редакция: 24. Июня 2014 :: 12:12 - pavlo »  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #236 - 02. Июля 2014 :: 07:52
Печать  
pavlo писал(а) 01. Июля 2014 :: 12:45:
А кто помнит как в УложитьСписокОбъектов вид плана счетов передать, чтобы по группе счетов уложить все счета?
УложитьСписокОбъектов(СчетПоКоду("60"), "#60", " ???? ")
УложитьСписокГрупп(СчетПоКоду("60"), "#60", " ???? ")

Идентификатор плана счетов в метаданных. Тот же, который ты пишешь при обращении к виртуальным таблицам. Он же Счет.Вид(). Улыбка

Правда, может сломаться, если у тебя есть справочник с таким же идентификатором.
  

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #237 - 02. Июля 2014 :: 07:54
Печать  
ага понял, сенкс
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
rom35
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 12. Ноября 2012
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #238 - 15. Апреля 2015 :: 12:17
Печать  
Подскажите плиз. никак не соображу...
Код
Выбрать все
|SELECT
		|	БИОстаткиОбороты.Счет [Счет $Счет.Основной],
		|	БИОстаткиОбороты.Субконто1 [Субконто1 $Субконто],
		|	БИОстаткиОбороты.Субконто1_вид,
		|	БИОстаткиОбороты.Субконто2 [Субконто2 $Субконто],
		|	БИОстаткиОбороты.Субконто2_вид,
		|	БИОстаткиОбороты.КоличествоНачальныйОстаток,
		|	БИОстаткиОбороты.КоличествоОборотДт,
		|	БИОстаткиОбороты.КоличествоОборотКт,
		|	БИОстаткиОбороты.КоличествоКонечныйОстаток
		|
		|FROM $БИОстаткиОбороты.Основной(:_НачДата_, :_КонДата_~,,,, Счет = :_ВыбСчет_,(Субконто1,Субконто2),(Субконто2 IN (SELECT Val FROM #СписТовара))) as БИОстаткиОбороты
		|"; 



ВыбТовары э то список значений в запрос передаю:
УложитьСписокОбъектов(ВыбТовары,"#СписТовара","Номенклатура");
но на выходе пустая таблица.
если условия нет т.е. без "Субконто2 IN (SELECT" то заполняется весь товар... а сие излишнее.

хотя отрабатывает практически идентично по времени, с условием и без. при запросе по 1 группе товара в разы быстрее работает штатные бухитоги....

еще никак не пойму в описании неясно про следующий параметр после условия счета "(Субконто1,Субконто2)", да еще интересно вообще влияет на скорость работы отборы по субконто или скорость такаяже как и по всем итогам?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v3.17. Прямые запросы к БИ.
Ответ #239 - 16. Апреля 2015 :: 06:05
Печать  
rom35 писал(а) 15. Апреля 2015 :: 12:17:
ВыбТовары э то список значений в запрос передаю:
УложитьСписокОбъектов(ВыбТовары,"#СписТовара","Номенклатура");
но на выходе пустая таблица.
если условия нет т.е. без "Субконто2 IN (SELECT" то заполняется весь товар... а сие излишнее.

Значит, у тебя там не номенклатура или не только номенклатура. Попробуй УложитьСписокОбъектов13 или
SELECT $ВидСправочника36.Номенклатура + Val FROM #СписТовара

rom35 писал(а) 15. Апреля 2015 :: 12:17:
хотя отрабатывает практически идентично по времени, с условием и без. при запросе по 1 группе товара в разы быстрее работает штатные бухитоги....

Верю. Улыбка БИОстаткиОбороты - самая тормозная из всех ВТ. Но не забывай, что штатные бухитоги часть расчётов делают во время обхода результата. Сравнивать надо не только время выполнения запроса.

rom35 писал(а) 15. Апреля 2015 :: 12:17:
еще никак не пойму в описании неясно про следующий параметр после условия счета "(Субконто1,Субконто2)", да еще интересно вообще влияет на скорость работы отборы по субконто или скорость такаяже как и по всем итогам?

Параметр подробно описан в разделе "ВТ Общая информация". Скорость с отбором должна быть выше, т.к. обрабатываться будет меньшее количество строк.
  

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