Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Виртуальные таблицы в dbf (число прочтений - 2120 )
DrunkProgrammer
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 128
Зарегистрирован: 28. Декабря 2007
Виртуальные таблицы в dbf
03. Июля 2008 :: 13:23
Печать  
Доброе время суток!
Уважаемые разработчики планируется ли создание возмжности работы с виртуальными таблицами в dbf?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы в dbf
Ответ #1 - 03. Июля 2008 :: 13:41
Печать  
Такая возможность уже есть.
http://www.1cpp.ru/forum/YaBB.pl?num=1214687800
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
DrunkProgrammer
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 128
Зарегистрирован: 28. Декабря 2007
Re: Виртуальные таблицы в dbf
Ответ #2 - 03. Июля 2008 :: 17:16
Печать  
Пишу запрос: SELECT * FROM $РегистрОстатки.ОстаткиТМЦ, выдает Syntax error

а когда пишу:
SELECT
  *
FROM
  $РегистрОстатки.ОстаткиТМЦ

т.е. тоже самое но с разбивкой по строкам - 1С вылетает
Где можно найти документацию по версии 1с++ с виртуальными таблицами для dbf?
Или если можно пример запроса остатков и оборотов регистра в dbf-ной базе  Круглые глаза
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Виртуальные таблицы в dbf
Ответ #3 - 03. Июля 2008 :: 18:04
Печать  
Предыдущий пост был для SQlLite.
Сильно оптимизированный пример - для Fox - может быть сложно :

Код
Выбрать все
ПредМесяц=НачМесяца(ДобавитьМесяц(НачДата,-1));
НачалоМесяца=НачМесяца(НачДата);
ПредДата=НачДата-1;


ТабПервичныхОстатков="
|
| SELECT
|     $РегКассаНач.Фирма AS Фирма,
|     $РегКассаНач.Валюта AS Валюта,
|     "+?(Режим="Подробно","$ПустойИД AS ИДДок,","")+"
|     $РегКассаНач.Наличность AS ДеньгиНачОст,
|     0000000000000.00 AS ДеньгиПриход,
|     0000000000000.00 AS ДеньгиРасход
|  FROM
|     $РегистрИтоги.Касса as РегКассаНач
|
|  WHERE DTOS(РегКассаНач.period)+$РегКассаНач.Фирма+$РегКассаНач.Валюта
|     LIKE (DTOS(:ПредМесяц~~)+'_________'+'_________')
|
|  "+УсловиеНаОбъект("AND","$РегКассаНач.Фирма",ВыбФирмы)+"
|  "+УсловиеНаОбъект("AND","$РегКассаНач.Валюта",ВыбВалюта)+"
|";

ТабПриходаДоПериода="
|
| SELECT
|     $РегКассаДвижДо.Фирма ,
|     $РегКассаДвижДо.Валюта ,
|     "+?(Режим="Подробно","$ПустойИД ,","")+"
|     $РегКассаДвижДо.Наличность * (1 - РегКассаДвижДо.debkred * 2) ,
|     0000000000000.00 ,
|     0000000000000.00
|
|  FROM
|     $Регистр.Касса as РегКассаДвижДо
|
|  WHERE вижДо.lineno,4)+STR(РегКассаДвижДо.actno,6)
|  BETWEEN  DTOS(:НачалоМесяца~~)+'"+S_(8+9+4+6)+"' AND
|	     DTOS(:ПредДата~~)+'"+Z_(8+9+4+6)+"'
|  "+УсловиеНаОбъект("AND","$РегКассаДвижДо.Фирма",ВыбФирмы)+"
|  "+УсловиеНаОбъект("AND","$РегКассаДвижДо.Валюта",ВыбВалюта)+"
|";

ТабДвижений="
|
| SELECT
|     $РегКассаДвижений.Фирма ,
|     $РегКассаДвижений.Валюта ,
|     "+?(Режим="Подробно","РегКассаДвижений.IDDoc,","")+"
|     0000000000000.00,
|     (1-РегКассаДвижений.debkred)* $РегКассаДвижений.Наличность ,
|     (РегКассаДвижений.debkred) * $РегКассаДвижений.Наличность
|
|  FROM
|     $Регистр.Касса as РегКассаДвижений
|
|  WHERE КассаДвижений.lineno,4)+STR(РегКассаДвижений.actno,6)
|  BETWEEN  DTOS(:НачДата~~)+'"+S_(8+9+4+6)+"' AND
|	     DTOS(:КонДата~~)+'"+Z_(8+9+4+6)+"'
|  "+УсловиеНаОбъект("AND","$РегКассаДвижений.Фирма",ВыбФирмы)+"
|  "+УсловиеНаОбъект("AND","$РегКассаДвижений.Валюта",ВыбВалюта)+"
|";




ТабКасса="
| SELECT
|     ТабКассаРазвернуто.Фирма AS Фирма ,
|     ТабКассаРазвернуто.Валюта AS Валюта,
|     "+?(Режим="Подробно","ТабКассаРазвернуто.ИДДок AS ИДДок,","")+"
|     SUM(ТабКассаРазвернуто.ДеньгиНачОст) AS ДеньгиНачОст,
|     SUM(ТабКассаРазвернуто.ДеньгиПриход) AS ДеньгиПриход,
|     SUM(ТабКассаРазвернуто.ДеньгиРасход) AS ДеньгиРасход,
|     SUM(ТабКассаРазвернуто.ДеньгиНачОст) + SUM(ТабКассаРазвернуто.ДеньгиПриход) - SUM(ТабКассаРазвернуто.ДеньгиРасход) AS ДеньгиКонОст
|
| FROM
|
|(
| "+ТабПервичныхОстатков+"
|
|  UNION ALL
|
| "+ТабПриходаДоПериода+"
|
|  UNION ALL
|
| "+ТабДвижений+"
|
|) AS ТабКассаРазвернуто
|
|GROUP BY аРазвернуто.ИДДок","")+"
|
|
|";
	 


функции S_(N) строка пробелов размером N
Z_ (N) строка "z" размером N
- если индексы не интересуют - можешь просто условие на дату поставить.
Еще в учебнике был пример попроще.
  
Наверх
 
IP записан
 
DrunkProgrammer
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 128
Зарегистрирован: 28. Декабря 2007
Re: Виртуальные таблицы в dbf
Ответ #4 - 04. Июля 2008 :: 03:49
Печать  
Так может лучше SQlLite установить? и если да то, подскажите пожалуйста строку подключения.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы в dbf
Ответ #5 - 04. Июля 2008 :: 03:58
Печать  
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
DrunkProgrammer
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 128
Зарегистрирован: 28. Декабря 2007
Re: Виртуальные таблицы в dbf
Ответ #6 - 04. Июля 2008 :: 07:40
Печать  
Спасибо!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать