Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
UKVED
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
Сопровождение 1С
  • Внедрение 1С
  • Обновление 1С
  • Обслуживание 1С
  • Поддержка 1С
  • Разработка 1C
Аренда 1С (1С:ФРЕШ)
Бухгалтерское сопровождение
Аренда сервера
  • Выделенный сервер 1C
  • Аренда сервера для 1C
  • Почтовые серверы
  • Backup серверы
Разработка мобильных приложений
Наши мобильные приложения
AmoCRM
  • Внедрение AmoCRM
  • Интеграция AmoCRM
  • Разработка виджетов AmoCRM
Системное администрирование
  • Обслуживание компьютеров
  • Обслуживание локальной сети
  • Обслуживание телефонии
IP телефония
Каталог товаров
  • 1С отчетность
  • Лицензии 1С
    • Комплексное управление ресурсами предприятия (ERP)
    • Клиентские лицензии
    • Серверные лицензии
    • Бухгалтерский и налоговый учет
    • ЗУП и кадровый учет (HRM)
    • Управление складом, логистикой и продажами
  • ТСД Клеверенс
  • ИТС
  • Тарифы ИТС
  • Наши решения
Наши внедрения
Статьи
Контакты
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
1СFranch.pngmintsifryi_1С.png
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
UKVED
Телефоны
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
  • 0 Корзина
  • +7 906 045 2827
    • Телефоны
    • +7 906 045 2827
  • г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
  • sale@ukved.ru
  • Пн. – Пт.: с 9:00 до 18:00
1СFranch.pngmintsifryi_1С.png
Главная
—
Статьи
—
Общее

Тестовая база 1С светит ИНН клиентов: маскируем через pg_anon в CI/CD

Тестовая база 1С светит ИНН клиентов: маскируем через pg_anon в CI/CD

Тестовая база 1С светит ИНН клиентов: маскируем через pg_anon в CI/CD

Содержание
Почему тестовая база 1С в CI/CD хранит реальные персональные данные ⚠️Как исправить это через маскирование pg_anon без промежуточных копий 🛠️Что делать, если ошибка повторяется — маскирование падает или пропускает поля 🔁Как предотвратить повторное попадание незамаскированных данных в тестовый контур 🛡️Сколько стоит настроить конвейер маскирования 1С и кто этим занимается 💰❓ Частые вопросы

pg_anon позволяет маскировать персональные данные 1С прямо в процессе переноса базы в тестовый контур: дамп PostgreSQL идёт через фильтр подстановки псевдонимов и хэшей, и на диске тестового сервера появляется уже обезличенная копия. Промежуточного дампа с реальными ИНН, телефонами и паспортными данными в файловой системе не возникает.

Почему тестовая база 1С в CI/CD хранит реальные персональные данные ⚠️

В компании, которая внедряет 1С:Управление торговлей для оптового дистрибьютора в Москве, ночной джоб в GitLab CI каждую ночь снимает бэкап продовой базы PostgreSQL размером около 80 ГБ и разворачивает его в тестовом контуре. Утром три тестировщика на аутсорсе и подрядчик, который дорабатывает печатные формы, заходят в свежую копию и гоняют регресс перед релизом. Тесты зелёные, релиз выходит вовремя.

Но за неделю до планового аудита по 152-ФЗ служба безопасности поднимает список серверов, доступных подрядчикам по VPN, и находит в тестовой базе те же ИНН, телефоны и сканы паспортов клиентов, что и в проде — просто на сутки моложе. Обработка персональных данных этими людьми формально не согласована ни с одним клиентом: тестовый контур не входит в перечень систем, где заявлена обработка ПДн. В акте аудита это фиксируется как факт неконтролируемой обработки ПДн, а не как рекомендация на будущее. Поэтому регресс, который вчера прошёл без единого красного теста, сегодня превращается в основание для предписания.

Если ничего не менять, компания рискует не пройти тот же аудит перед тендером, где заказчик прямо требует подтверждение, что тестовые контуры подрядчика не содержат реальных ПДн — в договоре на такие тендеры обычно есть отдельный пункт про обработку персональных данных субподрядчиками, и его нарушение расторгает контракт, а не просто портит отчётность. Хуже, если ноутбук тестировщика с доступом к VPN окажется скомпрометирован: утечка из тестового контура по последствиям ничем не отличается от утечки из прода — те же ИНН, те же паспорта, тот же список клиентов у конкурентов.

Как исправить это через маскирование pg_anon без промежуточных копий 🛠️

Классическая схема выглядит так: восстановить дамп прод-базы в тестовом контуре, а затем прогнать поверх набор UPDATE-скриптов, которые подменяют ФИО, ИНН и телефоны на случайные значения. Проблема не в самих скриптах, а в паузе между этими двумя шагами. На базе в 80 ГБ восстановление занимает от получаса, маскирующий скрипт — ещё столько же, и всё это время реальные данные лежат в тестовой базе доступными по обычному подключению. Если скрипт упадёт на середине или его забудут запустить после ручного восстановления «на скорую руку», тестовая база так и останется с настоящими данными — при этом в логах пайплайна будет зелёная галочка «restore: success».

pg_anon убирает саму паузу. Вместо последовательности «восстановить → потом замаскировать» он читает строки из источника и сразу применяет правила анонимизации — хэширование, подстановку по шаблону, обнуление — в процессе потоковой передачи в целевую базу. Строка с настоящим ИНН просто не сохраняется на диске тестового сервера ни на секунду: она уже заменена к моменту записи.

Как pg_anon маскирует данные в потоке, не создавая лишний дамп

Правила описываются словарём: для каждого поля, где может быть персональная информация, указывается функция — заменить телефон на случайный номер того же формата, ИНН — на псевдослучайный, но валидный по контрольной сумме, e-mail и ФИО — на сгенерированные значения из справочника фейковых данных. Перед запуском на всей базе словарь стоит проверить на выборке из нескольких сотен строк: это быстрее, чем ждать час, чтобы обнаружить, что забыли одно из полей адреса доставки.

Отдельная тема — прикреплённые файлы. Сканы паспортов, договоры и другие вложения 1С хранит в собственных таблицах blob-хранилища, а не в текстовых полях, и словарь подстановки их не покрывает. Такие таблицы разумнее целиком исключать из тестовой копии или подменять содержимое заглушкой, а не пытаться маскировать бинарный файл построчно.

Как встроить маскирование в пайплайн CI/CD для 1С

На практике стадию «restore» в пайплайне заменяют на «restore + mask», и получается такая последовательность:

  • ✓источником для pg_anon служит реплика прод-базы, а не мастер, чтобы копирование не создавало нагрузку на боевых пользователей;
  • ✓целевая база сразу получает результат маскирования — отдельного шага восстановления «как есть» не существует;
  • ✓после разворачивания тестовая база проходит стандартную постобработку 1С: отключение регламентных заданий, чтобы она не разослала реальным клиентам письма или СМС из тестового контура;
  • ✓пайплайн падает, а не проходит с предупреждением, если словарь не покрывает новое поле — об этом ниже.

Такой скрипт — это уже не администрирование сервера, а полноценная доработка 1С: нужно знать структуру конкретной конфигурации, понимать, какие регистры и справочники содержат персональные данные, и поддерживать словарь синхронно с изменениями конфигурации.

КритерийДамп → копия → маскирование вручнуюПоток pg_anon без промежуточных копий
Окно с незамаскированными ПДн на дискеот минут до часов, пока не отработает скриптотсутствует — данные заменяются в процессе переноса
Кто может увидеть реальные данныелюбой с доступом к тестовому серверу в это окноникто — база обезличена с момента появления на диске
Риск «забытого» шагада, маскирование — отдельная команда, которую можно пропуститьнет, маскирование встроено в саму стадию переноса
Нагрузка на прод при копированиизависит от того, с какого сервера снят дампминимальна, если источник — реплика, а не мастер
Что покажут логи CI при сбое маскирования«restore: success», хотя данные не замаскированыпайплайн падает на стадии переноса, база не публикуется

Что делать, если ошибка повторяется — маскирование падает или пропускает поля 🔁

Три сценария повторяются чаще остальных. Первый — дрейф схемы: после обновления конфигурации в ERP появляется новый регистр с мобильным телефоном клиента из CRM-подсистемы, а словарь маскирования о нём не знает. Пайплайн отрабатывает без единой ошибки, но телефон в тестовой базе остаётся настоящим, потому что для pg_anon это просто ещё одно текстовое поле, а не персональные данные. Пока это не найдут вручную, тестовая база выглядит обезличенной по отчёту пайплайна, хотя по факту таковой не является.

Второй — таймаут на большой базе. ERP-контур с миллионами строк в регистрах накопления может маскироваться дольше, чем отведено окно ночного джоба, и CI просто убивает процесс на середине. В результате целевая база оказывается наполовину замаскированной, а повторный запуск падает с ошибкой «объект уже существует». Решение — не увеличивать таймаут бесконечно, а разбить маскирование по таблицам и запускать независимые джобы параллельно, укладываясь в прежнее окно.

Третий — блокировки. Если источником по ошибке подключили не реплику, а боевую мастер-базу, маскирование ненадолго блокирует таблицы, с которыми в этот момент работают активные пользователи 1С. Сессии подвисают, в поддержку летят тикеты «база встала», хотя формально никто её не трогал руками. Проверка проста: источник для pg_anon должен быть read-only реплика, и точка.

Как предотвратить повторное попадание незамаскированных данных в тестовый контур 🛡️

Словарь маскирования стоит хранить в том же репозитории, что и расширения конфигурации, и проверку нового поля с персональными данными делать частью code review, а не отдельной задачей, до которой руки доходят через месяц. Отдельный шаг в CI — автоматическая проверка: сравнить список колонок в information_schema с предыдущим прогоном и упасть, если появилось новое текстовое поле без правила в словаре.

После маскирования полезно гонять по тестовой базе набор регулярных выражений на типовые форматы ИНН, паспорта и телефона и требовать нулевое количество совпадений, прежде чем помечать базу готовой для тестировщиков. Так пайплайн не полагается на код возврата «0» от самого pg_anon, а проверяет результат независимо.

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

Сколько стоит настроить конвейер маскирования 1С и кто этим занимается 💰

Настройка такого пайплайна — задача на стыке администрирования PostgreSQL, работы с CI/CD и знания конкретной конфигурации 1С, поэтому обычно её ведут вместе сисадмин и разработчик 1С. Старт обычно начинается с аудита текущей схемы резервного копирования и списка таблиц с персональными данными, а дальше пайплайн работает без постоянного участия команды — разработчик подключается только когда меняется конфигурация. У нас эта работа идёт по ставке сопровождения 1С и системного администрирования — от 3800 руб/час; итоговый бюджет зависит от размера базы, количества таблиц с персональными данными и того, есть ли в компании готовый CI/CD или его нужно разворачивать с нуля.

Если тестовые контуры с настоящими данными — не разовая находка, а системная проблема на десятках баз, разумнее закладывать маскирование сразу на этапе внедрения 1С, а не пристраивать его к уже работающей инфраструктуре. Для крупных многопользовательских контуров — например, при внедрении 1С:ERP, где тестовых баз с реальными данными клиентов и поставщиков обычно несколько — это особенно заметно снижает риск, потому что таких контуров, а значит и точек утечки, больше одной.

❓ Частые вопросы

Чем pg_anon отличается от обычного скрипта UPDATE, который подменяет ФИО и телефоны после восстановления базы?

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

Можно ли маскировать базу 1С, если она размещена в облаке или на арендованном сервере?

Да, pg_anon работает с любым PostgreSQL, к которому есть сетевой доступ и права на чтение, независимо от того, стоит ли СУБД на собственном железе или на арендованном сервере. Важно только подключать маскирование к реплике, а не к боевой мастер-базе, чтобы не создавать лишнюю нагрузку на продовых пользователей.

Что произойдёт с прикреплёнными файлами — сканами паспортов, договорами, — если их нельзя замаскировать текстовым словарём?

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

Нужно ли останавливать 1С или отключать пользователей на время маскирования базы?

Останавливать прод не нужно, если источником для pg_anon служит реплика, а не мастер-база: копирование и маскирование идут параллельно с обычной работой пользователей. Тестовую базу после разворачивания стоит на время отключить от регламентных заданий, чтобы она не разослала реальным клиентам письма или СМС из тестового контура.

Сколько стоит настроить такой конвейер маскирования для типовой базы 1С?

Стоимость зависит от размера базы, количества таблиц с персональными данными и того, есть ли в компании уже настроенный CI/CD. Работа сисадмина и разработчика 1С над таким пайплайном оценивается по ставке сопровождения — от 3800 руб/час, итоговый бюджет считается после аудита текущей инфраструктуры.

Ошибки 1С отнимают время?
Сопровождение 1С: реакция за 1 час, 800+ баз 1С компаний на наших серверах.
Оставить заявку →
Читайте также
Услуги 1САренда 1САренда сервера 1СМобильная разработка

Не помогло? Опишите вашу ошибку — разберём
Ответим сразу, без звонков и заполнения анкет. Что не получилось, какая версия 1С, что уже пробовали — этого достаточно. Сложное передадим инженеру.

Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00

Возврат к списку

Читайте также

  • База 1С не открывается: ошибка «неверный формат хранилища данных»
  • Заказ клиента без реализации в 1С: деньги видны, а склада нет
  • pg_anon: как обезличить базу 1С без промежуточной копии
  • Чат на сайте или мессенджер: куда клиент пишет на самом деле

Остались вопросы? Нужна помощь?

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

Бесплатная консультация
 
Компания
О компании
Вакансии
Каталог
1С отчетность
Лицензии 1С
ТСД Клеверенс
ИТС
Тарифы ИТС
Наши решения
Аренда сервера
Сопровождение 1С
Сопровождение бухгалтерии
Системное администрирование
Аудит сайта
IT-аутсорсинг в Москве
Услуги по серверам
Аренда сервера 1С
Аренда 1С в облаке
Распознавание PDF (ПДФ) в 1С
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
sale@ukved.ru
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
2017 - © 2026
Политика конфиденциальности Оплата Поставка Возврат Оферта Карта сайта
ООО «ВЕД» · ИНН 7720299436 · ОГРН 1157746343920 · КПП 501801001
Аккредитованная ИТ-компания — проверить в реестре Минцифры по ИНН 7720299436
0

Корзина

Очистить корзину
Ваша корзина пуста
Исправить это просто: выберите в каталоге интересующий товар и нажмите кнопку «В корзину»
В каталог
Главная 0 Корзина Каталог Контакты Услуги Бренды Отзывы Карьера Компания Проекты Лицензии Документы Блог Тарифы Цены
Мы считаем посещения сайта с помощью Яндекс.Метрики. Запись ваших действий на странице (Вебвизор) включается только с вашего согласия. Нажимая «Принять», вы соглашаетесь с Политикой конфиденциальности и Согласием на обработку ПДн.