Внешние подключения к 1С 8.3.

1. user900723 30.01.18 14:25 Сейчас в теме
Для начала, я не очень тесно связан с 1С. Я системный администратор.
В компании используется 1С версии 8.3, серверная. Конфигурация кастомная. На обычных формах. База данных в MSSQL Server 2012R2. Всё это дело крутится на Windows Server 2012R2.
Для нужд компании необходимо получать некий набор данных из базы данных. По сути там описание товара с его уникальным каталожным номером и фотографией. Все эти данные, причем в режиме только чтения, необходимо получить утилитой, которая запущена на Linux-машине. Утилита эта на python'е. Я не могу подключиться напрямую к MSSQL, так как 1С сама распоряжается данными в таблицах базы данных в СУБД.
Собственно отсюда вопрос, какие есть способы подключиться к 1С "снаружи"? Может есть какой-то API? COMConnector - не вариант, в Linux'е это понятие отсутствует, а библиотеки питона по работе с комконнектором реализованы для Windows.
По теме из базы знаний
Найденные решения
9. RocKeR_13 1325 30.01.18 15:14 Сейчас в теме
(1)Как вариант: создать отдельную базу (можно, например, вообще на PostgreSQL), в 1С добавить ее в качестве внешнего источника, а далее либо вручную, либо регламентным заданием писать в нее необходимые данные из 1С. А уже вашей утилитой читать данные из этой промежуточной базы. А вообще странно, почему не можете запросом к SQL вытащить данные... Тут были обработки по преобразованию запроса 1С в запрос SQL.
Вот тут, например, сразу создает SQL-запрос по метаданным (обычные формы)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. pechenka1440 30.01.18 14:34 Сейчас в теме
(1) Вот вам пара вариантов
1) вы можете на SQL сервере своем в базе создать представление, которое и будете получать прямым запросом от своей утилиты к базе.
Я для удобства создавал в 1С отдельный регистр, который регламентным заданием заполнял данными по расписанию, а затем "утилита" напрямую SQL запросом обращалась к этому представлению и получала табличку с данными готовыми. Только в регистр нужно писать только примитивные типы данных (числа, строки, даты, булево)
Этот вариант проще, но не всегда в моменте сможете получить актуальные данные, (зависит от расписания, по которому будет заполняться регистр)

2) Этот вариант сложнее, http или web сервисы... тут уже по запросу из утилиты сможете получать актуальные данные, но придется писать обработку, которая будет эти данные собирать и возвращать в нужном утилите виде... но работать будет "на лету" а не по расписанию... пришел запрос - данные сгенерировались
user1155678; +1 Ответить
6. user900723 30.01.18 15:01 Сейчас в теме
(3)Скажите, а внешние источники данных - это не мой случай?
8. pechenka1440 30.01.18 15:08 Сейчас в теме
(6) Внешний источник данных, это источник для 1С.. то есть 1С из этого источника собирает информацию, а не наоборот.
user1155678; +1 Ответить
9. RocKeR_13 1325 30.01.18 15:14 Сейчас в теме
(1)Как вариант: создать отдельную базу (можно, например, вообще на PostgreSQL), в 1С добавить ее в качестве внешнего источника, а далее либо вручную, либо регламентным заданием писать в нее необходимые данные из 1С. А уже вашей утилитой читать данные из этой промежуточной базы. А вообще странно, почему не можете запросом к SQL вытащить данные... Тут были обработки по преобразованию запроса 1С в запрос SQL.
Вот тут, например, сразу создает SQL-запрос по метаданным (обычные формы)
10. user900723 30.01.18 15:36 Сейчас в теме
(9)Спасибо. Дельная ссылка.
11. user900723 30.01.18 16:19 Сейчас в теме
(9)думаю переговорю с нашим 1С программистом, попрошу организовать такой путь. Я так понял это в конфигураторе надо делать?
12. DenisCh 30.01.18 16:52 Сейчас в теме
(11)
думаю переговорю с нашим 1С программистом, попрошу организовать такой путь. Я так понял это в конфигураторе надо делать?

Вот тут я на прошлой неделе ковырял запросы, которые делал веб-мастер, выдёргивая данные из 1с(меня в то время тут не было). Из пыха. Напрямую к скулю.
Работало года полтора...
13. RocKeR_13 1325 30.01.18 17:32 Сейчас в теме
(11) Если через промежуточную базу, то да. А прямыми запросами так и не хотите попробовать?) Хотите 1Сника загрузить?)))
14. user900723 30.01.18 18:07 Сейчас в теме
(13) не, я имел в виду прямыми запросами. Только из же надо сначала сделать на основе метаданных. Вот мне скажет 1Сник, хотя бы чё с чем джойнить...
2. DenisCh 30.01.18 14:29 Сейчас в теме
веб-сервис, хттп-сервис, о-дата.
Да и прямо в таблицы тоже можно слазить, ибо структуру данных в 1с получить - как два байта об асфальт...
4. user900723 30.01.18 14:37 Сейчас в теме
(2)
Да и прямо в таблицы тоже можно слазить, ибо структуру данных в 1с получить - как два байта об асфальт...

Но ведь 1С сама "распихивает" данные по каким-то только ей ведомым таблицам. Как я прямым запросом к БД получу то, что мне надо?
5. pechenka1440 30.01.18 14:40 Сейчас в теме
(4) есть обработки, показывающие структуру базы.. ну то есть соответствие всяких объектов конфигурации табличкам в базе данных. но как я уже писал, для удобства вы можете создать отдельный регистр, который заполнять будете непосредственно в 1С через консоль запросов 1С.. а потом в представлении на сервере обращаться конкретно к этому регистру. это будет отдельная табличка в БД. не нужны будут всякие объединения и тп, конкретно одна таблица
7. spacecraft 30.01.18 15:01 Сейчас в теме
(4) есть прямая команда в 1С:
ПолучитьСтруктуруХраненияБазыДанных().
Там все наглядно.
Прикрепленные файлы:
СтруктураХраненияБазы.epf
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот