Переключение на Главную Страницу Страницы: [1] 2 3 4 ОтправитьПечать
Очень популярная тема (более 25 ответов) DBF прямой запрос (Оборотно сальдовая) Бухгалтерия (число прочтений - 13339 )
Pilokarpios
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Мая 2008
DBF прямой запрос (Оборотно сальдовая) Бухгалтерия
21. Мая 2008 :: 13:42
Печать  
Добрый день, пролистал терпимо все темы форума (ветка DBF),  вывод, дбф структура мало кого интересует, т.к. не гибкая... Ребята вопрос, ну как сделать прямой запрос к оборотам счета по ОДБЦ, да пофиг, я на эту тему много уже рыл, может поглупел за 10 лет, SQl запросы писал, действительно скорость радует... помогите, может ссылки у когото есть нормальные и т.п. Спасибо, надеюсь на ответ, 1С++ использую с 2005 года, блокировки и т.п, но не в разрезе DBF. Если суть в умении программировать в Fox (т.е. fox запросы по DBF таблицам), то это уже сложнее т.к. это погибающий вариант. тем не мение, очень надеюсь на достой ный ответ, даже если нецензурный...  Подмигивание
  
Наверх
 
IP записан
 
zenik
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 109
Зарегистрирован: 09. Октября 2007
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #1 - 22. Мая 2008 :: 09:09
Печать  
Хреново искал. На второй странице, всего навсего, есть вот такая тема: http://www.1cpp.ru/forum/YaBB.pl?num=1168603103
  
Наверх
 
IP записан
 
Pilokarpios
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Мая 2008
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #2 - 24. Мая 2008 :: 16:50
Печать  
zenik писал(а) 22. Мая 2008 :: 09:09:
Хреново искал. На второй странице, всего навсего, есть вот такая тема: http://www.1cpp.ru/forum/YaBB.pl?num=1168603103


там ничего нет...

Люди, подскажите плиз, можно ли делать прямые запросы к DBF бух итоги??? Смущённый
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #3 - 24. Мая 2008 :: 16:59
Печать  
"дбф структура не гибкая"
+
"можно делать прямые запросы к DBF бух итоги"
  
Наверх
ICQ  
IP записан
 
Pilokarpios
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Мая 2008
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #4 - 24. Мая 2008 :: 17:18
Печать  
spock писал(а) 24. Мая 2008 :: 16:59:
"дбф структура не гибкая"
+
"можно делать прямые запросы к DBF бух итоги"


а можно ссылку или пример увидеть, я уже кучу всего перерыл, както непонятно с скулем пересекается всё
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #5 - 24. Мая 2008 :: 17:32
Печать  
Структура схожа со скулем (логически), все остальное делается по подобию.
Ты задавай конкретные вопросы, вместо общих.
  
Наверх
ICQ  
IP записан
 
Pilokarpios
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Мая 2008
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #6 - 24. Мая 2008 :: 17:58
Печать  
spock писал(а) 24. Мая 2008 :: 17:32:
Структура схожа со скулем (логически), все остальное делается по подобию.
Ты задавай конкретные вопросы, вместо общих.


можно ли ускорить прямым запросом?

    Ит = СоздатьОбъект("БухгалтерскиеИтоги");  
    Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2);
    Если ПустоеЗначение(Отдел)=0 Тогда
       Ит.ИспользоватьСубконто(ВидыСубконто.Отделы, Отдел, 2);
    КонецЕсли;
    Ит.ИспользоватьСубконто(ВидыСубконто.Партия,Партия, 2);
    Ит.ВыполнитьЗапрос(ДатаОстатков,ДатаОстатков,"01.2",,, 1,, "К");
    Возврат Ит.СКД(3);
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #7 - 25. Мая 2008 :: 10:44
Печать  
Этот код можно ускорить и штатными средствами, скажем,  ИспользоватьРазделительУчета()..
В целом, получение отдельного итога существенно ускорить, скорее всего, не получится.
Если этот код вызывается в цикле, рассчитай все свои итоги одним бухзапросом с разворотом по местам хранения/отделам/партиям и получай их по мере обхода своих циклов.
А если и после этого производительность не устроит, тогда уже думай о прямых запросах.

Как-то это мало похоже на оборотно-сальдовую..
  

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


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #8 - 25. Мая 2008 :: 23:13
Печать  
berezdetsky писал(а) 25. Мая 2008 :: 10:44:
Как-то это мало похоже на оборотно-сальдовую..

ОФФ. А зачем такими маленькими печатать? Для разминки глаз учаснегам?   Подмигивание
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Pilokarpios
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Мая 2008
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #9 - 26. Мая 2008 :: 10:53
Печать  
Народ, неужели тут нет человека, который может сказать наконец нормально, можно это или нельзя, ну сколько можно уже не по теме отвечать???  Злой
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #10 - 26. Мая 2008 :: 11:04
Печать  
Это можно. Я Это делать не буду, так как меня Это не интересует.
З.Ы. Попробуй сделать так (заметь, я пршу тебя что-то сделать, а не спросить)
1) Поставить локально скуль и 1С под СКЛ, либо запрос, сфоримрованный классом AccountRecordset Прогони через Метапарсер. Выведи его в окно сообщений, или в файл, куда-нибудь вобщем.
2) Проанализируй этот запрос, найди, чем отличается структура таблиц для MSSQL и DBF.
3) Спроектируй, как должен выглядеть этот запрос в ДБФ-ной базе.
4) Перепиши класс "AccountRecordset " чтобы он выдавал нужный тебе запрос.
5) Выложи его для общего доступа и получишь заслуженные почет и уважение.
  
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #11 - 26. Мая 2008 :: 16:52
Печать  
Можно, но с ограничениями:
1 - OLEDB вместо ODBC,
2 - не будет групп по справочникам.
  
Наверх
IP записан
 
gjpbw
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 04. Апреля 2008
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #12 - 26. Мая 2008 :: 17:36
Печать  
думаю правильный ответ можно (тут не уверен) но НЕ НУЖНО (а вот тут практически уверен)
так что оптимизируйте код (выше вам уже писал)

PS у меня вообщето сложилось впечатление что человек пытается не найти способ ускорить работу, а факты в пользу того бухитоги плохо. Сорри если не так.
  
Наверх
 
IP записан
 
Pilokarpios
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Мая 2008
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #13 - 27. Мая 2008 :: 09:41
Печать  
Salimbek писал(а) 26. Мая 2008 :: 11:04:
Это можно. Я Это делать не буду, так как меня Это не интересует.
З.Ы. Попробуй сделать так (заметь, я пршу тебя что-то сделать, а не спросить)
1) Поставить локально скуль и 1С под СКЛ, либо запрос, сфоримрованный классом AccountRecordset Прогони через Метапарсер. Выведи его в окно сообщений, или в файл, куда-нибудь вобщем.
2) Проанализируй этот запрос, найди, чем отличается структура таблиц для MSSQL и DBF.
3) Спроектируй, как должен выглядеть этот запрос в ДБФ-ной базе.
4) Перепиши класс "AccountRecordset " чтобы он выдавал нужный тебе запрос.
5) Выложи его для общего доступа и получишь заслуженные почет и уважение.


Блин... да перед тем как сделать и потратить на это кучу времени я хочу уточнить: "СТОИТ ЛИ ВООБЩЕ ЭТО ДЕЛАТЬ?". Запросы по регистрам, выборка справочников, поиск и тд по таблицам - ДА - ЭТО РАБОТАЕТ БЫСТРО.

Виноват... спрошу по новому Требуется ускорить подбор из таблицы в которой расчет остатков производится быстрым (прямой запрос) расчетом бухгалтерских итогов Ит.СКД(3) в разрезе трех субконто, на данный момент локально или в режиме терминалов все работает ОК, при использовании сетевого варианта платформы 1С7.7 стандартный метод компиляции запроса работает медленно.

У меня два варианта решения:

1- вариант (буферные остатки) расчет стандартным методом и исключение частых обращений к расчетам бух итогов для сетевых пользователей,
2-вариант это прямые запросы, о которых я уже много прочитал. т.е. запрос осуществляется примерно так:

Код
Выбрать все
DataBase = СоздатьОбъект("ODBCDatabase");
Рез = DataBase.DriverConnect("DRIVER=Microsoft Visual FoxPro ="+КаталогИБ());
Запрос =  СоздатьОбъект("ODBCRecordSet");  
Запрос.SetDatabase(DataBase);
  
ТабЗнач = СоздатьОбъект("ТаблицаЗначений");

ТекстЗапроса =  "SELECT
		|Schkod AS Счет, Schim as Имя, Active as Признак, Level as уровень ,
		| SD AS Вход, Obdt1 AS ОборотД1, Obkt1 AS ОборотК1,Obdt2 AS ОборотД2, Obkt2 AS ОборотК2,Obdt3 AS ОборотД3, Obkt3 AS ОборотК3,0.00 AS ОборотД4,0.00 AS ОборотК4,0.00 AS ОборотД5,0.00 AS ОборотК5  
		| 	FROM
		|	1Saccs as Счета
		|   ,
		|	1Sbkttl as Остатки
		|	where (Остатки.Date = " + ДатаОстатков + ") and (Остатки.Kind='1')
		|   and (Счета.Id = Остатки.Accid)
		| ";  
 



, но я так и не понял, поможет мне это или нет?!!

gjpbw писал(а) 26. Мая 2008 :: 17:36:
думаю правильный ответ можно (тут не уверен) но НЕ НУЖНО (а вот тут практически уверен)
так что оптимизируйте код (выше вам уже писал)

PS у меня вообщето сложилось впечатление что человек пытается не найти способ ускорить работу, а факты в пользу того бухитоги плохо. Сорри если не так.


Вот ответ, прости дружище, но я не уверен, ты пока один ! спасибо за ответ, я тоже начинаю склоняться к аналогичному мнению.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: DBF прямой запрос (Оборотно сальдовая) Бухгалт
Ответ #14 - 27. Мая 2008 :: 10:07
Печать  
FAQ
http://www.1cpp.ru/forum/YaBB.pl?num=1148038411/25#25,
FoxPro  ODBC тормознут, снят с поддержки уже лет 10, не поддерживает индексы 1С(с фильтром).
Рекомендуется OLEDB.

Код
Выбрать все
Виноват... спрошу по новому Требуется ускорить подбор из таблицы в которой расчет остатков производится быстрым (прямой запрос) расчетом бухгалтерских итогов Ит.СКД(3) в разрезе трех субконто, на данный момент локально или в режиме терминалов все работает ОК, при использовании сетевого варианта платформы 1С7.7 стандартный метод компиляции запроса работает медленно. 


Если остатки показываются в вычисляемой колонке справочника :
Для полной оптимизации этого дела потребуется табличное поле на ДБФ (в разработке) + вникать
в индексы(+ еще время).

Если объем базы не очень большой, возможна частичная оптимизация путем одновременного
расчета ВСЕХ остатков номенклатуры в ПриОткрытии- т.е. подбор вести не в реальном времени.

Если объем номенклатуры до 5000 элементов - при открытии будет наблюдаться торможение(расчет остатков)
около 1-2 сек, в дальнейшем подбор будет практически мгновенным.

Если остатки показываются как в типовой - внизу в текстовой строке лучше ограничиться стандартными методами
(ну только функцию по одному тому же товару не вызывать по 10 раз)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 4
ОтправитьПечать