В период всеобщего активного перехода на 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 является изюминкой моего отчёта ! Я им пользуюсь при необходимости, чего и Вам желаю !