При переходе на новые конфигурации или старте проектов внедрения, таких как 1С:ERP Управление предприятием 2.5, перед системными администраторами и программистами всегда встает критически важный вопрос: какую версию платформы выбрать для стабильной работы? С одной стороны, новые релизы конфигураций требуют современных версий платформы. С другой — новые платформы часто приносят с собой непредвиденные системные баги, способные парализовать работу пользователей.
В этой статье мы подробно рассмотрим, как правильно подходить к выбору версии платформы, разберем значение термина «зеленая» платформа, проанализируем системные требования 1С:ERP 2.5, а также разберем по шагам известную проблему аварийного завершения работы 1С при печати на принтеры Kyocera в терминальных сессиях.
В профессиональном сообществе 1С часто можно услышать рекомендацию: «Ставь зеленую!». Выясним причину возникновения этого сленгового выражения и что оно означает на практике.
Этот термин напрямую связан с оформлением официального портала обновлений фирмы «1С» (releases.1c.ru). Для удобства пользователей разработчики разделяют все выпускаемые релизы платформы по цветам:
Рассмотрим подробнее ситуацию, описанную в теме. Коллеги планируют запуск новой системы 1С:ERP на релизе 2.5.3 и задаются вопросом, подойдет ли для работы платформа ветки 8.3.14 (в частности, релиз 8.3.14.1976).
На ранних ознакомительных и тестовых версиях ветки ERP 2.5 действительно действовал минимальный порог платформы 8.3.14.1854 с режимом совместимости Версия 8.3.12. Однако попытка остаться на платформе 8.3.14 в долгосрочной перспективе — это тупиковый путь. Проанализируем эволюцию системных требований при развитии ERP 2.5:
8.3.14.Версия 8.3.14, что сделало использование старых платформ невозможным. Минимальные требования сдвинулись к платформе 8.3.15, а рекомендуемые — к 8.3.16.8.3.17.2306 (с рекомендацией перехода на ветки 8.3.21 и выше).Вывод: если вы запускаете проект на ERP 2.5, не пытайтесь искусственно удерживать систему на старых версиях платформ вроде 8.3.14. Рано или поздно при первом же плановом обновлении конфигурации вам придется обновить и платформу. Поэтому ориентироваться стоит на актуальные стабильные («зеленые») релизы платформ, рекомендованные для текущего релиза вашей ERP.
Переходя на современные платформы (начиная с линеек 8.3.15 и 8.3.16), многие администраторы столкнулись с неприятным сюрпризом: программа 1С самопроизвольно закрывается или выдает ошибку «Ошибка при получении характеристик принтера» при попытке отправить документ на печать или открыть свойства страницы. Это происходило именно в терминальных сессиях (RDP) при использовании принтеров марки Kyocera.
Выясним причину этой проблемы. Начиная с версии 8.3.15, разработчики 1С существенно изменили внутренние механизмы взаимодействия платформы с подсистемой печати операционной системы Windows. Платформа стала отправлять более детальные запросы к драйверам принтера через Windows API для получения полной структуры поддерживаемых форматов бумаги и разрешений печати.
При работе в терминальном режиме через RDP со сквозным пробросом принтеров стандартный «родной» драйвер Kyocera (особенно популярный универсальный драйвер Kyocera KX Driver) некорректно обрабатывает эти низкоуровневые запросы от 1С. В результате переполнения буфера или передачи неверных указателей драйвер вызывает критический сбой, который «роняет» весь процесс 1cv8.exe у пользователя.
Если в вашей инфраструктуре используются принтеры Kyocera и терминальные сервера, а платформа обновлена до версий 8.3.15, 8.3.16 или выше, воспользуйтесь следующими проверенными способами устранения сбоев.
Это самый надежный и рекомендуемый способ, который полностью решает проблему без необходимости понижения версии платформы 1С. Посмотрим на алгоритм действий:
Использование PostScript-драйверов исключает передачу специфических структур данных, которые приводили к падению платформы 1С.
В ряде релизов платформы 1С сбой печати также провоцировался наличием русских букв в сетевом имени принтера или в имени перенаправленного порта в терминальной сессии.
Переименуйте принтеры на локальных компьютерах и на сервере печати, используя исключительно латинские символы и цифры (например, вместо Бухгалтерия_Kyocera задайте имя Buh_Kyocera_FS2100).
Платформа 1С сохраняет индивидуальные параметры печати для каждого табличного документа в разрезе пользователей. Если принтер сбоил, некорректные параметры могли записаться в системное хранилище настроек базы данных, из-за чего 1С продолжит вылетать даже после обновления драйверов.
Чтобы сбросить старые настройки печати, мы можем воспользоваться как интерактивными средствами, так и написать небольшую обработку. Посмотрим на пример кода, позволяющего программно очистить кэш настроек печати табличных документов для всех пользователей в базе данных:
// Программная очистка кэшированных настроек печати для всех пользователей
Процедура ОчиститьНастройкиПечатиНаСервере() Экспорт
// Получаем список всех зарегистрированных пользователей информационной базы
ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого ПользовательИБ Из ПользователиИБ Цикл
// Настройки печати сохраняются в системном хранилище по ключу "Общее/НастройкиПечатиТабличныхДокументов"
Попытка
ХранилищеСистемныхНастроек.Удалить(
"Общее/НастройкиПечатиТабличныхДокументов",
Неопределено,
ПользовательИБ.Имя
);
ЗаписьЖурналаРегистрации(
"НастройкиПечати",
УровеньЖурналаРегистрации.Информация,
,
,
"Очищены настройки печати для пользователя: " + ПользовательИБ.Имя
);
Исключение
ЗаписьЖурналаРегистрации(
"НастройкиПечати",
УровеньЖурналаРегистрации.Ошибка,
,
,
"Ошибка очистки настроек для пользователя " + ПользовательИБ.Имя + ": " + ОписаниеОшибки()
);
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Также пользователи могут выполнить очистку настроек самостоятельно в режиме предприятия (при наличии соответствующих прав администратора) через меню «Администрирование» — «Настройки пользователей и прав» — «Очистить настройки печати».
Подводя итог нашего анализа, можно дать следующие рекомендации по развертыванию систем на базе 1С:ERP:
8.3.14 усложнит поддержку и сделает невозможным обновление системы в будущем.8.3.15 / 8.3.16 и выше. Заранее спланируйте перевод этих принтеров на универсальные драйверы класса KPDL/PostScript.