База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как в 1С восстановить забалансовые счета из одной базы данных в другую? › RE: Как в 1С восстановить забалансовые счета из одной базы данных в другую?

Для восстановления в базе 2 движений по регистру бухгалтерии по забалансовым счетам из базы 1, при этом не затрагивая движения по обычным счетам, можно выполнить следующий алгоритм:
1. **Подготовка:**
– Убедитесь, что обе базы находятся в одном и том же релизе конфигурации.
– Сделайте резервные копии обеих баз.
– Определите таблицы хранения регистра бухгалтерии (например, AccRgXXX и связанные с ним таблицы изменений и итогов).
2. **Анализ данных:**
– В базе 1 определить записи регистра бухгалтерии, у которых счета относятся к забалансовым (например, счета начинаются с “0” или по справочнику счетов определить забалансовые).
– В базе 2 проверить, что таких записей нет (или они удалены).
3. **Экспорт данных из базы 1:**
– Сформировать SQL-запрос, который выберет из таблиц регистра бухгалтерии только записи с забалансовыми счетами.
– Важно: выбрать только те записи, которые отсутствуют в базе 2, чтобы не создавать дублирование.
4. **Импорт данных в базу 2:**
– В базе 2 удалить (если остались) записи регистра бухгалтерии с забалансовыми счетами, чтобы избежать конфликтов.
– Вставить записи из базы 1 по забалансовым счетам.
– Не трогать записи с обычными счетами.
5. **Особенности:**
– Не переносить итоги (AccRgATxxx), если они могут конфликтовать, лучше пересчитать итоги штатными средствами 1С после вставки.
– Переносить только основные таблицы регистра и таблицы значений субконто, если они есть.
– Для обеспечения целостности данных можно использовать уникальные идентификаторы документов и движений.
6. **Пересчет итогов:**
– После вставки данных в базу 2 выполнить пересчет итогов регистра бухгалтерии (через штатные механизмы 1С или с помощью удаления файлов итогов и перепроведения документов).
7. **Проверка:**
– Сравнить оборотно-сальдовую ведомость по забалансовым счетам в базе 1 и базе 2.
– Проверить корректность проводок и отсутствие дублирования.
—
### Пример SQL-запроса для выборки движений по забалансовым счетам из базы 1 (пример для MS SQL):
1 2 3 4 5 6 7 8 |
sql SELECT * FROM AccRg468 -- основная таблица регистра бухгалтерии "Хозрасчетный" WHERE Счет LIKE '0%' -- пример фильтра по забалансовым счетам, уточните по вашей конфигурации AND NOT EXISTS ( SELECT 1 FROM [База2].dbo.AccRg468 b2 WHERE b2.Ссылка = AccRg468.Ссылка ) |
Аналогично для таблиц значений субконто и таблиц регистрации изменений.
—
### Общие рекомендации:
– Используйте транзакции при вставке данных.
– Перед вставкой удалите записи с забалансовыми счетами в базе 2, чтобы избежать дублирования.
– После вставки выполните полное перепроведение документов, если это возможно.
– Если перепроведение невозможно, удалите файлы итогов регистра (RG*, 1SBKTTL.* и т.п.) и выполните пересчет итогов.
—
Рекомендую посмотреть здесь:
https://infostart.ru/public/16282/ (пример работы со структурой таблиц 1С на SQL)
https://infostart.ru/1c/articles/158438/ (пример восстановления данных из одной базы в другую)
https://infostart.ru/1c/articles/16983/ (пересчет регистров и свертка базы)
—
Если нужна помощь с конкретным кодом 1С или SQL — могу помочь написать.