Ubuntu, 1С, буфер обмена и зависание компьютера

29.01.25

Администрирование - Linux

Как устроить зависание системы (Ubuntu) из 1С (толстый клиент) с помощью буфера обмена и что с этим делать.

Обновления платформы 1С на linux в большом офисе это каждый раз новый, неожиданный опыт и попытки придумать очередной забавный костыль для нормальной работы сотрудников. Вот и в этот раз после обновления платформы до версии 8.3.24.1758 у сотрудников начались неожиданные зависания системы по всему офису, а это порядка 500 человек. Чтобы найти корень проблемы, на задачу были брошены лучше силы ИТ отдела, все два системных администратора, месяц бесплодных попыток найти хоть какую-то зависимость действий пользователей и зависания системы. В анамнезе получили, что после обновления платформы на машинах в какой-то не очень определенный момент времени сначала начинает заканчиваться свободная память, потом свап, потом система зависает.

Для правильной и хорошей статьи наверняка надо не забыть описать техническую составляющую, поэтому немного отвлечемся на скучные данные, на всех машинах стоит ubuntu 20.04, 1С толстый клиент (это важно, как оказалось в последствии), самописная конфигурация, сервер 1С на майкрософтовском SQL. Вот с этим вроде и закончили.

Что мы только ни делали и как только не пытались найти причину утечек памяти 1С. Начали с того, что воспроизвели все это на типовых платформах (Бухгалтерии и ЗУП), выяснили, что утечка может происходить даже если сотрудник ничего не делает в 1С, а в некоторых случаях даже если 1С просто запускается, то сразу начинает зажирать ОЗУ как не в себя, причем в разных случаях с разной скоростью. Были уже готовы опустить руки, но как всегда под новый год случилось чудо, один из менеджеров на сравнительно слабой машине с 4 гигабайтами ОЗУ, позвонил в ИТ отдел и сказал, что он наконец-то нашел соответствие своих действий и зависаний системы. Когда он копировал через буфер обмена большую таблицу из либреофиса, компьютер зависал через пару минут после этого. Дальше было все сопоставить уже несложно. На сайте 1С в описании платформы нашли, что в 8.3.24 1С внедрил программную работу с буфером обмена. Опыты показали, что копирование любой картинки в буфер обмена при открытом толстом клиенте 1С и открытой любой не управляемой формы в 1С приводит к той самой утечке памяти. В зависимости от размера картинки память утекает с разной скоростью, и при копировании таблицы из либре офис система считает, что в буфере обмена находится картинка.

После этого смешной опыт общения с техподдержкой 1С, бесполезные попытки донести до них, что описание ошибки как "В Linux при наличии в буфере обмена больших данных во время работы потребление памяти клиентского приложения может увеличиваться" не совсем корректное  (совсем не корректное) и клятвенные обещания с их стороны, что раз ошибка воспроизводится, то её совсем скоро исправят (пока все еще нет).

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

1. Устанавливаем xclip для работы с буфером обмена через консоль: apt-get install -y xclip

2. На пользовательских машинах создаем скрипт:

#!/bin/bash
while true; do
    if xclip -selection clipboard -t TARGETS -o | grep -q image; then
        echo "attention! image in clipboard!"
        sleep 5
        xclip -selection clipboard /dev/null
    fi        
    sleep 5
done

и ставим его в автозагрузку.

Скрипт проверяет раз в 10 секунд, есть ли картинка в буфере обмена, и если есть, то очищает буфер. Как показала практика, 10 секунд обычно достаточно пользователям, чтобы скопировать и вставить картинку, если им нужно.

платформа ubuntu linux буфер обмена память

См. также

Обновление 1С Linux Системный администратор Программист Бесплатно (free)

Пошаговая инструкция для обновления платформы 1С на сервере Linux Debian.

28.03.2025    492    California_Dreaming    2    

5

Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

В очередной раз решая проблему с доступом к файлу программной лицензии - решил сделать памятку на будущее для себя и коллег.

10.03.2025    893    unichkin    10    

11

Linux Рефакторинг и качество кода Программист Платформа 1С v8.3 Бесплатно (free)

В третьей статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, обсудим подходы к рефакторингу платформеннозависимого кода

11.02.2025    1081    it-expertise    0    

3

Рефакторинг и качество кода Linux Программист Платформа 1С v8.3 Бесплатно (free)

Во второй статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, поговорим об особенностях анализа конфигурации 1С на наличие платформеннозависимого кода.

31.01.2025    1755    it-expertise    1    

8

Linux Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Задача разработки перед выполнением проходит пять стадий принятия: отрицание, гнев, поиск в интернете, депрессия и чтение документации. Некоторым темы, затронутые в публикации, будут знакомы, некоторым покажутся банальными, но, надеюсь, некоторым они сэкономят немного времени и нервов. По сути это шпаргалка самому себе по тем вещам, которые потребовали более часа поисков.

23.12.2024    2672    capitan    7    

15

Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Александр Кириллов, руководитель группы разработки компании «ИТ-Экспертиза», на конференции INFOSTART TECH EVENT 2024 выступил с докладом на тему «Как найти и устранить платформеннозависимый код менее, чем за 5 лет». Материал получился интересным и объемным, поэтому мы решили сделать на базе выступления Александра цикл статей. В первой части начнем с особенностей работы информационных систем 1С под управлением ОС Linux.

06.12.2024    2257    it-expertise    8    

24

Linux Системный администратор Программист Бесплатно (free)

Проект перевода 10+ систем 1С на 2000+ пользователей в Авито завершен успешно, преодолев технические трудности и «черных лебедей» в виде неопределенности, демотивации, потерь производительности и нереалистичных требований руководства. Расскажем об опыте проекта, в котором было «очень страшно», но в итоге всё получилось.

29.11.2024    2077    kirill.skoromykin    1    

7

Linux Программист Бесплатно (free)

При многолетней эксплуатации 1С на Windows и MS SQL в базе накапливаются не самые оптимальные запросы, COM-объекты и скрипты, зависящие от ОС. Из-за этого процесс перехода на PostgreSQL и переноса сервера 1С на Linux неизбежно осложняется длительным исправлением кода и оптимизацией запросов. Расскажем о том, как с задачей такого рефакторинга справились в компании Avito.

13.11.2024    7370    klimat12    17    

30
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Трактор 1266 29.01.25 20:55 Сейчас в теме
Отлично! Буду знать. У меня отладка по tcp на платформе 8.3.25.1374 не заработала. Только по ХТТП.
И та виснет, если надолго задержать на точке останова или не выключить отладку http сервисов или фоновых заданий.
2. panam 58 03.02.25 14:24 Сейчас в теме
В точку "После этого смешной опыт общения с техподдержкой 1С, бесполезные попытки донести до них".
3. mvgfirst 6 11.02.25 16:36 Сейчас в теме
Версия платформы 8.3.25.1520
Необоснованный "отжор" памяти подтверждаю.

Очистка клипборда - помогает.

И слава богу что есть эта статья. Я теперь могу спокойно работать и дальше. А то прям какой-то ужас... сидишь и смотришь как у тебя каждые 5 минут 1Гб памяти утекает.
4. Legin 5 26.02.25 11:40 Сейчас в теме
Автору огромное спасибо, неведомое падение конфигуратора получило объяснение. Также в промежуток от начала отжора памяти Конфигуратором до его вылета временами наблюдается зависание клавиатуры и мыши.
Версия 8.3.24.1667.
Оставьте свое сообщение