Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 ... 51 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" - обсуждения. Часть № 2. (число прочтений - 245620 )
BlueWind
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Местоположение: Тирасполь
Зарегистрирован: 28. Ноября 2010
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #90 - 14. Января 2011 :: 00:29
Печать  
Новость хорошая Улыбка Спасибо!.. Забрали, будем использовать.. Про завершение забудьте! Мы, поклонники класса, наверняка будем бесконечно чего-то от него желать и хотеть.. Облапаем вот только со всех сторон.. ))
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #91 - 14. Января 2011 :: 06:11
Печать  
vandalsvq писал(а) 13. Января 2011 :: 22:41:
Вышла новость и ни одного коммента Улыбка)) это верный признак что разработка подошла к логическому завершению.

Конец квартала, конец года - суета сует, потому и тишина пока Улыбка
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #92 - 18. Января 2011 :: 06:45
Печать  
Очень вкусная вещь, а нет ли уже консоли запросов (конструктор запросов) по этом классу?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Как то начинал делать ее... но увы не реализовал до конца. Проблема в том что не очень то видимо и хотелось. А счас после 8.х не хватает ее Улыбка. Можно использовать консоль от Ивана (aka berezdetsky), правда синтаксис отличается, так что ручками надо будет кое что поправить. Улыбка
  

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


1C++ rocks!

Сообщений: 2
Зарегистрирован: 30. Января 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #94 - 30. Января 2011 :: 19:36
Печать  
Только учусь писать прямые...

[quote]ТекстЗапроса = "ВЫБРАТЬ
|ОстаткиБН.ОстатокНУ,
|ОстаткиБН.ОстатокБУ,
|ОстаткиБН.Субконто1  КАК [Субконто1 $Субконто],
|ОстаткиБН.Субконто1_вид КАК Субконто1_вид,
|СрезРеквизитов.ТекущийЭлемент КАК [ТекущийЭлемент $Справочник.ОсновныеСредства]
|ИЗ
|(Выбрать
|Сумма(ВЫБОР КОГДА Остатки.Счет = :СчетНУ ТОГДА
|Остатки.СуммаОстатокДт
|ИНАЧЕ
|0
|КОНЕЦ) КАК ОстатокНУ,
|Сумма(ВЫБОР КОГДА Остатки.Счет <> :СчетНУ ТОГДА
|Остатки.СуммаОстатокДт
|ИНАЧЕ
|0
|КОНЕЦ) КАК ОстатокБУ,
|Остатки.Субконто1,
|Остатки.Субконто1_вид
|ИЗ
|$БИОстатки.Основной(:КонецПериода, #счета,(ОсновныеСредства),, , ) КАК Остатки
|СГРУППИРОВАТЬ Субконто1,субконто1_вид)КАК ОстаткиБН
|ЛЕВОЕ СОЕДИНЕНИЕ лезногоИспользованияН,
|ПервоначальнаяСтоимость,ПервоначальнаяСтоимостьН),,) КАК СрезРеквизитов
|ПО ОстаткиБН.Субконто1 = СрезРеквизитов.ТекущийЭлемент";[/quote]

Отдельно запросы выполняются, а соединение не работает.
Как я понимаю, проблема в том, что Субконто1 13значный, а ТекущийЭлемента 9значный. База DBF, ПРАВ/RIGHT вызывает ошибку. Как быть?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #95 - 30. Января 2011 :: 20:03
Печать  
Воспользуйся СРЕД(Строка,НачальныйСимвол,КоличествоСимволов).
  

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


1C++ rocks!

Сообщений: 2
Зарегистрирован: 30. Января 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #96 - 30. Января 2011 :: 20:08
Печать  
Ура! Спасибо за оперативность, и вообще за чудо-класс!
  
Наверх
 
IP записан
 
temrmal
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 13. Января 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #97 - 07. Февраля 2011 :: 10:49
Печать  
ПОМОГИТЕ!!! работал с 1с++ версии 2.5, скачал qrymaker, и получалось вроде неплохо. Тут острая необходимость остатков по дням даже если нет движений, скачал 1с++ версии 3, обработки "прямойзапрос.ert" и prm файл. Что делать сними и как работать с классом "Прямой запрос". Уже 3 дня бьюсь!
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #98 - 07. Февраля 2011 :: 11:13
Печать  
temrmal писал(а) 07. Февраля 2011 :: 10:49:
ПОМОГИТЕ!!! работал с 1с++ версии 2.5, скачал qrymaker, и получалось вроде неплохо. Тут острая необходимость остатков по дням даже если нет движений, скачал 1с++ версии 3, обработки "прямойзапрос.ert" и prm файл. Что делать сними и как работать с классом "Прямой запрос". Уже 3 дня бьюсь!

Для начала почитай основы:
http://www.script-coding.com/1cpp.html
http://www.script-coding.com/Direct_queries.html
  
Наверх
 
IP записан
 
temrmal
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 13. Января 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #99 - 14. Февраля 2011 :: 08:33
Печать  
Вроде разобрался.
Теперь сам запрос
     Запрос = СоздатьОбъект("ПрямойЗапрос");
     ТекстЗапроса = "
           |SELECT НачислениеПроцентовОстаткиОбороты.Договор [Договор $Справочник.Договоры]
           |      , NullIf(НачислениеПроцентовОстаткиОбороты.ДатаПлатежа, '17530101') ДатаПлатежа
           |      , Sum(НачислениеПроцентовОстаткиОбороты.СуммаПриход) СуммаСуммаПриход
           |FROM $РегистрОстаткиОбороты.НачислениеПроцентов(:НачДата,
           |            :КонДата,День,
           |            ДвиженияИГраницыПериода,
           |            (Договор IN (:ВыбДоговор)),
           |            (Договор, ДатаПлатежа),) AS НачислениеПроцентовОстаткиОбороты
           |GROUP BY НачислениеПроцентовОстаткиОбороты.Договор
           |      ,
НачислениеПроцентовОстаткиОбороты.Период
           |      ,
НачислениеПроцентовОстаткиОбороты.ДатаПлатежа
           |";
     
     Запрос.УстановитьТекстовыйПараметр("ВыбДоговор", ВыбДоговор);
   Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата);
   Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата);
     Запрос.РежимОтладки = 1;
   
   ТабЗапроса = Запрос.Выполнить(,ТекстЗапроса);
   
   ТабЗапроса.Показать();

Выдает ошибку
Ругается на "период" Invalid column name 'Период'


Может условие неправильно прописано?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #100 - 14. Февраля 2011 :: 09:39
Печать  
Очень смущает вот это условие
Код
Выбрать все
 (Договор IN (:ВыбДоговор)) 


Если "ВыбДоговор" - это группа, тогда необходимо уложить эту группу во временную таблицу и писать условие
Код
Выбрать все
Договор В (ВЫБРАТЬ val ИЗ #МассивДоговоров) 


Если же "ВыбДоговор" это элемент справочника то тогда условие должно иметь вид
Код
Выбрать все
Договор = :ВыбДоговор 


И проверь есть ли колонка "Период", потому как в какой то ВТ (БИ или регистры) колонка "НачалоПериода", а в другой "Период".
  

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


1C++ rocks!

Сообщений: 42
Зарегистрирован: 13. Января 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #101 - 14. Февраля 2011 :: 14:23
Печать  
Спасибо! Точно - НачалоПериода. А условие работает.
  
Наверх
 
IP записан
 
Андрей_Минск
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 05. Января 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #102 - 16. Февраля 2011 :: 14:08
Печать  
Привет, подскажите а по реквизиту условие должно отрабатывать?
Что то ругается
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'КодОперации'.

Код
Выбрать все
$РегистрОбороты.ПартииТоваров(:НачДата,:КонДата,День,
	|			(КодОперации = :КодОпер),
	|			(Товар),
	|			("+выбРесурс+")) AS ПартииТоваровОбороты
 


В простом запросе работает точно
Код
Выбрать все
$РегистрОбороты.ПартииТоваров(:НачДата,:КонДата,,,
				(КодОперации = :КодОпер),
				Товар,
				ОстатокТовара) AS ПартииТоваровОбороты 

  
Наверх
 
IP записан
 
Андрей_Минск
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 05. Января 2011
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #103 - 16. Февраля 2011 :: 18:12
Печать  
указал название поля из DDS тогда условие сработало...
SP3027 = :КодОпер
  
Наверх
 
IP записан
 
ssamm
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 24. Декабря 2009
Re: Класс "ПрямойЗапрос". Часть № 2.
Ответ #104 - 25. Февраля 2011 :: 14:00
Печать  
Обновил класс, и налетел на грабли, был запрос:
|SELECT
|      Рег.Склад КАК [Склад $Справочник.Склады],
|      Рег.Номенклатура КАК [Номенклатура   $Справочник.Номенклатура],
|      (Рег.КоличествоОстаток) КАК КонОст,
|  $ПоследнееЗначение.Цены.Цена(СпрЦ.ID, :КонПериода) КАК Цена
|FROM
|      $РегистрОстатки.ОстаткиТМЦ(
|                                          :КонПериода~,
|                                          (Фирма В (Выбрать val ИЗ #Фирмы)),
|                                          (Склад, Номенклатура),
|                                          (Количество)
|                                          ) КАК Рег
|ЛЕВОЕ СОЕДИНЕНИЕ
|  Справочник.Цены КАК СпрЦ ON ((СпрЦ.ParentExt=Рег.Номенклатура) AND
|  ($СпрЦ.ТипЦен = :ТипЦен) and ($СпрЦ.ПометкаУдаления=0))
|";

стал возвращать не Последнее значение цены на дату, а первое, пришлось добавить в :КонПериода -> "~"
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 ... 51
ОтправитьПечать