Рано или поздно перед каждым администратором и разработчиком систем на базе «1С:Предприятие» встает вопрос обновления технологической платформы. Переход на новый релиз — это всегда баланс между необходимостью использовать новые возможности конфигураций и рисками столкнуться с критическими багами, нарушающими непрерывность бизнес-процессов.
В рамках данной статьи мы подробно разберем практический опыт перехода между ветками 8.3.13, 8.3.14, 8.3.15 и 8.3.16. Мы проанализируем, какие релизы зарекомендовали себя как наиболее стабильные, с какими скрытыми проблемами можно столкнуться при администрировании и как решить известные баги платформы, связанные с печатью на принтерах HP и поведением интерфейса обычных форм.
Рассмотрим платформу 8.3.13. Долгое время сборки этой ветки, такие как 8.3.13.1690 и 8.3.13.1926, оставались надежным решением для многих системных администраторов. Они обеспечивали стабильную работу как небольших файловых баз, так и крупных корпоративных информационных систем в клиент-серверном варианте.
Однако оставаться на этой платформе бесконечно невозможно. Основная причина вынужденного апгрейда — требования Библиотеки Стандартных Подсистем (БСП) и современных типовых конфигураций. Например, новые релизы «1С:Зарплата и Управление Персоналом» (начиная с ветки 3.1.12 и выше) или «1С:Бухгалтерия предприятия» жестко требуют платформу не ниже 8.3.14. Если вовремя не обновить движок, конфигуратор попросту заблокирует возможность обновления структуры базы данных при установке очередного релиза конфигурации.
Разберем ключевые архитектурные изменения ветки 8.3.14. Эта версия принесла множество оптимизаций во внутренние механизмы платформы.
Во-первых, разработчики 1С отказались от термина «Управляемое приложение» в пользу «Клиентского приложения». Соответственно, во встроенном языке тип данных УправляемаяФорма теперь называется ФормаКлиентскогоПриложения. Это важный шаг в сторону унификации терминологии.
Во-вторых, полноценный 64-разрядный клиент для операционной системы Windows вышел из стадии бета-тестирования. Это критически важно для пользователей, работающих с тяжелыми локальными отчетами, так как x64-клиент позволяет обойти ограничение по оперативной памяти в 2 ГБ, полностью исключая аварийные завершения работы программы с ошибкой «Недостаточно памяти» на стороне пользователя.
В-третьих, появились новые механизмы повышения отказоустойчивости и масштабируемости:
Среди стабильных релизов этой ветки, подтвержденных практикой крупных компаний (с нагрузкой более 700 активных пользователей), пользователи выделяют сборки 8.3.14.1565, 8.3.14.1854 и 8.3.14.1976. Они демонстрируют отличную стабильность как под управлением ОС Windows, так и на серверах Linux.
Перейдем к ветке 8.3.15. Здесь мы видим серьезные изменения в интерфейсе «Такси». Разработчики полностью убрали привычную верхнюю панель инструментов, объединив все сервисные функции (калькулятор, календарь, поиск, избранное, история) в единую шапку приложения. Появился удобный «Глобальный поиск», позволяющий искать информацию по метаданным, текстам документов, обсуждать задачи в системе взаимодействия и даже выполнять простые математические расчеты прямо в поисковой строке.
Для разработчиков революционным событием стало появление директивы компиляции &ИзменениеИКонтроль в механизме расширений конфигурации. Рассмотрим типичный шаблон её использования:
&Вместо("РассчитатьСкидку")
&ИзменениеИКонтроль("РассчитатьСкидку")
Процедура Моя_РассчитатьСкидку(ДокументСсылка)
// Оригинальный код метода, контролируемый платформой при обновлении
#Вставка
// Наш доработанный алгоритм, который внедряется точечно
Если ДокументСсылка.СуммаДокумента > 100000 Тогда
ПроцентСкидки = 10;
КонецЕсли;
#КонецВставки
КонецПроцедуры
Эта директива существенно упростила сопровождение кастомизированных баз, так как при обновлении типовой конфигурации платформа сама предупреждает разработчика, если контролируемый участок кода в основной конфигурации изменился.
Среди стабильных релизов ветки 8.3.15 отлично показала себя сборка 8.3.15.1656 (именно на ней остановились многие администраторы, подтвердив успешную эксплуатацию в течение длительного времени), а также последующий технический релиз 8.3.15.1700.
Однако в 8.3.15 проявился неприятный баг юзабилити: при повторном открытии («переоткрытии») любой ранее закрытой формы фокус ввода (активация) на ней автоматически не устанавливается. Пользователям приходится совершать лишний клик мышью по форме, чтобы начать вводить данные, что вызывает закономерное раздражение при потоковой работе операторов.
Проанализируем платформу 8.3.16. Многие администраторы изначально назвали эту ветку «сырой» из-за критических проблем с печатью.
Суть проблемы заключалась в том, что при попытке распечатать документ или открыть форму предварительного просмотра система аварийно завершала работу или выдавала сообщение: «Ошибка при получении характеристик принтера».
Выясним причину этой ошибки. В версии 8.3.16 разработчики 1С переработали подсистему взаимодействия с операционной системой в части печати, вынеся опрос драйверов во внешние изолированные процессы 1cv8p32.bin и 1cv8p64.bin. Это было сделано для повышения общей отказоустойчивости сервера при сбоях печати, но на практике привело к жестким конфликтам с драйверами принтеров (особенно линеек HP LaserJet 1018, 1020, 1022, M1132 MFP). Проблема усугублялась при использовании терминального доступа (RDP) с перенаправлением принтеров и при наличии русских букв в сетевых именах устройств.
Поскольку полноценное исправление этой проблемы появилось не сразу (лишь в поздних сборках, таких как 8.3.16.1030 и выше), системные администраторы выработали эффективные методы обхода данного бага:
1cv8p32.bin и 1cv8p64.bin в каталоге установленной платформы 8.3.16 аналогичными файлами, скопированными из стабильного каталога bin платформы 8.3.15. Это возвращало старый, стабильный механизм взаимодействия с очередью печати ОС без необходимости даунгрейда всей платформы.Рассмотрим еще один давний баг интерфейса, который особенно обострился в версиях 8.3.14 и 8.3.15 при работе с Обычными формами (ОФ). Пользователи часто сталкиваются с тем, что окна обычных форм можно случайно «утащить» за доступные границы общего окна приложения (сверху или снизу), после чего они визуально пропадают с экрана.
Проблема зародилась еще в релизе 8.3.11 после глобальной переработки отрисовки интерфейсного слоя платформы. Ситуацию усложняет повсеместное внедрение операционных систем Windows 10/11 на рабочих станциях с мониторами высокого разрешения (Ultra HD, 4K). При использовании системного масштабирования экрана (например, 125% или 150%) привязки элементов интерфейса в обычных формах начинают вести себя непредсказуемо. Формы могут открываться полностью свернутыми, сползать под панель задач или открываться на виртуальных координатах за пределами видимости пользователя (особенно часто это происходит в многомониторных конфигурациях при отключении одного из дисплеев).
Выясним, как эффективно бороться с этой проблемой на практике:
/ClearCache, либо удалить файлы настроек в каталоге %APPDATA%\1C\1Cv8 на локальном компьютере пользователя.Посмотрим на общие итоги обсуждения и сформулируем практические рекомендации по выбору платформы для перехода:
8.3.14.1565 или 8.3.14.1854. В них минимизированы интерфейсные баги с потерей фокуса окон.8.3.15.1656 или 8.3.15.1700). Новые инструменты разработки, такие как директива &ИзменениеИКонтроль, полностью окупят этот переход.8.3.16.1030) и будьте готовы превентивно применить инструкции по устранению потенциальных ошибок печати.Помните, что перед обновлением платформы в продуктивной среде крайне важно провести полное резервное копирование баз данных и развернуть тестовый контур для проверки ключевых бизнес-сценариев.