Назначение
+++Предназначена для сравнения двух табличных документов схожей структуры с целью выявления в них расхождений.
+Может использоваться для сравнения файлов отчетов при переносе остатков, а также для анализа прайс-листов.
Общие сведения
+++Обработка позволяет сравнить два табличных документа, сохраненных в форматах MXL или XLS, с отображением различающихся строк.
+При сравнении файлов MS Excel наличе установленного MS Excel в системе не требуется.
+Если в процессе сравнения файлов окажется, что файлы содержат некоторые абсолютно разные строки, они будут выведены со смещением относительно друг друга.
Порядок работы и описание настроек
+++1. Выбрать тип сравниваемых файлов: MXL или XLS
+2. Выбрать файлы, которые будут сравниваться. Если выбраны файлы, которые не существуют, или не могут быть прочитаны, будет вызвана исключительная ситуация.
+3. Для каждого файла указать диапазон строк и колонок для чтения. В случае, если диапазоны заданы неверно, конечные значения строк и колонок превышают существующие в файле, при чтении такого файла будет вызвана исключительная ситуация.
+4. Для каждого файла выбрать номера колонок, которые будут выведены в результирующий документ. При этом можно воспользоваться кнопкой "Заполнить": таблица будет заполнена колонками согласно заданому диапазону колонок. Также можно назначить имена для этих колонок, которые будут выводится в шапке результирующего документа. Для числовых полей, которые учавствуют в сравнении, можно задать тип значения "Число", т.к. сравнение чисел дает более точный результат, чем сравнение числовых строк.
+5. В табличной части "Сопоставление строк по колонкам" необходимо указать номера колонок первого и второго файла, по значениям которых будет определяться, подлежит ли соответствующая строка дальнейшему сравнению. Иными словами, эти ключевые поля сравниваемых таблиц. Если в таблице больше одной строки, строки объединяются по "И".
+6. В табличной части "Сравнение строк по колонкам" необходимо указать номера колонок первого и второго файла, значения кторых будут сравниваться для принятия решения: одинаковы строки, или отличаются.
+7. При помощи флажка "Последовательное сравнение файлов" можно определить режим сравнения.
+Последовательное сравнение происходит следующим образом:
+++- считывается первая строка обоих файлов
+- проверяется, совпадают ли в строках ключевые поля (сопоставление строк)
+- если ключевые поля совпадают, производится сравнение полей сравнения и выводится одна строка в результирующий документ
+- если ключевые поля не совпадают, считается, что это две абсолютно разные строки и в результирующий документ выводится 2 строки: одна как "присутствующая только в первом файле", вторая - "присутствующая только во втором файле".
+Тоже самое происходит, если в каком либо файле действительно присутствует строка, которой нет в другом файле. При этом дальнейшее сравнение может происходить с ошибками, поскольку в файлах одинаковые строки смещены отностительно друг друга.
+- считывается следующая строка файла и все повторяется...
Обычное сравнение происходит следующим образом:
+++- считывается первая строка первого файла
+- по значениям ключевых полей во втором файле ищется подходящая строка
+- если такая строка найдена, производится сравнение и выводится одна строка в результирующий документ. В дальнейшем при поиске эта строка уже не учитывается.
+- если такая строка не найдена, выводится строка первого документа
+- если по завершении чтения первого файла во втором файле остались строки, которые еще не учавствовали в сравнении, они выводятся в конце результирующего документа
8. Для более наглядного отображения результатов сравнения можно определить цвет фона и текста для соответствующих случаев:
+++- строки различаются
+- строка присутствует только в первом файле
+- строка присутствует только во втором файле
9. Установка флажка "Обрезать пробелы..." позволяет дать более точный результат при сравнении ключевых полей и полей сравнения, т.к. при этом не учитываются незначащие пробелы в начале и в конце значения ячейки табличного документа.
+10. Установка флага "Выводить разницу" позволяет вывести в результирующий документ разницу между сравниваемыми числовыми колонками. Обязательное условие: сравниваемые колонки должны быть включены в выводимые колонки и иметь числовой тип значений.
+11. Флаг "Не выводить одинаковые строки" регулирует величину результирующего документа. При установленном флаге строки, которые были определены как идентичные, выводится не будут.
+12. Флаг "Не учитывать регистр при сравнении строк" определяет, будут ли строки "ТекстоваяСтрока" и "ТЕКСТОВАЯстрока" признаны идентичными.
+13. Флаг "Выводить расшифровку цветов" определяет, выводить или нет в конце результирующего документа пояснения по раскраске строк.
+14. Флаг "Использовать индикацию" включает отображение процесса сравнения. Это может сказаться на времени обработки данных.
Дополнительные функции
+++При частом сравнении файлов одной и той же структуры можно сохранять настройки обработки между сеансами работы. Для этого предназначены кнопки "Сохранить настройки" и "Восстановить настройки" в командной панели формы.
+Результат сравнения файлов можно сохранить в файл в формате MXL или XLS
Информация о разработчике
++\ No newline at end of file diff --git a/src/DataProcessors/ирСравнениеТекстов/Ext/ObjectModule.bsl b/src/DataProcessors/ирСравнениеТекстов/Ext/ObjectModule.bsl new file mode 100644 index 000000000..33cb1c16e --- /dev/null +++ b/src/DataProcessors/ирСравнениеТекстов/Ext/ObjectModule.bsl @@ -0,0 +1,26 @@ +//ирПортативный Перем ирПортативный Экспорт; +//ирПортативный Перем ирОбщий Экспорт; +//ирПортативный Перем ирСервер Экспорт; +//ирПортативный Перем ирКэш Экспорт; +//ирПортативный Перем ирКлиент Экспорт; + +Перем мПлатформа Экспорт; + +//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла); +//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf"; +//ирПортативный #Если Клиент Тогда +//ирПортативный Контейнер = Новый Структура(); +//ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер); +//ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда +//ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля); +//ирПортативный ирПортативный.Открыть(); +//ирПортативный КонецЕсли; +//ирПортативный #Иначе +//ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта +//ирПортативный #КонецЕсли +//ирПортативный ирОбщий = ирПортативный.ОбщийМодульЛкс("ирОбщий"); +//ирПортативный ирКэш = ирПортативный.ОбщийМодульЛкс("ирКэш"); +//ирПортативный ирСервер = ирПортативный.ОбщийМодульЛкс("ирСервер"); +//ирПортативный ирКлиент = ирПортативный.ОбщийМодульЛкс("ирКлиент"); + +мПлатформа = ирКэш.Получить(); // Используется в форме ПроизвольныйАлгоритм, на сервере отключаем для ускорения многопоточной обработки diff --git a/src/DataProcessors/ирПлатформа/Forms/СравнениеТекстов.xml b/src/DataProcessors/ирСравнениеТекстов/Forms/Форма.xml similarity index 83% rename from src/DataProcessors/ирПлатформа/Forms/СравнениеТекстов.xml rename to src/DataProcessors/ирСравнениеТекстов/Forms/Форма.xml index 5f84c7806..198d929b0 100644 --- a/src/DataProcessors/ирПлатформа/Forms/СравнениеТекстов.xml +++ b/src/DataProcessors/ирСравнениеТекстов/Forms/Форма.xml @@ -1,20 +1,20 @@ © 2012, Damian
+http://infostart.ru/profile/25774/
+Страница разработки: http://infostart.ru/public/152745/