Менеджер детального сравнения табличных документов(любых таблиц): Diff по ячейкам, поиск по ключу и визуальная подсветка

09.06.26

Задачи пользователя - Поиск данных

Умное сравнение табличных документов с визуальной подсветкой. В отличие от стандартного сравнения, обработка ищет отличия по ключевому значению, игнорируя сдвиги строк. Результат — цветовая маркировка добавленных, удаленных и измененных строк прямо в документе + точный лог расхождений по каждой ячейке.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Детальное сравнение табличных документов: Diff по ячейкам, поиск по ключу и визуальная подсветка
.epf 8,38Kb
11 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Детальный Diff-анализатор табличных документов для 1С:Предприятие 8.3 (Управляемые формы)

🎯 Инструмент предназначен для поточечного сравнения табличных документов в экосистеме 1С:Предприятие 8.3. Решает ключевую проблему ложных срабатываний при сдвигах строк и объединенных ячейках с помощью интеллектуального маппинга по ключевым колонкам и UUID-трекингу.

Главные фишки:

  • Интеллектуальный Diff по ключу: сравнение идет по значению ключевой колонки, а не по номеру строки. Добавление/удаление строк не ломает результат.
  • Визуальная подсветка областей: автоматическая цветовая маркировка ячеек (Розовый — удалено, Зеленый — добавлено, Желтый — изменено) прямо в ТабличныйДокумент.
  • UUID-трекинг для 100% точности: использование скрытых технических колонок с уникальными идентификаторами гарантирует подсветку именно той строки, где найдена дельта, без риска смещения.
  • Безопасная работа со сложными таблицами: парсинг через ПостроительЗапроса позволяет корректно обходить объединенные ячейки, ломающие стандартный поэлементный обход.

Решаемые проблемы и сценарии

  • Как сравнить два отчета в 1С, если добавились новые строки и съехала нумерация? Стандартное построчное сравнение (строка 1 = строка 1) выдает «кашу». Этот инструмент ищет строки по ключевому значению (например, номенклатура или контрагент), поэтому сдвиги не влияют на результат.
  • Как найти конкретную ячейку с расхождением в огромной оборотке? Инструмент проводит Diff по ячейкам. Если строка найдена по ключу, но данные расходятся, выдается точный лог: Колонка 'Сумма': в 1-м [1000], во 2-м [1200] с визуальной подсветкой этой ячейки.
  • Как сравнить таблицы с объединенными ячейками без ошибок? Обычный обход ТабличныйДокумент.Область() падает на объединенных ячейках. Здесь выгрузка в Таблицу Значений происходит через ПостроительЗапроса, который корректно разрешает объединения.
  • Как избежать ложных срабатываний при дубликатах ключей? Алгоритм использует индексацию через Соответствие и проверку полного совпадения строк. Если в документе есть дубликаты, они будут сопоставлены корректно, а не свалены в одну кучу.

Архитектура UUID-трекинга (BSL / 1С):


    
    ТекстРезультат = Новый ТекстовыйДокумент;
    ТекстРезультат.ДобавитьСтроку("=== ДЕТАЛЬНОЕ СРАВНЕНИЕ ТАБЛИЧНЫХ ДОКУМЕНТОВ ===");
    ТекстРезультат.ДобавитьСтроку("");
    
    КоличествоКолонок1 = ТЗ1.Колонки.Количество() - 1; // -1 так как последняя RowID
    КоличествоКолонок2 = ТЗ2.Колонки.Количество() - 1;
    
    Если КоличествоКолонок1 = 0 И КоличествоКолонок2 = 0 Тогда
        ТекстРезультат.ДобавитьСтроку("ОШИБКА: Оба документа пусты.");
        Возврат ТекстРезультат;
    КонецЕсли;
    
    ТекстРезультат.ДобавитьСтроку("(Сравнение по порядку колонок: 1-я с 1-й, 2-я со 2-й и т.д.)");
    ТекстРезультат.ДобавитьСтроку("");
    
    СчетчикОтличий = 0;
    МассивСовпадений = Новый Массив;
    ИндексКолонкиКлюча = 0; // Сравниваем по первой колонке
    
    // Индексация второго документа
    ИндексТЗ2 = Новый Соответствие;
    Для Каждого СтрТЗ2 Из ТЗ2 Цикл
        КлючПоиска = ?(КоличествоКолонок2 > 0, Строка(СтрТЗ2[ИндексКолонкиКлюча]), "");
        МассивСтрок = ИндексТЗ2.Получить(КлючПоиска);
        Если МассивСтрок = Неопределено Тогда
            МассивСтрок = Новый Массив;
            ИндексТЗ2.Вставить(КлючПоиска, МассивСтрок);
        КонецЕсли;
        МассивСтрок.Добавить(СтрТЗ2);
    КонецЦикла;
    
    Для Каждого СтрТЗ1 Из ТЗ1 Цикл
        КлючПоиска = ?(КоличествоКолонок1 > 0, Строка(СтрТЗ1[ИндексКолонкиКлюча]), "");
        МассивСтрок2 = ИндексТЗ2.Получить(КлючПоиска);
        
        Если МассивСтрок2 = Неопределено ИЛИ МассивСтрок2.Количество() = 0 Тогда
            СчетчикОтличий = СчетчикОтличий + 1;
            ТекстРезультат.ДобавитьСтроку("[-] Строка есть в 1-м, но отсутствует во 2-м документе | Ключ: " + КлючПоиска);
            МассивУИДУдалено.Добавить(СтрТЗ1.RowID); 
            Продолжить;
        КонецЕсли;
        
        НайденныйИндекс = Неопределено;
        Для Инд = 0 По МассивСтрок2.ВГраница() Цикл
            СтрТЗ2 = МассивСтрок2[Инд];
            Если СтрокиРавныПолностью(СтрТЗ1, СтрТЗ2) Тогда
                НайденныйИндекс = Инд;
                Прервать;
            КонецЕсли;
        КонецЦикла;

Ключевые сущности в коде: ПостроительЗапроса, UUID, Соответствие, Область(), ТабличныйДокумент, Diff, Маппинг.

Пошаговый сценарий использования (Use Case)

Задача: Сверить два варианта печатной формы (до и после доработки), вставив данные из Excel.

  1. Шаг 1. Запуск: Откройте внешнюю обработку (.epf) в режиме 1С:Предприятие (управляемые формы).
  2. Шаг 2. Загрузка первого документа: В поле "ТабДок1" вставьте данные, скопированные из Excel, табличного документа или таблицы значений.
  3. Шаг 3. Загрузка второго документа: В поле "ТабДок2" аналогично вставьте вторую версию данных.
  4. Шаг 4. Настройка ключа: Укажите ключевую колонку (по умолчанию — первая), по которой будут искаться строки.
  5. Шаг 5. Сравнение: Нажмите кнопку «Сравнить документы».
  6. Шаг 6. Анализ: Изучите визуальный результат на экране (цветовая подсветка строк) и читаемый текстовый лог в поле «Результат» с детализацией до ячейки.

Частые ошибки и их решения

Ошибка / Проблема

Причина в стандартных алгоритмах

Решение в инструменте

Сотни ложных отличий Добавилась 1 строка, съехала нумерация, построчное сравнение сломалось Diff по ключевой колонке: строки ищутся по значению, а не по номеру.
Подсветка не тех строк Память по номерам строк дает сбой при модификациях UUID-трекинг: скрытая колонка с уникальным идентификатором жестко привязывает подсветку к нужной области.
Ошибка обхода таблицы В таблице есть объединенные ячейки, ломающие перебор ПостроительЗапроса: выгрузка в ТЗ минуя визуальные объединения.
Ложные срабатывания на дублях Две одинаковые номенклатуры свернулись в одну Индексация через Соответствие: проверка полного совпадения строк исключает конфликты дублей.

 

Сравнительный анализ

Сравнение: Детальный Diff-анализатор vs Стандартное сравнение (Построчное / Внешние утилиты)

Критерий / Возможность

Стандартное построчное сравнение

Детальный Diff-анализатор (UUID-трекинг)

Устойчивость к сдвигам строк Низкая (1 лишняя строка ломает весь отчет) Высокая (маппинг по ключевой колонке)
Детализация отличий Только на уровне строк Diff по ячейкам с текстовым логом
Объединенные ячейки Вызывают ошибки обхода или смещение Корректно через ПостроительЗапроса
Визуальный результат Нет (или непонятные текстовые файлы) Цветовая подсветка прямо в ТабДоке
Работа с дублями ключей Сводит строки в одну или путает Индексация и проверка полных совпадений
Чистота данных на выходе Мусорные служебные символы/колонки Гарантированное удаление технической УИД-колонки

 

Технические характеристики и Граф Сущностей

  • Платформа: 1С:Предприятие 8.3 (Управляемые формы).
  • Совместимость: Любые конфигурации (ERP, КА, ЗУП, УТ, БП и др.), работа с внешними .epf.
  • Формат входящих данных: Табличный документ 1С, Таблица значений, Буфер обмена (Excel / CSV).
  • Вариант поставки: Внешняя обработка, не требует изменения типовой конфигурации.
  • Стек / Технологии: ПостроительЗапроса, UUID, Соответствие, Область(), Diff-алгоритмы.

🔗 Ключевые семантические связи

  • Выгрузка: ТабличныйДокумент → ПостроительЗапроса → ТаблицаЗначений
  • Маппинг: КлючеваяКолонка → Соответствие → ПоискДублей
  • Трекинг: УникальныйИдентификатор (UUID) → ДобавитьКолонкуУИД → Область() → ЦветФона
  • Безопасность данных: УдалениеКолонкиУИД → ЧистыйТабДок

Экосистема инструментов

  1. Канбан-менеджер– визуализируйте задачи, выявленные при сравнении таблиц.
  2. Менеджер цветовых схем – настройте подсветку расхождений под свои задачи.
  3. Менеджер редактирования данных PRO– исправьте найденные расхождения на месте.
  4. Meta1C AI Bridge – выгрузите результаты сравнения в ИИ для анализа.
  5. Менеджер создания на основании – создайте корректирующие документы по итогам сравнения.
  6. Убийца зависимостей – замените ошибочные ссылки, обнаруженные при сравнении.
  7. Менеджер очистки битых ссылок – убедитесь, что таблицы не содержат битых ссылок.
  8. Центр администрирования 1С – сделайте бэкап перед массовыми правками по результатам сравнения.
  9. Чат-бот для 1С – получайте уведомления о найденных расхождениях.
  10. Граф зависимостей – посмотрите, как связаны объекты, попавшие в сравнение.
  11. Менеджер переноса данных XML&JSON – перенесите выверенные данные между конфигурациями.

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.26.110
  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.466

Вступайте в нашу телеграмм-группу Инфостарт

Сравнение табличных документов ТабДок сравнение ТабДоков подсветка отличий Diff визуальное сравнение сравнение по ключу поиск отличий сверка отчетов сравнение ячеек ПостроительЗапроса сверка данных печатные формы сравнение строк цветовая подсветка детальное сравнение обработка сравнения diff 1с