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