Переход из локальной версии информационной базы в облачный сервис 1С:Фреш — процедура стандартная, но крайне требовательная к чистоте данных. Одной из самых распространенных проблем, с которой сталкиваются пользователи и технические специалисты, является ошибка: «Обнаружены отсутствующие регистраторы в таблице...». В этой статье мы подробно разберем, почему возникает эта ситуация, проанализируем список проблемных регистров и выясним, как привести базу в порядок для успешной миграции.
Система 1С:Предприятие построена на принципе жесткой ссылочной целостности. Каждый регистр накопления или регистр сведений (если он является подчиненным) должен иметь документ-основание — Регистратор. Ошибка «отсутствующий регистратор» означает, что в таблице базы данных существует запись о движении (например, начисление налога или кадровое перемещение), но самого физического документа, который сделал это движение, в базе нет.
Проанализируем основные причины появления таких «записей-сирот»:
3.0.91.36), алгоритмы проверки могут работать некорректно.Первое, что мы должны сделать — это штатная процедура проверки целостности. Многие пользователи пренебрегают этим шагом, однако при миграции в облако он является обязательным. Рассмотрим правильные настройки для нашего случая.
Запустим информационную базу в режиме Конфигуратор и перейдем в меню Администрирование — Тестирование и исправление. Нам необходимо установить следующие флаги:
В нижней части окна настроек в группе «При наличии ссылок на несуществующие объекты» обязательно выберем вариант «Очищать ссылки» или «Удалять объект». Это позволит системе автоматически найти записи в регистрах (таких как РегистрСведений.СтандартныеВычетыНаДетейНДФЛ или РегистрНакопления.НДФЛПеречисленный), у которых нет регистратора, и удалить их.
Проанализируем ситуацию с версиями. Сервис 1С:Фреш всегда работает на самых последних выпусках конфигураций. Если ваша локальная версия 3.0.91.36 пытается выгрузиться в сервис, где актуальная версия уже перешагнула за 3.0.150, возникнет конфликт структур метаданных.
Важное правило: Перед выгрузкой во Фреш необходимо обновить локальную базу до версии, максимально близкой к той, что используется в сервисе. В новых релизах 1С:Бухгалтерии (начиная с 3.0.100) мастер перехода содержит встроенную кнопку «Исправить ошибки», которая умеет автоматически вычищать многие проблемы, мешающие выгрузке. При обслуживании нескольких баз процесс их обновления, тестирования и резервного копирования можно автоматизировать с помощью программы для автоматического обновления и тестирования баз 1С.
Если тестирование и исправление не помогло, рассмотрим более детальный метод. Мы можем программно обратиться к проблемным регистрам и удалить записи, у которых регистратор равен NULL или является «битой ссылкой» (Объект не найден).
Разберем пример кода для очистки записей в одном из проблемных регистров из нашего списка, например, РегистрСведений.ПлановыеНачисления:
// Пример программной очистки записей без регистратора
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Т.Регистратор КАК Регистратор
|ИЗ
| РегистрСведений.ПлановыеНачисления КАК Т
|ГДЕ
| Т.Регистратор.Ссылка ЕСТЬ NULL";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыСведений.ПлановыеНачисления.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Записать(); // Записываем пустой набор, тем самым удаляя битую запись
КонецЦикла;
Этот метод следует применить ко всем регистрам, перечисленным в логе ошибки (СтандартныеВычетыНаДетейНДФЛ, УплатаНДФЛНалоговымиАгентамиКРаспределению, КадроваяИсторияСотрудников и др.). Обратите внимание, что для регистров накопления используется аналогичный подход через РегистрыНакопления...СоздатьНаборЗаписей(). В качестве готовой альтернативы программной очистке подойдёт обработка для восстановления и удаления битых ссылок.
Если вы использовали механизм обмена для выделения одной организации из большой базы, в базе-приемнике часто остаются «хвосты» от других организаций на уровне движений регистров. Посмотрим, как это минимизировать:
НДФЛКПеречислению перенеслись не полностью.Выясним основной алгоритм действий для исправления ситуации:
Регистратор.Ссылка ЕСТЬ NULL в конкретных таблицах.Следуя этим шагам, вы устраните препятствия для миграции, и ваша база будет успешно развернута в облачном сервисе 1С:Фреш.