← На главную
Перевод инфраструктуры 1С на операционную систему Linux часто сопровождается неожиданными техническими трудностями. Особенно ярко это проявляется при переносе конфигураций предыдущих поколений (например, «Бухгалтерия предприятия» редакции 2.0 на обычных формах). Пользователи столкнутся с невозможностью открыть внешние печатные формы и обработки, ошибками печати машиночитаемых отчетов, а также сбоями параллельной работы. Рассмотрим подробнее, почему возникают эти неполадки, и разберем по шагам доступные способы их устранения.
1. Причины ошибки подключения внешних метаданных
Выясним причину, почему при попытке подключить внешнюю печатную форму или отчет программа выдает сообщение: «Ошибка при вызове метода контекста (Создать). Ошибка подключения внешних метаданных: некорректные данные для конвертации».
- Несовместимость платформ и разрядности: Внешние отчеты (файлы
.epf и .erf), созданные под платформу 1С:Предприятие 8.2 или сохраненные в старом режиме совместимости, не могут быть корректно скомпилированы native-клиентом 1С для Linux (особенно 64-разрядной версией). При переносе базы с Windows на Linux происходит сброс или изменение контекста выполнения, из-за чего механизм десериализации метаданных завершается ошибкой.
- Права доступа к временным каталогам ОС Linux: При открытии внешней обработки платформа 1С распаковывает ее содержимое во временный каталог системы (например,
/tmp или каталог сеанса пользователя). Если у учетной записи Linux нет прав на чтение, запись или исполнение файлов в этой директории, создание объекта метаданных сбойнет.
- Искажение файлов при сетевом копировании: Если файлы отчетов переносились между системами Windows и Linux через общие сетевые каталоги без сохранения бинарного режима или с нарушением кодировок, структура внутреннего контейнера обработки повреждается.
2. Проблемы с печатью регламентированных отчетов и штрихкодов
Проанализируем ситуация с печатью двухмерных штрихкодов (PDF417, QR) и регламентированной отчетности из «Бухгалтерии предприятия 2.0» под Linux.
- Зависимость от Windows-компонент (ActiveX / COM): В конфигурации «Бухгалтерия предприятия 2.0» генерация штрихкодов реализована с использованием Windows-специфичной компоненты
1C:BarCode через технологии ActiveX и COM. В операционных системах Linux нативный запуск COM-объектов невозможно выполнить, поэтому печать выводит ошибки или формирует формы без штрихкодов.
- Отсутствие необходимых шрифтов: Для формирования бланков отчетности в Linux должны быть установлены базовые шрифты TrueType (Arial, Times New Roman), а также специализированный шрифт
EANGNIVC. При их отсутствии в системе корректный вывод печатных форм становится невозможным.
3. Особенности работы файловой базы 1С под Linux и блокировки
Разберем, почему работа нескольких пользователей с файловой базой (1Cv8.1CD), размещенной на Linux-сервере, приводит к сбоям и завершению сеансов.
- Конфликты блокировок в файловой системе Samba (SMB): При размещении файла базы данных в сетевом ресурсе Samba механизмы блокировки Linux не всегда корректно обрабатывают блокировки диапазонов байт, запрашиваемые платформой 1С. В результате один пользователь не может заблокировать запись для остальных, либо возникают задержки и разрушение структуры базы. Полноценная многопользовательская работа с файловой базой через сетевой ресурс на Linux официально фирма 1С не поддерживается.
- Использование среды WINE@Etersoft: Если необходимо сохранить файловый режим и работу конфигурации 2.0, одним из вариантов решения является запуск Windows-версии 1С с использованием эмуляционного слоя WINE. Это позволяет сохранить поддержку ActiveX-компонент и корректную работу файловых блокировок.
- Публикация файловой базы на веб-сервере: Позволяет организовать доступ пользователей через Apache или Nginx. Однако стоит учитывать, что «Бухгалтерия предприятия 2.0» построена на обычных формах, которые не поддерживают работу через веб-клиент. В этом режиме возможна работа только тонкого клиента с ограниченным функционалом.
4. Переход на БП 3.0 и организация работы в клиент-серверном режиме
Посмотрим на наиболее эффективный и стабильный вариант организации работы 1С в Linux-окружении.
- Обновление конфигурации до «Бухгалтерии предприятия 3.0»: В новой редакции 3.0 используется управляемый интерфейс и библиотека стандартных подсистем. Печать штрихкодов переведена на кроссплатформенный механизм Native API, что полностью устраняет проблему с COM-объектами в Linux.
- Перевод базы на клиент-серверный режим (1С + PostgreSQL): Для работы под Linux рекомендуется развернуть сервер 1С:Предприятие в связке с СУБД PostgreSQL. Данное решение полностью снимает любые проблемы файловых блокировок, обеспечивая высокую скорость работы при закрытии месяца и проведении документов.
- Настройка обмена с 1С:ЗУП: При использовании конфигураций БП 3.0 и ЗУП 3.1 обмен данными выполняется через веб-сервисы или сценарии синхронизации данных. Для этого достаточно опубликовать одну из баз (или обе) на веб-сервере Apache/Nginx, установленном на Linux-сервере.
- Лицензирование сервера 1С: Для работы службы сервера 1С (
ragent) под Linux требуется приобретение официальной лицензии на сервер 1С (стандартной или «Сервер МИНИ на 5 подключений»). Бесплатных вариантов работы полноценного сервера 1С под Linux для коммерческого использования не существует.