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


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #495 - 30. Января 2013 :: 13:23
Печать  
Помогите побороть запрос к БИОстатки

В результате выдает пустую итз Печаль

Код
Выбрать все
оПЗ = СоздатьОбъект("ПрямойЗапрос");

	сТЗ =	"ВЫБРАТЬ
			|	БИОст228.*
			|ИЗ
			|	$БИОстатки.Основной(:КонДата
			|	,	#Сч228
			|	,	(Субконто1,Субконто4)
			|	,	(Сумма)
			|	,	(Субконто1 В (ВЫБРАТЬ val ИЗ #ЗнСубконтоКонтр))
			|	,	) КАК БИОст228";

	оПЗ.Текст = сТЗ;

	оПЗ.УстановитьТекстовыйПараметр("КонДата",ТекущаяДата());
	спЗнСубконтоКонтр = СоздатьОбъект("СписокЗначений");
	//итз.Выгрузить(спЗнСубконтоКонтр,, "Элемент", 0);
	итз.ВыбратьСтроки();
	Пока итз.ПолучитьСтроку() = 1 Цикл
		спЗнСубконтоКонтр.ДобавитьЗначение(итз.Элемент);
	КонецЦикла;

	зн = "";
	спЗнСубконтоКонтр.ВыбратьЗначение(зн);
	оПЗ.УложитьСписокЗначений(спЗнСубконтоКонтр, "#ЗнСубконтоКонтр", );

	спСч228 = СоздатьОбъект("СписокЗначений");
	спСч228.ДобавитьЗначение(СчетПоКоду("228.1"));

	оПЗ.УложитьСписокЗначений(спСч228, "#Сч228", "Основной");
	оПЗ.РежимОтладки = 1;

	итзОст = оПЗ.Выполнить();
	итзОст.Показать();
 



Сам счет активный, валютный, количествоСубконто() = 4.
проверял по оборотке по контрагентам, которые попадают в запрос остатки есть в разрезе Контрагент, Билет (Субконто1, Субконто4)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #496 - 30. Января 2013 :: 14:18
Печать  
убери фильтр по клиентосам, для начала

И с чего увереннось, что во второй параметр ВТ надо передатть временную табличку со  списком счетов ?
Там точно так оно и надо ?

Или всё же так:
Счет = :ВыбГруппаСчетов
или так
Счет in (select val from #ВрТабличкаСчетов)
  
Наверх
 
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #497 - 30. Января 2013 :: 14:23
Печать  
Eprst писал(а) 30. Января 2013 :: 14:18:
убери фильтр по клиентосам, для начала

И с чего увереннось, что во второй параметр ВТ надо передатть временную табличку со  списком счетов ?
Там точно так оно и надо ?


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

из документации Цитата:
$БИОстатки.<ИмяПланаСчетов>(КонецПериода, Счет, Субконто, Ресурсы, Условие, Соединения)


а в примере:
Код
Выбрать все
ВЫБРАТЬ ОстаткиОсновной.*
ИЗ $БИОстатки.Основной(:КонПериода
,#Счета60
,(Контрагент,Договор)
,(Сумма)
,(РазделительУчета = :НашаФирма)) КАК ОстаткиОсновной

 



Вопрос: есть ли у параметров $БИОстатки фильтр по субконто?

Версия ПЗ = 1.8.5
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #498 - 31. Января 2013 :: 03:48
Печать  
Если тип значения субконто1 - Справочник.Контрагенты
То попробуй так

Код
Выбрать все
(СРЕД(Субконто1, 1, 9) В (ВЫБРАТЬ val ИЗ #ЗнСубконтоКонтр) 

  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #499 - 31. Января 2013 :: 08:34
Печать  
vandalsvq писал(а) 31. Января 2013 :: 03:48:
Если тип значения субконто1 - Справочник.Контрагенты
То попробуй так

Код
Выбрать все
(СРЕД(Субконто1, 1, 9) В (ВЫБРАТЬ val ИЗ #ЗнСубконтоКонтр) 



УРА Очень довольный Очень довольный Очень довольный
Все получилось
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #500 - 08. Февраля 2013 :: 10:29
Печать  
Подскажите, а как получить нулевые остатки? Например из РегистрОстатки.
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #501 - 08. Февраля 2013 :: 10:35
Печать  
Asakra писал(а) 08. Февраля 2013 :: 10:29:
нулевые остатки? Например из РегистрОстатки.

Это как? ))) Или имеется ввиду Ресурс1=0 при Ресурс2...N<>0 ?
Код
Выбрать все
ВЫБРАТЬ * ИЗ РегистрИтоги.РегистрОстатки КАК РегОстатки $nolock
ГДЕ $РегОстатки.Ресурс1=0 

  
Наверх
ICQ  
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #502 - 08. Февраля 2013 :: 10:41
Печать  
Dolly_EV писал(а) 08. Февраля 2013 :: 10:35:
Asakra писал(а) 08. Февраля 2013 :: 10:29:
нулевые остатки? Например из РегистрОстатки.

Это как? ))) Или имеется ввиду Ресурс1=0 при Ресурс2...N<>0 ?
Код
Выбрать все
ВЫБРАТЬ * ИЗ РегистрИтоги.РегистрОстатки КАК РегОстатки $nolock
ГДЕ $РегОстатки.Ресурс1=0 



да. когда ресурс = 0
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #503 - 08. Февраля 2013 :: 10:43
Печать  
Asakra писал(а) 08. Февраля 2013 :: 10:29:
из РегистрОстатки.


имелось ввиду из ВТ РегистрОстатки
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #504 - 09. Февраля 2013 :: 06:19
Печать  
Asakra писал(а) 08. Февраля 2013 :: 10:43:
имелось ввиду из ВТ РегистрОстатки


Код
Выбрать все
ТекстЗапроса="
|ВЫБРАТЬ
|	РегОст.Измерение1
|	,РегОст.Измерение2
|	,....
|	,РегОст.Ресурс2
|ИЗ
|	$РегистрОстатки.<ИмяРегистра>(:КонПериода,
|							(Ресурс1=0),
|							(Измерение1,Измерение2...),
|							(Ресурс1,Ресурс2),
|							) КАК РегОст";
ПрямойЗапрос.УстановитьТекстовыйПараметр(":КонПериода",КонДата);
 

  
Наверх
ICQ  
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #505 - 09. Февраля 2013 :: 07:06
Печать  
Dolly_EV писал(а) 09. Февраля 2013 :: 06:19:
Asakra писал(а) 08. Февраля 2013 :: 10:43:
имелось ввиду из ВТ РегистрОстатки


Код
Выбрать все
ТекстЗапроса="
|ВЫБРАТЬ
|	РегОст.Измерение1
|	,РегОст.Измерение2
|	,....
|	,РегОст.Ресурс2
|ИЗ
|	$РегистрОстатки.<ИмяРегистра>(:КонПериода,
|							(Ресурс1=0),
|							(Измерение1,Измерение2...),
|							(Ресурс1,Ресурс2),
|							) КАК РегОст";
ПрямойЗапрос.УстановитьТекстовыйПараметр(":КонПериода",КонДата);
 



в том то и дело, что так не прокатывает. я как понимаю в ВТ стоит HAVING (SUM(Ресурс1) <> 0)... мож есть параметр, который дает это обойти. в документации ничего про это не написано. сделал через union, хотя наверно так и правильней, ведь не всегда же есть движения в регистре (например, по всей номенклатуре, по какой-нить жешь и нет вовсе движений), ну а с другой стороны смотря какая задача стоит, может нужно вывести те записи, что ушли в ноль, а те что в регистр не попадали и не нужны, в таком случае даже не знаю как извратиться Улыбка
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #506 - 09. Февраля 2013 :: 07:44
Печать  
Asakra писал(а) 09. Февраля 2013 :: 07:06:
в том то и дело, что так не прокатывает. я как понимаю в ВТ стоит HAVING (SUM(Ресурс1) <> 0)... мож есть параметр, который дает это обойти. в документации ничего про это не написано. сделал через union, хотя наверно так и правильней, ведь не всегда же есть движения в регистре (например, по всей номенклатуре, по какой-нить жешь и нет вовсе движений), ну а с другой стороны смотря какая задача стоит, может нужно вывести те записи, что ушли в ноль, а те что в регистр не попадали и не нужны, в таком случае даже не знаю как извратиться Улыбка

Специально проверил, вот запрос:
Код
Выбрать все
	ТекстЗапроса = "
	|ВЫБРАТЬ
	|	РегПарт.Товар КАК [Товар $Справочник.Номенклатура]
	|	,РегПарт.КоличествоОстаток КАК ОстКол
	|	,РегПарт.СуммаОстаток КАК [ОстСумма $Число.19.5]
	|	,РегПарт.НДСОстаток КАК [ОстНДС $Число.19.5]
	|ИЗ
	|	$РегистрОстатки.ПартииТоваров(:лДатаОст~,
	|								(1=1 И 2=2 И 3=3 И 4=4),
	|								(Товар,Склад),
	|								(Количество,Сумма,НДС)) КАК РегПарт
	|ГДЕ РегПарт.КоличествоОстаток=0";

	ПЗ.УстановитьТекстовыйПараметр("лДатаОст", ДатаКонца);

	тзОст = ПЗ.Выполнить(,ТекстЗапроса);
 


, который на рабочей базе выдал 1500 строк с "повисшими" сумма по регистру "ПартииТоваров", где Количество=0, так что все работает
  
Наверх
ICQ  
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #507 - 09. Февраля 2013 :: 07:58
Печать  
Dolly_EV писал(а) 09. Февраля 2013 :: 07:44:
[quote author=Asakra link=1285352210/495#505 date=1360393575]
, который на рабочей базе выдал 1500 строк с "повисшими" сумма по регистру "ПартииТоваров", где Количество=0, так что все работает

а остаток по сумме и ндс тоже = 0?
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #508 - 09. Февраля 2013 :: 08:01
Печать  
я думаю, что в ВТ стоит HAVING (SUM(Количество) <> 0) И HAVING (SUM(Сумма) <> 0) И HAVING (SUM(НДС) <> 0)
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #509 - 09. Февраля 2013 :: 08:02
Печать  
тобишь по всем ресурсам
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 32 33 [34] 35 36 ... 51
ОтправитьПечать