СравнениеФайлов.ПоказатьРазличия

Методы · ShowDifferences

Открывает окно демонстрации различий.

Синтаксис

ПоказатьРазличия()
Полное описание, параметры и ограничения

СравнениеФайлов.ПоказатьРазличия (FileCompare.ShowDifferences)

СравнениеФайлов (FileCompare)

ПоказатьРазличия (ShowDifferences)

Доступен, начиная с версии 8.0.

Синтаксис:
ПоказатьРазличия()
Описание:

Открывает окно демонстрации различий.

Доступность:

Толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Найти изменение количества и суммы в своих файлах и показать различия

Сравнить возвращает Истина, если файлы равны, и Ложь при различиях. Немодальное окно открывается только для действительно различных учебных данных.

Где и как запускать

Полный модуль своей ОБЫЧНОЙ формы внешней обработки. Только настольный толстый клиент Windows.

Подготовка

  1. В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте новую внешнюю обработку с ОБЫЧНОЙ формой. Эти уроки предназначены толстому клиенту Windows, не тонкому, веб-клиенту или серверу.

  2. Добавьте кнопку ПроверитьСравнение, её событию Нажатие назначьте одноимённую процедуру. Весь приведённый код — полный модуль обычной формы, без директив управляемого клиент-серверного модуля.

  3. Каждый запуск создаёт два новых собственных временных txt-файла на компьютере толстого клиента. Их точные пути выводятся до записи. В коде нет выбора, перезаписи или сравнения рабочих файлов.

  4. Учебные данные — вымышленная Книга и суммы. Не вставляйте секреты, пароли, коммерческие данные или пути рабочих конфигураций.

  5. Файлы намеренно остаются после опыта, чтобы окно различий могло их читать. После закрытия окна вручную удалите только два точных пути своего запуска. При ошибке также проверьте только уже напечатанные пути.

  6. Модальный опыт при запрете модальности отказывает до создания файлов. Для нового кода предпочтителен первый немодальный урок.

Процедура ПроверитьСравнение(Кнопка)
    ПервыйТекст = "Книга;3;250;750";
    ВторойТекст = "Книга;4;250;1000";
    ПервыйРазделитель = Символы.ВК + Символы.ПС;
    ВторойРазделитель = Символы.ВК + Символы.ПС;
    ПервыйПуть = ПолучитьИмяВременногоФайла("txt");
    ВторойПуть = ПолучитьИмяВременногоФайла("txt");
    ПервыйФайл = Новый Файл(ПервыйПуть);
    ВторойФайл = Новый Файл(ВторойПуть);
    Если ПервыйФайл.Существует() ИЛИ ВторойФайл.Существует() ИЛИ ПервыйПуть = ВторойПуть Тогда
        ВызватьИсключение "Нужны два разных новых собственных временных пути";
    КонецЕсли;
    Сообщить("Свой первый файл: " + ПервыйПуть);
    Сообщить("Свой второй файл: " + ВторойПуть);
    ПервыйДокумент = Новый ТекстовыйДокумент;
    ПервыйДокумент.УстановитьТекст(ПервыйТекст);
    ВторойДокумент = Новый ТекстовыйДокумент;
    ВторойДокумент.УстановитьТекст(ВторойТекст);
    ПервыйДокумент.Записать(ПервыйПуть, КодировкаТекста.UTF8, ПервыйРазделитель);
    ВторойДокумент.Записать(ВторойПуть, КодировкаТекста.UTF8, ВторойРазделитель);
    Сравнение = Новый СравнениеФайлов;
    Сравнение.ПервыйФайл = ПервыйПуть;
    Сравнение.ВторойФайл = ВторойПуть;
    Сравнение.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент;
    Сравнение.ИгнорироватьПустоеПространство = Ложь;
    Сравнение.УчитыватьРегистр = Истина;
    Сравнение.УчитыватьРазделителиСтрок = Ложь;
    Равны = Сравнение.Сравнить();
    Сообщить(Равны = Ложь);
    Сообщить(Сравнение.ПервыйФайл = ПервыйПуть И Сравнение.ВторойФайл = ВторойПуть);
    Если НЕ Равны Тогда
        Сравнение.ПоказатьРазличия();
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Получить два собственных временных имени, проверить отсутствие обоих файлов до первой записи, вывести пути.

  2. Записать UTF8 с одинаковыми разделителями строк: 3/750 в первом и 4/1000 во втором.

  3. Установить текстовый способ, явные правила пробелов, регистра и разделителей.

  4. Сравнить даёт Ложь, потому что данные действительно различаются. Ветка НЕ Равны открывает немодальное окно различий.

  5. После просмотра закрыть только своё окно и вручную убрать два напечатанных файла.

Как проверить результат

  1. Две булевы проверки Истина: результат сравнения Ложь, пути принадлежат созданным файлам.

  2. В окне видна разница Книга;3;250;750 и Книга;4;250;1000. Код ничего не исправляет и не объединяет автоматически.

Ожидаемый результат

Полный реальный опыт создания и сравнения учебных файлов с правильно трактуемым булевым результатом.

На что обратить внимание

  1. Истина из Сравнить означает равенство, не наличие отличий.

  2. ПоказатьРазличия открывает окно, не возвращает изменённый документ.

  3. Не удаляйте файлы немедленно после открытия немодального окна: они оставлены на время просмотра.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.