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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #450 - 24. Октября 2012 :: 12:47
Печать  
+
ВЫБОР КОГДА($СправАлк.Производитель<>:ПустойИД) ТОГДА $СправАлк.Производитель ИНАЧЕ $СправАлк.Импортер КОНЕЦ

вот это идеологически не верно:

нужно наеборот проверять, если нет импортёра - то пихаем производителя.

Ибо на импортный товар есть И производитель И импортер.
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #451 - 24. Октября 2012 :: 12:52
Печать  
dontcrypls писал(а) 24. Октября 2012 :: 12:11:
[code]
1.Не попадают остальные строки(хотя я формировал осв по счету 41.1 для элементов и она не пустая)
2. Остается пустое поле оборотов(для элемента по которому запрос сработал), хотя обороты в данном периоде были.
Скажите, пожалуйста, что не так Улыбка

1. :КонДата~ // может все обороты нужные как раз в последней дате?
2. Запрос.УложитьСписокЗначений(спАвто, "#спАвто","Автомобиль") // в фильтре групп нет?, если есть - то без типизации - группы не разворачиваются

правда с БухИтогами пока не занимался в отношении данного класса
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #452 - 24. Октября 2012 :: 12:55
Печать  
Eprst писал(а) 24. Октября 2012 :: 12:47:
+
ВЫБОР КОГДА($СправАлк.Производитель<>:ПустойИД) ТОГДА $СправАлк.Производитель ИНАЧЕ $СправАлк.Импортер КОНЕЦ

вот это идеологически не верно:

нужно наеборот проверять, если нет импортёра - то пихаем производителя.

Ибо на импортный товар есть И производитель И импортер.


Согласен)) но на текущий момент ФСРАРу по-барабану, кто есть ПроизводительИмпортер - тот или другой)))... Ну а практически: в АлкНоменклатуре уже были реквизиты Производитель и Импортер... сделал только проверку на НЕ выбирать обоих одновременно для пользователей... отсюда и вилка. Т.е. логика у меня сейчас такая: если есть Производитель - начит это наше, родное, если есть Импортер - то это из-за границы и Производитель нам не интересен, т.к. импортированием НЕ занимаемся, и вообще - главное чтоб был НЕ пустой и с ИНН и КПП ))))))
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #453 - 24. Октября 2012 :: 13:00
Печать  
Eprst писал(а) 24. Октября 2012 :: 12:46:
У меня много таких конф от кт-ников есть.
Просто если у тебя в этом справочнике только одно значение с товаром, то выкини гроупбай из подзапроса насовсем.


Однозначное: Товар / Производитель ИЛИ Импортер / Емкость. ВидПродукции - много, так что ГроупБай надо, + если использую МАКСИМУМ (из-за вилки ПроивзИЛИИмпортер) без ГроупБай - СКЛь ругается... короче кругом засада и выход один - только переделать регистр и справочник))) но сейчас выкрутился
  
Наверх
ICQ  
IP записан
 
dontcrypls
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 24. Октября 2012
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #454 - 24. Октября 2012 :: 13:16
Печать  
Dolly_EV писал(а) 24. Октября 2012 :: 12:52:
1. :КонДата~ // может все обороты нужные как раз в последней дате?
2. Запрос.УложитьСписокЗначений(спАвто, "#спАвто","Автомобиль") // в фильтре групп нет?, если есть - то без типизации - группы не разворачиваются

правда с БухИтогами пока не занимался в отношении данного класса

Точно не в дате косяк. Я убирал условие по субконто вообще и всё работало. Т.е. получалась таблица, и там в столбце "Автомобиль" были элементы из спАвто. Что то тут с условием. В фильтре групп нет Улыбка
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #455 - 24. Октября 2012 :: 13:26
Печать  
Dolly_EV писал(а) 24. Октября 2012 :: 13:00:
Однозначное: Товар / Производитель ИЛИ Импортер / Емкость.

ВидПродукции - много, так что ГроупБай надо


Гы..
Если Для одного Товара у тебя в этом справочнике куча елементов с этим товаром но с разными ВидамиПродукции, то в своём запросе ты же имеешь полный ПЭ -
увеличиваешь строки из запроса на эти виды продукции.

Это же.. даже слов нет.


ЗЫ: грубо говоря, у тебя в регистре есть запись:

Вино Васюки приход 100 дал... а в твоём справочнике


460 Вино Васюки Импортер Вася
412 Вино Васюки ИмпортерФедя

то на выходе в запросе в результате левого соединения ты будешь иметь 2 строки (гроуп бай товар,видПродукции,максимум(произв/импорт):

460 Вино Васюки Импортер Вася приход 100 дал
412 Вино Васюки Импортер Вася п приход 100 дал

а не одну ...

Ну и дальше, нет слов
Нерешительный
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #456 - 24. Октября 2012 :: 13:32
Печать  
Eprst писал(а) 24. Октября 2012 :: 13:26:
Dolly_EV писал(а) 24. Октября 2012 :: 13:00:
Однозначное: Товар / Производитель ИЛИ Импортер / Емкость.

ВидПродукции - много, так что ГроупБай надо

Гы..
Если Для одного Товара у тебя в этом справочнике куча елементов с этим товаром но с разными ВидамиПродукции,


не, это я не правильно выразился. Для одного Товара - один АлкТовар, в котором один ВидПродукции, один Произв ИЛИ Импортер...вот в этом ИЛИ вся собака и порылась.....
Короче прихожу к выводу, что групбай здесь только из-за того, что МАКСИМУМ в СКЛь не канает БЕЗ ГрупБай ))))...
а в отчете треба наложить иногда фильтр на ПроизводительИмпортер.... как-то так
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #457 - 24. Октября 2012 :: 13:41
Печать  
Если он у тебя один, то ни гроупбай ни максимум там не нужен вовсе - выкини его из текста запроса.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #458 - 24. Октября 2012 :: 13:47
Печать  
Код
Выбрать все
СУММА(ВЫБОР КОГДА $РегАлк.ВидДвижения=0 ТОГДА $РегАлк.Количество*СпрАлк.Емкость/10 ИНАЧЕ 0 КОНЕЦ) 



вот это тоже не верно, не втыкай case где попало, достаточно так:

Код
Выбрать все
СУММА((1-$РегАлк.ВидДвижения)* $РегАлк.Количество*СпрАлк.Емкость/10) 

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #459 - 24. Октября 2012 :: 14:07
Печать  
Eprst писал(а) 24. Октября 2012 :: 13:47:
вот это тоже не верно, не втыкай case где попало, достаточно так:
Код
Выбрать все
СУММА((1-$РегАлк.ВидДвижения)* $РегАлк.Количество*СпрАлк.Емкость/10) 



ага, пасиб за посказку про (1-дебкред)!

И да, убрал групбай из подзапроса с СпрАлк - все ок, вобщем сам себя заморочил....

  
Наверх
ICQ  
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #460 - 01. Ноября 2012 :: 14:18
Печать  
Всем привет.

Имеется база dbf, на основе бухии.

Имеется запрос, для проверки общей суммы отгрузки по договору

Код
Выбрать все
	ВыбКонтрагент = Конт.Контрагент;
	ВыбДоговор = Конт.Договор;

	СуммаКонтроля = ВыбДоговор.СуммаДог;

	Если СуммаКонтроля = 0 Тогда
		Возврат 1;
	КонецЕсли;


	Рез = "";
	ТекстЗапроса = "

     |ВЫБРАТЬ
     |СУММА(БухИт.СуммаОборот) КАК СуммаОборот
     |ИЗ
     | $БИОбороты.Основной(     :НачПериода
     |				   ,:ГраницаКонтроля
     |				   ,Период
     |				   ,#СзСчетов62
     |				   ,БЕЗСУБКОНТО
     |				   ,
     |				   ,БЕЗСУБКОНТО
     |				   ,(Сумма)
     |				   ,(СубконтоДт1 = :ВыбКонтрагент) И (СубконтоДт2 = :ВыбДоговор)
     |				   ,
     |			   ) КАК БухИт
     |";

	трагент);
	р);
	онт.ДатаДок));
	нт.Выбран()=1,Конт.ТекущийДокумент(),Конт.ДатаДок));

	СзСчетов = СоздатьОбъект("СписокЗначений");
	СзСчетов.ДобавитьЗначение(СчетПоКоду("58.1"));
	СзСчетов.ДобавитьЗначение(СчетПоКоду("58.2"));
	СзСчетов.ДобавитьЗначение(СчетПоКоду("58.3"));
	СзСчетов.ДобавитьЗначение(СчетПоКоду("62.1"));
	СзСчетов.ДобавитьЗначение(СчетПоКоду("62.2"));
	СзСчетов.ДобавитьЗначение(СчетПоКоду("62.3"));
	СзСчетов.ДобавитьЗначение(СчетПоКоду("62.11"));

	глЗапросКонтрольСуммыДоговора.УложитьСписокЗначений(СзСчетов,"#СзСчетов62");
	глЗапросКонтрольСуммыДоговора.Текст = ТекстЗапроса;
	глЗапросКонтрольСуммыДоговора.РежимОтладки=1;
	ИтТз = глЗапросКонтрольСуммыДоговора.Выполнить("ИндексированнаяТаблица");

 



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

Флаг отбор стоит везде и в субконто и в проводках.
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #461 - 01. Ноября 2012 :: 14:18
Печать  
Вот разбор

Код
Выбрать все
SELECT
SUM(БухИт.СуммаОборот) AS СуммаОборот
FROM
 (
	SELECT
		Валюта
		,Счет
		,КорСчет
		,SUM(СуммаОборот) СуммаОборот
		,SUM(СуммаОборотДт) СуммаОборотДт
		,SUM(СуммаОборотКт) СуммаОборотКт


	FROM
		(SELECT
			Валюта
			,СчетДт Счет
			,СчетКт КорСчет
			,СуммаОборот СуммаОборот
			,СуммаОборот СуммаОборотДт
			,0 СуммаОборотКт


		FROM (
	SELECT
		Валюта
		,СчетДт
		,СчетКт


		,SUM(СуммаОборот) СуммаОборот

	FROM (SELECT
			entry_vt.CURRID Валюта
			,entry_vt.ACCDTID СчетДт
			,entry_vt.ACCKTID СчетКт


			,entry_vt.SUM СуммаОборот

		FROM __1S_ENTRY entry_vt
		WHERE (entry_vt.ACCDTID IN (SELECT val FROM vt_СзСчетов62))
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO >= '20120101     0     0   ')
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO < '201210308XSSGW  8TI7   ')
		AND (entry_vt.ACTIVE = ' ')
		AND ((entry_vt.DTSC0 = '   13V   ') AND (entry_vt.DTSC1 = '   5QZ   '))

		AND ((entry_vt.PROVKIND = ' ') OR (entry_vt.CORNO > 0))
		) entryturnover
	GROUP BY СчетДт

		,СчетКт

		,Валюта

	HAVING
		(SUM(СуммаОборот) <> 0)
) AS sq_vt_1

		UNION ALL

		SELECT
			Валюта
			,СчетКт
			,СчетДт
			,-СуммаОборот
			,0
			,СуммаОборот


		FROM (
	SELECT
		Валюта
		,СчетДт
		,СчетКт


		,SUM(СуммаОборот) СуммаОборот

	FROM (SELECT
			entry_vt.CURRID Валюта
			,entry_vt.ACCDTID СчетДт
			,entry_vt.ACCKTID СчетКт


			,entry_vt.SUM СуммаОборот

		FROM __1S_ENTRY entry_vt
		WHERE (entry_vt.ACCKTID IN (SELECT val FROM vt_СзСчетов62))
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO >= '20120101     0     0   ')
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO < '201210308XSSGW  8TI7   ')
		AND (entry_vt.ACTIVE = ' ')
		AND ((entry_vt.DTSC0 = '   13V   ') AND (entry_vt.DTSC1 = '   5QZ   '))

		AND ((entry_vt.PROVKIND = ' ') OR (entry_vt.CORNO > 0))
		) entryturnover
	GROUP BY СчетДт

		,СчетКт

		,Валюта

	HAVING
		(SUM(СуммаОборот) <> 0)
) AS sq_vt_2
		) AS accturnover
	GROUP BY
		Валюта
		,Счет
		,КорСчет


) AS БухИт
create table x(
 [DOCID] char(9) collate _1C
,[NUMBER] numeric(5, 0)
,[CORNO] numeric(5, 0)
,[DATE] char(8)
,[TIME] char(6) collate _1C
,[ACCDTID] char(9) collate _1C
,[ACCKTID] char(9) collate _1C
,[SUM] numeric(14, 2)
,[CURRID] char(9) collate _1C
,[CURSUM] numeric(14, 2)
,[AMOUNT] numeric(14, 3)
,[PROVKIND] char(1) collate _1C
,[ACTIVE] char(1) collate _1C
,[DTFLAGS] numeric(1, 0)
,[KTFLAGS] numeric(1, 0)
,[DOCLINENO] numeric(4, 0)
,[SP547] char(50) collate _1C
,[SP548] char(2) collate _1C
,[SP25345] char(25) collate _1C
,[VDTSC0] char(4) collate _1C
,[DTSC0] char(9) collate _1C
,[ODTSC0] numeric(1, 0)
,[VDTSC1] char(4) collate _1C
,[DTSC1] char(9) collate _1C
,[ODTSC1] numeric(1, 0)
,[VDTSC2] char(4) collate _1C
,[DTSC2] char(9) collate _1C
,[ODTSC2] numeric(1, 0)
,[VDTSC3] char(4) collate _1C
,[DTSC3] char(9) collate _1C
,[ODTSC3] numeric(1, 0)
,[VDTSC4] char(4) collate _1C
,[DTSC4] char(9) collate _1C
,[ODTSC4] numeric(1, 0)
,[VKTSC0] char(4) collate _1C
,[KTSC0] char(9) collate _1C
,[OKTSC0] numeric(1, 0)
,[VKTSC1] char(4) collate _1C
,[KTSC1] char(9) collate _1C
,[OKTSC1] numeric(1, 0)
,[VKTSC2] char(4) collate _1C
,[KTSC2] char(9) collate _1C
,[OKTSC2] numeric(1, 0)
,[VKTSC3] char(4) collate _1C
,[KTSC3] char(9) collate _1C
,[OKTSC3] numeric(1, 0)
,[VKTSC4] char(4) collate _1C
,[KTSC4] char(9) collate _1C
,[OKTSC4] numeric(1, 0)
, idx_DOCID_NUMBER_CORNO char(19) collate _1C
, idx_DATE_TIME_DOCID_NUMBER_CORNO char(33) collate _1C
, idx_SUM_DATE_TIME_DOCID_NUMBER_CORNO char(47) collate _1C
, idx_SP548_DATE_TIME_DOCID_NUMBER_CORNO char(35) collate _1C
)

 

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #462 - 02. Ноября 2012 :: 06:31
Печать  
Сравни с SQL, если там используется значит в DBF отключено поскольку не показало своей эффективности.
Можно ковырнуть немного и сделать для сравнения, а управление через флаг какой нибудь сделать. Но пока не хочу возиться, слишком много интересов стало у меня.
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #463 - 02. Ноября 2012 :: 06:42
Печать  
Где-то же было обсуждение, что табличка отбора по счетам не даст существенного ускорения.. поищи тут
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПрямойЗапрос" - обсуждения. Часть № 2.
Ответ #464 - 02. Ноября 2012 :: 08:34
Печать  
Понятно, печально..

Спс.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 29 30 [31] 32 33 ... 51
ОтправитьПечать