Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Результаты прямого запроса (число прочтений - 3488 )
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Результаты прямого запроса
31. Июля 2008 :: 07:56
Печать  
Вводит в ступор один опыт делаю элементарную выгрузку на регистр стандртными способами:

регВыбор1=СоздатьОбъект("Регистр.План");
регВыбор1.ВыгрузитьИтоги(тзРегистр);


количество строк =110

и при помощи 1С++:
"SELECT "+Перечисляю измерения+"
           |FROM $РегистрИтоги."+регВыбор+" as Рег WHERE    $Рег.Количество>0";

количество строк =340!!!

как понимать? Как мне тогда получить результат метода вугрузить итоги - 110 сторк?
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Результаты прямого запроса
Ответ #1 - 31. Июля 2008 :: 08:01
Печать  
А где проверка на период?
Твой запрос тупо вернул все данные из таблицы, не глядя на поле Period.
  
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Результаты прямого запроса
Ответ #2 - 31. Июля 2008 :: 08:03
Печать  
мне надо на текущую дату. разве в РегистрИтоги не хранится состояние регистра на ТА?
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Результаты прямого запроса
Ответ #3 - 31. Июля 2008 :: 08:06
Печать  
OnCheck писал(а) 31. Июля 2008 :: 08:03:
мне надо на текущую дату. разве в РегистрИтоги не хранится состояние регистра на ТА?


Хранится. Только там, кроме этого, хранятся итоги на конец каждого предыдущего периода.
Если у тебя периодичность регистра месяц, то добавь в запрос в раздел Where строчку

And Period = '"Формат(НачМесяца(ПолучитьДатуТА()),"ДГГГГММДД")"'
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Результаты прямого запроса
Ответ #4 - 31. Июля 2008 :: 08:09
Печать  
OnCheck писал(а) 31. Июля 2008 :: 08:03:
мне надо на текущую дату. разве в РегистрИтоги не хранится состояние регистра на ТА?

Хранятся на все периоды в базе, в т.ч. и на ТА.
почитай про $НачалоПериода.<?>(<?>,<?>)
и выбирай те итоги, где period=$НачалоПериода.<?>(<?>,<?>)
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Результаты прямого запроса
Ответ #5 - 31. Июля 2008 :: 08:37
Печать  
проще всего воспользоваться ВТ РегистрОстатки. Не указывая первый параметр - будут остатки на ТА.
  

1&&2&&3
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Результаты прямого запроса
Ответ #6 - 31. Июля 2008 :: 09:14
Печать  
SELECT
Рег.sp16667 as [_1c_type_Справочник_Номенклатура] ,
Рег.sp17193 as [_1c_type_Справочник_Подразделения] ,
Рег.sp20329 as [Датаисполнения_1c_type_Дата] ,
Рег.sp16666 as [_1c_type_Документ] ,
Рег.sp16668 as [Количество_1c_type_Число]
FROM rg16665 as Рег WHERE    (Рег.sp16668>0) And (Period = '01.07.08')
ТзДокументов=RS.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\LIBR\ОБРАБОТКИ\ПОСМОТРЕТЬРЕГИСТРЫ.ERT(79)}: FAILED! ICommandText::Execute(): Operator/operand type mismatch.
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Результаты прямого запроса
Ответ #7 - 31. Июля 2008 :: 09:17
Печать  
Period = '01.07.08' не понимает. Смотри, как Садовников тебе написал.
  
Наверх
ICQ  
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Результаты прямого запроса
Ответ #8 - 31. Июля 2008 :: 09:34
Печать  
vip писал(а) 31. Июля 2008 :: 09:17:
Period = '01.07.08' не понимает. Смотри, как Садовников тебе написал.

SELECT
Рег.sp16667 as [_1c_type_Справочник_Номенклатура] ,
Рег.sp17193 as [_1c_type_Справочник_Подразделения] ,
Рег.sp20329 as [Датаисполнения_1c_type_Дата] ,
Рег.sp16666 as [_1c_type_Документ] ,
Рег.sp16668 as [Количество_1c_type_Число]
FROM rg16665 as Рег WHERE    (Рег.sp16668>0) And (Period = '20080701') AND    (Рег.sp16666                 = ' KXK  4ILO   ')
ТзДокументов=RS.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\LIBR\ОБРАБОТКИ\ПОСМОТРЕТЬРЕГИСТРЫ.ERT(79)}: FAILED! ICommandText::Execute(): Operator/operand type mismatch.

может потому что у меня дбф?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Результаты прямого запроса
Ответ #9 - 31. Июля 2008 :: 10:06
Печать  
Код
Выбрать все
ТекстЗапроса="
|SELECT "+Перечисляю измерения+"  
|FROM $РегистрИтоги."+регВыбор+" as Рег
|WHERE Рег.Period=:ВыбДата~~
|  AND   $Рег.Количество>0";
Запрос.УстановитьТекстовыйПараметр("ВыбДата", НачМесяца(ТекущаяДата())); 


« Последняя редакция: 31. Июля 2008 :: 11:39 - JohnyDeath »  
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Результаты прямого запроса
Ответ #10 - 31. Июля 2008 :: 10:13
Печать  
JohnyDeath писал(а) 31. Июля 2008 :: 10:06:
Код
Выбрать все
ТекстЗапроса="
|SELECT "+Перечисляю измерения+"
|FROM $РегистрИтоги."+регВыбор+" as Рег
|WHERE $Рег.Period=:ВыбДата~~
|  AND   $Рег.Количество>0";
Запрос.УстановитьТекстовыйПараметр("ВыбДата", НачМесяца(ТекущаяДата())); 



а что Period это поле таблицы регистра? 8))
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Результаты прямого запроса
Ответ #11 - 31. Июля 2008 :: 10:18
Печать  
OnCheck писал(а) 31. Июля 2008 :: 10:13:
а что Period это поле таблицы регистра? 8))

Ты в структуру таблиц-то все-таки загляни. Очень, знаешь, помогает при написании прямых запросов...
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Результаты прямого запроса
Ответ #12 - 31. Июля 2008 :: 11:48
Печать  
JohnyDeath писал(а) 31. Июля 2008 :: 10:06:
Код
Выбрать все
ТекстЗапроса="
|SELECT "+Перечисляю измерения+"
|FROM $РегистрИтоги."+регВыбор+" as Рег
|WHERE Рег.Period=:ВыбДата~~
|  AND   $Рег.Количество>0";
Запрос.УстановитьТекстовыйПараметр("ВыбДата", НачМесяца(ТекущаяДата())); 




Наверное лучше НачМесяца(ПолучитьДатуТА()) Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Результаты прямого запроса
Ответ #13 - 31. Июля 2008 :: 14:12
Печать  
1.Общее описание подситсемы регистров
http://metaprog.co.ua/secrprog/doc_reg.html#_2

2.Файл 1Cv7.DD  в каталоге базы - открываешь простым текстовым редактором, например "блокнот" -
увидишь описание полей и таблиц

3.Файл начинающийся с RG в каталоге базы открываешь FoxPro, или на худой конец Exel или еще каким вьювером
- увидишь как физически расположены записи.

4. Константа типа дата имеет вид {^2008-01-01} а не '20080701' если понадобится
без параметров задавать. В одинарных кавычках константа типа строка

5. В документации к 1С++ идет учебник "Прямой доступ к базе данных"



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