Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 ... 51 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" - обсуждения. Часть № 2. (число прочтений - 245618 )
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #180 - 20. Июня 2011 :: 13:30
Печать  
читаем начиная где-то отсюда

orefkov писал(а) 24. Июня 2008 :: 12:26:
А если
Код
Выбрать все
select ЧисловоеПоле [ЧисловоеПоле :Число.10.3]
 


как выдает?
Вообще в double'ах неточность бывает в 16ом-17ом знаках, что на вычислениях практически не сказывается, но влияет на сравнения.
То бишь если все математические операции производить без округления, а округлять только результат (посредством типизации колонки), особых проблем быть не должно.
просто
Код
Выбрать все
select ЧисловоеПоле [ЧисловоеПоле :Число.10.3]
 


и
Код
Выбрать все
select round(ЧисловоеПоле, 3)
 


совершенно разные вещи.
В первом случае SQLite возвращает double, которое присваивается значению 1С, и оно округляется уже самой 1Сой (с заданной точностью).
А во втором варианте число округляет SQLite, получает в результате снова double (которое может быть снова неточным), этот double моя ВК получает от SQLite и присваивает значению 1С как есть, без округления.

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



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #181 - 20. Июня 2011 :: 13:38
Печать  
sashas09 писал(а) 20. Июня 2011 :: 13:30:
читаем начиная где-то отсюда

orefkov писал(а) 24. Июня 2008 :: 12:26:
А если
Код
Выбрать все
select ЧисловоеПоле [ЧисловоеПоле :Число.10.3]
 


как выдает?
Вообще в double'ах неточность бывает в 16ом-17ом знаках, что на вычислениях практически не сказывается, но влияет на сравнения.
То бишь если все математические операции производить без округления, а округлять только результат (посредством типизации колонки), особых проблем быть не должно.
просто
Код
Выбрать все
select ЧисловоеПоле [ЧисловоеПоле :Число.10.3]
 


и
Код
Выбрать все
select round(ЧисловоеПоле, 3)
 


совершенно разные вещи.
В первом случае SQLite возвращает double, которое присваивается значению 1С, и оно округляется уже самой 1Сой (с заданной точностью).
А во втором варианте число округляет SQLite, получает в результате снова double (которое может быть снова неточным), этот double моя ВК получает от SQLite и присваивает значению 1С как есть, без округления.



Спасибо огромное. Вариант:
Код
Выбрать все
select ЧисловоеПоле [ЧисловоеПоле :Число.10.3] 


очень помог!  Очень довольный

А вариант ROUND(Колонка,ЗнаковПослеТочки) катит, если второй параметр равен 0, иначе никак не хочет округлять!
  
Наверх
 
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #182 - 20. Июня 2011 :: 20:45
Печать  
vandalsvq писал(а) 19. Мая 2011 :: 16:38:
В связи с тем что я наврядли уже допиши когда либо этот труд, как и мой тов. leshik  Подмигивание решил выложить его в том виде что счас...
И так "Использование языка запросов класса ПрямойЗапрос"


Огромный респектище за труд и за класс. Мне как новичку очень полезная инфа Улыбка)
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #183 - 27. Июня 2011 :: 21:39
Печать  
Доброго времени суток, уважаемые коллеги!
Я продолжаю изучать этот замечательный класс и снова столкнулся с проблемой, которую не могу решить, судя по всему, без посторонней помощи.
Необходимо получить все значения периодического реквизита, но запрос упорно выдает только последнее значение, не смотря на то что стоит флаг развертывания периодов. (хотя и появляются доп. реквизиты типа "Дата", "Документ" и т.д.)

Код
Выбрать все
|ВЫБРАТЬ
|,     Цены.Дата КАК [Дата $Дата]
|,     Цены.Документ КАК [Документ $Документ]
|,     Цены.Цена КАК Цена
|ИЗ
|     $СрезПоследних.Цены(:ДатаДок~,,(($спроЦены.PARENTEXT В (ВЫБРАТЬ val ИЗ #сзНоменклатура)) И ($спрЦены.ТипЦен = :Закупочная) И (спрЦены.ПометкаУдаления=0)), ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Цены КАК спрЦены $nolock ПО $спрЦены.ТекущийЭлемент = ТекущийЭлемент, 1) КАК Цены
|
 

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



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #184 - 28. Июня 2011 :: 05:12
Печать  
ziflex писал(а) 27. Июня 2011 :: 21:39:
Доброго времени суток, уважаемые коллеги!
Я продолжаю изучать этот замечательный класс и снова столкнулся с проблемой, которую не могу решить, судя по всему, без посторонней помощи.
Необходимо получить все значения периодического реквизита, но запрос упорно выдает только последнее значение, не смотря на то что стоит флаг развертывания периодов. (хотя и появляются доп. реквизиты типа "Дата", "Документ" и т.д.)

Код
Выбрать все
|ВЫБРАТЬ
|,     Цены.Дата КАК [Дата $Дата]
|,     Цены.Документ КАК [Документ $Документ]
|,     Цены.Цена КАК Цена
|ИЗ
|     $СрезПоследних.Цены(:ДатаДок~,,(($спроЦены.PARENTEXT В (ВЫБРАТЬ val ИЗ #сзНоменклатура)) И ($спрЦены.ТипЦен = :Закупочная) И (спрЦены.ПометкаУдаления=0)), ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Цены КАК спрЦены $nolock ПО $спрЦены.ТекущийЭлемент = ТекущийЭлемент, 1) КАК Цены
|
 


Так это же СрезПоследних! Последнее значение на указанную дату!
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #185 - 28. Июня 2011 :: 10:49
Печать  
Возможно я не совсем правильно понял описание этой виртуальной таблицы... но. Как тогда понимать этот параметр?

Цитата:
Параметры:
•      Дата – параметр со значением даты или документа, на которую необходимо получить срез последних значений реквизитов. При установке параметра для типа «Дата» учитывается наличие модификатора.
•      Реквизиты – Тип: Строка. Идентификаторы реквизитов перечисленных через запятую заключенные в круглые скобки.
•      ДополнительныеУсловия – Тип: Строка. Дополнительное условие, которое добавляется к тексту запроса через И. Дополнительное условие необходимо заключить в круглые скобки. Доступные поля: ТекущийЭлемент – Строка(9).
•      Соединения – Тип: Строка. Текст запроса соединения таблиц с источником данных для виртуальной таблицы. Доступные поля: ТекущийЭлемент – Строка(9).
•      РазворачиватьПериоды – Тип: Число. При установке значения = 1 таблица будет дополнена колонками Дата, Время и Документ для получения даты, времени и документа установки значения. При этом на каждую строку элемента справочника создается столько строк, сколько установленных значений есть на периодические элементы.


P.s. если брать все значения периодического реквизита не из ВТ СрезПослдених, тогда откуда?
  
Наверх
 
IP записан
 
ReLock
Full Member
***
Отсутствует



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #186 - 28. Июня 2011 :: 11:06
Печать  
Может быть здесь речь идет о нескольких изменениях периодического реквизита на указанную дату?! Может быть он их как раз и показывает в несколько строк?! Т.е., например, цена за день поменялась несколько раз...

Хотя, конечно, тоже странно. СрезПоследних = последнее значение на указанную дату...
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #187 - 29. Июня 2011 :: 09:45
Печать  
В общем никто не знает?  Плачущий
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #188 - 29. Июня 2011 :: 09:56
Печать  
ziflex писал(а) 28. Июня 2011 :: 10:49:
P.s. если брать все значения периодического реквизита не из ВТ СрезПослдених, тогда откуда?


руками написать запрос к 1sconst
  
Наверх
 
IP записан
 
ReLock
Full Member
***
Отсутствует



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #189 - 29. Июня 2011 :: 10:07
Печать  
Eprst писал(а) 29. Июня 2011 :: 09:56:
ziflex писал(а) 28. Июня 2011 :: 10:49:
P.s. если брать все значения периодического реквизита не из ВТ СрезПослдених, тогда откуда?


руками написать запрос к 1sconst

Точно!
ObjID - элемент справочника "Цены"
Value - нужные тебе значения
(поправьте, если не прав!)
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #190 - 29. Июня 2011 :: 10:19
Печать  
ziflex, на текущий момент парсинг 1sconst не реализован. Свои сотрудники все просят, а у меня руки не доходят. Могу в выходные добавить, там в принципе не сложно, просто документацию править надо будет блин, а это самое нудное Улыбка))

Что касается среза последних, он всегда показывает последние значения. Разворот по периодам означает что в результирующей таблице будут данные о периодах значений (и как следствие количество строк = количество реквизитов). Т.е. без разворота по периодам = свернутая таблица по периодам Улыбка)) ну как то так, я выше в этой теме объяснял как это работает.
  

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


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #191 - 29. Июня 2011 :: 21:15
Печать  
vandalsvq, спасибо за разъяснение Улыбка значит буду ручками делать.

p.s. но новый релиз все равно нужен Улыбка)
  
Наверх
 
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Условие на ресурс
Ответ #192 - 04. Июля 2011 :: 07:40
Печать  
Возник вопрос можно ли в РегистрОстатки накладывать условие на ресурс. Задача: выбрать остатки указанный ресурс по которым больше 0 на момент проведения документа (т.е. по документ), чтобы потом не лопатить всю таблицу).
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Условие на ресурс
Ответ #193 - 04. Июля 2011 :: 08:11
Печать  
Dmiter писал(а) 04. Июля 2011 :: 07:40:
Возник вопрос можно ли в РегистрОстатки накладывать условие на ресурс. Задача: выбрать остатки указанный ресурс по которым больше 0 на момент проведения документа (т.е. по документ), чтобы потом не лопатить всю таблицу).


having воткни на результат ..
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #194 - 07. Июля 2011 :: 22:19
Печать  
ну как там с новым релизом дела обстоят?)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 ... 51
ОтправитьПечать