Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема помогите написать (число прочтений - 2702 )
A_Ivanov
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 17. Ноября 2010
помогите написать
17. Ноября 2010 :: 08:41
Печать  
я еще только учусь, но вот столкнулся с проблемой. ТиС
нада написать запрос такого типа:

ТекстЗапроса="
  |Период с Дата1 по Дата2;
  |Контрагент =Регистр.НакопленияПродаж.Контрагент;
  |Сумма =Регистр.НакопленияПродаж.Сумма;
  |Условие (Контрагент=ВыбКонтрагент);
  |Функция ОбъемПродаж=Сумма(Сумма);";

прямым запросом получается примерно так:


             Recordset.УстановитьТекстовыйПараметр("ДатаНачала", ДатаНачала);    
     Recordset.УстановитьТекстовыйПараметр("ДатаКонца", ДатаКонца);    
     Recordset.УстановитьТекстовыйПараметр("ВыбКонтрагент", ВыбКонтрагент);
     //
     ТекстЗапроса = "
     |SELECT  
     |   Рег.Номенклатура  as [Номенклатура  $Справочник.Номенклатура],
     |   Рег.Количество  as Количество
     |FROM
     | гент,(Номенклатура),(Количество)) As Рег
     |";

но выдает синтаксическую ошибку.
в чем дело?
спс заранее.


« Последняя редакция: 17. Ноября 2010 :: 10:32 - A_Ivanov »  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: помогите написать
Ответ #1 - 17. Ноября 2010 :: 09:14
Печать  
$РегистрОбороты.НакопленияПродаж вместо $РегистрОбороты.Продажи
  
Наверх
 
IP записан
 
A_Ivanov
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 17. Ноября 2010
Re: помогите написать
Ответ #2 - 17. Ноября 2010 :: 10:28
Печать  
в ТиСе только есть регистр "Продажи",
накопление продаж нет.

ошибка в определении временной таблицы.
просто
FROM $Регистр.Продажи Рег
работает.
надо за период отобрать и по определенному контрагенту
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: помогите написать
Ответ #3 - 17. Ноября 2010 :: 12:15
Печать  
A_Ivanov писал(а) 17. Ноября 2010 :: 10:28:
в ТиСе только есть регистр "Продажи",
накопление продаж нет.

ошибка в определении временной таблицы.
просто
FROM $Регистр.Продажи Рег
работает.
надо за период отобрать и по определенному контрагенту


Очевино, неправильно наложен фильтр.
  
Наверх
 
IP записан
 
A_Ivanov
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 17. Ноября 2010
Re: помогите написать
Ответ #4 - 17. Ноября 2010 :: 12:25
Печать  
Цитата:
Очевино, неправильно наложен фильтр.


а не могли бы помочь правильно его наложить.
задача то тривиальная, только в прямых запросах ничего не понимаю. день голову ломаю - не получается.
без фильтра - тоже ошибка.
оставляю только даты - тоже ошибка
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: помогите написать
Ответ #5 - 17. Ноября 2010 :: 13:01
Печать  
Рег.Количество - неправильно.
Нужно что-то одно из  (Рег.КоличествоОборот, Рег.КоличествоПриход, Рег.КоличествоРасход), подробнее написано в учебнике.
  
Наверх
 
IP записан
 
A_Ivanov
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 17. Ноября 2010
Re: помогите написать
Ответ #6 - 17. Ноября 2010 :: 13:23
Печать  
Цитата:
Рег.Количество - неправильно.
Нужно что-то одно из  (Рег.КоличествоОборот, Рег.КоличествоПриход, Рег.КоличествоРасход), подробнее написано в учебнике.


попробывал
все равно пишет
State 42000, native 200, message [Microsoft][ODBC Visual FoxPro Driver]Syntax error.

может кто написать и проверить у себя заведомо исправный код
а то уже сомнения в ночной сборке
или драйвере ОДБС
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: помогите написать
Ответ #7 - 17. Ноября 2010 :: 18:24
Печать  
Судя по сообщению ошибки, идет обращение к ДБФ базе. Так?
Если да, то надо использовать другие приемы и методы.

И еще. Я очень давно не писал на языке запросов 1С 7.7, но, насколько помню, там должна быть хоть одна группировка
  
Наверх
 
IP записан
 
A_Ivanov
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 17. Ноября 2010
Re: помогите написать
Ответ #8 - 18. Ноября 2010 :: 06:22
Печать  
Да, забыл сказать - база дбф-ная.
((
а как можно сделать с учетом этого?
никто не хочет помочь?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: помогите написать
Ответ #9 - 18. Ноября 2010 :: 07:00
Печать  
Есть несколько вариантов:
1. Использовать класс ПрямойЗапрос (необходима компонента 1sqlite)
2. Использовать 1sqlite без этого класса и самому расписывать запросы к регистрам
3. Использовать OleDB и также самому расписывать ВТ.

Первый вариант самый простой
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать