В основном я бы хотел услышать мнение товарищей Берездецкого и Ст##ана... (вы уж извините что не на латинице обращаюсь)...
Последние пару дней я убил на разбор запросов к таблицам бухгалтерии и смотря в оба класса я все время задавал себе множество вопросов.
Пы.сы. далее речь пойдет о ВТОстатки. Т.к. они обе реализованы в соответсвующих классах.
Меня интересует вот какой вопрос:
Почему если ОтборПоСчетам = 1 запрос идет через присоединение _1SACCSEL. В чем выгода данного метода? И там и там я видел похожий способ отбора.
Вопрос у меня возник вот из-за чего. Если к SQL в плане JOIN у меня вопросов нет, то вот SQLite джойнит таблицы крайне долго и я бы сказал нифига не выгодно это делать, т.к. убивает все удовольствие от прямых запросов.
Я попробовал написал универсальный сбор через обращение к таблице 1SBKKTL и 1SENTRY аналогично тому как собирает 1С. Т.е. я не проверял флаг отбора и не джойнил с отбором по 1SACCSEL.
Правда в конце я добавил внутреннее соединение с таблицей 1SACCS чтобы определять А,П или АП... (но это ко второму вопросу).
И в итоге в SQL базе выигрыш бесспорный и очень значительный (от 2-х до 8-и кратного), а в SQLite обнаруживается почти равенство, а то и порой превосходство 1C. Если использовать отборы и фильтрации по значениям то и там и там выигрывает прямой запрос. Но это только таблица остатков.
Возвращаясь ко второму вопросу...
И в том и в другом классе я не обнаружил проверку на активность или пассивность счета. Т.о. остатокДт, остатокКт не всегда верно отображают значения. Т.е. не то что цифра не верна, а то что положительное значение дебета в пассивном счете оставалось на дебете хотя в итоге должно сидеть на кредите но с минусом.
Я так понимаю эту проверку вы отдали на откуп программисту запроса к ВТ?
Пы.сы.2: я наверное буду задавать много вопросов глупых или не очень. Надеюсь вы мне поможете найти на них ответы.
А я пошел анализировать классы дальше