ФинЭксперт

Подключение вашей 1С

Чтобы строить отчётность, нам нужен доступ к базе на чтение. Настройка занимает от пятнадцати минут до часа — смотря где живёт база. Менять конфигурацию не нужно: мы работаем через стандартный интерфейс, который уже есть в вашей 1С.

Мы ничего не записываем в вашу базу. Служебному пользователю выдаётся роль только на чтение — провести документ, изменить справочник или удалить что-либо через этот доступ технически невозможно.

С чего начать

Дальше три сценария. Выберите тот, что описывает вашу базу — откроется нужная инструкция. Если не знаете, какой ваш, посмотрите, как вы открываете 1С: в браузере по ссылке — это облако; ярлыком на рабочем столе — файловая или клиент-серверная.

Облако 1С:Фреш и аренда 1С

Самый простой случай: веб-сервер уже есть, публиковать ничего не нужно. Всё, что требуется, делается внутри самой 1С пользователем с полными правами.

Включить интерфейс OData

В 1С откройте меню:

Администрирование → Синхронизация данных → Настройки стандартного интерфейса OData

В части конфигураций этот пункт лежит в разделе Настройки вместо Администрирования. Если пункта нет вовсе — напишите нам, подскажем, где искать в вашей версии.

Завести служебного пользователя

На вкладке Авторизация создайте пользователя — например, finhub_reader. Роль «УдалённыйДоступOData» назначится сама.

Пользователь должен быть отдельным, а не вашим рабочим. В журнале базы будет видно, что делала программа, а что человек; и если доступ понадобится закрыть, это не затронет живых сотрудников.

Пароль придумайте длинный и случайный — запоминать его не нужно, он вводится один раз при подключении.

Отметить объекты на вкладке «Состав»

Пока объект не отмечен, для нас он не существует — по умолчанию не отмечено ничего. Список — ниже на этой странице.

Если какого-то объекта в списке нет — отметьте остальные и напишите нам. Проверим и скажем, чего не хватает: у разных конфигураций состав отличается.

Прислать адрес базы

Скопируйте адрес из адресной строки браузера, когда база открыта. Он выглядит примерно так:

https://1cfresh.com/a/accounting/12345

Логин и пароль пришлите отдельно от адреса — не в том же сообщении и лучше не по электронной почте. Мессенджер или звонок надёжнее.

Файловая база на сервере или компьютере

Случай, где работы больше всего, и вот почему. Файловая база — это просто файл 1Cv8.1CD на диске; сама по себе она ничего наружу не отдаёт. Интерфейс OData публикует не 1С, а веб-сервер, поэтому его нужно поставить и настроить рядом с базой. Один раз.

Понадобится администратор. Шаги 1–3 делает тот, кто ставит программы на сервер и настраивает сеть, — бухгалтер их выполнить не сможет. Дальше всё как в облаке.

Поставить веб-сервер рядом с базой

Подойдёт Apache 2.4 (бесплатный, обычный выбор для Windows-сервера) или штатный IIS. Ставить нужно на ту же машину, где лежит файл базы: файловую базу публикуют только локально.

Разрядность должна совпадать. Модуль расширения веб-сервера у 1С отдельный для 32 и 64 бит. К 64-разрядной платформе 1С нужен 64-разрядный Apache — иначе публикация вроде бы проходит, а страница отдаёт ошибку без внятного объяснения.

Опубликовать базу

Если веб-сервер уже стоит (частый случай на серверах с IIS), публикацию делает наш скрипт одной командой — вручную ничего настраивать не придётся: .\tunnel-setup.ps1 -Step publish -DbName "часть названия базы" -Name latinskoe_imya. Он же выдаст права на каталог базы и включит стандартный интерфейс OData.

Вручную: запустите конфигуратор от имени администратора и откройте:

Администрирование → Публикация на веб-сервере

В окне публикации:

  • задайте имя публикации латиницей, например buh;
  • убедитесь, что выбран нужный веб-сервер и каталог;
  • поставьте галочку «Публиковать стандартный интерфейс OData» — это ключевой пункт, без него доступ не появится;
  • нажмите Опубликовать и согласитесь на перезапуск веб-сервера.

Проверить можно прямо на сервере — открыть в браузере:

http://localhost/buh/odata/standard.odata

Должен появиться запрос логина и пароля, а после ввода — страница с перечнем объектов. Если так и произошло, самое сложное позади.

Служба веб-сервера должна иметь доступ к каталогу базы. Apache по умолчанию работает от системной учётной записи, у которой прав на сетевую папку нет. Если база лежит на общем ресурсе, службе задают учётную запись с доступом к нему.

Открыть доступ снаружи

Наш сервер должен дотянуться до вашего. Выберите то, что принято у вас:

  • Проброс порта с ограничением по адресу. На маршрутизаторе пробрасывается 443-й порт, и доступ разрешается только с нашего адреса:
159.194.252.19
  • VPN. Надёжнее и чаще принято в компаниях с админом: выдайте нам доступ в вашу сеть, наружу открывать ничего не придётся.
Публиковать 1С в интернет без ограничений нельзя. Открытый всем адрес базы находят автоматические сканеры в течение суток и начинают перебирать пароли. Ограничение по адресу или VPN — обязательны, а обычный HTTP без шифрования не подходит: логин и пароль пойдут по сети открытым текстом.

Нужен сертификат 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, работает ли публикация.

Windows может не запустить скачанный скрипт: по умолчанию запрещены все, кроме подписанных. Разрешить на время сеанса — 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С и веб-сервера либо у службы веб-сервера нет прав на каталог базы. Оба случая описаны в инструкции для файловой базы.

Часть объектов недоступна

Так и должно быть на первом подключении: состав отмечают вручную. Мы проверяем доступ до того, как что-то заводим, и присылаем точный список того, что нужно доотметить.

Ничего не помогло

Напишите — разберёмся вместе. Подключение чужой базы почти всегда упирается в мелочь, которую быстрее найти вдвоём, чем описать в инструкции.

Что прислать нам в итоге

  1. Адрес базы целиком — от https:// до /odata/standard.odata.
  2. Логин служебного пользователя и пароль — отдельным сообщением.
  3. Название организации и ИНН, если в базе их несколько и нужна не вся.
  4. Систему налогообложения и с какого месяца мы ведём учёт.