Подключение вашей 1С
Чтобы строить отчётность, нам нужен доступ к базе на чтение. Настройка занимает от пятнадцати минут до часа — смотря где живёт база. Менять конфигурацию не нужно: мы работаем через стандартный интерфейс, который уже есть в вашей 1С.
С чего начать
Дальше три сценария. Выберите тот, что описывает вашу базу — откроется нужная инструкция. Если не знаете, какой ваш, посмотрите, как вы открываете 1С: в браузере по ссылке — это облако; ярлыком на рабочем столе — файловая или клиент-серверная.
Облако 1С:Фреш и аренда 1С
Самый простой случай: веб-сервер уже есть, публиковать ничего не нужно. Всё, что требуется, делается внутри самой 1С пользователем с полными правами.
Включить интерфейс OData
В 1С откройте меню:
Администрирование → Синхронизация данных → Настройки стандартного интерфейса OData
В части конфигураций этот пункт лежит в разделе Настройки вместо Администрирования. Если пункта нет вовсе — напишите нам, подскажем, где искать в вашей версии.
Завести служебного пользователя
На вкладке Авторизация создайте пользователя — например,
finhub_reader. Роль «УдалённыйДоступOData» назначится сама.
Пользователь должен быть отдельным, а не вашим рабочим. В журнале базы будет видно, что делала программа, а что человек; и если доступ понадобится закрыть, это не затронет живых сотрудников.
Отметить объекты на вкладке «Состав»
Пока объект не отмечен, для нас он не существует — по умолчанию не отмечено ничего. Список — ниже на этой странице.
Если какого-то объекта в списке нет — отметьте остальные и напишите нам. Проверим и скажем, чего не хватает: у разных конфигураций состав отличается.
Прислать адрес базы
Скопируйте адрес из адресной строки браузера, когда база открыта. Он выглядит примерно так:
https://1cfresh.com/a/accounting/12345
Логин и пароль пришлите отдельно от адреса — не в том же сообщении и лучше не по электронной почте. Мессенджер или звонок надёжнее.
Файловая база на сервере или компьютере
Случай, где работы больше всего, и вот почему. Файловая база — это просто файл
1Cv8.1CD на диске; сама по себе она ничего наружу не отдаёт. Интерфейс
OData публикует не 1С, а веб-сервер, поэтому его нужно поставить
и настроить рядом с базой. Один раз.
Поставить веб-сервер рядом с базой
Подойдёт Apache 2.4 (бесплатный, обычный выбор для Windows-сервера) или штатный IIS. Ставить нужно на ту же машину, где лежит файл базы: файловую базу публикуют только локально.
Опубликовать базу
.\tunnel-setup.ps1 -Step publish -DbName "часть названия базы" -Name latinskoe_imya.
Он же выдаст права на каталог базы и включит стандартный интерфейс OData.
Вручную: запустите конфигуратор от имени администратора и откройте:
Администрирование → Публикация на веб-сервере
В окне публикации:
- задайте имя публикации латиницей, например
buh; - убедитесь, что выбран нужный веб-сервер и каталог;
- поставьте галочку «Публиковать стандартный интерфейс OData» — это ключевой пункт, без него доступ не появится;
- нажмите Опубликовать и согласитесь на перезапуск веб-сервера.
Проверить можно прямо на сервере — открыть в браузере:
http://localhost/buh/odata/standard.odata
Должен появиться запрос логина и пароля, а после ввода — страница с перечнем объектов. Если так и произошло, самое сложное позади.
Открыть доступ снаружи
Наш сервер должен дотянуться до вашего. Выберите то, что принято у вас:
- Проброс порта с ограничением по адресу. На маршрутизаторе пробрасывается 443-й порт, и доступ разрешается только с нашего адреса:
159.194.252.19
- VPN. Надёжнее и чаще принято в компаниях с админом: выдайте нам доступ в вашу сеть, наружу открывать ничего не придётся.
Нужен сертификат HTTPS. Если своего нет — подойдёт бесплатный Let's Encrypt; подскажем, как выпустить.
Завести пользователя и отметить объекты
Дальше — как в облаке: служебный пользователь только для нас и отметки на вкладке «Состав». Список объектов — ниже.
В файловой базе настройки OData открываются в самой 1С: Администрирование → Синхронизация данных → Настройки стандартного интерфейса OData.
Прислать нам адрес
Адрес складывается из вашего внешнего имени и имени публикации:
https://ваш-адрес/buh/odata/standard.odata
Логин и пароль — отдельным сообщением, не вместе с адресом.
Что нужно знать про файловую базу заранее
.dt — веб-публикация перестаёт отвечать. Это нормально: мы
повторим попытку позже, синхронизация не сломается. Но если такие работы идут
ночами, скажите нам — сдвинем расписание.
Ещё одно: файловая база чувствительна к нагрузке сильнее серверной, поэтому мы намеренно ходим редко — не больше пяти запросов в секунду. Первая выгрузка поэтому идёт несколько часов, зато работе в базе не мешает.
Клиент-серверная база
Промежуточный случай: сервер 1С:Предприятие уже есть, но интерфейс OData всё равно публикует веб-сервер. Разница с файловой базой в том, что веб-сервер можно поставить на любую машину сети — не обязательно на ту, где база.
Проверить, нет ли публикации уже
Часто база уже опубликована — для веб-клиента или мобильного приложения. Тогда достаточно открыть публикацию в конфигураторе и добавить галочку «Публиковать стандартный интерфейс OData».
Опубликовать, если публикации нет
Конфигуратор → Администрирование → Публикация на веб-сервере, имя публикации латиницей, галочка OData, кнопка «Опубликовать».
Открыть доступ, завести пользователя, отметить объекты
Шаги 3–5 из инструкции для файловой базы — они одинаковы. Ограничение доступа по адресу или VPN так же обязательны.
Если белого адреса нет
Обычный офисный интернет постоянного адреса не имеет: провайдер выдаёт его на время, а компьютер стоит за маршрутизатором. Пробрасывать порт в такой сети либо нечего, либо адрес меняется, и доступ отваливается.
Для этого случая есть туннель. Ваш компьютер сам подключается к нашему серверу и отдаёт ему доступ к своему веб-серверу — как исходящее соединение, ничем не отличающееся от открытой в браузере страницы. Наружу при этом не открывается ни один порт, и настраивать маршрутизатор не нужно вовсе.
Как это делается
Опубликовать базу локально
Шаги 1–2 из инструкции для файловой базы: веб-сервер
и публикация. Проверка та же — http://localhost/buh/odata/standard.odata
должен спросить пароль. Наружу пока ничего не открываем.
Скачать и запустить наш скрипт
Скачайте скрипт и запустите PowerShell от имени администратора. Проверка покажет, всё ли на месте: разрядность 1С, веб-сервер, клиент SSH, работает ли публикация.
Set-ExecutionPolicy -Scope Process Bypass. Это действует
только в текущем окне PowerShell и настройки машины не меняет.
cd C:\путь\где\лежит\скрипт
.\tunnel-setup.ps1 -Step check
Создать ключ и прислать нам его открытую половину
.\tunnel-setup.ps1 -Step key
Скрипт покажет строку, начинающуюся с ssh-ed25519. Пришлите
её нам — она не секретна, войти по ней никуда нельзя. Закрытая половина
остаётся у вас и никуда не отправляется.
Включить туннель
В ответ мы пришлём номер порта. Дальше одна команда:
.\tunnel-setup.ps1 -Step service -RemotePort 18201
Туннель поднимется и будет включаться сам при перезагрузке компьютера.
Проверить состояние в любой момент:
.\tunnel-setup.ps1 -Step status, отключить —
-Step remove.
Что мы читаем
Эти объекты нужно отметить на вкладке «Состав». Ничего сверх списка мы не запрашиваем, и всё — только на чтение.
Регистр «Хозрасчетный» — главный: из него берутся проводки, а значит и вся отчётность. Без него подключение бессмысленно, остальное можно добирать по ходу.
Безопасность
- Только чтение. Роль «УдалённыйДоступOData» не позволяет изменять данные. Даже если наш сервер взломают, записать в вашу базу через этот доступ нельзя.
- Пароль хранится зашифрованным. Ключ шифрования лежит отдельно от базы данных. В журналы работы пароль не попадает ни при каких обстоятельствах, включая сообщения об ошибках.
- Данные не покидают Россию. Сервер в Санкт-Петербурге, как требует 152-ФЗ.
- Доступ отзывается одним действием. Отключите служебного пользователя в 1С — и мы больше ничего не получим. Предупреждать нас не обязательно.
- Видно, кто и что смотрел. Каждое обращение к данным и каждая выгрузка пишутся в журнал доступа, который нельзя изменить задним числом.
Если не получилось
Страница OData просит пароль, но не принимает верный
Обычно дело в том, что служебный пользователь заведён в базе, но интерфейс OData для него не включён — проверьте вкладку «Авторизация» в настройках стандартного интерфейса, пользователь должен быть в списке.
Публикация прошла, а страница отдаёт ошибку
Чаще всего — несовпадение разрядности 1С и веб-сервера либо у службы веб-сервера нет прав на каталог базы. Оба случая описаны в инструкции для файловой базы.
Часть объектов недоступна
Так и должно быть на первом подключении: состав отмечают вручную. Мы проверяем доступ до того, как что-то заводим, и присылаем точный список того, что нужно доотметить.
Ничего не помогло
Напишите — разберёмся вместе. Подключение чужой базы почти всегда упирается в мелочь, которую быстрее найти вдвоём, чем описать в инструкции.
Что прислать нам в итоге
- Адрес базы целиком — от
https://до/odata/standard.odata. - Логин служебного пользователя и пароль — отдельным сообщением.
- Название организации и ИНН, если в базе их несколько и нужна не вся.
- Систему налогообложения и с какого месяца мы ведём учёт.