Мы предлагаем использовать 1С на базе ОС Linux.
Что это дает?
- Не нужно думать про лицензии Microsoft Windows, платформа Linux бесплатная.
- Вы не будете ограничены на уровне железа как это любит делать Microsoft, в Linux доступно все , что у Вас есть.
- Надежность работ ОС Linux существенно превосходит Microsoft.
- Терминальные решения под Linux бесплатны, в отличии от microsoft, ведь Вам придется задуматься о том, как людям работать с Ваше базой. Например терминальный сервер FreeNX или X2go .
- В качестве сервера базы данных используем PostgreSQL , который является отличной альтернативой Microsoft.
На текущий момент компания 1С полностью поддерживает работу своей программы на ОС Linux. Однако это не освободит Вас от лицензирования самого продукта 1С.
Здесь приведены основные вопросы, касающиеся лицензирования программы 1с .
Администрирование программы 1с
Для администрирования кластера 1с можно использовать штатный функционал, но тут есть нюанс, под ОС Linux нет графической утилиты, он доступен только под ОС Windows, однако наши клиенты могут купить модуль расширения для системы СКАРИС и полноценно управлять кластером 1с из графического модуля СКАРИС, в web интерфейсе.
Управление сессиями пользователей
На текущий момент большим неудобством является эксплуатация нескольких серверов 1C, так как консоль управления способна работать только с одним
сервером, т.е для управления вторым сервером требуется заходить на второй сервер и запускать вторую консоль администрирования кластера 1C,
в СКАРИС управление всеми серверами происходит из одного места и по протоколу https.
Используя модуль "Управление базами 1С" системы СКАРИС, Вы можете спокойно управлять (удалять) и отслеживать сессии пользователей на
разных серверах 1с.
Источники внешних данных
Очень часто возникает необходимость получения в 1с данных из других внешних систем. Решать этот вопрос можно по разному, например, использовать COM соединение или файлы xml, или обращение к внешним источникам данных.
В данном случае поговорим о том, что нам надо получить данные из программы, база данных которой располагается на сервере PostgreSQL.
К большому сожалению 1с не умеет работать напрямую с драйвером PG, поэтому обращение строится через создание ODBC подключения. Т.е. сначала мы подключаем на сервере новый ODBC коннектор, а потом внутри программы 1с обращаемся к данному коннектору.
В случае работы в ОС Linux соединение с базой на PGSQL описанной во внешнем источнике в конфигурации устанавливается с помощью метода УстановитьСоединение() с предварительным указанием параметров с помощью УстановитьПараметрыСоединенияСеанса() которому передаются ПараметрыСоединенияВнешнегоИсточникаДанных.
НашВнешнийИсточник = ВнешниеИсточникиДанных["ИмяНашегоВнешнегоИсточникаДанных"];
если НашВнешнийИсточник.ПолучитьСостояние() = СостояниеВнешнегоИсточникаДанных.Подключен тогда
//подключаться не требуется
иначе
ПараметрыСоединения = новый ПараметрыСоединенияВнешнегоИсточникаДанных;
ПараметрыСоединения.СтрокаСоединения = "driver={PSQL};server=*.*.*.*;port=****;database=Ourdatabase;";
ПараметрыСоединения.АутентификацияОС = ложь;
ПараметрыСоединения.ИмяПользователя = "Наш пользователь";
ПараметрыСоединения.Пароль = "пароль нашего пользователя";
ПараметрыСоединения.СУБД = "PostgreSQL";
вис_MOVE.УстановитьПараметрыСоединенияСеанса(ПараметрыСоединения);
вис_MOVE.УстановитьСоединение();
конецесли;
Далее данные отбираются из таблиц внешнего источника с помощью стандартного механизма запросов 1С.
Запрос = новый запрос("ВЫБРАТЬ
| ТаблицаВнешнегоИсточника.НужноеПолеТаблицы КАК НужноеПолеТаблицы
|ИЗ
| ВнешнийИсточникДанных.ИмяНашегоВнешнегоИсточникаДанных.Таблица.ТаблицаВнешнегоИсточника КАК ТаблицаВнешнегоИсточника
|ГДЕ
| ТаблицаВнешнегоИсточника.Дата >= &ДатаНачала и ТаблицаВнешнегоИсточника.Дата <= &ДатаОкончания");
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Для ускорения выполнения запросов их необходимо максимально упрощать, после чего полученные данные можно обрабатывать используя, например, таблицы значений и оперировать ими также в запросах. При слишком большом объеме запрашиваемых данных 1С закрывается с сообщением об ошибке и предложением перезагрузки программы. Для исключения подобных ситуаций например, при отборе данных из таблиц, где информация хранится в разрезе даты, можно указывать меньший период в запросе, и повторять запрос несколько раз, т.о. разбив общий период, в котором требуется получить информацию, на части.
Периоды = РаздробитьПериод(ДатаНачала,ДатаОкончания);
для каждого Период из Периоды цикл
FromDate = Период.ДатаНачала;
ToDate = Период.ДатаОкончания;
ПолученныеДанные = ВыполнитьЗапросКВнешнемуИсточнику(ДатаНачала,ДатаОкончания);
Используя данный механизм реализована загрузка документов и справочников стороних систем СУЗ и Движение, в виде двух внешних источников, подключение к которым происходит параллельно. Код вынесен в расширение, что позволяет распространять по базам и быстро обновлять изменения алгоритма. Исключение составляет только редактирование внешних источников, которое происходит непосредственно в конфигурации в каждой базе отдельно.
Методика переноса остатков с помощью конфигурации «Конвертация 2.1»
Администрирование серверов 1С на Linux посредством внешней обработки "Управление серверами"