Блог разработчика 1С-Битрикс

PostDecodeFilter в Bitrix

PostDecodeFilter — это специальный класс, предназначенный для автоматического декодирования данных, полученных из _POST. При добавлении его в цепочку фильтров запроса данные из формы будут преобразованы в удобный для дальнейшей обработки вид.

PostDecodeFilter в Bitrix

Назначение класса

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

Методы класса

Метод: Возвращает массив декодированных данных, используя метод getPost().

filter()

Основной метод класса. Вызывается автоматически при использовании фильтра. Позволяет преобразовать входящие параметры _POST в уже декодированном виде. В большинстве случаев достаточно просто добавить фильтр и затем обращаться к данным стандартными методами запроса (например, через getPost()).

Пример использования

Для подключения и использования фильтра достаточно добавить его в контекст запроса приложения Bitrix:


use Bitrix\Main\Application;
use Bitrix\Main\Engine\ActionFilter\PostDecodeFilter;

// Получаем экземпляр приложения
$app = Application::getInstance();
$context = $app->getContext();
$request = $context->getRequest();

// Подключаем фильтр
$request->addFilter(new PostDecodeFilter());

// Теперь данные из $_POST будут автоматически декодированы
$postData = $request->getPost();
    

После добавления фильтра, при обращении к данным запроса через метод getPost(), вы получите уже «распакованные» значения. Это значительно удобнее, если, например, нужно работать со сложными структурами данных, которые были сериализованы или закодированы на стороне формы.

Когда использовать

  • При работе с формами, где часть данных (или все) может быть закодирована (например, JSON-данные).
  • При использовании AJAX-запросов, в которых данные передаются в формате, требующем декодирования.
  • В случаях, когда нужно упростить логику обработки входящих параметров, не разборивая вручную массивы или сложные структуры.

Заключение

PostDecodeFilter — полезный инструмент в арсенале Bitrix-разработчика. Он избавляет от необходимости вручную декодировать данные из _POST, делая код более чистым и понятным. При работе со сложными формами и AJAX-запросами его применение существенно облегчает жизнь и снижает вероятность ошибок при обработке данных.

SenDev: 152-ФЗ Персональные данные

Модуль SenDev: 152-ФЗ — это комплексное решение для автоматизации соблюдения требований Федерального закона № 152-ФЗ «О персональных данных» на сайтах под управлением 1С-Битрикс. Он предоставляет инструменты для сбора и хранения согласий, управления cookie-баннером, генерации политик конфиденциальности, автоматической очистки устаревших данных и ведения реестра обработки персональных данных.

Теги: PostDecodeFilter, декодирование данных, обработка форм, AJAX-запросы


Валерий Макеев
10.09.2025 13:06
Этот код подключает PostDecodeFilter в Bitrix и выводит декодированный JSON из поля формы user_data при POST-запросе, автоматически преобразуя строку в ассоциативный массив.
Код
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

use Bitrix\Main\Application;
use Bitrix\Main\Engine\ActionFilter\PostDecodeFilter;

$request = Application::getInstance()->getContext()->getRequest();
$request->addFilter(new PostDecodeFilter());

if ($request->isPost()) {
    $decodedData = $request->getPost('user_data'); // автоматически декодирует, если это JSON-строка
    echo '<pre>'; print_r($decodedData); echo '</pre>';
}
?>
<form method="POST">
    <textarea name="user_data">{"name": "Иван", "age": 30}</textarea>
    <button type="submit">Отправить</button>
</form>

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Лендинг

от 3 дней

от 25 000 рублей

Разработка одностраничного сайта на платформе Битрикс

* стоимость зависит от наличия верстки, использования готового решения и т.д.

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.

Комплексное обновление проекта

обновление до последних версий, без привязки к исходной версии

от 15 000 рублей
Выполняем работы любой сложности: обновление PHP (в т.ч. до 8.4), миграция MySQL (к примеру, с 5 до 8), обновление ядра «1С-Битрикс» до последней версии, рефакторинг кода кастомных модулей и адаптация компонентов под новые стандарты.

* стоимость зависит от текущего состояния проекта, объема legacy-кода и сложности адаптации шаблона.