Сравнение табличных документов

21.03.13

Задачи пользователя - Анализ учета

- Вот можно же сравнить текстовые файлы, TotalCommander'ом, например, и все сразу видно: какие строки отличаются, какие строки уникальны... А мне такое же самое для табличного документа надо... Сделаете, а?

Скачать файл

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

Наименование По подписке [?] Купить один файл
Сравнение табличных документов
.epf 45,41Kb
380
380 Скачать (1 SM) Купить за 1 850 руб.

Идея этой обработки возникла, когда после очередного переноса данных из 7.7 в 8.2 сотрудники Заказчика не смогли проверить правильность переноса путем сравнения контрольных отчетов по причине банального неумения работать с табличными документами. Они распечатали километровые портянки контрольных отчетов и 3 дня 2 человека выверяли их вручную с фломастерами, после чего плюнули на это дело и обиделись на меня...

Пришлось им помочь уже бесплатно: повторно осуществили перенос и научили их сравнивать файлы MS Excel. И хотя это несколько ускоряет работу "крыжильщиков", все равно процент ручной работы остается очень высоким.

Поэтому, с заделом на будущее, было решено несколько автоматизировать этот процесс.


Итак, что умеет обработка.

Обработка умеет сравнивать 2 табличных файла. Допустимые форматы - MXL и XLS. При сравнении файлов MS Excel наличие на компьютере установленного MS Excel не требуется, чтение файлов производится посредством ADODB.

Для сравнимаемых полей возможен также вывод разницы этих колонок, если они имеют числовой тип.

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

Сравнение может производится в двух режимах: последовательное сравнение и обычное. 

Последовательное сравнение происходит следующим образом:

- считывается первая строка обоих файлов

- проверяется, совпадают ли в строках ключевые поля (сопоставление строк)

- если ключевые поля совпадают, производится сравнение полей сравнения и выводится одна строка в результирующий документ

- если ключевые поля не совпадают, считается, что это две абсолютно разные строки и в результирующий документ выводится 2 строки: одна как "присутствующая только в первом файле", вторая - "присутствующая только во втором файле".

Тоже самое происходит, если в каком либо файле действительно присутствует строка, которой нет в другом файле. При этом дальнейшее сравнение может происходить с ошибками, поскольку в файлах одинаковые строки смещены отностительно друг друга.

- считывается следующая строка файла и все повторяется...

Обычное сравнение происходит несколько иначе и, на мой взгляд, более предпочтительно:

- считывается первая строка первого файла

- по значениям ключевых полей во втором файле ищется подходящая строка

- если такая строка найдена, производится сравнение и выводится одна строка в результирующий документ. В дальнейшем при поиске эта строка уже не учитывается.

- если такая строка не найдена, выводится строка первого документа

- если по завершении чтения первого файла во втором файле остались строки, которые еще не учавствовали в сравнении, они выводятся в конце результирующего документа

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

Обработка снабжена кратенькой справкой, постарался расписать порядок работы более-менее понятно :)

Update 20.09.2012:

  • добавлен вывод разницы сравниваемых полей и устранены мелкие ошибки.

Update 27.09.2012:

  • - добавлено автоопределение размеров таблиц при выборе файла
  • - реализовано автоопределение заголовка колонки и типа значения колонки, если начальная строка указана не первая
  • - реализована возможность автозаполнения табличных частей "Сопоставление строк" и "Сравнение строк"
  • - добавлена возможность открывать выбранные файлы на просмотр из формы обработки
  • - реализована индикация процесса
  • - добавлена возможность перемещаться по результирующему табличному документу к следующему/предыдущему различию
  • - мелкие интерфейсные доработки

 Update 21.03.2013:

  • - добавлена опция для включения регистронезависимого сравнения строк (спасибо Vanchez за идею)
  • - добавлена возможность регулировать ширину всех колонок сразу (по пожеланию gull22 :)
  • - добавлена возможность установки отбора в результирующем табличном документе: только различающиеся, только из первого файла, только из второго файла
  •  

См. также

Анализ учета Закрытие периода Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Налог на прибыль НДС Платные (руб)

Каждый бухгалтер не раз сталкивался с требованием от налоговой инспекции пояснить расхождения в показателях декларации по Налогу на прибыль («Доходы от реализации» + «Внереализационные доходы») и налоговой базой по НДС за год. Являются ли ошибкой подобные расхождения? Как пояснить налоговой их причину? Отчет «Анализ расхождений выручки НДС и Налога на прибыль в декларациях» для 1С (БП 3.0 ПРОФ и КОРП, КА 2, ЕRP) поможет найти все расхождения.

7200 руб.

21.10.2017    88323    328    172    

295

Анализ учета Бухгалтер 8.3.14 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

“Зеленое” закрытие месяца не всегда является показателем корректного расчета и отражения в регламентированном учете движений товаров. Если Вам надоело исправлять отрицательные остатки в оборотно-сальдовой ведомости и проверять 10,41,21 счет то этот комплект отчетов для вас.

7200 руб.

25.10.2023    1368    1    0    

6

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Анализ учета Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

19200 руб.

27.10.2017    42477    25    13    

44

Анализ учета Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Платные (руб)

Обработка позволяет сравнивать количественные остатки номенклатуры между Бухгалтерия 3.0 и УТ 11.5

3600 руб.

06.02.2023    4780    15    3    

18

Взаиморасчеты Анализ учета Бухгалтер Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка позволяет сравнивать по документам и сверять по долгам покупателей и поставщиков между базами УНФ 1.6, УНФ 3.0 и Бухгалтерия 3.0,

6000 руб.

24.08.2022    6831    7    1    

10

Анализ учета Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

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

12000 руб.

28.07.2022    9683    9    25    

27

Рабочее место Загрузка и выгрузка в Excel Анализ учета Бизнес-аналитик Бухгалтер Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Конструктор отчетов, при помощи которого можно создавать различные отчеты без помощи программиста. Программа позволяет создавать отчеты на основании данных как из одной базы 1С так и из нескольких баз 1С, и еще использовать данные из .xls файлов.

2500 руб.

28.08.2020    22728    27    50    

45
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mailrum2004 1 19.09.12 19:31 Сейчас в теме
Спасибо. Хорошая обработка. Можно еще вывести отдельной колонкой разницу сумм.
2. Damian 911 19.09.12 19:55 Сейчас в теме
3. Bacemo 19.09.12 20:55 Сейчас в теме
да. Это лучше, чем штатная 1С Сравнение файлов. Так что + поставил
4. DrAku1a 1747 20.09.12 02:33 Сейчас в теме
Отлично! Теперь не нужно "париться" с ексель-функцией ВПР!
5. Famza 85 20.09.12 08:24 Сейчас в теме
(0) При сравнении двух файлов mxl из 7.7 выскочило
{ВнешняяОбработка.СравнениеТабличныхДокументов.МодульОбъекта(213)}: Ошибка при вызове метода контекста (Область)
Ячейка = ТабДок.Область("R"+ТекущаяСтрока+"C"+ТекущаяКолонка);
по причине:
Область не найдена: R1 000C2
Пересохранил в 8ке - результат тот же
6. Damian 911 20.09.12 09:54 Сейчас в теме
(5) совсем забыл, что числа добавляются к строкам с неразрывным пробелом между разрядами :) Сегодня поправлю.
7. Damian 911 20.09.12 13:47 Сейчас в теме
Добавлена возможность вывода разницы между сравниваемыми колонками числового типа и поправлены некоторые ошибки.
18. mailrum2004 1 21.09.12 14:20 Сейчас в теме
Спасибо за изменения (7). Идея (12) автоматического поиска ключевых колонок очень понравилась. Хорошо еще иметь возможность указывать тип для каждого файла в отдельности, чтобы сравнить *.xls с *.mxl
19. Damian 911 21.09.12 15:21 Сейчас в теме
(18) для того, чтобы задать параметры чтения файла, его надо открыть и посмотреть на состав колонок и количество строк. Мне кажется, при этом ничего не мешает сохранить MXL в XLS и сравнивать уже файлы одного формата.
8. fixin 4276 20.09.12 15:50 Сейчас в теме
Молодетс! Давно сам хотел написать такую обработку.
Только хотел, чтобы она сама определяла ключевые поля (нечисловые), анализируя статистику совпадаений.
И чтобы могла сравнивать многострочные отчеты, где одна строка данных занимает 2-3 строки (в 1с-стиле, те же карточки счета и т.п.)
9. Damian 911 20.09.12 16:20 Сейчас в теме
(8) была идея, чтобы сравнивала ячейки не одной строки, а нескольких (для сравнения ОСВ было бы милое дело), но обломался реализовывать.
Может добавлю, может нет, может кто-то другой добавит и выложит :) Буду только за :)
12. fixin 4276 20.09.12 17:09 Сейчас в теме
(9) ладно, оставь одну строку, но сделай автопоиск ключа хотя бы. Тогда будет мегажесть и тебе отольют памятник из золота.

Смотри, как это работает.
Есть две таблицы с, например, 5 колонками.
Ты предполагаешь, что у каждой из таблиц одинаковый уникальный ключ из нескольких колонок. Задача - его найти.

Перебираем ключи из 1, 2, 3 и 4х колонок.
Ищем такую комбинацию колонок, которая максимально встречается во второй таблице.

Ну например, есть колонки ФИО Рост Вес Дата
Я беру сначала ФИО, ФИО не годится, т.к. есть неоднозначные соответствия.
Я беру ФИО + Рост, но опять же не прокатывает, т.к. есть дубли.
А вот ФИО + Дата дублей не будет.

И еще - не мешало бы автосопоставлять колонки.
Например, по значениям - можно ведь определить, где колонка ФИО, где колонка адреса, где колонка дат и т.п.
Это еще не ИИ, но интересная тема. Тут бы пользователям помочь - подсказать какие виды таблиц бывают.

Пусть она сравнивает только плоские таблицы, в конце концов, всегда можно получить однострочные таблицы, или заюзать мою обработку по вытягиванию многоэтажных списков.
14. Damian 911 20.09.12 19:00 Сейчас в теме
(12) действительно, интересная тема, но, на мой взгляд, трудо- и ресурсоемкая. К тому же пользователи могут вконец облениться :)

(13), а зачем? для DBF придется указывать имена полей сопоставления и сравнения, следовательно файл надо открыть каким-нить просмотрщиком, тем же Excel... А раз открыли в Excel, почему бы его не сохранить как XLS? Ну и дальше по накатанной :)
15. fixin 4276 20.09.12 19:21 Сейчас в теме
(14) озолочение оно требует сил. Чтобы быть Золотым, нужно чтобы юзвери невыносимо Любили. Вот как меня, например. ;-)
16. Yashazz 4797 21.09.12 13:02 Сейчас в теме
(8), (9) Ага. Однажды я озверел и сделал такую штуку, мои юзвери все пользуются. А потом 2 года всё собирался причесать и на ИС выложить, но вот, опередили. Сравнение для нескольких строк тоже влом делать оказалось.
17. fixin 4276 21.09.12 13:25 Сейчас в теме
(16) вот видишь, как важно преУСПЕТЬ
10. VasMart 20.09.12 16:29 Сейчас в теме
11. Damian 911 20.09.12 17:04 Сейчас в теме
(10) WinMerge в своем первозданном виде не умеет сравнивать таблицы подобным образом. Возможно, есть плагины для него, которые реализовывают этот функционал, но я не задавался их поиском.
13. tazmag 20.09.12 17:37 Сейчас в теме
20. dyak84 23.09.12 09:30 Сейчас в теме
Спасибо вещь то что доктор прописал, плюс куча нужных плюшек. Сравнение с помощю екзеля уже просто достало, каждому новому человеку обясняй одно и тоже. Автору огромное спасибо, так держать. Появятся деньги обязательно скачаю.
21. Famza 85 24.09.12 08:47 Сейчас в теме
(0), еще было бы неплохо прикрутить просмотр сравниваемых файлов - удобней и номера колонок заполнять будет
22. Famza 85 24.09.12 09:18 Сейчас в теме
(0), взял две оборотки из 7.7, сохранил в *.mxl и сравнил. Результат:
1. При выборе в настройках сравнения для файла типа "Число" ячейки обнуляются. Может преобразовать в число хотя бы для файлов 1С?
2. При последовательном сравнении файлов сопоставление получается такое:
Прикрепленные файлы:
23. Damian 911 24.09.12 19:10 Сейчас в теме
(22),
1. Если не удается преобразовать значение ячейки в число (значение содержит нецифровые символы) - возвращается 0.
2. Последовательное сравнение так и будет работать. Этот режим нормально отработает только при идентичном содержимом колонок сопоставления.
24. Famza 85 25.09.12 09:02 Сейчас в теме
(23) но ведь колонки в пункте 2 одинаковы - стандартная ОСВ.
27. Damian 911 28.09.12 11:27 Сейчас в теме
(24) Famza, судя по приложенному скрину, во втором файле нет строки "08.4 Приобр. отд. объектов ОС". Последовательное сравнение так и должно отработать. Вообще этот режим сравнения изначально не планировался и в дальнейшем развиваться вряд ли будет. Используйте обычное сравнение, оно даст более качественный результат.

Обработка обновлена, см. Update 27.09.2012.
25. SvetLanaGil 26.09.12 13:54 Сейчас в теме
Спасибо за обработку! Отличное подспорье в работе.
26. Фред 27.09.12 13:15 Сейчас в теме
На досуге попробую, Кажется, может помочь иногда.))
28. gull22 105 05.10.12 13:17 Сейчас в теме
Отличная обработка. Пожелание автору. Не обязательное, и за то чтоесть низкий поклон. Желательно реализовать возможность изменения ширины колонок на закладке "Результат", а то экрана бывает не хватает
29. antares_of 11 29.10.12 11:42 Сейчас в теме
Очень полезная обработка. Встроенная в 1с обработка "сравнить файлы" тоже это делает, но не дает ни каких возможностей настройки перед выводом. А еще в стандартной я столкнулся с проблемой: когда сравниваю остатки в двух базах УТ, выгружаю в табличный документ всего две колонки с кодом (или названием) и с количеством. Так она мне некоторые позиции сопоставляет с теми у которых совершенно другой код и говорит, что код изменился. Хотя номенклатура с таким кодом (или названием) есть в обеих базах.
30. Vanchez 143 13.03.13 12:34 Сейчас в теме
Спасибо, очень пригодилась! Для себя добавил галки "Не учитывать регистр" (для колонок сопоставления), "Выводить только разные строки".
31. пользователь 13.03.13 17:49
Сообщение было скрыто модератором.
...
32. Famza 85 14.03.13 08:43 Сейчас в теме
(31) gurtas,
z ghjcnj cgfvk. n/r / ytn ltytu f j,hf,jnre [jxtncz

транслит "я просто спамлю т/к / нет денег а обработку хочется". Спам одноозначно
33. VallyD 14.03.13 22:49 Сейчас в теме
Обработка наверное хорошая, но если я правильно поняла, то если сформировать ОСВ по товарам с учетом партий, ничего не получится правильно сравнить. Не поможет ни последовательное, ни обычное сравнение. Так как для разных товаров может быть один партиеобразующий документ, и тогда наступит полная путаница. Пользователь fixin прав, без поиска ключа не обойтись.
34. Damian 911 14.03.13 23:38 Сейчас в теме
(33) да, не получится вообще нормально сравнить, если отчет построен иерархически, с группировками (не только ОСВ).
Для целей сравнения я обычно пишу на коленке отчет, который выведет таблицу значений, а потом в обработке указываю, совпадение каких полей можно считать ключом.
Иногда, кстати, быстрее не отчет на коленке набросать, а запрос в консоли - и вывести результат в табличный документ )
35. gull22 105 29.03.13 17:08 Сейчас в теме
Низкий поклон автору. Выручала экономя время не один раз! Скачал и другим советую.
36. logarifm 1123 10.04.13 10:36 Сейчас в теме
Идея имеется но она узкоприменима!
37. dyak84 10.04.13 10:57 Сейчас в теме
Автор такой маленький вопрос а если сортировка в первом файле от А до Ю, а в другом от Ю до А как в таком случае будет работать ваша обработка. Большие по несколько тисяч строк Ваша обработка обрабативает. Зарание спасибо за ответ
38. Damian 911 10.04.13 12:50 Сейчас в теме
(37) сортировка файлов не имеет значения, если не используется последовательное сравнение.
39. toss 31 31.05.13 10:51 Сейчас в теме
Штатное сравнение хорошо показывает конкретные ячейки с измененными данными, у Вас же цветом выделяется вся строка, и если колонок с данными несколько - непонятно в какой из них отличаются значения. Хотелось бы более наглядной заливки.
41. Damian 911 07.06.13 16:41 Сейчас в теме
(39) Первоначально задача стояла вообще, в принципе, определить строки, в которых различаются значения, чтобы сузить область поиска ошибок.
Раскрашивание и т.п. - это уже мелкие, дорогие сердцу интерфейсные плюшки :)
Может, когда-нибудь попозже и реализую более наглядную заливку.

(40) Судя по информации, почерпнутой в доверительных беседах с Google, это какой-то бок .NET Framework.
Файлы Excel читаются при помощи ADODB, и где-то передаются недопустимые, с точки зрения .NET, аргументы.
Единственное, что могу предложить:
1. Попробовать запустить на другой машине
2. Скопировать файлы в чистый табличный документ, сохранить как MXL и сравнивать уже их.
40. gull22 105 07.06.13 14:45 Сейчас в теме
Беда пришла откуда не ждали. УПП релиз 1.3.40.2 платформа 8.2.18.102. При выборе файла Excel сообщение об ошибке
{ВнешняяОбработка.СравнениеТабличныхДокументов.МодульОбъекта(1885)}: Ошибка при установке значения атрибута контекста (ActiveConnection)
axCatalog.ActiveConnection = Connection;
по причине:
Произошла исключительная ситуация (0x800a0bb9)
42. SAMIR666 22.02.14 23:46 Сейчас в теме
Отличная Оброботка
43. SlavaVNL 8 16.12.14 03:07 Сейчас в теме
Еще не проверял, но уже скачал и плюсанул. Всегда пользовался ВПР а тут такое счастие!
44. sonGodv 43 14.01.16 19:03 Сейчас в теме
Качественная обработка. Жаль нет управляемой формы. Думаю добавить, как-то уже отвык от обычного приложения
45. b-dm 174 02.03.16 15:35 Сейчас в теме
Хорошая вещица, добронто сделанная, но мне к сожалению не помогла...
46. PavelZnaikin 174 18.03.16 20:58 Сейчас в теме
её надо УФ переводить
47. Castlevania 47 08.04.16 11:39 Сейчас в теме
Огромное спасибо! Очень помогла
48. tricolor 23 26.08.16 17:24 Сейчас в теме
49. DomKom 13.03.19 00:48 Сейчас в теме
Гениально, работает, СПАСИБО.
Оставьте свое сообщение