Доступ
к данным 1С: Предприятия |
|
|
О доступе в 1С через Excel администраторам и опытным пользователям Данная статья предназначена для опытных пользователей и разработчиков, которых хотят получать отчетность из 1С в Excel. Кроме того, данная статья затрагивает вопросы безопасности в подобных решениях. Доступ к данным
локальной и сетевой версии 1С (DBF-версия) Для получения данных из 1С в Excel настраивают Microsoft Query для чтения файлов 1С. Сам Microsoft Query входит в состав Microsoft Office. Единственная загвоздка это кодировка базы 1С. Для ее устранения нужно с помощью программы regedit.exe исправить значение ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Xbase на ANSI. Затем в
файле 1CV7.DD смотрят описание
таблиц с данным 1С. В конце
составляют запрос для получения
нужной информации из 1С через ODBC-драйвер
FoxPro. Например, для получения
информации о приходных
накладных нужен примерно такой
запрос: SELECT dh434.IDDOC, dh434.SP440,
dh434.SP910, dh434.SP441, dh434.SP453, sc46.DESCR,
sc33.DESCR, dt434.SP449, dt434.SP451, dt434.SP453 FROM
dh434.dbf dh434, dt434.dbf dt434, sc33.dbf sc33, sc46.dbf
sc46 WHERE sc46.ID = dh434.SP437 AND dh434.IDDOC =
dt434.IDDOC AND dt434.SP448 = sc33.ID Для создания запроса не обязательно знать язык SQL, его можно построить с помощью мастера запросов Microsoft Query, приведенный запрос был сделан именно так. Полученные данные из можно Microsoft Query можно анализировать в Excel, если вызвать Microsoft Query из пункта меню "Данные/ Импорт внешних данных/ Создать запрос". Замечания по безопасности. Как видим, DBF-файлы
в принципе не подразумевают
авторизацию при доступе к данным.
Таким образом, любой
пользователь 1С используя данный
метод может получить полный
доступ к данным в 1С. Серьезных
мер противодействия этому нет,
но есть несколько методических
мер, которые могут смягчить
проблему: - Не раскидывайте Excel-отчеты предназначенные для работы с 1С где попало. Устанавливайте их только тем пользователям, которым они нужны. - Используйте средства Windows Trusted Security, для изоляции разных баз друг от друга. - Не устанавливайте
Microsoft Query и ODBC-драйверы для DBF-файлов
обычным операторам БД. Доступ к данным
версии 1С для SQL Доступ организуются
аналогично как для DBF и даже
проще, т.к. реестр править не
нужно. Запрос для получения
информации из приходных
накладных для базы 1С под MS SQL
выглядит примерно так: SELECT dh434.IDDOC, dh434.SP440,
dh434.SP910, dh434.SP441, dh434.SP453, sc46.DESCR,
sc33.DESCR, dt434.SP449, dt434.SP451, dt434.SP453 FROM dh434, dt434, sc33, sc46
WHERE sc46.ID = dh434.SP437 AND dh434.IDDOC = dt434.IDDOC
AND dt434.SP448 = sc33.ID По сравнению с анализом DBF-базы запрос имеет несущественные отличия в разделе FROM и для составления запроса следует пользоваться описанием базы в разделе 1CV7.DDS. Замечания по безопасности В случае MS SQL для получения данных требуется авторизация на сервере. Рекомендуем использовать метод Trusted Security для входа в MS SQL. Это позволяет не хранить пароли в настройках системы и блокирует атаку через подбор пароля (password attack). Следует помнить, что если пользователи смогут скопировать файл 1CV7.DBA, то довольно легко они смогут расшифровать пароль MS SQL с помощью таких программ как unsql.exe. Надежная защита от такого взлома строится с помощью таких продуктов как «Защита 1С: Предприятия для SQL».
|
Используя Excel можно получать из 1С различные отчеты. Excel при доступе к данным DBF не требует авторизации, т.е. может быть использован для взлома. |