Remkomplekty.ru

IT Новости из мира ПК
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ошибка инициализации графической подсистемы 1с

Ошибка «Инициализация графической подсистемы» в 1С

Данная ошибка, если сервер приложений 1С крутится на Linux, явление распространенное. Чтобы ее решить, достаточно перейти в директорию /opt/1C/v8.2/x86_64/utils, запустить скрипт config_server и доустановить необходимые пакеты, которые он укажет в своем выводе, после этого ошибка как правило исчезает. Но на этой неделе я столкнулся с ситуацией когда, точно все необходимые пакеты в системе были установлены, скрипт не выдавал ничего, а ошибка тем не менее возникала.

Начал ковырять:

  1. Для начала возникла мысль, что какой-то из пакетов поставился криво, решил переставить зависимости.
  2. После удаления очередного пакета, скрипт мне выдал более информативное сообщение, а именно:
    ./config_server: line 190: [: too many arguments
  3. Полез в сам скрипт, в 190 строке [ ! -e $aliasFullName ] && return 1 , т. е. здесь скрипт пытается проверить, существует ли файл с именем,
    сохраненным в переменной $aliasFullName — если нет, возвращает ошибку. В моем случае скрипт не мог нормально отработать, как я понял, из-за какой-то ошибки синтаксиса.
  4. Чтобы обойти, добавил в начало 190 строки echo === $aliasFullName ====
  5. Вывод скрипта сразу же изменился, он начал плевать мне строку:
    ==== Can’t detect SYSTEM_LIB_PATH, please set this environment variable manually!/libWand.so ====
    ==== Can’t detect SYSTEM_LIB_PATH, please set this environment variable manually!/libfreetype.so ====
    ==== Can’t detect SYSTEM_LIB_PATH, please set this environment variable manually!/libgsf-1.so ====
    ==== Can’t detect SYSTEM_LIB_PATH, please set this environment variable manually!/libglib-2.0.so ====
    ==== Can’t detect SYSTEM_LIB_PATH, please set this environment variable manually!/libodbc.so ====
  6. То есть, не может определить SYSTEM_LIB_PATH, и просит установить эту переменную окружения вручную.
  7. Прописывание переменных в /etc/environment ничего не дало.
  8. Ну Ок, закомментировал в скрипте config_server строку [ -z «$SYSTEM_LIB_PATH» ] && SYSTEM_LIB_PATH=’getLibPath’ и прописал полный путь SYSTEM_LIB_PATH=»/usr/lib32″
  9. Доустановил обратно все удаленные ранее пакеты.
  10. Вывод скрипта опять поменялся на:
    === /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libWand.so ====
    === /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libWand.so ====
    Please install following package: ImageMagick
    === /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libfreetype.so ====
    Please install following package: FreeType
    === /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libgsf-1.so ====
    Please install following package: libgsf
    === /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libglib-2.0.so ====
    Please install following package: libglib
    === /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libodbc.so ====
    Please install following package: UnixODBC
  11. Посмотрел и действительно, часть библиотек лежала не в /usr/lib32 , а в /usr/lib
  12. Сделал симлинки
  13. Перестартовал 1С.
  14. Ошибка пропала, теперь все работает нормально.

Затвитить пост!

Ошибка инициализации графической подсистемы 1с

Войти

Настраивая Linux сервер для платформы 1С 8.2 столкнулся с распространенной проблемой, когда при открытии любой формы элемента справочника или документа в тонком клиенте выводилось сообщение «Ошибка инициализации графической подсистемы».

Все найденные решения были половинчатыми и не помогали в моем случае, когда на 64-х битной системе установлена 32-х битная платформа 1С.

Ниже работающее решение проблемы для дистрибутивов Debian и Ubuntu:

Устанавливаем 64-х битные версии необходимых пакетов:

sudo apt-get install imagemagick

sudo apt-get install libmagickwand-dev

sudo apt-get install libgsf-1-dev

sudo apt-get install t1utils

sudo apt-get install libt1-5

sudo apt-get install libmagickcore2

sudo apt-get install libgomp1

sudo apt-get install ttf2pt1

# Этот пакет не нужно устанавливать в 32-х битном варианте, поскольку это просто набор шрифтов

sudo apt-get install ttf-mscorefonts-installer

Если у вас платформа 1С 32-х битная, устанавливаем базовый пакет 32-х битных библиотек:

sudo apt-get install ia32-libs

Если необходимо, скачиваем и устанавливаем утилиту getlibs, которая позволяет безболезненно устанавливать пакеты другой архитектуры параллельно с текущим набором пакетов:

sudo dpkg -i getlibs-all.deb

Если необходимо, устанавливаем 32-х битные версии необходимых пакетов:

sudo getlibs -p imagemagick

sudo getlibs -p libmagickwand-dev

sudo getlibs -p libgsf-1-dev

sudo getlibs -p t1utils

sudo getlibs -p libt1-5

sudo getlibs -p libmagickcore2

sudo getlibs -p libgomp1

sudo getlibs -p ttf2pt1

В случае 32-х битной платформы проверяем, все ли зависимости удовлетворены для imagemagick (самый проблемный пакет набора):

Вывод не должен содержать строк «not found»:

libMagickCore.so.2 => /usr/lib32/libMagickCore.so.2 (0xf73b5000)

liblcms.so.1 => /usr/lib32/liblcms.so.1 (0xf7381000)

libtiff.so.4 => /usr/lib32/libtiff.so.4 (0xf7325000)

libc.so.6 => /lib32/libc.so.6 (0xf71cb000)

libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf7155000)

libjpeg.so.62 => /usr/lib32/libjpeg.so.62 (0xf7134000)

libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7124000)

libXt.so.6 => /usr/lib32/libXt.so.6 (0xf70d1000)

libbz2.so.1.0 => /usr/lib32/libbz2.so.1.0 (0xf70be000)

libz.so.1 => /usr/lib32/libz.so.1 (0xf70a9000)

libpthread.so.0 => /lib32/libpthread.so.0 (0xf7090000)

libltdl.so.7 => /usr/lib32/libltdl.so.7 (0xf7087000)

libdl.so.2 => /lib32/libdl.so.2 (0xf7083000)

libSM.so.6 => /usr/lib32/libSM.so.6 (0xf707a000)

libICE.so.6 => /usr/lib32/libICE.so.6 (0xf7060000)

libX11.so.6 => /usr/lib32/libX11.so.6 (0xf6f43000)

libgomp.so.1 => /usr/lib32/libgomp.so.1 (0xf6f35000)

libm.so.6 => /lib32/libm.so.6 (0xf6f0f000)

libuuid.so.1 => /lib32/libuuid.so.1 (0xf6f0a000)

libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf6eef000)

librt.so.1 => /lib32/librt.so.1 (0xf6ee6000)

libXau.so.6 => /usr/lib32/libXau.so.6 (0xf6ee2000)

libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf6edc000)

Если каких-то библиотек всё же не хватает, их можно установить следующим образом:

sudo getlibs -l имя_библиотеки_как_написано_в_выводе_ldd.s o

Запускаем скрипт конфигурации платформы 1С:

Скрипт должен отработать без каких-либо сообщений.

Перезапускаем сервис 1С:

sudo /etc/init.d/srv1cv82 restart

Заходим в базу 1С и проверяем её работоспособность.

1С:Предприятие 8


Стандартная библиотека
Библиотека стандартных подсистем, редакция 3.0


Версия 3.0.3

Версия 3.0.3 является развитием редакции инструментария «1С:Библиотека стандартных подсистем», который предназначен для разработки конфигураций на платформе «1С:Предприятие» версии 8.3.12 и выше. При этом свойство конфигурации «Режим совместимости» должно быть установлено в «Не использовать» при разработке на версии 8.3.12 или в «Версия 8.3.12» при разработке на более старших версиях.

Читать еще:  0xc000000f что за ошибка

«1С:Библиотека стандартных подсистем» (БСП) предоставляет набор универсальных функциональных подсистем, готовые разделы для пользовательской документации и технологию для разработки прикладных решений на платформе «1С:Предприятие». С применением БСП становится возможной быстрая разработка новых конфигураций с уже готовой базовой функциональностью, а также включение готовых функциональных блоков в существующие конфигурации. Использование БСП при разработке прикладных решений на платформе 1С:Предприятие позволит также достичь большей стандартизации конфигураций, что уменьшит время на изучение и внедрение прикладных решений за счет их унификации по набору используемых стандартных подсистем.

Входящие в БСП подсистемы охватывают такие области, как:

Администрирование пользователей и прав доступа;

Средства администрирования и обслуживания (установка обновлений, резервное копирование, дополнительные отчеты и обработки, оценка производительности и др.);

Сервисные подсистемы (история изменений объектов, заметки и напоминания, печать, полнотекстовый поиск, присоединенные файлы, электронная подпись и др.);

Технологические механизмы и программные интерфейсы (процедуры и функции общего назначения, обновление версии ИБ, работа в модели сервиса и др.);

Нормативно-справочная информация и классификаторы (адресный классификатор, банки, валюты и др.);

Интеграция с другими программами и системами (обмен данными, работа с почтовыми сообщениями, отправка SMS, рассылка отчетов и др.);

Прикладные подсистемы и рабочие места пользователей (анкетирование, бизнес-процессы и задачи, взаимодействия, варианты отчетов и др.).

Всего в БСП входит более 60 подсистем. Полный состав подсистем, их назначение, порядок внедрения и рекомендации по использованию приведены в документации к библиотеке (http://its.1c.ru/db/bspdoc).

Вместе с подсистемами БСП предлагает и отдельные методики разработки прикладных решений, которые описаны в документации к библиотеке. С использованием БСП значительно легче вести разработку конфигураций, соответствующим всем требованиям «Системы стандартов и методик разработки конфигураций для платформы «1С:Предприятие 8» (http://its.1c.ru/db/v8std).

Кроме того, для администраторов и специалистов по внедрению прикладных решений в составе БСП поставляются внешние обработки, которые можно использовать автономно без БСП для решения ряда административных и «ремонтных» задач: консоль запросов, групповое изменение объектов, регистрация изменений на узлах планов обмена, скрытие конфиденциальной информации и др.

Порядок перехода с предыдущей версии

Весь исходный код библиотеки распространяется по лицензии Attribution 4.0 International (CC BY 4.0). Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by/4.0/legalcode. Эта лицензия позволяет вам использовать, распространять, перерабатывать, исправлять и развивать библиотеку в любых, в том числе, в коммерческих целях, при обязательном условии указания авторства библиотеки в вашем программном продукте. См. также: Ответы на типовые вопросы по лицензированию «1С:Предприятия 8».

Версия 3.0.3 совместима с версией платформы 8.3.12 с отключенным режимом совместимости. Общий порядок обновления подсистем БСП, используемых в конфигурациях, до данной версии приведен в документации (http://its.1c.ru/db/bspdoc). Особенности обновления с предыдущих версий описаны в файле Update.htm, входящем к комплект поставки (в каталоге ExtFilesDocs). При обновлении «через» несколько версий, необходимо отработать инструкции разделов Переход с предыдущих версий файла UpdateSSL.htm последовательно для всех предыдущих версий библиотеки.

Для обновления версий БСП в прикладных решениях рекомендуется использовать специализированные инструменты, входящие в дистрибутив библиотеки:

ExtFilesПервоеВнедрениеБСП.epf – внешняя обработка для упрощения процесса первого внедрения библиотеки в прикладную конфигурацию. Позволяет выбрать подсистемы для внедрения с учетом их зависимостей друг от друга и сохранить настройки для сравнения-объединения с помощью конфигуратора. Также с ее помощью можно выполнить удаление избыточных фрагментов кода подсистем, которые не используются в конфигурации.

ExtFilesИнструменты разработчикаПереходНаВерсию .epf – внешние обработки по автоматизации ряда массовых операций при переводе конфигурации с ранних версий библиотеки, которые указаны в разделе Переход с предыдущих версий файла UpdateSSL.htm. Предусмотрены обработки для перехода на версии 3.0.1 и 3.0.3. Обработки запускаются в информационной базе после обновления метаданных библиотеки в прикладной конфигурации. При работе с хранилищем конфигурации обработку рекомендуется запускать на копии информационной базы и затем загружать обратно измененные метаданные конфигурации с помощью сравнения-объединения.

ExtFilesПроверкаВнедренияБСП.erf – внешний отчет, предназначенный для запуска в информационной базе после внедрения или обновления метаданных библиотеки в прикладной конфигурации. Выявляет распространенные проблемы внедрения библиотеки в конфигурации, в частности, проверяет корректность заполнения состава определяемых типов, наличие необходимых вставок кода в модулях.

Ошибка инициализации графической подсистемы 1с

Пример сообщения при ошибке: «: Процедура или функция с указанным именем уже определена (Подготовить таблицыЗачетаАвансовКассовыйМетод)».

Причина возникновения ошибки

В современных типовых конфигурациях появилось такое понятие как патчи (исправления), которые на самом деле представляют из себя уже знакомые нам расширения.

И получается, что разработчик, выпустив какое-то обновление к конфигурации, далее выпускает эти самые патчи, чтобы исправить обнаруженные в обновлении ошибки.

Читать еще:  Ошибка error report

Патчи можно безболезненно устанавливать и удалять (это ведь на самом деле расширения) — причём это можно делать при работающих пользователях.

Установленный патч начинает работать у пользователя только после перезапуска открытой у него базы.

Но каждый патч предназначен лишь для определенной версии конфигурации, а значит после очередного обновления все устаревшие патчи должны быть удалены.

И вот если этого не сделать — возникает описанная выше ошибка.

Как устранить возникшую ошибку

Прежде всего обновите ваш обновлятор на последнюю доступную на сайте версию.

Начиная с версии обновлятора от 6 декабря 2019 года я предусмотрел выполнение необходимых процедур при выполнении обработчиков обновления. Эти процедуры удаляют из конфигурации устаревшие патчи (речь идёт о вызове функции ‘ИсправленияИзменены‘ из общего модуля ‘ОбновлениеКонфигурации‘).

Но что делать, если ошибка уже возникла?

Первый способ устранения ошибки

Откройте базу в режиме пользователя.

Зайдите в раздел «Администрирование» пункт «Обслуживание»:

Далее раскройте подраздел «Обновление программы» и выберите пункт «Установленные исправления (патчи)»:

В открывшемся окне удалите все установленные исправления:

После этого перезапустите 1с и убедитесь, что ошибка исчезла.

Используйте версию обновлятора после 6 декабря 2019 года, чтобы эта ошибка не возникла вновь (так как он автоматически удаляет устаревшие патчи при выполнении обработчиков обновления).

Второй способ устранения ошибки

Первый способ может быть трудоёмким, если у вас несколько десятков баз. Сейчас я покажу как можно выполнить удаление устаревших патчей при помощи обновлятора сразу во всех базах.

Прежде всего обновляем обновлятор на последнюю версию (не ранее 6 декабря 2019 года).

Далее запускаем обновлятор и переходим на закладку «Скрипты»:

В этом случае зайдите в дополнительные настройки программы и перейдите на закладку «Интерфейс и общее поведение».

Здесь установите галку «Отображать закладку Скрипты» и установите значение справа в «показывать постоянно».

  • в пункте «Базы для запуска» выберите базы, в которых нужно исправить ошибку
  • отметьте значение «пакетный скрипт»
  • в редактор скрипта вставьте следующую строчку: @remove_obsolete_patches()
  • снимите все галки под редактором скрипта
  • если есть возможность выгнать пользователей на время операции установите галки «блокировать» и «разблокировать»
  • нажмите кнопку «запустить» и дождитесь окончания операции

Указанный скрипт выполнит процедуру удаления устаревших патчей во всех базах.

Для баз, в которых возникли ошибки при выполнении скрипта воспользуйтесь первым способом.

По поводу установки новых патчей

Сейчас вы можете это делать вручную в самой базе (в разделе «Администрирование»-«Обслуживание»). При этом вы можете по ходу дела отметить галку «Загружать и устанавливать исправления (патчи) автоматически».

В скором времени я добавлю новые возможности по этому поводу и в обновлятор также. Можно будет автоматически накатывать нужные патчи сразу после обновления конфигурации.

При этом я дам возможность устанавливать патчи либо напрямую с сайта 1с (используя поддержку ИТС), либо из локальной папки (это будет полезно, если на компьютере нет интернета).

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Инициализация — это приведение программы или устройства в состояние готовности к использованию. Ошибка инициализации — что делать?

Инициализация – это что такое? Для чего она проводится? Какие следствия её осуществления? Что делать при возникновении ошибок? Эти и множество иных вопросов мы рассмотрим в рамках данной статьи.

Общая информация

Для начала давайте разберёмся, что же собой представляет инициализация. Это обозначение используется для создания, активации, подготовке к работе и определению параметров программного обеспечения или аппаратной составляющей. Иными словами, они приводятся в состояние готовности к использованию. Процесс инициализации всегда направлен извне по отношению к объекту управления (программе или устройству). Он необходим для того, чтобы определить параметры и правила работы.

Примеры инициализации

Давайте представим несколько реальных ситуаций и разберёмся с ними. Итак, как, к примеру, выглядит процесс инициализации подсистемы печати, которая выводит данные на бумагу? Первоначально определяется, какое устройство будет работать. Учитываются все особенности, вроде формата печати, использования цветов, максимального разрешения и прочее. Чтобы получить такую информацию, устройство следует активировать, подав на него питание и управляющий сигнал. С помощью последнего и будут запрошены доступные параметры работы или запущен процесс сканирования возможностей. И полученные данные будут переданы в системный блок, где, после обработки, они будут представлены пользователю в виде вариантов печати, что доступны для оборудования. А что собой представляет инициализация программы? Так называется процесс, во время которого переменные устанавливаются в начальные значения или в ноль перед тем, как программа будет выполнена. Если же говорить, допустим, о магнитном диске, то в его случае это подразумевает запись управляющей информации и последующее форматирование.

Поговорим о программах

Как видите, инициализация – это важный аспект взаимодействия с информационными технологиями. Давайте рассмотрим, как же происходит этот процесс на примере загрузочной программы EXE. Итак, первоначально необходимо передать «Ассемблеру» указания, в которых будет иметься и соответствовать действительности информация про сегментные регистры. Затем сохраняется адрес в стеке, что находится в регистре DS. После этого он обнуляется. И в завершение – в регистр загружается адрес нужного сегмента данных. Когда работает «Ассемблер», то он может определять наличие смещений в отдельных областях. При этом перед загрузочным модулем включается 256-байтная область, которая известна ещё как префикс программного сегмента PSP. Чтобы установить адрес её начальной точки используется регистр DS. Пользовательская программа сохраняет адрес, помещая его в стек с последующим возвратом в DOS. И здесь часто возникает ошибка инициализации. Почему? Дело в том, что системе требуется, чтобы следующее значение было нулевым адресом стека. Для этого необходимо, чтобы с помощью специальной команды был очищен регистр AX. Если этого не сделать, то возникают проблемы. Когда же может возникнуть ошибка инициализации? При использовании нелицензионного программного обеспечения, когда не был произведён качественный взлом, или же, когда она запускается просто на разных операционных системах, и были перемещены адреса системных регистров.

Читать еще:  Msi 1921 ошибка

Когда могут возникать проблемы?

Это весьма интересный вопрос, на который всё же нужно дать ответ, раскрыть его полностью. Рассмотрим, что собой представляет инициализация Windows. Первоначально подгружается базовая система ввода/вывода. И уже БСВВ инициализирует операционную систему. Если нет конфликтов с системными регистрами, то всё подгружается без проблем и так же функционирует. Но, допустим, была установлена пиратская операционная система. И пришло заводское обновление. Если согласиться на предложение его установить, то будет заменена часть информации, которая позволяет работать. И из-за внутренних механизмов безопасности функционирование будет блокировано. Иными словами, повреждение конфигурации любой программы – это самая частая причина того, что инициализация не возможна. Но, к счастью, это относится разве что к более старым версиям, нежели Windows 10, которая была сделана бесплатной. А сейчас давайте обратим внимание к аппаратной составляющей.

Как работает жесткий диск?

Поговорим о месте, где хранятся все наработанные нами данные. Инициализация жесткого диска включает в себя стартовую подготовку механики, определение в базовой системе ввода/вывода и активацию главной загрузочной записи. Последняя выступает в качестве главного управляющего звена, от которого зависит очередность обработки файлов, что составляют операционную систему. Если возникнет сбой в области главной загрузочной записи, то будет прекращено функционирование ОС и, соответственно, жесткий диск будет считаться не инициализированным. Следует отметить, что ошибка в данном случае может быть полной или же частичной. В первом случае запуск программного обеспечения будет прерываться текстовым сообщением, что уведомит о наличии проблем. И, соответственно, инициализация жесткого диска не будет проведена. Во втором случае операционная система может работать довольно корректно. Но всё же, часть данных будет недоступна для просмотра. Оба варианта требуют квалифицированной диагностики проблем.

Тестирование

Итак, мы знаем, что собой представляет инициализация. Это постепенно подводит к такому вопросу – а что делать в случае проблем? Первоначально необходимо протестировать проблему. Это можно сделать и вручную, разбираясь с теми ошибками, что выводит компьютер, или же воспользоваться любым некоммерческим продуктом соответствующего профиля. Многие считают, что они не удобны в плане использования и информативности и предпочитают использовать базовую систему ввода/вывода. В пользу последней следует отметить систематичность и методичность перебора информации, и высокую результативность подобного тестирования. К тому же, проверка в таких случаях проводится внимательно и небольшими «порциями» загрузочной области, причем – по битах. Если всё было перепробовано, а система не работает, то появляется сообщение о критическом сбое. В случае работы с программой выводится информация о проблеме.

Восстановление

С обычными программами всё просто. Можно попробовать переустановить её или же сделать восстановление системы. Если же говорить о проблемах аппаратуры, то тут немного сложней. Рассмотрим ситуацию на примере всё того же жесткого диска. Первоначально следует убедиться, что он вообще работает. Для этого его необходимо послушать. В случае неисправности, его, пожалуй, лучше выбросить и купить новый, ибо помочь тут можно только с помощью специализированной аппаратуры. Если он издаёт стандартные звуки, то следует:

  1. Провести полную перестройку структуры диска. Иными словами – отформатировать его (данные будут удалены), и заново смонтировать операционную систему.
  2. Перезаписать главную загрузочную запись с помощью стандартной утилиты. Подходит только для логических областей и существует вероятность удаления данных.
  3. Правка загрузочного сектора сторонними программами.
  4. Фиксация неисправности с использованием команды bootrec и осуществление реанимации дисковых структур.

Заключение

Вот и было рассмотрено, что же собой представляет инициализация. Частные примеры и случаи можно рассматривать ещё долго и упорно, но, увы, размеры статьи ограничены. Главное – что был рассмотрен сам механизм этого процесса.

Ссылка на основную публикацию
Adblock
detector