Доступ
к данным 1С: Предприятия
из Microsoft Excel
Используя Excel можно получать из 1С различные отчеты. |
Excel при доступе к данным DBF не требует авторизации, т.е. может быть использован для взлома. |
О доступе в 1С через Excel администраторам и опытным пользователям
Данная статья предназначена для опытных пользователей и разработчиков, которых хотят получать отчетность из 1С в Excel. Кроме того, данная статья затрагивает вопросы безопасности в подобных решениях.
Доступ к данным локальной и сетевой версии 1С (DBF-версия)
Для получения данных из 1С в Excel настраивают Microsoft Query для чтения файлов 1С. Сам Microsoft Query входит в состав Microsoft Office. Единственная загвоздка это кодировка базы 1С. Для ее устранения нужно с помощью программы regedit.exe исправить значение ключа реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftJet3.5EnginesXbase
на 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".
Комментарии
6