Множественный отбор в журналах 7.7 и замена запросов SQLРазработка позволяет модифицировать SQL-запросы 1С:Предприятие, в частности, с целью установления типичных для SQL-баз отборов в журналах сразу по нескольким реквизитам. | | Автор статьи: Последняя редакция №1 от 05.09.06 URL: http://kb.mista.ru/article.php?id=361 | |
Ключевые слова: SQL, ODBC32.dll, подмена, отбор, журнал
Файл для скачивания:
http://x-romix.narod.ru/SqlLog.rar (137К, скачивать левой кнопкой мыши).
Приложены исходные тексты патчей и внешних компонент (компилятор - Delphi 6).
Разработка обеспечивает возможность производить отбор по нескольким реквизитам в журнале документов
(как в общем, так и в обычном!). Например, это может быть контрагент, договор, фирма,
пользователь, вид документа и т.д. - отбор можно осуществлять сразу по нескольким полям, используя логические операторы AND, OR и NOT (чтобы предупредить возможные вопросы, сразу замечу, что в DBF-варианте работать это не будет).
Принцип работы: патч модифицируют SQL-запрос, и он выполняется с дополнительными
условиями в предложении WHERE.
Внешняя компонента служит для передачи информации в патч (программисту требуется сформировать и передать дополнительные условия для предложения WHERE).
Отбор работает только для "общих реквизитов" документов, у которых стоит признак "отбор", т.к. именно эти реквизиты хранятся в таблице _1SJOURN.
Установка - положить в 1cv7\BIN файлы
SqlLog.dll
SqlLog.ini (там указать путь к логу - по умолчанию он закомментирован)
Туда же положить
patch_bkend.exe (запустить его, чтобы пропатчить bkend.dll)
Деинсталляция - восстановить исходный bkend.dll
Демонстрационная база - 77_SQL_TestBase.zip
Ее необходимо загрузить в пустую информационную базу 1С:Предприятие 7.7 для SQL.
После этого в журнале (причем, не общем, а обычном!) можно использовать отборы сразу по нескольким реквизитам (в приведенном примере - Контрагент, Пользователь, Товар). |