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 у меня вообщето сложилось впечатление что человек пытается не найти способ ускорить работу, а факты в пользу того бухитоги плохо. Сорри если не так.
Вот ответ, прости дружище, но я не уверен, ты пока один ! спасибо за ответ, я тоже начинаю склоняться к аналогичному мнению.