Перенос данных между базами 1С, из Excel и других программ
Содержание
Чтобы перекинуть данные в 1С, сначала определите, что именно переносите. Вся база целиком переносится файлом .dt: в Конфигураторе Администрирование → Выгрузить информационную базу, в новой базе — Загрузить информационную базу. Часть данных между базами с одинаковой конфигурацией переносят обработкой «Выгрузка и загрузка данных XML». Между разными программами (БП и УТ, ЗУП и БП) работает встроенная синхронизация, а таблицы из Excel загружают кнопкой загрузки в списке или в табличной части документа.
Способ выбирают по двум признакам: совпадает ли конфигурация в источнике и приёмнике и нужен ли разовый перенос или постоянный обмен. Ошибка в выборе стоит дорого. Например, файл .dt, загруженный не в ту базу, полностью заменит её содержимое.
Подготовка к переносу данных: что проверить до старта
Перенос почти всегда пишет в базу-приёмник массово. Откатить его по одному документу трудно, поэтому начинают с подготовки.
- Сделайте копию приёмника. Выгрузите базу-приёмник в
.dtдо любой загрузки. Это единственный надёжный способ отката. - Сравните версии. Посмотрите
Справка → О программев обеих базах: конфигурация, номер релиза, версия платформы. Для обработок XML релизы должны совпадать, для синхронизации — быть актуальными. - Проверьте целостность источника. Запустите в Конфигураторе
Администрирование → Тестирование и исправлениена копии источника. Битые ссылки в источнике превратятся в «объекты не найдены» в приёмнике. - Почистите справочники. Дубли контрагентов и номенклатуры при переносе размножаются. Их проще слить в источнике, чем потом в двух базах.
- Определите дату среза. Для переноса остатков нужна одна дата, на которую закрыт период в старой базе.
- Проверьте права. Для открытия внешних обработок у пользователя должно быть право на интерактивное открытие внешних обработок. Для загрузки
.dtнужен монопольный доступ к приёмнику.
Загрузка .dt и проверка базы требуют монопольного режима. Все пользователи будут отключены, поэтому делайте это вне рабочего времени и предупредите коллег заранее.
Какой способ переноса выбрать
| Задача | Способ | Риски |
|---|---|---|
| Перенести всю базу на другой компьютер или сервер | Выгрузка и загрузка .dt | Полностью заменяет базу-приёмник |
| Скопировать файловую базу | Копирование каталога с файлом 1Cv8.1CD | Только при закрытой базе, иначе копия может быть битой |
| Часть справочников или документов между одинаковыми конфигурациями | Обработка «Выгрузка и загрузка данных XML» | Перезапись объектов с теми же ссылками |
| Между разными типовыми программами | Синхронизация данных | Неверные настройки сопоставления дают дубли |
| Между нетиповыми базами или старыми версиями | Правила конвертации + «Универсальный обмен данными в формате XML» | Нужна разработка правил |
| Таблица из Excel или текстового файла | Загрузка из файла в списке или табличной части | Не сопоставились единицы, ставки НДС, артикулы |
| Постоянный обмен с сайтом или внешней системой | OData, HTTP-сервис, JSON-файлы | Требует программиста и контроля ошибок |
Стандартные средства 1С для выгрузки и загрузки данных
Перенос всей базы через файл .dt
Это самый простой и самый надёжный способ, когда база переезжает целиком.
- Откройте базу-источник в режиме Конфигуратора.
- Выберите
Администрирование → Выгрузить информационную базу, укажите путь и имя файла. - Создайте в окне запуска новую пустую базу без конфигурации.
- Откройте её в Конфигураторе и выберите
Администрирование → Загрузить информационную базу. - Запустите базу в режиме 1С:Предприятие и проверьте, что открываются документы и отчёты.
Версия платформы в приёмнике должна быть не ниже той, на которой сделана выгрузка. Файловая база при этом свободно переносится в клиент-серверный вариант и обратно.
Для файловой базы есть короткий путь: закройте все сеансы и скопируйте каталог базы с файлом 1Cv8.1CD. Пока база открыта хотя бы у одного пользователя, копировать файл нельзя.
Обработка «Выгрузка и загрузка данных XML»
Это внешняя обработка ВыгрузкаЗагрузкаДанныхXML83.epf. Её распространяет фирма 1С для пользователей с действующей поддержкой. Подходит, когда конфигурации полностью одинаковые: например, вы ведёте две базы БП 3.0 одного релиза и хотите перенести справочник номенклатуры или документы за месяц.
- В источнике откройте обработку через главное меню
Файл → Открыть. - На вкладке выгрузки отметьте нужные объекты: справочники, документы, регистры.
- Задайте период для документов и укажите файл выгрузки.
- Выгрузите данные. Обработка сама добавит в файл объекты, на которые ссылаются выбранные.
- В приёмнике откройте ту же обработку, перейдите на вкладку загрузки, укажите файл и загрузите.
Обработка переносит объекты вместе с их внутренними идентификаторами. Если в приёмнике уже есть объект с таким же идентификатором, он будет перезаписан, а не продублирован. Это удобно для повторной выгрузки, но опасно, если в приёмнике данные уже правили вручную.
Документы после загрузки часто нужно перепровести. В БП 3.0 для этого есть групповое перепроведение в разделе Операции.
Встроенная синхронизация между типовыми программами
Если надо перекинуть данные из 1С:Управление торговлей в 1С:Бухгалтерию или из ЗУП в бухгалтерию, обработки не нужны. Типовые конфигурации умеют обмениваться через формат EnterpriseData.
| Конфигурация | Где включается синхронизация |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Синхронизация данных |
| Управление торговлей 11 | НСИ и администрирование → Синхронизация данных |
| ЗУП 3.1 | Администрирование → Синхронизация данных |
Порядок общий: флажок «Синхронизация данных», затем команда настройки, выбор программы-получателя и способа связи. Связь бывает прямой (по сети или через интернет), через общий каталог или через FTP. Затем мастер предлагает сопоставить уже существующие справочники: организации, контрагентов, номенклатуру.
Сопоставление при первом запуске — самый важный шаг. Если пропустить его, в приёмнике появятся вторые экземпляры организаций и контрагентов, которые потом придётся объединять.
Как перекинуть данные из Excel и текстовых файлов в 1С
Таблицы приходят от поставщиков, из старых программ, из интернет-магазина. В актуальных релизах БП 3.0 и УТ 11 загрузка встроена в интерфейс.
Загрузка списка номенклатуры, контрагентов, цен
В форме списка справочника «Номенклатура» есть команда загрузки из файла. Она открывает мастер:
- Скопируйте данные из Excel в таблицу мастера или откройте файл.
- Сопоставьте колонки с реквизитами: наименование, артикул, единица, ставка НДС.
- Укажите, по какому реквизиту искать существующие элементы: по артикулу или наименованию.
- Посмотрите итог: сколько элементов будет создано, сколько обновлено, сколько не распознано.
- Подтвердите загрузку.
Загрузка табличной части документа
В документах поступления и реализации на вкладке с товарами есть кнопка «Загрузить». Она нужна, когда счёт поставщика на 300 строк пришёл в Excel. Мастер сопоставит строки файла с номенклатурой. Нераспознанные позиции можно создать прямо из мастера.
Начальные остатки
При переходе с другой программы остатки на дату среза вводят помощником ввода остатков. В БП 3.0 он находится в разделе Главное. Остатки вводят по счетам: 01, 10, 41, 60, 62, 51 и другие. Затем сверяют оборотно-сальдовую ведомость с ведомостью из старой программы.
Если встроенной загрузки нет
Для старых релизов и нетиповых конфигураций есть универсальная обработка «Загрузка данных из табличного документа». Она загружает файл в любой справочник, документ или регистр сведений. Колонки сопоставляются с реквизитами, а ключ поиска задаёт сам пользователь.
Перед загрузкой из Excel подготовьте файл:
- 🔢 числа должны храниться как числа, без пробелов-разделителей и текстового формата;
- 📅 даты — в одном формате на весь столбец;
- 📦 единицы измерения и ставки НДС — так, как они называются в справочниках 1С;
- 🧹 без объединённых ячеек, итоговых строк и пустых строк в середине;
- 🔑 у каждой строки — уникальный ключ: артикул, ИНН, код.
Конвертация данных между разными конфигурациями
Когда структура баз отличается, напрямую перекинуть данные нельзя. Справочник «Номенклатура» в одной программе и в другой может иметь разные реквизиты, а документы — разное устройство. Нужен перевод из одной структуры в другую. Этот перевод и называют конвертацией.
Типовые переходы
Для частых сценариев фирма 1С выпускает готовые решения:
- 🔁 переход с ЗУП 2.5 на ЗУП 3.1: мастер переноса данных предлагается при начале работы с новой программой;
- 🔁 переход со старых редакций Бухгалтерии на БП 3.0: правила переноса поставляются вместе с конфигурацией;
- 🔁 переход с 1С 7.7: отдельные обработки и правила для конкретных конфигураций.
Перед использованием таких правил прочитайте инструкцию к релизу. В ней указано, какие версии источника поддерживаются.
Свои правила обмена
Для нетиповых баз правила пишут в конфигурации «Конвертация данных». Редакция 2 создаёт файл правил, который подключается к обработке «Универсальный обмен данными в формате XML». Редакция 3 работает с форматом EnterpriseData и встраивается в обмены типовых программ.
Схема работы с правилами:
- В КД загружают описание метаданных источника и приёмника.
- Сопоставляют объекты и реквизиты, задают правила поиска: по коду, ИНН, наименованию.
- Для нестандартных случаев пишут обработчики событий на встроенном языке.
- Выгружают правила в файл и запускают обмен обработкой в источнике и приёмнике.
Конвертацию сначала прогоняйте на копии приёмника. Повторная загрузка с неудачными правилами поиска создаёт дубли, которые потом чистят часами.
Автоматизация обмена через XML и JSON
Разовый перенос делают обработками. Постоянный обмен с сайтом, складской программой или банком автоматизируют.
Какие механизмы есть в платформе
- 📄 Файлы XML и JSON. Внешняя система кладёт файл в каталог, регламентное задание 1С забирает его и загружает.
- 🌐 Стандартный интерфейс OData. Платформа отдаёт справочники и документы по REST после публикации базы на веб-сервере. Состав публикуемых объектов задают отдельно.
- 🔌 HTTP-сервисы. Программист описывает в конфигурации или расширении свои адреса и формат ответа.
- 🧩 COM-соединение. Одна программа на Windows подключается к базе 1С и читает её объекты напрямую.
Пример: выгрузка номенклатуры в JSON
Код выгружает код и наименование всех элементов номенклатуры, кроме групп. Его можно разместить во внешней обработке и выполнить на сервере.
Запись = Новый ЗаписьJSON;
Запись.ОткрытьФайл("C:\exchange\nomenklatura.json");
Список = Новый Массив;
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
Элемент = Новый Структура("Код, Наименование", Выборка.Код, Выборка.Наименование);
Список.Добавить(Элемент);
КонецЦикла;
ЗаписатьJSON(Запись, Список);
Запись.Закрыть();
Функция ЗаписатьJSON есть в платформе начиная с версии 8.3.6. Для обратной задачи используют ЧтениеJSON и ПрочитатьJSON.
Не пишите обмен прямо в типовых модулях. Код в расширении конфигурации переживает обновление релиза, а правка типового модуля потребует ручного сравнения при каждом обновлении.
Регламентные задания
Чтобы файлы забирались без участия человека, загрузку оформляют регламентным заданием с расписанием, например каждые 15 минут. В клиент-серверной базе задания выполняет сервер. В файловой базе — только пока база открыта у кого-то из пользователей или настроен запуск через веб-публикацию.
Ошибки при переносе данных и как их исправить
Отдельно об остатках. После переноса обязательно сверьте оборотно-сальдовую ведомость в обеих базах на дату среза. Расхождение даже на одном счёте означает, что часть документов не перенеслась или не провелась. Ищите его, сужая отбор по субконто.
Частые вопросы о переносе данных в 1С
Можно ли перекинуть данные из 1С в Excel и обратно?
Файл → Сохранить как. Обратная загрузка идёт через мастер загрузки из файла в списке или документе.