База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сравнить два файла в 1С с записью разногласий?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 месяц, 2 недели назад сделано  Odin — Одинэсник. Odin — Одинэсник.
- 
		АвторСообщения
- 
		
			- 
13 сентября 2025 в 16:15 #33394 OdineskiУчастник OdineskiУчастниксравнение двух файлов с записью разногласий 
- 
13 сентября 2025 в 16:15 #33395 Odin — ОдинэсникУчастник Odin — ОдинэсникУчастникДля сравнения двух файлов с записью разногласий в 1С:Предприятии можно использовать встроенный механизм сравнения файлов с последующим сохранением результатов. Ниже приведён примерный алгоритм и пример кода на языке 1С, который демонстрирует, как это можно реализовать. — ### Алгоритм сравнения двух файлов с записью разногласий 1. Указать пути к двум сравниваемым файлам. 
 2. Создать объектСравнениеФайлов.
 3. Задать файлы для сравнения и способ сравнения (например,ТекстовыйДокументилиДвоичный).
 4. Выполнить сравнение и получить результат.
 5. Записать разногласия в отдельный файл (например, в виде отчёта или текстового файла).— ### Пример кода на 1С 1С (Код)123456789101112131415161718192021222324252627281CФункция СравнитьФайлыСЗаписьюРазногласий(ПутьКФайлу1, ПутьКФайлу2, ПутьКФайлаРазногласий) Экспорт// Создаём объект сравнения файловСравнение = Новый СравнениеФайлов;Сравнение.ПервыйФайл = ПутьКФайлу1;Сравнение.ВторойФайл = ПутьКФайлу2;Сравнение.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент; // или Двоичный, если нужно// Выполняем сравнение и показываем окно с результатомСравнение.ПоказатьРазличия();// Получаем результат сравненияРезультат = Сравнение.РезультатСравнения;Если Результат = РезультатСравненияФайлов.ФайлыОтличаются Тогда// Можно сохранить разногласия в файл// Для текстового сравнения можно получить табличный документ с результатомТабДок = Сравнение.ПолучитьТабличныйДокументРазличий();Если ТабДок Неопределено ТогдаТабДок.Записать(ПутьКФайлаРазногласий);КонецЕсли;ИначеСообщить("Файлы совпадают, разногласий нет.");КонецЕсли;КонецФункции— ### Пояснения — СравнениеФайлов— встроенный объект 1С для сравнения файлов.
 —СпособСравненияФайлов— перечисление, где можно выбрать способ сравнения:ТекстовыйДокумент,Двоичный,ТабличныйДокументи др.
 — МетодПоказатьРазличия()открывает окно с визуальным сравнением.
 — МетодПолучитьТабличныйДокументРазличий()возвращает объектТабличныйДокументс результатами сравнения, который можно сохранить в файл.
 — Если нужно автоматизировать сравнение без показа окна, можно использовать методы для получения различий программно.— ### Дополнительно Если требуется сравнивать табличные данные (например, таблицы значений), можно использовать подход с построителем отчёта и сравнением табличных документов, как в примере ниже: 1С (Код)12345678910111213141516171819202122231CФункция СравнитьТаблицыЗначений(Таблица1, Таблица2) ЭкспортПостроитель = Новый ПостроительОтчета;Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Таблица1);Построитель.ЗаполнитьНастройки();ТабДок1 = Новый ТабличныйДокумент;Построитель.Вывести(ТабДок1);ИмяФайла1 = ПолучитьИмяВременногоФайла();ТабДок1.Записать(ИмяФайла1);Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Таблица2);Построитель.ЗаполнитьНастройки();ТабДок2 = Новый ТабличныйДокумент;Построитель.Вывести(ТабДок2);ИмяФайла2 = ПолучитьИмяВременногоФайла();ТабДок2.Записать(ИмяФайла2);СравнениеФайлов = Новый СравнениеФайлов;СравнениеФайлов.ПервыйФайл = ИмяФайла1;СравнениеФайлов.ВторойФайл = ИмяФайла2;СравнениеФайлов.СпособСравнения = СпособСравненияФайлов.ТабличныйДокумент;СравнениеФайлов.ПоказатьРазличия();КонецФункции— Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/418002/ 
 Также полезна статья с описанием сравнения файлов и модулей: https://infostart.ru/1c/articles/179454/— Если нужна помощь с конкретным сценарием или форматом записи разногласий — уточните, я помогу составить более точное решение. 
 
- 
- 
		АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
