Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как отправить из файловой базы на sql/pgsql сервер некоторые данные
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
cartorys
Задача следующая.
Есть файловая база, самописная конфигурация (кассовое место). Нужно выгружать из нее продажи на удаленный транзитный sql/pgsql сервер в интернете.
Например, передать таблицу с продажами запросом.
Что можете посоветовать под эту задачу? Клиент, компонента, com сервер?..
Спасибо.
logist
Если связь с удаленным сервером стабильная то можно из 1С писать в базу через комобъект ADODB.Connection
Мичман Харитонов
А насколько большой объем данных передается?
Возможно, есть смысл перегружать через файл XML?
cartorys
На сервер должны отправляться чеки продаж (мизерный объем). А с сервера будет загружаться номенклатура с ценами/остатками.
Насчет XML/CSV/TXT - вариант, но, все же, хочеться реализовать с помощью БД. В этом случае нужно еще будет решить вопрос передачи файлов (FTP/ISCSI/облачное хранилище и т.д. Хорошо, если касса одна или их 10. А когда их будет 100+?
Есть 2 варианта, которые позволят избежать задержек в случае лагов или отвала интернета:
1С файловая БД <-> локальный сервер sql/pgsql <-> транзитный сервер в интернете.
1С файловая БД в фоновом режиме <-> транзитный сервер в интернете.
sava1
Так чем АДО не подходит? - никаких прослоек - прямая запись/чтение таблиц СКЛ ?
logist
Цитата(cartorys @ 05.12.16, 14:24) необходимо зарегистрироваться для просмотра ссылки
1С файловая БД <-> локальный сервер sql/pgsql <-> транзитный сервер в интернете.

Плюсану за этот вариант. Более надежно.
Vofka
Цитата(logist @ 05.12.16, 17:18) необходимо зарегистрироваться для просмотра ссылки
Плюсану за этот вариант. Более надежно.

Более надежно, чем что и почему?
cartorys
Цитата(sava1 @ 05.12.16, 13:43) необходимо зарегистрироваться для просмотра ссылки
Так чем АДО не подходит? - никаких прослоек - прямая запись/чтение таблиц СКЛ ?

Подходит. Хочется разнообразия, для того чтобы выбрать лучший вариант.
Цитата(Vofka @ 05.12.16, 17:43) необходимо зарегистрироваться для просмотра ссылки
Более надежно, чем что и почему?

В данном случае 1С файловая выгружает чеки с помощью ADODB (например) на локальный (находящийся на той же машине-кассе) сервер с микроскопической pgsql базой в пару-тройку таблиц. А уже последняя выгружает на транзитный сервер в интернете. И работа 1С не зависит от наличия/стабильности интернета.
Опять же, ИМХА.
Фоновый сеанс 1С, по непонятным мне причинам, пожирает много ресурсов... А клиенты (кассы) я использую на базе microITX via800MHz 512RAM. Без фонового - 8.2 летает.
Почему бы использовать sql версию базы? Все просто, файловая конфа уже написана и работает smile.gif
Acid
cartorys @ Вчера, 20:37 необходимо зарегистрироваться для просмотра ссылки ,
Че то я не понял... Сначала вы спрашиваете как реализовать, а потом вы рассказываете как круто у вас все работает.
Vofka
cartorys, вариант с транзитной SQL базой мне лично не нравится по той причине, что это звено заметно усложняет решение в целом. А каких-то существенных плюсов, в данном случае, я от этого не вижу.

Цитата(cartorys @ 05.12.16, 20:37) необходимо зарегистрироваться для просмотра ссылки
И работа 1С не зависит от наличия/стабильности интернета.

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

Цитата(Acid @ 06.12.16, 9:25) необходимо зарегистрироваться для просмотра ссылки
Фоновый сеанс 1С, по непонятным мне причинам, пожирает много ресурсов...

Можно подробнее?
cartorys
Цитата(Acid @ 06.12.16, 9:25) необходимо зарегистрироваться для просмотра ссылки
cartorys @ Вчера, 20:37 ,
Че то я не понял... Сначала вы спрашиваете как реализовать, а потом вы рассказываете как круто у вас все работает.

Работает конфигурация с обменом с помощью csv в локальной сети. Хочу реализовать через БД.
Цитата(Vofka @ 06.12.16, 10:10) необходимо зарегистрироваться для просмотра ссылки
вариант с транзитной SQL базой мне лично не нравится по той причине, что это звено заметно усложняет решение в целом. А каких-то существенных плюсов, в данном случае, я от этого не вижу.

Изначально идея транзитной БД - безопасность рабочей базы 1С УТП. То есть: касса <> тразитный сервер <> УТП.
Далее, у нас рабочая база тоже файловая. Переходить на sql пока не планируем. Наконец, я пока не настолько крут, чтобы со стороны клиента разграничить доступ.
Цитата(Vofka @ 06.12.16, 10:10) необходимо зарегистрироваться для просмотра ссылки
Можно подробнее?

Чуть позже опишу подробно.
Vofka
Цитата(cartorys @ 06.12.16, 12:12) необходимо зарегистрироваться для просмотра ссылки
Изначально идея транзитной БД - безопасность рабочей базы 1С УТП. То есть: касса <> тразитный сервер <> УТП.

Что вам дает промежуточная БД, в данном случае? В чем заключается безопасность? Может я чего-то не понимаю просто.
cartorys
Цитата(Vofka @ 06.12.16, 14:27) необходимо зарегистрироваться для просмотра ссылки
Что вам дает промежуточная БД, в данном случае? В чем заключается безопасность? Может я чего-то не понимаю просто.

Хорошо. Копаем глубже.

Для начала, полная модель выглядит так: 1с файловая база (касса) <> локальный sql сервер <> транзитный sql сервер на vps <> сервер 1С с файловой базой.
Если я решу вопрос с фоновыми задачами, то в локальном sql сервере необходимость отпадает. Так же на клиенте (кассе) можно установить sql версию 1С, но хорошая ли это идея?

В идеале между клиентом (кассой) и сервером 1С должен быть VPN. Но, поскольку ситуации (клиенты, бюджеты) бывают разные, хочется реализовать универсальную модель.
Если VPN'а нет, подключатся к серверу нужно будет по статическому IP (сервера) или ddns. В этом случае можно элементарно задедосить сервер.
В случае с транзитным сервером - задедосят его, основной сервер 1С будет жить.
Опять же, на сервере файловая 1С. Я не представляю простого способа удаленно подключатся напрямую к файловой базе.
Acid
cartorys @ Сегодня, 18:11 необходимо зарегистрироваться для просмотра ссылки ,
Про стандартную функцию "Обмен данными" слышали?
sava1
Цитата(cartorys @ 06.12.16, 18:11) необходимо зарегистрироваться для просмотра ссылки
можно элементарно задедосить сервер.


Вы из ЦРУ, Пентагона или ГАВнюков. Кто будет дедосить какую-то "хрень с аипишником".
Есть ощущение - "хочу установить на свой Запорожец крутую сигналку с ЖПС замком, а то ведь угнать могут..."
cartorys
Цитата(Acid @ 06.12.16, 19:42) необходимо зарегистрироваться для просмотра ссылки
Про стандартную функцию "Обмен данными" слышали?

Вы говорите про типовой механизм? Про него слышал. На всякий случай копну.
Но конфигурация то самописная, так что, или переносить типовое решение, или писать свое.
Цитата(sava1 @ 06.12.16, 20:05) необходимо зарегистрироваться для просмотра ссылки
Вы из ЦРУ, Пентагона или ГАВнюков. Кто будет дедосить какую-то "хрень с аипишником".
Есть ощущение - "хочу установить на свой Запорожец крутую сигналку с ЖПС замком, а то ведь угнать могут..."

Ох, в нашей стране лучше быть параноиком...
Batchir
Добавлю что-то новенькое в обсуждении универсальности решения:
1. В базе удаленного сервера разрабатываем web-сервис (http-сервис)
2. Разворачиваем (если не развернут) web-сервер и публикуем этот сервис.
3. В торговой конфе пишем обращение к веб-сервису: передаем/получаем необходимые данные.

Что имеем (первое что в голову пришло):
1. Никакого впн нет. Доступ к веб-серверу дело рук администратора веб-сервера.
2. Универсальность решения на стороне сервера. Операции можно вызывать из любой конфигурации, правда нужно писать работу с ними в каждой новой конфигурации-клиенте.
3. Онлайн обмен. Результат выполнения можно сразу узнать. Сервер вернет всю необходимую информацию.
4. Нет никаких фоновых 1С-ок. Обмен только по необходимости.
5. Ваша схема перерастает в более простую с меньшим количеством узлов: 1с база (касса) <> web-сервер <> 1с база (центральная)
Vofka
То, что написал Batchir соответствует и моему представлению о решении данной задачи. Сегодня web сервисы это уже не экзотика, а стандарт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.