- Информация о материале
- Автор: Геннадий Едиг
- Категория: Web, Python, Ubuntu, Joomla, Virtuemart
- Просмотров: 8
Каждый администратор сайта на Joomla хотя бы раз сталкивался с ситуацией, когда сердце уходит в пятки. Вы выполняете рутинную операцию — например, удаляете несколько старых материалов, — а в следующий момент сайт перестаёт пускать вас в панель управления с леденящим душу сообщением: «Вам не разрешен доступ к панели управления».
Именно в такой, казалось бы, безвыходной ситуации мы недавно оказались. Эта статья — хроника нашего расследования и пошаговое руководство по спасению сайта, которое, я надеюсь, поможет и вам.
🕵️♂️ Часть 1: Расследование. Поиски виновного
Всё началось с простого действия — удаления нескольких материалов. Сразу после этого вход в административную часть сайта стал невозможен.
Первая помощь: Кэш и база данных
Первые шаги были стандартными:
- Очистка кэша: Полная очистка кэша браузера и папок
/cache
и/administrator/cache
на сервере. В 50% случаев это решает проблему. Но не в нашем. - Проверка базы данных: В Joomla есть встроенный инструмент для исправления структуры БД. Но как им воспользоваться, если в админку не попасть? Проблема замкнулась.
Стало ясно, что проблема глубже и связана с системой прав доступа (ACL).
Погружение в #__assets
: Карта сокровищ (или минное поле?)
Сердце системы прав в Joomla — это таблица #__assets
(где #__
— ваш префикс таблиц). Её можно представить как карту, на которой отмечено, какой группе пользователей что разрешено делать. Похоже, удаление материалов вызвало цепную реакцию, которая "размагнитила" нашу карту.
Стандартный совет в таких случаях — очистить (TRUNCATE
) эту таблицу. Joomla должна сама её восстановить. Мы сделали это, но чуда не произошло. Таблица оставалась пустой, а доступ — закрытым.
Настоящий прорыв случился, когда мы выполнили простой проверочный запрос:
SELECT * FROM `#__assets` WHERE `name` = 'root.1';
Результат был шокирующим — ноль строк. Это означало, что из нашей карты пропал не просто какой-то город, а сам "нулевой меридиан" — корневая запись root.1
, от которой строятся абсолютно все права на сайте. Без неё система прав просто не существует.
🚑 Часть 2: Операция. Восстанавливаем права по кирпичику
Подробнее: Joomla в блокаде: Как удаление пары статей закрыло доступ в админку и что с этим делать
- Информация о материале
- Автор: Геннадий Едиг
- Категория: Web, Python, Ubuntu, Joomla, Virtuemart
- Просмотров: 16
Суть решения
Я предлагаю сервис прямой интеграции, который связывает ваш интернет-магазин с Avito, минуя ручные выгрузки и сложный обмен с 1С.
Если ваш сайт является основным источником актуальной информации о товарах, ценах и остатках, наше решение позволит автоматически переносить эти данные на Avito. Это простой, надежный и быстрый способ обеспечить полное соответствие данных на вашей торговой площадке и на витрине вашего интернет-магазина.
Для кого это решение?
Этот сервис идеально подойдет вам, если:
- Ваш интернет-магазин работает на Joomla + VirtueMart или другой CMS с прямым доступом к базе данных.
- Вы ведете товарный учет непосредственно на сайте, и именно там находятся самые актуальные данные.
- Вам требуется только выгружать данные с сайта на Avito, а не двусторонний обмен.
- Вы устали от ручного обновления объявлений и хотите исключить человеческий фактор.
- Вам не нужна громоздкая и дорогая интеграция, а требуется простое и эффективное решение.
Как это работает?
Вы используете мой скрипт-посредник, который работает как мост между вашими системами:
- Подключение к Avito: Скрипт авторизуется в вашем аккаунте через официальное API Avito, используя безопасный токен доступа.
- Подключение к сайту: Скрипт получает доступ только на чтение к базе данных вашего сайта (в текущей реализации это Joomla + VirtueMart), чтобы безопасно забирать информацию о товарах. Решение может быть адаптировано и для других платформ (WordPress, OpenCart, самописные CMS).
- Синхронизация: Управление процессом происходит через удобного Telegram-бота. Вы запускаете синхронизацию в любой момент нажатием одной кнопки и получаете полный отчет о проделанной работе прямо в чат, наблюдая за прогрессом в реальном времени.
Базовая функциональность
Подробнее: Сайт ↔ Avito: Автоматическая синхронизация цен и остатков
- Информация о материале
- Автор: Геннадий Едиг
- Категория: Web, Python, Ubuntu, Joomla, Virtuemart
- Просмотров: 30
Решение для автоматического обновления цен и остатков в облаке Эвотор напрямую из базы данных вашего интернет-магазина.
Суть решения
Я предлагаю сервис прямой интеграции, который связывает ваш интернет-магазин напрямую с облаком Эвотор, минуя выгрузки в Excel и сложный обмен с 1С.
Если ваш сайт является основным источником актуальной информации о товарах, ценах и остатках, наше решение позволит автоматически переносить эти данные в Эвотор. Это простой, надежный и быстрый способ обеспечить полное соответствие данных на кассе и на витрине вашего интернет-магазина.
Для кого это решение?
Этот сервис идеально подойдет вам, если:
- Ваш интернет-магазин работает на Joomla + VirtueMart или другой CMS с прямым доступом к базе данных.
- Вы ведете товарный учет непосредственно на сайте, и именно там находятся самые актуальные данные.
- Вам требуется только выгружать данные с сайта в Эвотор, а не двусторонний обмен.
- Вы устали от ручного экспорта/импорта .xlsx файлов и хотите исключить человеческий фактор.
- Вам не нужна громоздкая и дорогая интеграция с 1С, а требуется простое и эффективное решение.
Как это работает?
Вы используете мой скрипт-посредник, который работает как мост между вашими системами:
- Подключение к Эвотор: Скрипт авторизуется в вашем облаке через безопасное приложение из официального Маркета Эвотор.
- Подключение к сайту: Скрипт получает доступ только на чтение к базе данных вашего сайта (в текущей реализации это Joomla + VirtueMart), чтобы безопасно забирать информацию о товарах. Решение может быть адаптировано и для других платформ (WordPress, OpenCart, самописные CMS).
- Синхронизация: Управление процессом происходит через удобного Telegram-бота. Вы запускаете синхронизацию в любой момент нажатием одной кнопки и получаете полный отчет о проделанной работе прямо в чат.
Базовая функциональность
Подробнее: Сайт ↔ Эвотор: Прямая синхронизация без 1С и Excel
- Информация о материале
- Автор: Геннадий Едиг
- Категория: Web, Python, Ubuntu, Joomla, Virtuemart
- Просмотров: 29
В этой инструкции мы настроим автоматическую отправку файлов бэкапов с сервера Windows на удаленный SFTP-сервер. Этот метод надёжен, безопасен и не требует использования устаревшего протокола FTP.
Шаг 1: Настройка SFTP-сервера (на базе Linux)
Прежде чем отправлять файлы, нужно подготовить удалённый сервер. Мы создадим специального пользователя с ограниченным доступом и настроим его так, чтобы он мог только загружать файлы в определённую папку.
# Создание папки для бэкапов. Владелец — root, так как это требование безопасности SFTP. sudo mkdir -p /mnt/data/my_backups sudo chown root:root /mnt/data/my_backups # Создание папки, в которую пользователь будет загружать файлы sudo mkdir /mnt/data/my_backups/uploads sudo chown sftp_user:sftp_user /mnt/data/my_backups/uploads # Создание пользователя для SFTP-доступа sudo useradd -m -s /sbin/nologin sftp_user sudo passwd sftp_user
Отредактируйте конфигурационный файл SSH, чтобы ограничить пользователя только SFTP-доступом:
sudo nano /etc/ssh/sshd_config
В конец файла добавьте следующие строки:
Match User sftp_user ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /mnt/data/my_backups AllowTcpForwarding no X11Forwarding no
После сохранения изменений перезапустите SSH-сервер:
sudo systemctl restart sshd
Шаг 2: Создание скриптов для Windows
Подробнее: Настройка автоматического бэкапа базы 1C на SFTP в 2025 году
- Информация о материале
- Автор: Геннадий Едиг
- Категория: Web, Python, Ubuntu, Joomla, Virtuemart
- Просмотров: 32
Введение
В этой статье я подробно опишу, как мне удалось убрать название организации из печатной формы гарантийного талона в системе 1С:Предприятие. Гарантийный талон был добавлен в систему через внешнюю обработку с расширением .epf, и мне потребовалось изменить его печатную форму.
Шаг 1: Подготовка к работе
Перед началом работы я выполнил следующие подготовительные действия:
- Создал резервную копию файла обработки (.epf) - это важно на случай, если что-то пойдет не так.
- Определил версию платформы 1С, так как от этого зависит способ редактирования.
- Убедился, что у меня есть права на изменение конфигурации.
Шаг 2: Открытие внешней обработки
- Запустил 1С:Предприятие в режиме конфигуратора.
- В меню выбрал "Файл" → "Открыть".
- В диалоговом окне выбрал файл с расширением .epf, который содержит обработку гарантийного талона.
- После открытия файла в дереве конфигурации появилась внешняя обработка.
Шаг 3: Поиск нужного элемента в печатной форме
- В дереве конфигурации нашел объект "Обработка" и раскрыл его.
- Нашел раздел "Формы" и выбрал нужную печатную форму (обычно она называется "ФормаПечати" или аналогично).
- Открыл форму в редакторе форм.
Шаг 4: Редактирование печатной формы
- В редакторе форм перешел на вкладку "Элементы формы".
- Нашел элемент, который отвечает за вывод организации. Это мог быть:
- Поле формы
- Надпись (Label)
- Табличный документ (если форма построена на его основе)
- В моем случае организация выводилась в табличном документе, который формировался в модуле формы.
Шаг 5: Изменение кода формы
- Перешел в модуль формы (кнопка "Модуль" в редакторе формы).
- Нашел процедуру, которая формирует печатную форму (обычно называется "Сформировать" или "ПриФормировании").
- В коде нашел строку, где добавляется информация об организации. Это могло выглядеть примерно так:
ТабличныйДокумент.ВывестиСекцию("Заголовок|Организация: " + Организация.Наименование);
- Изменил код, убрав вывод названия организации:
ТабличныйДокумент.ВывестиСекцию("Заголовок|Организация: ");
Или полностью удалил строку, если она не нужна. На самом деле сделал вывод "белыми чернилами".
Шаг 6: Проверка изменений
- Сохранил изменения в обработке (Ctrl+S).
- Запустил 1С в режиме предприятия.
- Открыл обработку и проверил печатную форму гарантийного талона.
- Убедился, что название организации больше не выводится.
Шаг 7: Сохранение и распространение изменений
- Вернулся в конфигуратор.
- Выбрал "Файл" → "Сохранить как" и сохранил измененную обработку под новым именем (например, добавив версию или дату).
- Распространил новую версию обработки среди пользователей.
Заключение
В результате этих действий мне удалось успешно убрать название организации из печатной формы гарантийного талона. Весь процесс занял около 30 минут, включая время на тестирование.
Важно помнить, что при работе с внешними обработками:
- Всегда создавайте резервные копии
- Внимательно анализируйте код перед изменениями
- Тестируйте изменения перед внедрением в рабочую среду
Если вы не уверены в своих действиях, лучше обратиться к специалисту по 1С, чтобы избежать возможных проблем в работе системы.
PS Описано всё несколько сложнее чем было на самом деле . Чтобы в следующий раз запутать себя :)