Представим ситуацию: в рабочей базе 1С:ERP 2.2 (на платформе 8.3.16.1502) после некорректных действий оператора и выполнения регламентной операции «Закрытие месяца» произошли масштабные искажения остатков по всем счетам за длительный период. Последняя корректная резервная копия базы была сделана три дня назад. Наша задача — перенести все оперативные документы, созданные или измененные за эти три дня, из актуальной (искаженной) базы в резервную копию, при этом категорически не допуская переноса документов или движений, связанных с некорректным закрытием месяца.
Восстанавливать учет за год вручную или путем детальной корректировки проводок после автоматического закрытия месяца — задача крайне трудоемкая и часто невыполнимая, особенно если уже сложно вспомнить детали распределения доходов и расходов. Поэтому мы сосредоточимся на выборочном переносе минимально необходимого объема данных.
Поскольку мы работаем с двумя идентичными копиями одной и той же конфигурации 1С:ERP 2.2 на одной и той же версии платформы, наиболее подходящим и эффективным инструментом будет стандартная обработка «Выгрузка и загрузка данных XML» (файл ВыгрузкаЗагрузкаДанныхXML83.epf). Эта обработка входит в комплект поставки «1С:Конвертация данных 2» и предназначена как раз для обмена данными между идентичными или очень похожими конфигурациями.
Получение обработки: Если у вас нет этой обработки, ее можно найти в папке с шаблонами конфигураций или в составе дистрибутива «1С:Конвертация данных 2» на портале 1С:ИТС. Обычно она располагается в каталоге <Каталог установки 1С>\tmplts\<Издатель>\КонвертацияДанных\2_X_X_X\Ext\ЗагрузкаВыгрузкаДанныхXML83.epf.
Запуск обработки: Откройте обработку в режиме предприятия через меню «Файл» -> «Открыть…» или добавьте ее в «Дополнительные отчеты и обработки» в разделе «Администрирование».
Принцип работы: Обработка позволяет выгружать данные выбранных объектов (документов, справочников и т.д.) в XML-файл, а затем загружать их из этого файла в другую базу. Ключевое преимущество — возможность настройки детальных отборов и правил выгрузки/загрузки.
Критически важно не перенести в чистую резервную копию те документы или движения, которые вызвали искажение данных в рабочей базе. В нашем случае, основной источник проблемы — некорректные результаты операции «Закрытие месяца» и, возможно, связанный с ней «Расчет себестоимости», который мог затронуть периоды с октября 2019 года.
Идентификация документов «Закрытия месяца»: Операция «Закрытие месяца» в 1С:ERP является регламентной и автоматической. Она формирует движения в регистрах и может создавать специфические документы, например, по расчету себестоимости, финансового результата, налоговому учету. Определите типы документов, которые генерируются этой операцией (например, РегламентнаяОперация, РасчетСебестоимостиТоваров, ЗакрытиеМесяца или подобные). Эти виды документов необходимо исключить из отбора для переноса.
Перенос только оперативных документов: Наша главная цель — спасти оперативные данные. Под оперативными документами мы подразумеваем те, которые ежедневно создавались и проводились операторами: РеализацияТоваровИУслуг, ПоступлениеТоваровИУслуг, ПлатежноеПоручениеИсходящее, ПриходныйКассовыйОрдер, РасходныйКассовыйОрдер, ОтчетОРозничныхПродажах и другие подобные. Переносить будем только их, и только за последние три дня.
Настройка отбора по виду документа и дате: В обработке «Выгрузка и загрузка данных XML» мы можем установить жесткие фильтры. В разделе «Объекты выгрузки» выберите типы документов, которые вы хотите перенести. Для каждого выбранного типа установите отбор по дате: «Дата Больше или Равно <Дата_резервной_копии>». Например, если резервная копия была сделана 10 мая в 8:00, то мы будем переносить документы с 10 мая 8:00:01.
Дополнительные условия в правилах: При необходимости, в более сложных случаях, можно настроить правила выгрузки так, чтобы они проверяли дополнительные условия, например, не переносить документы, проведенные определенным пользователем или имеющие определенный статус, хотя в данном случае отбор по виду документа и дате будет достаточен.
Осторожность при настройке: Всегда действуйте осторожно. Лучше перенести меньше, чем перенести лишнее. Помните, что регламентированный учет (проводки) по перенесенным оперативным документам мы сформируем заново в чистой базе.
Прежде чем приступить к переносу, а также для контроля правильности выполненных действий, крайне важно точно определить, какие документы были созданы или изменены за последние три дня. Это поможет нам сформировать точный список для отбора.
Сверка оборотно-сальдовых ведомостей (ОСВ):
Для выявления глобальных расхождений по счетам:
Сформируйте ОСВ в обеих базах (рабочей и резервной) на дату создания резервной копии (например, на 10 мая 8:00). Убедитесь, что данные совпадают, как и ожидалось.
Затем сформируйте ОСВ в рабочей базе на текущую дату (после проблемного закрытия месяца) и сравните ее с ОСВ резервной копии. Это покажет общие масштабы искажений.
Для более детального анализа формируйте ОСВ с детализацией до регистраторов (документов) в обеих базах за период последних трех дней. Выгрузите эти отчеты в Excel. Используйте инструменты сравнения (например, функционал сравнения файлов в Excel, `WinMerge` для текстовых выгрузок или специализированные надстройки) для поиска различий в проводках и оборотах. Это поможет выявить, какие именно документы совершили движения, которых не было в резервной копии.
Использование журнала регистрации:
Журнал регистрации — мощный инструмент для аудита изменений:
Откройте журнал регистрации в обеих базах.
Установите отбор по периоду (последние три дня) и по объектам, по которым были изменения (например, тип события «Запись»).
Сравните записи журнала в рабочей и резервной базе. В рабочей базе вы увидите новые документы и изменения, которые произошли после даты резервной копии. Особое внимание уделите записям, касающимся документов, которые вы планируете переносить, а также операциям «Закрытие месяца» и их результатам.
Журнал регистрации также может помочь идентифицировать пользователей, которые выполняли операции, и точное время этих действий.
Специализированные обработки сравнения:
Существуют более продвинутые инструменты для сравнения баз:
Обработки для сравнения объектов баз: Некоторые сторонние разработки, такие как `PowerTools` или аналоги, позволяют подключаться к двум базам и автоматически сравнивать объекты (документы, справочники) по различным критериям: наличие, изменение реквизитов, статус проведения. Они могут выгружать в файл обмена только те документы и справочники, которые являются новыми или были изменены, сравнивая объекты с подключенной базой данных.
Сравнение по системному полю версии: Платформа 1С сохраняет системное поле версии для каждого объекта, которое меняется при каждом изменении и перезаписи, независимо от того, включено ли версионирование в конфигурации. Можно написать запрос или воспользоваться консолью запросов для выборки документов за последние три дня, у которых поле версии изменилось или которые были созданы.
Выгрузка по GUID: При использовании обработки «Выгрузка и загрузка данных XML» можно настроить выгрузку ссылочных типов (например, элементов справочников, ссылок на другие документы) только по их глобальным уникальным идентификаторам (GUID), если вы уверены, что эти объекты уже существуют в базе-приемнике и не требуют обновления. Это значительно уменьшит объем выгружаемых данных и ускорит процесс.
Успешный перенос данных требует внимания к деталям и соблюдения определенных правил.
Идентичность конфигураций и релизов: Убедитесь, что обе базы — источник и приемник — имеют абсолютно идентичную конфигурацию и номер релиза платформы. Любые отличия, включая нетиповые доработки, могут привести к ошибкам при загрузке данных. В идеале, сначала обновите резервную копию до текущего релиза (если есть минорные обновления) перед началом переноса.
Выгрузка связанных объектов: В обработке обычно есть опции для выгрузки связанных объектов (например, если вы переносим документ РеализацияТоваровИУслуг, то, возможно, потребуется перенести номенклатуру, контрагентов, договоры, если они были созданы за эти три дня или изменены и отсутствуют/отличаются в базе-приемнике). Рекомендуем внимательно отметить соответствующие флажки для выгрузки связанных объектов. Это поможет избежать сообщений «Объект не найден» и обеспечит целостность данных в базе-приемнике. Однако будьте осторожны, чтобы не перенести лишние справочники, которые могли быть изменены в результате некорректных регламентных операций.
Дата запрета изменения данных: После успешного переноса данных в резервную копию и восстановления корректного учета, настоятельно рекомендуем установить дату запрета изменения данных. Это поможет предотвратить аналогичные ошибки в будущем, закрыв прошлые периоды для редактирования документов.
Предварительное тестирование: Перед тем как выполнять перенос на реальных базах, обязательно проведите тестовый перенос на копиях этих баз. Создайте еще одну резервную копию вашей «чистой» резервной базы и сначала протестируйте загрузку туда. Это позволит убедиться в корректности выбранных правил отбора, исключить непредвиденные ошибки и избежать потери или порчи данных.
Выгрузка по GUID: Если вы абсолютно уверены, что все ссылочные объекты (справочники, другие документы, не являющиеся оперативными за последние 3 дня) уже существуют в базе-приемнике в корректном состоянии и не требуют обновления, вы можете настроить выгрузку таким образом, чтобы для ссылочных типов выгружались только их GUID. Это значительно уменьшит размер выгружаемого файла и ускорит процесс загрузки. Однако, если есть сомнения, лучше выгружать связанные объекты полностью.
Возникшая ситуация служит серьезным уроком и указывает на необходимость пересмотра некоторых аспектов работы с системой.
Настройка прав доступа: Неквалифицированные действия оператора, приведшие к искажению данных, подчеркивают важность пересмотра и ужесточения прав доступа пользователей. Определите, кто должен иметь право на выполнение регламентных операций (например, «Закрытие месяца») и на изменение данных в закрытых периодах. Ограничьте эти права только для квалифицированного персонала.
Версионирование объектов: В конфигурациях 1С:Предприятия есть механизм версионирования объектов. Если бы он был включен, то позволило бы восстановить предыдущие версии отдельных документов без необходимости полного переноса из резервной копии. Рассмотрите возможность включения версионирования для критически важных документов и справочников, даже если это повлечет небольшое увеличение объема базы.
Регулярные резервные копии: Важность своевременного и регулярного создания резервных копий базы данных является ключевой мерой для минимизации потерь информации при возникновении сбоев. Автоматизируйте процесс резервного копирования и убедитесь, что резервные копии хранятся безопасно и доступны для восстановления.
Таким образом, процесс переноса данных, хотя и требует внимательного подхода и использования специализированных инструментов, позволяет эффективно решить проблему восстановления оперативного учета. Следуя описанным шагам и рекомендациям, вы сможете восстановить работоспособность системы с минимальными потерями.