В эфире шоу «Утро после обновления». Сегодня мы принимаем звонки от пользователей 1С и узнаём много нового. А именно:
- Какие формы перестали открываться
- Какие отчеты не печатаются, а обработки не открываются
- К каким объектам пользователи потеряли доступ
- И ГВОЗДЬ ПРОГРАММЫ! Интервью с главным бухгалтером про «очень странные проводки»
Обновились. Что и как можно проверить.
Ошибки, которые появились в конфигурации можно разделить на явные и скрытые. Т.е., если форма какого-то документа не открывается или не открывается под определенной ролью – это явная ошибка. Невозможность открыть отчет или записать документ – тоже явная. А вот неправильное формирование движений по регистру уже скрытая.
С первыми ошибками можно относительно успешно бороться:
- Синтаксический контроль кода. Для этой цели используется механизм Проверка модулей (вызывается через Конфигурация->Проверка модулей).
- Открытие форм и проверка их событий. Для этой цели могут быть задействованы сценарии на основе записей в журнале действий пользователя, специализированные продукты (см. в разделе Ссылки).
- Проверка прав пользователей/ролей. Опять-таки на основе журнала действий пользователя или специализированными программами.
А вот как бороться со скрытыми ошибками?
Предположим, что при обновлении не внесен какой-то функционал, забыта подписка. Или часть дописанного функционала перестала работать как задумано, опираясь на типовые механизмы. Или типовые алгоритмы, доработанные нами и отлично работавшие в предыдущей версии, полностью переписаны разработчиками 1С. В результате документ нормально проводиться, но движения стали другими (хотя про это никто еще не догадывается).
Если вы покрывали тестами собственные доработки, то запустив их мы сразу увидим проблемы. Хотя, судя по топику многие не делают автоматизированных тестов и проверяют все вручную. Уверен, что при каждом обновлении никто вручную это все не проверяет.
Впрочем, тесты не помогут, когда отличия в движениях вызваны сменой алгоритма проведения нетронутых нами механизмов. Изменилось законодательство, разработчик подправил алгоритм, движения формируются другие. По сути, это нормальное развитие программы. Но неплохо бы предупредить об этом бухгалтера. Возможно, у него есть свое видение этой проблемы. Вдруг в коде не учтены нюансы применения новых положений и сразу требуется исправление нового алгоритма своими силами.
Еще, как вариант, можно ориентироваться на информацию к обновлению 1С. Но это, как показывает практика, лишь малая толика всего что «потрогали» разработчики.
Оборотно-сальдовая ведомость и регистры накопления «до» и «после» обновления
Очевидно, чтобы найти расхождение можно сформировать ОСВ и сравнить цифры обновленной и эталонной базы. Т.е. до и после обновления. Ожидаем, что эти два отчета будут идентичными. Для этой проверки можно использовать следующую методику:
- На двух тестовых базах (БазаДО, БазаПОСЛЕ) разворачивается один и тот же dt-файл (или SQL бекап)
- На БазаПОСЛЕ проводим обновление, доводим до состояния «готово к накатыванию на рабочую»
- Перепроводим последний закрытый квартал в БазаДО и БазаПОСЛЕ (не забываем передвинуть Дату запрета)
- После операции группового перепроведения количество обработанных документов должно быть одинаковым и ошибок быть не должно. Если ошибки в БазаПОСЛЕ, разбираемся и устраняем их. Опять перепроводим базу и так до просветления.
Почему именно последний закрытый квартал? Потому что все ошибки бухгалтеры уже исправили, цифры выверили, все в памяти свежо. Если в ОСВ после обновления найдено расхождение и определен проблемный документ, то бухгалтер быстрее примет решение. Если брать год, то перепроведение, конечно, охватит максимальное количество существующих в базе случаев, но будет очень долгим, если месяц – часть важных документов останется за бортом, поскольку формируется, например, только в конце квартала.
После перепроведения формируем и сравниваем ОСВ:
- Формируем ОСВ в обеих базах. Сохраняем как MXL-документ и сравниваем стандартной обработкой Сравнить файлы (Файл ->Сравнить файлы).
- Если цифры разнятся, углубляемся в детали, формируем карточки проблемных счетов, сохраняем в MXL.
- Сравниваем карточки счетов и доходим до уровня документов, проведение которых уже можно смотреть в отладчике.
- Принимаем какие-то решения по коду, консультируемся с бухгалтером.
Рисунок. Различие ОСВ «до» и «после» обновления
Рисунок. Различие карточек счета «до» и «после» обновления
Таким образом, пройдя все счета и выявив все проблемные места, бухгалтерский регистр протестирован.
Аналогичную работу проводим с регистрами накопления:
- По очереди выгружаем движения за период из обеих баз (через Вывести список) и сохраняем в MXL.
- Сравниваем через уже рассмотренную Сравнить файлы, в различающихся строках анализируем документы-регистраторы.
- Исследуем движения, решаем по коду.
После того как все перепроверено, оттестировано, сверено и отшлифовано с БазаПОСЛЕ можно выгрузить результирующий CF-файл. И уже при помощи него (конечно же после штатного обновления через Конфигурация->Поддержка->Обновить конфигурацию) мы завершаем обновление на рабочей базе (Конфигурация->Сравнить, объединить с конфигурацией из файла).
Автоматизация проверки регистров
Вроде все просто, но… Уже после первого проблемного счета руки опускаются. Если расхождения только в одном документе, это находится быстро. Но если таких документов много, то различия обнаруживаются в каждой строчке сразу после первого различия за счет колонки «Текущее сальдо». Приходится удалять эту колонку и снова сравнивать. При этом сравнивать документы с тысячей движений все равно неудобно. В итоге времени потрачено пропасть, а сделано чуть. Как ускорить рутинные операции по проверке ОСВ?
Существуют специализированные продукты, которые как раз и позволяют решать задачу анализа движений. Ниже есть ссылки, если знаете еще какие-то программы – сообщайте, буду дополнять. Сказать что-то хорошее/плохое про них не могу, на момент написания этих строк в моих руках пока их не было. Все что перечислено, платные программы, а, значит, начальство может сказать (нужное подчеркнуть): денег нет/потом/давайте сами/есть задачи поважнее.
В свое время на инфостарте были обнаружены и бесплатные обработки, но они по тем или иным причинам не подошли (в частности, обычные формы). Поэтому мы сделали свою обработку, в которой автоматизировали вышеописанную методику по максимуму:
- Выгрузка хозрасчетного регистра и регистров накопления. По сути, несколько кликов.
- Автоматическое сравнение файлов. При этом сравнение оптимизировано: из тысяч движений надо сравнить лишь те, которые отличаются. А таковых может быть всего несколько.
- Прочие полезности в виде выгрузки результатов запроса или собственного кода.
Более подробно про функционал расписано на странице обработки.
Что это дает?
Можно ли спать спокойно проделав все операции по сверке и исправив найденные ошибки? Совпадение ОСВ и движений по регистрам, конечно, не абсолютная гарантия. Однако, опыт использования этой методики с начала 2016 года и последующая беспроблемная эксплуатация информационной системы вселяют уверенность, что и в будущем после подобных сверок все будет хорошо.
Ссылки
Обновление конфигурации
- Технология обновления нетиповых конфигураций. Классика жанра, 2012 год (Инфостарт)
Другие статьи про тестирование:
- Механизмы тестирования в 1С. Использование методики TDD (разработка через тестирование) в 1С (Инфостарт)
- Bugs must die! или Как повысить качество внедрений инструментами тестирования (Инфостарт)
- Опыт практического применения методики BDD на 1С. Написание сценариев (Инфостарт) Надеюсь, будет продолжение
Проверки форм, доступность объектов:
- xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) Рекомендую, как минимум прочитать, но лучше использовать (Инфостарт)
- Автоматизированная проверка конфигурация Решение от ИжТиСи.
- 1С: Сценарное тестирование Решение от 1С.
- Автоматизированное тестирование в 8.3
Запись действий пользователя в журнал, последующее воспроизведение (Инфостарт)
Сверка движений, ОСВ
- Сверка движений документов и записей регистров (Инфостарт)
- Сравнение остатков и оборотов регистров накопления и бухгалтерии двух баз через COM (Инфостарт)
- Сравнение остатков или оборотов двух регистров - накопления или бухгалтерии, версия 2.3 (Инфостарт)
- Сравнение остатков и оборотов двух информационных баз с одинаковой конфигурацией в разрезе регистров бухгалтерии (Инфостарт)
- Автоматизированная проверка конфигурация (ИжТиСи)
Прочие полезности
- Рекомендую обратить внимание на ссылки в комментариях.