Перенос данных между документами в 1С:Предприятие — одна из самых частых задач, с которыми сталкиваются пользователи системы.hether вы бухгалтер, который нужно скопировать строки из счета на оплату в реализацию товаров, или программист, автоматизирующий обмен между УТ 11 и БП 3.0 — без знания нюансов процесса легко допустить ошибки. В этой статье разберем все актуальные способы переноса: от элементарного копирования через буфер обмена до написания обработок на встроенном языке.
Особенность работы с документами в 1С заключается в том, что простое копирование данных часто приводит к потере связей между объектами базы (например, исчезают ссылки на номенклатуру или контрагентов). Поэтому важно не только перенести информацию, но и сохранить её целостность. Мы рассмотрим решения для типовых конфигураций (1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и управление персоналом), а также универсальные методы, работающие в любой конфигурации.
1. Ручной перенос данных через буфер обмена
Самый простой способ — скопировать данные из одного документа и вставить в другой. Он подходит для разовых операций, когда нужно перенести 1–2 строки. Например, из заказа покупателя в счет на оплату или из приходной накладной в акт выполненных работ.
Как это сделать:
- 📋 Откройте исходный документ (например,
Заказ клиента №123) и выделите нужные строки в табличной части (номенклатуру, количество, цены). - 🖱️ Нажмите
Ctrl+C(или правой кнопкой →Копировать). - 📑 Перейдите в целевой документ (например,
Счет на оплату) и вставьте данные (Ctrl+V). - ⚙️ При необходимости откорректируйте реквизиты (склад, ставку НДС, валюту).
⚠️ Внимание: При ручном копировании не переносятся ссылки на справочники (номенклатура, контрагенты, договоры). Система создаёт новые записи с такими же наименованиями, что приводит к дублям. Всегда проверяйте правильность ссылок после вставки!
Этот метод удобен для небольших объёмов данных, но имеет ограничения:
- ❌ Не работает для переноса шапки документа (реквизиты типа даты, номера, организации).
- ❌ Может нарушить логику документа (например, в реализации не будет связи с заказом).
- ❌ Не подходит для переноса вложенных таблиц (например, серийные номера в УТ 11).
2. Перенос через кнопку «Создать на основании»
Большинство типовых конфигураций 1С поддерживают механизм «Создать на основании». Он позволяет автоматически формировать один документ на базе другого, сохраняя все связи. Например, из заказа покупателя можно создать реализацию товаров, счет-фактуру или расходную накладную.
Алгоритм действий:
- Откройте исходный документ (например,
Заказ клиента №456). - Нажмите кнопку
Создать на основании(обычно в верхней панели или через правую кнопку мыши). - Выберите тип целевого документа из списка (например,
Реализация товаров и услуг). - Система автоматически заполнит новый документ данными из исходного. Остаётся только сохранить его.
| Исходный документ | Целевой документ | Что переносится |
|---|---|---|
| Заказ покупателя | Реализация товаров и услуг | Номенклатура, количество, цены, контрагент, договор |
| Поступление товаров | Счет-фактура полученный | Поставщик, номенклатура, суммы, ставка НДС |
| Счет на оплату | Платёжное поручение | Сумма, контрагент, назначение платежа |
| Акт выполненных работ | Счет-фактура выданный | Заказчик, услуги, суммы, НДС |
Преимущества метода:
- ✅ Сохраняются все ссылки на справочники (нет дублей).
- ✅ Автоматически заполняются реквизиты шапки (организация, склад, валюта).
- ✅ Поддерживается в 1С:Бухгалтерии, УТ, ERP и других типовых конфигурациях.
⚠️ Внимание: В некоторых конфигурациях (например, 1С:Розница 2.3) список доступных документов для создания «на основании» может отличаться. Если нужного типа нет — проверьте настройки ролей или обновите платформу.
Проверить права доступа пользователя к обоим типам документов|
Убедиться, что исходный документ проведён (иначе данные могут не перенестись)|
Сверить реквизиты организации и контрагента в обоих документах|
Проверьте, не заблокирован ли документ другим пользователем-->
3. Перенос данных через обработку «Выгрузка/Загрузка данных»
Если нужно перенести данные между разными базами 1С (например, из УТ 11 в БП 3.0) или между документами разных типов (например, из заказа поставщику в поступление товаров), удобно использовать стандартную обработку ВыгрузкаЗагрузкаДанных.epf. Она входит в комплект поставки большинства конфигураций.
Пошаговая инструкция:
- Откройте исходную базу (например, 1С:Управление торговлей).
- Перейдите в меню
Файл → Открытьи выберите обработкуВыгрузкаЗагрузкаДанных.epf. - В окне обработки укажите:
- 📁 Каталог для выгрузки (например,
C:\Temp\1C_Exchange). - 📄 Формат файла (обычно
XMLилиDT). - 📋 Объекты для выгрузки (выберите нужные документы).
- 📁 Каталог для выгрузки (например,
Выгрузить и дождитесь завершения.Загрузить.Особенности метода:
- 🔄 Поддерживает перенос между разными конфигурациями (например, из УТ 10.3 в ERP 2.5).
- 📦 Можно выгружать не только документы, но и справочники (номенклатуру, контрагентов).
- ⚙️ Требует настройки правил обмена (иначе данные могут не совпасть по структурам).
⚠️ Внимание: При загрузке данных в другую базу проверьте соответствие версий конфигураций. Например, выгрузка из УТ 11.4.10 может не корректно загрузиться в УТ 11.3.5 из-за различий в структурах документов.
Если обработка выгрузки отсутствует в вашей конфигурации, её можно скачать с портала 1С:ИТС или из дистрибутива платформы (папка Templates\Exchange).
4. Автоматический обмен данными через планы обмена
Для регулярного переноса данных между базами (например, ежедневная выгрузка реализаций из 1С:Розницы в 1С:Бухгалтерию) удобно использовать планы обмена. Этот механизм позволяет настраивать автоматическую синхронизацию по расписанию или вручную.
Как настроить план обмена:
- В обеих базах откройте
Администрирование → Обмен данными → Планы обмена. - Создайте новый план обмена (например,
ОбменСБухгалтерией) и укажите:- 🔗 Тип обмена (
УниверсальныйилиРаспределённая информационная база). - 📡 Направление обмена (односторонний или двусторонний).
- 📅 Расписание (если нужен автоматический обмен).
- 🔗 Тип обмена (
РеализацияТоваровУслуг, ПоступлениеДенежныхСредств).Преимущества плана обмена:
- ⏱️ Автоматизация — можно настроить обмен по расписанию (например, каждый вечер в 23:00).
- 🔄 Двусторонняя синхронизация — изменения в одной базе будут отражаться в другой.
- 🛡️ Контроль версий — система отслеживает, какие объекты были изменены, и синхронизирует только их.
⚠️ Внимание: При настройке плана обмена внимательно проверьте соответствие реквизитов в документах обеих баз. Например, если в УТ 11 поле называетсяКонтрагент, а в БП 3.0 —Партнёр, данные не перенесутся без дополнительных правил преобразования.
Что делать, если план обмена не работает?
Если документы не синхронизируются, проверьте:
1. Права доступа — у пользователя должны быть права на чтение/запись в плане обмена.
2. Сетевые настройки — если базы на разных серверах, проверьте доступность портов (обычно используется порт 1541 для 1С:Предприятия).
3. Логи обмена — в журнале регистрации (Администрирование → Журнал регистрации) ищите ошибки типа Ошибка преобразования данных или Не найден объект.
4. Версии конфигураций — если в одной базе документ имеет реквизит СкладОтгрузки, а в другой — Склад, потребуется доработка правил обмена.
5. Перенос данных с помощью встроенного языка (1С:Предприятие 8)
Для сложных сценариев (например, перенос данных с преобразованием или фильтрацией) можно написать обработку на встроенном языке. Этот метод требует знаний программирования, но даёт максимальную гибкость.
Пример кода для переноса строк из заказа покупателя в реализацию товаров:
// Получаем исходный документ
Заказ = Документы.ЗаказКлиента.НайтиПоНомеру("000-123");
// Создаём новый документ реализации
Реализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Реализация.Контрагент = Заказ.Контрагент;
Реализация.Договор = Заказ.Договор;
Реализация.Организация = Заказ.Организация;
// Копируем строки табличной части
Для Каждого СтрокаЗаказа Из Заказ.Товары Цикл
НоваяСтрока = Реализация.Товары.Добавить();
НоваяСтрока.Номенклатура = СтрокаЗаказа.Номенклатура;
НоваяСтрока.Количество = СтрокаЗаказа.Количество;
НоваяСтрока.Цена = СтрокаЗаказа.Цена;
НоваяСтрока.Сумма = СтрокаЗаказа.Сумма;
КонецЦикла;
// Сохраняем и проводим документ
Реализация.Записать();
Реализация.Провести();
Где можно использовать такой код:
- 📝 В внешней обработке (файл с расширением
.epf). - 🖥️ В консоли запросов (для разовых операций).
- 🔧 В модуле документа (если нужно автоматизировать перенос при проведении).
Преимущества программного переноса:
- 🎛️ Полный контроль над логикой переноса (можно добавлять фильтры, преобразования, проверки).
- 🔄 Возможность массовой обработки (например, перенос всех неоплаченных заказов за месяц).
- 📊 Можно интегрировать с отчётами (например, переносить только строки с определённой номенклатурой).
⚠️ Внимание: При написании кода для переноса данных всегда используйте транзакции, чтобы избежать потери информации при ошибках:НачатьТранзакцию();пытаться
// Код переноса данных
ЗафиксироватьТранзакцию();
исключение
ОтменитьТранзакцию();
Сообщить("Ошибка: " + ОписаниеОшибки());
конецПопытки;
Программный перенос данных — самый гибкий метод, но требует знаний встроенного языка 1С. Для одноразовых задач проще использовать ручное копирование или обработку выгрузки/загрузки.
6. Перенос данных через универсальные форматы (Excel, JSON, CSV)
Если нужно перенести данные в внешнюю систему (например, в Excel или CRM) или наоборот, удобно использовать универсальные форматы обмена: Excel, CSV или JSON. В 1С для этого есть стандартные механизмы выгрузки/загрузки.
Пример выгрузки табличной части документа в Excel:
- Откройте документ (например,
Реализация товаров №789). - Перейдите на закладку с табличной частью (например,
Товары). - Нажмите правой кнопкой на таблицу →
Выгрузить в Excel. - Сохраните файл (например,
Реализация_789.xlsx).
Для обратной загрузки из Excel в 1С:
- Откройте целевой документ (или создайте новый).
- Перейдите на закладку с табличной частью.
- Нажмите правой кнопкой →
Загрузить из Excelи выберите файл. - Сопоставьте колонки (если названия не совпадают).
Нюансы работы с универсальными форматами:
- 📊 Excel удобен для ручной правки данных, но может искажать форматы (даты, числа).
- 📄 CSV легче для автоматической обработки, но не поддерживает несколько листов.
- 💻 JSON подходит для обмена с веб-сервисами, но требует знаний структуры данных.
⚠️ Внимание: При загрузке данных из Excel в 1С проверьте форматы ячеек. Например, если в Excel дата хранится как текст (01.01.2023), а в 1С ожидается типДата, возникнет ошибка. Используйте форматДД.ММ.ГГГГи устанавливайте для колонки типДата.
7. Типичные ошибки при переносе данных и как их избежать
Даже опытные пользователи 1С сталкиваются с проблемами при переносе данных. Рассмотрим самые распространённые ошибки и способы их решения.
| Ошибка | Причина | Решение |
|---|---|---|
| Дублирование справочников (например, два одинаковых контрагента) | При ручном копировании система создаёт новые записи вместо ссылок на существующие | Используйте «Создать на основании» или программный перенос с проверкой существования объекта |
| Ошибка «Не найден объект» при загрузке | В целевой базе отсутствует справочник (номенклатура, склад), на который ссылается документ | Сначала выгрузите справочники, затем документы. Или настройте правила преобразования |
| Не совпадают суммы в документах | При переносе не учитывались скидки, наценки или округления | Проверьте формулы расчёта сумм в целевом документе. При необходимости доработайте код |
| Документ не проводится после переноса | Не заполнены обязательные реквизиты (например, организация, склад) | Проверьте заполнение всех полей, особенно тех, что помечены красным в форме документа |
| Данные перенеслись, но связи между документами потеряны | При выгрузке/загрузке не были сохранены ссылки на исходные документы | Используйте план обмена или программный перенос с явным указанием связей |
Как минимизировать риски:
- 🔍 Проверяйте данные после переноса — сравните суммы, количество строк, реквизиты шапки.
- 📋 Создавайте резервные копии перед массовым переносом (особенно при работе с программными методами).
- 📊 Используйте отчёты для контроля — например,
Анализ субконтоилиОбороты по счёту.
Что делать, если после переноса документ не проводится?
Если документ не проводится, проверьте:
1. Обязательные реквизиты — в форме документа поля, помеченные красным, должны быть заполнены.
2. Остатки товаров — если переносите реализацию, убедитесь, что на складе достаточно товара.
3. Права пользователя — у текущего пользователя должны быть права на проведение данного типа документов.
4. Блокировки — возможно, документ заблокирован другим пользователем (проверьте в Администрирование → Активные пользователи).
5. Логику проведения — в некоторых конфигурациях проведение зависит от заполнения дополнительных реквизитов (например, Счёт учёта в Бухгалтерии).
8. Автоматизация переноса данных: когда стоит заказывать доработку
Если перенос данных в вашей компании происходит регулярно и занимает много времени, стоит задуматься об автоматизации. В каких случаях имеет смысл заказывать доработку:
- 🔄 Ежедневный обмен данными между 1С:Розницей и 1С:Бухгалтерией (например, выгрузка чеков и поступлений).
- 📦 Перенос больших объёмов данных (тысячи строк в месяц).
- 🔧 Нестандартные сценарии (например, перенос только части строк по определённому фильтру).
- 📊 Интеграция с внешними системами (сайтом, CRM, WMS).
Что можно автоматизировать:
- 🤖 Регламентные задания — настройка автоматического обмена по расписанию (например, каждый вечер в 22:00).
- 📋 Обработки с гибкими настройками — например, перенос данных только по определённому складу или контрагенту.
- 🔗 Интеграционные шлюзы — для обмена с 1С:EDI, Диадок или другими сервисами.
- 📈 Контрольные отчёты — автоматические проверки корректности перенесённых данных.
Стоимость доработки зависит от сложности задачи:
- 💰 Простая обработка для переноса между документами одной базы — от 5 000 руб.
- 💰 Настройка плана обмена между двумя базами — от 15 000 руб.
- 💰 Интеграция с внешней системой (например, Bitrix24) — от 30 000 руб.
⚠️ Внимание: Перед заказом доработки составьте техническое задание с описанием:- Какие документы и реквизиты нужно переносить.
- В какие моменты должен происходить обмен (по кнопке, по расписанию, при проведении документа).
- Какие проверки должны выполняться (например, контроль остатков, совпадение сумм).
Это поможет избежать лишних трат на переделки.
Автоматизация переноса данных окупается, если на ручные операции тратится больше 2–3 часов в неделю. Для разовых задач достаточно стандартных механизмов 1С.
FAQ: Ответы на частые вопросы
Можно ли перенести документ из одной базы 1С в другую без плана обмена?
Да, есть несколько способов:
- 📤 Использовать обработку
ВыгрузкаЗагрузкаДанных.epf(подходит для разовых операций). - 📊 Выгрузить документ в Excel и загрузить в другую базу.
- 💻 Написать обработку на встроенном языке для прямого переноса.
Однако для регулярного обмена лучше настроить план обмена — это надёжнее и быстрее.
Почему при переносе данных через буфер обмена теряются ссылки на справочники?
При копировании через Ctrl+C/Ctrl+V 1С создаёт новые записи в справочниках вместо ссылок на существующие. Например, если вы скопируете строку с номенклатурой "Стул офисный", система создаст новую позицию с таким же названием, а не использует уже существующую.
Чтобы избежать дублей, используйте:
- 🔗 Механизм
Создать на основании. - 💻 Программный перенос с проверкой существования объекта.
Как перенести только часть строк из одного документа в другой?
Если нужно перенести не все строки, а только те, что соответствуют определённому условию (например, номенклатура из группы "Мебель"), используйте:
- Ручной метод: скопируйте только нужные строки через буфер обмена.
- Программный метод: напишите обработку с фильтром. Пример кода:
Для Каждого СтрокаЗаказа Из Заказ.Товары ЦиклЕсли СтрокаЗаказа.Номенклатура.Группа = Справочники.ГруппыНоменклатуры.Мебель Тогда
НоваяСтрока = Реализация.Товары.Добавить();
НоваяСтрока.Номенклатура = СтрокаЗаказа.Номенклатура;
// ... остальные реквизиты
КонецЕсли;
КонецЦикла;
Что делать, если при переносе данных возникает ошибка «Тип не совпадает»?
Эта ошибка означает, что структура документов в исходной и целевой базе отличается. Например, в одном документе поле называется Контрагент, а в другом — Партнёр.
Решения:
- 🔧 Настройте правила преобразования в плане обмена.
- 📝 Если используете обработку выгрузки/загрузки, проверьте соответствие полей в настройках.
- 💻 При программном переносе явно укажите сопоставление реквизитов.
Можно ли отменить перенос данных, если что-то пошло не так?
Да, но способы зависят от метода переноса:
- 📋 Ручное копирование: просто удалите ошибочно созданный документ.
- 🔄 План обмена: используйте механизм
Отмена проведенияили восстановите резервную копию. - 💻 Программный перенос: