Найдите расхождения в отчетах за считанные секунды




Как долго можно «ломать глаза», сравнивая два похожих отчёта ?
Форматируете две разных группы колонок для очного сравнения ?
Пишите формулы в EXCEL,чтобы он нашёл, «где собака зарыта» ?
А как Вам возможность найти отличия в двух похожих отчетах за считанные секунды ! Какое бы количество строк и колонок в них не было !
Это делается быстро : просто скопируйте выделенные области сверяемых отчетов и затем вставьте в два окна этой обработки
Таким способом можно сверять и данные, взятые из Excel-отчетов
В помощь аналитикам, аудиторам,бухгалтерам, программистам и экономистам, которые ищут расхождения в таких похожих отчетах !
Отчет универсальный и работает в любой конфигурации 1С: Предприятия 8.2 и 8.3.

В период всеобщего активного перехода на 1С:Предприятие 8 с платформы 7.7 я работал в фирме-франчайзи "1С" и был занят регулярным переводом баз данных разных клиентов с  1С:Предприятие  7.7 на 1С:Предприятие 8.*

Конфигурации для 7.7 позволяли "вольности" в исходных данных, а конфигурации для 8 "вольностей" в принимаемых данных уже не прощали. Поэтому при проверке переноса данных встречались несовпадения итогов.

Для поиска расхождений в отчетах между 7.7 и 8 мне было маловато возможностей EXCEL. И вот, когда у меня был проект Перевода данных из ЗиК -7.7 в ЗУП-2.5 в страховой компании с количеством сотрудников 800 человек, то в один прекрасный момент Сергей Г. (представитель Заказчик, очень толковый человек) достал "из загашника" внешнюю обработку для 1С:7.7, которая  могла сравнивать файлы отчётов в формате MXL ! Показал мне, как она работает на злободневном примере. Результат меня впечатлил ! Затем, на этом же проекте, она меня ещё несколько раз выручала.

В чём её польза ? Представьте ситуацию : сравниваем отчёт из ЗиК по выбранному виду начисления с данными из ЗУП по аналогичному виду начисления. Расхождения есть… Но по какому сотруднику ? По какому виду расчёта ? Ведь в одной ведомости сотрудник может встречаться 3 раза, а в другой — ни разу. Или же вид расчёта в ЗУП включает в себя 2 и более видов расчётов из ЗиК. В общем, эта обработка для 7.7 экономила время и нервы. Но работала "на коленке" : иногда вдруг вспоминала данные из предыдущего сравнения. А также не принимала "напрямик" отчёт из 8. Приходилось переносить табличную область в 7.7 и затем её сохранять в виде файла.

Поэтому уже потом, после успешного завершения этого проекта, я создал более современный вариант подобного отчёта. Его отличия от версии для 7.7 :

  • Если выбрать MXL-файл, то его содержимое сразу же отразится в табличной форме
  • Можно не создавать MXL-файл для загрузки данных, а скопировать требуемую область из открытого отчёта и вставить в табличную часть этой обработки
  • Если отчёт в формате EXCEL, то из открытого отчёта можно скопировать требуемую область и вставить её в свободную часть табличной обработки
  • Есть возможность сравнивать и по двум, и по трём измерениям. И даже больше. Условие простое : колонки должны следовать одна за другой !

Ведь ситуации с отчётами могут быть различными :

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

2.Программистом создан новый отчёт для тестовой базы, но он почему-то иногда неправильно работает на реальных данных. В рабочей базе есть точный результат отчёта на этой же выборке данных. А программистом был создан, например, специализированный отчёт по ДДС (движению денежных средств). При тестировании он работал точно. А на реальной базе что-то "врёт". Сравнение отчётов позволяет выявить, например, статью ДДС. Потом можно сравнить расшифровки по документам. И так, по шагам, найти причину расхождения. То есть программисту при отладке экономится время и нервы. Так как требуется всего несколько секунд, чтобы найти расхождение в сформированных отчётах.

3.После перепроведения документов в базе данных изменилась себестоимость. Требуется выявить отличия. Формируем отчёт в копии "до перепроведения" и в базе после перепроведения. Сравниваем отчёты по измерениям (по двум, по трём) и находим источник : номенклатуру, статью расходов.

4.Два разных отчета по движению ТМЦ в одной и той же базе данных показывают различные итоги.

5.Один и тот же отчёт в одной и той же базе данных у одного пользователя показывает одни результаты, а у другого пользователя — совсем другие результаты. По какой позиции расхождения ? Иногда это позволяет быстро выявить причину. Например, разные способы отбора данных в настройках

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

Данная обработка помогает сверять любые табличные отчеты сформированные в 1С:Предприятия или в Excel.

Откройте обработку : 

Можете через буфер обмена вставить в левую и правую табличные части сверяемые области отчетов.

Области отчетов можно брать из 1С:Предприятия 7.7, 1С:Предприятия 8, Excel : выделяете в другой программе область отчета и вставляете в табличную часть этой обработки.

Другой способ : можете указать имена файлов MXL (формат отчетов 1С:Предприятия) для сверки. Ими могут быть ранее сохраненные файлы отчетов, созданные в 1С:Предприятии 7.7, 1С:Предприятии 8

При выборе файла программа сразу считывает его содержимое в поле соответствующего табличного документа : 

Далее указываем, что следует сравнивать.

Строка начальная : Данные в обоих сверяемых отчетах начинаются со строки № 2. Хотя не обязательно чтобы начало данных в отчетах совпадало. Указываем номера начальных строк для левого и правого отчетов.

Колонка измерения : Указать нужно аналитическую колонку. Это может быть колонка, в которой находится название : номенклатуры, подотчетного лица, контрагента, валюты, договора, заказа покупателя, сотрудника, статьи затрат, код бухгалтерского счета/субсчета,  и т.д.. А также можно указать дополнительные аналитические колонки. В данном примере будем сверять по колонке "Номенклатура" (колонка № 2) и "Характеристика номенклатуры" (колонка № 3). В обоих сверяемых отчетах номера колонок в примере совпадают.

Колонка ресурса : Укажем, какие числовые колонки планируется сверять. В данном примере будем сверять колонки № 4 "Товары на складах" и "Количество". Внимание : в ячейках должны находиться цифры (а также разделители "точка" или "запятая", еще могут быть знаки "+" или "-"). Совет : если в этих ячейках есть слова ("день", "дней", "руб", "у.е." и т.п.) то непосредственно в табличном документе выполните замену по всем ячейкам этой колонки такого текста на пустую строку.

Например, требуется сравнить такие отчеты по остаткам отпусков : 

Выделите колонку № 2 и затем в горизонтальном меню выберите команду : 

В этом окне укажите : 

Затем удалите "день" и "дня". После чего можно выполнить сверку отчетов.

Вернемся к предыдущему, основному примеру. После подготовки отчетов нажимаем кнопку "Сравнить". Программа сворачивает данные по колонкам аналитики и определяет расхождения в ресурсах : 

После выполнения сверки активируется закладка "Результат сравнения". Как Вы видите на рисунке, в отчете справа не было одной номенклатурной позиции ("Группа 2 ЛДСП сортI/I/… темный (Феликс)"). Программа сверки нашла это отличие.

Результат сверки можно вывести в отчет кнопкой "Печать" : 

Для сравнения новых данных следует нажать кнопку "Новая сверка". При этом очистятся таблицы с исходными данными. И активируется первая закладка.

 

Что касается ограничений Excel, которые делают бесполезными его возможности для сверки отчётов,  то это : 

1.Не везде Excel установлен. Например, на терминальных серверах при работе через RDP

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

3.Если в отчетах соотношение аналитики "многие ко многим" с разным количеством, то нужно как-то сворачивать аналитику, прежде чем выполнять сверку таких отчетов.

4.Если в одном отчете есть некая аналитика (измерение), которой нет во втором отчете, то нужно как-то это учитывать

 

А то, что является ограничением для EXCEL является изюминкой моего отчёта ! Я им пользуюсь при необходимости, чего и Вам желаю !

22 Comments

  1. newtype

    Здравствуйте.Скачал вашу обработку и попытался воспользоваться. Кол. измер.=1, ресурса=2. Возможно я не так что-то делаю, но отличий не получаю.Они есть-напр. у Еня Николая.

    В результате сравнения-пусто. Юрий.

    Reply
  2. Designer1C

    Вы все правильно сделали.

    Я не указал, что в колонке «Ресурс» должны быть только числа.

    Если сделать замену слов «дня» и «дней» на пустую строку, то сравнение работает

    На рисунке видно, , что таблицы загружены непосредственно из файлов MXL

    Я выделил колонку № 2 и в горизонтальном меню «Правка» выбрал команду заменить.

    Тип значения ячеек (из строки в число) менять не требуется, программа сделает это автоматически.

    Результат получен.

    Reply
  3. vasyak319

    Я так понимаю, что сравнить Номенклатура-Склад-Количество уже не прокатит. Зачем тратить время на создание бледной копии Excelя? Причём я, понятное дело, не про весь Excel, а именно про сравнение в нём двух наборов данных.

    Reply
  4. Designer1C

    (1) newtype, Небольшие уточнения для Вас в предыдущем моем сообщении

    Reply
  5. newtype

    Благодарю за уточнения, сделал ,как Вы написали,результат получил.

    Reply
  6. Designer1C

    (3) vasyak319,

    Допустим, Вы задали мне прекрасный наводящий вопрос :

    Я так понимаю, что сравнить Номенклатура-Склад-Количество уже не прокатит.

    Благодарю Вас за интерес к разработке !

    Рекомендация : Используйте принцип сужения поиска. Сначала найдите расхождения по складам. А затем найдите расхождения на складе каждом по номенклатуре.

    Reply
  7. Designer1C

    (3) vasyak319,

    Допустим, Вы мне задали ключевой вопрос :

    Зачем тратить время на создание бледной копии Excelя?

    А насколько просто применить приемы сверки отчетов в блестящем оригинале Excel ?

    Например, сколько Вам времени Вам нужно,

    1)Чтобы самостоятельно в Excel найти расхождения в двух отчетах ?

    2)Чтобы объяснить пользователю как сверять отчеты в Excel ?

    Практический вопрос : как найти расхождения в отчетах по подотчетникам, когда в одном 150 строк, а в другом 168 строк ?

    Уточнение : в обоих отчетах есть общие ФИО, но в первом отчете есть Иванов, Петров (которых нет во втором отчете), а во втором отчете есть Сидоров (которого нет в первом отчете)

    И некоторые ФИО введены по нескольку раз…

    А то что Вы умеете убеждать своих коллег освоить полезные навыки работы с Excel (в части поиска расхождений в отчетах) в разгар рабочего дня, когда срочно нужно найти различия, у меня нет сомнений.

    Уверен, что Ваши подопечные в большинстве своем умеют пользоваться богатыми функциями Excel и для сверки различных отчетов, да и в других не менее сложных вопросах тоже обладают навыками благодаря Вашему навыку объяснять и убеждать в необходимости учиться.

    Надеюсь, что Вы и мне подскажите, какими манипуляциями в Excel можно сверить два отчета, которые я описал.

    Так как мои попытки поиска таких методов (Яндекс) не привели к искомому результату

    Reply
  8. vasyak319

    (7) несколько секунд и на то и на то. А приём простой: копипастим два набора данных на лист, сортируем каждый по нужным столбцам, после чего в первой свободной колонке пишем формулу с разницей между колонкой одного набора и соответствующей колонкой другого.

    Случай нескольких числовых колонок и/или нескольких столбцов для Экселя означает задержку на лишнюю секунду, а вашей поделке будет в принципе не под силу.

    Reply
  9. echo77
  10. Designer1C

    (8) vasyak319,

    Уважаемый коллега ! Этот способ я тоже знаю. И потому был вынужден создать подобную обработку.

    Вы дали решение для идеального случая, когда колонок равное количество, и ФИО совпадают в колонках. Так бывает. Но не всегда

    Попробуйте еще раз ответить на мой вопрос.

    Reply
  11. Designer1C

    (9) echo77,

    Этот способ «Файлы — Сравнение файлов» тоже может использоваться в отдельных случаях,

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

    Или в одном отчете разделитель — запятая, а в другом — точка.

    Или из разных отчетов сравнить данные.

    Или данные из 1С:7.7 и 1С:8

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

    И разницу по ФИО «Сравнение отчетов» подсчитает ?

    Reply
  12. Designer1C

    (9) echo77,

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

    Reply
  13. Designer1C

    (8) vasyak319,

    Уважаемый коллега ! Способ анализа расхождений, который Вы противопоставляете в Вашей полемике, очень интересный : одновременный анализ расхождений и по входящему остатку, и по приходу, и по расходу, и по конечному остатку.

    Наверное, Вы так работаете : одновременный анализ и остатков, и оборотов,. Честь и хвала.

    Я обычно в практике сосредотачиваю внимание сначала на одной колонке, например на входящем остатке. Информации хватает для анализа и принятия решений. Затем только сравниваю и приход, расход. А потом и конечный остаток, если еще есть необходимость…

    Если несколько колонок (ресурсов) сравнивать : видимо Вы создаете несколько колонок сравнения с формулами и тоже «растягиваете». Кому-то это нравится.

    По паре столбцов сравнение : интересная мысль склеивания нескольких колонок. Это просто реализовать.

    И все же : что в случае с моим примером : разное количество строк в отчетах, несовпадающие ФИО (какие-то есть, каких-то нет) ?

    Предложите раздвигать ячейки в любимом Экселе, чтобы синхронизировать наименования…

    А вот «Иванов С.П.» в одном отчете встречается 3 раза, а в другом только 1 раз. Снова раздвигаем ячейки ?

    Жду Ваших предложений !

    Reply
  14. Designer1C

    (9) echo77, Как я понял из ссылки на Вашу же статью, Вы предлагаете пользоваться стандартным способом «Файл — Сравнить файлы»

    Я описывал этот способ в другой своей публикации : Технология поиска изменений в остатках и оборотах по регистрах накопления.

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

    Отчет о расхождениях не создает

    Информация об ошибках не сгруппирована.

    А так очень хорошая штука и в некоторых случаях она помогает

    Reply
  15. Designer1C

    (8) vasyak319, Уважаемый коллега !

    Благодаря Вашим критическим замечаниям и моей производственной необходимости обработка для сверки отчетов доработана.

    Теперь обработка может сверять два разных отчета по любому количеству измерений

    Измерения (если используется несколько измерений для сверки) должны быть соседними колонками в отчете.

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

    Технология сверки отчетов с помощью данной обработки для 1С простая :

    1.Сохранить оба сверяемых файла в формате MXL

    2.В режиме 1С:Предприятие 8.2/8.3 открыть обработку «Сверка отчетов»

    3.Указать (выбрать) имена сверяемых файлов отчетов

    4.Указать параметры сверки : номер начальной строки сверки, начальная колонка измерения и последняя колонка измерения, колонка ресурса.

    5.Нажать кнопку «Сравнить»

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

    Технология сверки отчетов в Excel тоже простая :

    1.Сохранить оба сверяемых отчета в формате XLS

    2.Открыть (запустить) EXCEL

    3.Открыть оба ранее сохраненных отчета

    4.Отсортировать обо отчета по требуемым колонкам измерений

    5.Создать новый отчет, на который перенести сверяемые колонки (измерения и ресурсы) из обоих отчетов

    Если в отчетах много колонок, загромождающих поле отчета, то удалить лишние колонки из скопированных областей

    6.Добавить колонку «Разница»

    7.Указать в ячейке колонки формулу для получения расхождения.

    8.Скопировать ячейку во все ячейки на высоту всего отчета

    9.Визуально найти строку в которой есть расхождение

    10.Убедиться, что измерения в строке совпадают.

    Если измерения в строке не совпадают, то сделать раздвижку в одном из отчетов

    11.Создать дополнительный отчет по расхождениям с указанием измерений и количественно-суммовых показателей и расхождений между ними.

    Какой способ кому применять, каждый решает сам.

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

    Reply
  16. Craig

    (15) По роду своей деятельности очень часто приходиться сравнивать большие массивы информации (более 5 тыс. строк и 40 колонок). Описанный метод сравнения Вами в Екселе — это детский сад.

    Действия гораздо проще:

    1) На первый лист поместить «Данные1;

    2) На второй лист поместить «Данные2»

    3) Из первого и второго листа скопировать в новый лист «Сверка» колонку в виде «Стыковочный реквизит» (к примеру «Табельный номер сотрудника», «Код материала» и т.д.) и при необходимости добавить еще колонки (к примеру «Склад», «Подразделение»). Запустить типовую функцию — удаления дублей.

    4) На 3 листе создать новую колонку «Данные из 1 листа» и использовать формулу «СУММЕСЛИ» или «СУММЕСЛИМН» через стыковочные реквизит. В отдельных случаях можно использовать функцию «ВПР».

    5) На 3 листе создать новую колонку «Данные из 2 листа» и использовать формулу «СУММЕСЛИ» или «СУММЕСЛИМН» через стыковочные реквизит. В отдельных случаях можно использовать функцию «ВПР».

    6) На 3 листе создать новую колонку «Сравнение» и использовать формулу » = «Данные из 1 листа» минус «Данные из 2 листа». Или обычно я использую формулу «Данные из 1 листа» равно Данные из 2 листа» и тогда получаю результат Истина или Ложь.

    7) Запускаю фильтр и анализирую.

    При таком методе сравнения плюс Экселя в том, что размерность таблиц может быть разной. Данные из двух совершенно разных таблиц могут быть сверены. Не нужно сортировать, не нужно добавлять строки и т.д. Если объем информации маленький можно все эти пункты выполнить на одной странице экселя.

    Ваш метод хорош, только в том случае, если размерность отчетов совпадает и в УЗКИХ задачах он отлично сработает. Но всё-таки для сравнения лучше использовать ГРАМОТНО возможности экселя.

    За разработку плюс поставил бы, если она была бы реализована на УФ.

    Reply
  17. Designer1C

    (16) Уважаемый коллега !

    Предлагаемая мною внешняя обработка «Сравнение отчётов» изначально была создана для сверки данных когда размерность отчётов не совпадает :

    1.В сверяемых отчётах может быть различное количество строк.

    2.Измерение из одного отчёта (Сотрудник, Номенклатура и т.д.) может отсутствовать в другом отчёте.

    То есть может не быть пересечения по измерениям.

    И во всех этих случаях программа отлично справляется с поиском расхождений.

    Поэтому Ваше утверждение

    Ваш метод хорош, только в том случае, если размерность отчетов совпадает

    не отражает истинного положения дел.

    А насчёт УФ (управляемых форм) отвечу историей из анекдота :

    Человек останавливает машину.

    Водитель: Вам куда?

    — Мне туда-то, а вы такси?

    — Садитесь.

    — А вы такси? Так где же ваши шашечки?

    — Вам шашечки, или ехать ?

    Reply
  18. Craig

    (17) Коллега, возможно я действительно не смог оценить весь потенциал вашей обработки.

    Вы не могли бы продемонстрировать как можно на таблицах разной размерности сравнить?

    Я даже подготовил данные:

    https://docs.google.com/spreadsheets/d/1kYImsuMQpjofWzXlt5rd0jYhr9WFIonQgoPUHsC8­QtM/edit?usp=sharing

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

    Что касается УФ — к сожалению это уже неизбежность и 1с в принудительном порядке перешли на них.

    Reply
  19. Designer1C

    (18)

    Скопировал таблицы.

    Указал колонки для сравнения измерений.

    Указал колонку с «Количество». Нажал «Сравнить» :

    Сравнение по количеству : Подразделение № 2, Склад № 2 расхождение на 50

    Указал колонку «Сумма». Нажал «Сравнить» :

    Сравнение по сумме : Подразделение № 2, Склад № 2 расхождение на 500.

    Reply
  20. Craig

    (19) Снимаю шляпу…

    Reply
  21. b-dm

    Надо попробовать. по моему должна быть неплохая вещь 🙂

    Reply
  22. ys_2008

    Скачала. У меня задача очень похожая. Буду разбираться. Спасибо большое!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *