Если вы работаете с 1С Предприятие и сталкиваетесь с задачами интеграции, миграции данных или обмена информацией между базами, то рано или поздно наткнётесь на аббревиатуру LGD. Этот формат часто упоминается в контексте выгрузки/загрузки данных, но далеко не все пользователи и даже разработчики до конца понимают, что он из себя представляет.
На первый взгляд LGD может показаться очередным техническим термином, который знают только узкие специалисты. Однако на практике этот формат играет ключевую роль в обмене данными между конфигурациями 1С, особенно когда речь идёт о переносе справочников, документов или регистров между разными базами. В отличие от более известных форматов вроде XML или JSON, LGD — это внутренний механизм 1С, оптимизированный под специфику платформы.
В этой статье мы подробно разберём, что такое LGD 1C, как он устроен, в каких случаях применяется и чем отличается от альтернативных способов обмена. Также вы найдёте пошаговые инструкции по работе с этим форматом — от ручной выгрузки до автоматизации через скрипты.
Что такое LGD в 1С: расшифровка и назначение
LGD — это сокращение от "Load Data" (загрузка данных), но в контексте 1С этот термин обозначает специализированный формат файлов для обмена данными между базами 1С Предприятие. Файлы с расширением .lgd содержат информацию в бинарном виде, что обеспечивает высокую скорость обработки и минимальные затраты ресурсов при передаче больших объёмов данных.
Основное назначение LGD — это:
- 🔄 Перенос данных между разными конфигурациями 1С (например, из "Управление торговлей" в "Бухгалтерию").
- 📦 Резервное копирование отдельных справочников или документов без полной выгрузки базы.
- 🔧 Обновление конфигураций с сохранением пользовательских данных.
- 🤝 Интеграция с внешними системами, если они поддерживают работу с LGD.
Важно понимать, что LGD — это не универсальный формат вроде XML. Он ориентирован исключительно на внутреннюю структуру 1С и не предназначен для обмена с системами, не связанными с платформой. Например, вы не сможете напрямую импортировать .lgd-файл в Excel или SQL-базу — для этого потребуется промежуточная обработка.
Один из ключевых плюсов LGD — это сохранение ссылочной целостности. При выгрузке данных автоматически учитываются связи между объектами (например, между документом и справочником контрагентов), что минимизирует риск ошибок при загрузке в другую базу.
Структура файла LGD: что внутри и как это работает
Файл .lgd — это не просто набор данных, а структурированный контейнер, который включает в себя:
- 📌 Заголовок с метаинформацией (версия формата, дата создания, идентификатор источника).
- 🗃️ Блоки данных, соответствующие объектам 1С (справочники, документы, регистры и т.д.).
- 🔗 Служебные таблицы для хранения связей между объектами.
- 🔒 Контрольные суммы для проверки целостности данных.
В отличие от текстового XML, LGD хранит данные в бинарном виде, что ускоряет чтение и запись, но делает файл непригодным для редактирования вручную. Например, если открыть .lgd в текстовом редакторе, вы увидите набор нечитаемых символов — это нормально.
Для наглядности приведём упрощённую схему структуры:
| Компонент | Описание | Пример содержимого |
|---|---|---|
| Заголовок | Метаданные о файле и источнике | Версия=8.3.21, Дата=2026-10-15, Источник="UT11" |
| Блок справочника | Данные справочника (например, "Контрагенты") | Идентификатор, Наименование, ИНН, КПП |
| Блок документа | Данные документа (например, "Реализация товаров") | Номер, Дата, Контрагент, Товары (табличная часть) |
| Служебные таблицы | Связи между объектами (например, документ → справочник) | ID_Документа=123 → ID_Контрагента=456 |
Особенность LGD в том, что он не самодостаточен — для корректной загрузки данных в целевую базу требуется, чтобы структура метаданных (конфигурация) в ней совпадала с источником. Например, если вы выгрузили справочник "Номенклатура" из УТ 11, то загрузить его можно только в базу с такой же или совместимой конфигурацией.
Если вам нужно перенести данные между сильно различающимися конфигурациями (например, из УТ 10.3 в ERP 2.5), лучше использовать промежуточный формат вроде XML или JSON с последующей трансформацией.
Отличия LGD от других форматов обмена в 1С
В 1С существует несколько способов обмена данными, и у каждого есть свои плюсы и минусы. Давайте сравним LGD с наиболее популярными альтернативами:
| Формат | Преимущества | Недостатки | Когда использовать |
|---|---|---|---|
| LGD | ✅ Быстрая обработка ✅ Сохранение ссылок ✅ Минимальные требования к ресурсам |
❌ Нечитаемый формат ❌ Требует совместимых конфигураций ❌ Нет поддержки вне 1С |
Обмен между одинаковыми или близкими конфигурациями 1С |
| XML | ✅ Универсальность ✅ Человекочитаемый формат ✅ Поддержка трансформаций (XSLT) |
❌ Медленнее LGD ❌ Больший размер файлов ❌ Сложнее сохранять ссылки |
Интеграция с внешними системами или сильно различающимися конфигурациями |
| JSON | ✅ Легковесный формат ✅ Удобен для веб-интеграций ✅ Поддерживается большинством языков |
❌ Не оптимизирован для 1С ❌ Требует дополнительной обработки ссылок ❌ Меньше инструментов в 1С для работы |
Обмен с веб-сервисами или мобильными приложениями |
| DT/DBF | ✅ Простота для небольших объёмов ✅ Поддержка в старых версиях 1С |
❌ Устаревший формат ❌ Ограничения на размер данных ❌ Нет поддержки сложных структур |
Простые выгрузки в устаревших системах |
Главное преимущество LGD перед XML и JSON — это скорость и надёжность при работе внутри экосистемы 1С. Например, выгрузка большого справочника "Номенклатура" (10 000 позиций) в LGD займёт в несколько раз меньше времени, чем в XML, и не потребует дополнительных преобразований.
Однако если вам нужно интегрироваться с системой, которая не понимает LGD (например, с 1С:Битрикс или Oracle), придётся использовать промежуточные форматы. В таких случаях LGD может служить исходным форматом для выгрузки, который затем конвертируется в XML или JSON с помощью обработок.
LGD оптимален для внутреннего обмена между базами 1С, но не подходит для интеграции с внешними системами без дополнительной обработки.
Как создать файл LGD: пошаговая инструкция
Выгрузка данных в формат LGD может выполняться как вручную через интерфейс 1С, так и программно с использованием встроенного языка. Рассмотрим оба способа.
Способ 1: Выгрузка через стандартный интерфейс 1С
Этот метод подходит для разовых операций и не требует знания программирования. Инструкция актуальна для 1С:Предприятие 8.3:
- Откройте базу 1С в режиме
1С:Предприятие. - Перейдите в меню
Файл → Открыть...(или нажмитеCtrl+O). - В списке типов файлов выберите
Файлы обмена данными (*.lgd). - Укажите имя файла (например,
Номенклатура.lgd) и нажмитеСохранить. - В открывшемся окне выберите объекты для выгрузки (справочники, документы и т.д.) и настройте параметры (например, выгружать ли историю изменений).
- Нажмите
Выгрузитьи дождитесь завершения процесса.
Обратите внимание: в некоторых конфигурациях (например, в Бухгалтерии 3.0) путь к выгрузке может отличаться. Если вы не находите пункт Файлы обмена данными, попробуйте использовать универсальный способ через Все функции (нажмите Ctrl+Shift+F и введите "Выгрузка данных").
☑️ Подготовка к выгрузке LGD
Способ 2: Программная выгрузка с помощью встроенного языка
Для автоматизации выгрузки можно использовать скрипты на встроенном языке 1С. Пример кода для выгрузки справочника "Контрагенты":
// Создаём объект выгрузки
Выгрузка = Новый ЗаписьLGD();
Выгрузка.ОткрытьФайл("C:\Temp\Контрагенты.lgd");
// Выгружаем справочник "Контрагенты"
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Выгрузка.ЗаписатьОбъект(Выборка.Ссылка);
КонецЦикла;
// Закрываем файл
Выгрузка.Закрыть();
Этот код сохраняет всех контрагентов в файл Контрагенты.lgd. Для выгрузки других объектов (документов, регистров) используйте аналогичные методы, заменив Справочники.Контрагенты на нужный объект.
Если вам нужно выгрузить данные с отбором (например, только активных контрагентов), добавьте условие в запрос:
Выборка = Справочники.Контрагенты.Выбрать();
Выборка.Отбор.ПометкаУдаления.Установить(Ложь); // Только не помеченные на удаление
Как выгрузить данные с историей изменений?
Для выгрузки истории изменений объекта используйте метод ЗаписатьОбъектСИсторией() вместо ЗаписатьОбъект(). Это позволит сохранить все версии документа или справочника, но увеличит размер файла.
Как загрузить данные из LGD в 1С
Загрузка данных из .lgd-файла также может выполняться вручную или программно. Рассмотрим оба варианта.
Ручная загрузка через интерфейс
Для загрузки данных:
- Откройте целевую базу 1С в режиме
1С:Предприятие. - Перейдите в меню
Файл → Открыть...и выберите файл.lgd. - В открывшемся окне нажмите
Загрузить. - Если данные конфликтуют с существующими (например, дублирующиеся справочники), выберите стратегию обработки конфликтов:
- 🔄 Заменить существующие — данные из файла перезапишут текущие.
- ➕ Добавить новые — будут созданы новые записи, старые останутся без изменений.
- ❌ Пропустить — конфликтующие данные не будут загружены.
- Дождитесь завершения загрузки и проверьте результат.
- 🔹 Контрагент не был выгружен в файл
.lgd. - 🔹 В целевой базе уже есть контрагент с таким же идентификатором, но другими реквизитами.
- 🔹 Нарушена последовательность загрузки (сначала нужно загрузить справочники, затем документы).
Важно: если структуры метаданных в исходной и целевой базе не совпадают, загрузка может завершиться с ошибкой. В этом случае потребуется предварительная настройка правил обмена.
Программная загрузка
Для автоматизации загрузки используйте следующий код:
// Создаём объект загрузки
Загрузка = Новый ЧтениеLGD();
Загрузка.ОткрытьФайл("C:\Temp\Контрагенты.lgd");
// Загружаем данные
Пока Загрузка.ПрочитатьОбъект() Цикл
Объект = Загрузка.ПолучитьОбъект();
Если ТипЗнч(Объект) = Тип("СправочникСсылка.Контрагенты") Тогда
Объект.Записать();
КонецЕсли;
КонецЦикла;
// Закрываем файл
Загрузка.Закрыть();
Этот скрипт загружает все объекты из файла и сохраняет их в базе. Для обработки конфликтов добавьте логику проверки перед записью:
Если Объект.ЭтоНовый() Тогда
Объект.Записать(); // Создаём новый элемент
Иначе
Объект.Записать(РежимЗаписиОбъекта.Замена); // Перезаписываем существующий
КонецЕсли;
При программной загрузке всегда проверяйте тип объекта перед записью, чтобы избежать ошибок несоответствия типов.
Типичные ошибки при работе с LGD и как их избежать
Даже опытные пользователи 1С иногда сталкиваются с проблемами при работе с LGD. Вот наиболее распространённые ошибки и способы их решения:
| Ошибка | Причина | Решение |
|---|---|---|
Несовпадение версий конфигураций |
Файл .lgd создан в другой версии 1С или конфигурации |
Обновите целевую базу до совместимой версии или используйте промежуточный формат (XML) |
Ошибка чтения файла |
Файл повреждён или не является .lgd |
Проверьте целостность файла или повторите выгрузку |
Нарушение ссылочной целостности |
В файле есть ссылки на отсутствующие объекты | Выгружайте данные вместе со всеми связанными объектами или настройте правила обмена |
Недостаточно прав |
У пользователя нет прав на запись объектов | Запустите 1С от имени администратора или настройте права |
Превышен лимит памяти |
Файл слишком большой для текущих настроек сервера | Разбейте выгрузку на части или увеличьте лимиты в настройках сервера 1С |
Одна из самых коварных ошибок — это тихое игнорирование данных при загрузке. Например, если в файле .lgd есть справочник, которого нет в целевой базе, 1С может просто пропустить его без уведомления. Чтобы избежать этого, всегда проверяйте логи загрузки (в ручном режиме они отображаются в окне загрузки, в программном — можно вывести через Сообщить()).
Перед массовой загрузкой данных сделайте тестовый прогон на копии базы. Это поможет выявить потенциальные конфликты без риска для рабочих данных.
Ещё одна частая проблема — это потеря связей между объектами после загрузки. Например, в документе "Реализация товаров" может пропасть ссылка на контрагента. Это происходит, если:
Чтобы избежать потери связей, используйте правила обмена данными (настраиваются в конфигураторе) или выгружайте данные вместе со всеми зависимыми объектами.
Как восстановить связи после загрузки?
Если связи между объектами потеряны, можно воспользоваться обработкой "Поиск и замена значений" (входит в стандартные поставки 1С) или написать скрипт для восстановления ссылок по уникальным реквизитам (например, по ИНН для контрагентов).
Автоматизация обмена данными с использованием LGD
Ручная выгрузка и загрузка .lgd-файлов подходит для разовых операций, но если обмен данными нужен регулярно (например, ежедневная синхронизация между торговой и бухгалтерской базами), лучше автоматизировать процесс. Для этого в 1С предусмотрены несколько механизмов:
1. Регламентные задания
Можно настроить автоматическую выгрузку и загрузку данных по расписанию. Например, чтобы каждый день в 23:00 выгружать данные о продажах из УТ в Бухгалтерию:
- Откройте конфигуратор и перейдите в
Администрирование → Регламентные задания. - Создайте новое задание с типом
Выполнение кода. - В поле "Код" вставьте скрипт выгрузки (аналогичный приведённому выше).
- Настройте расписание (ежедневно, еженедельно и т.д.).
- Сохраните и запустите задание.
2. Обмен через планы обмена
Более гибкий способ — использование планов обмена, которые позволяют настраивать правила синхронизации между базами. Для этого:
- В конфигураторе создайте новый план обмена (
Объекты → Планы обмена). - Добавьте узлы обмена (исходную и целевую базы).
- Настройте правила преобразования данных (какие объекты и как переносить).
- Создайте регламентное задание для автоматического обмена.
Преимущество планов обмена в том, что они позволяют:
- 🔄 Настраивать двустороннюю синхронизацию (не только выгрузку, но и обратную загрузку).
- 🔧 Указывать правила преобразования (например, переносить только определённые реквизиты).
- 📡 Контролировать версии объектов для предотвращения конфликтов.
3. Внешние обработки и скрипты
Для сложных сценариев можно разработать внешнюю обработку, которая будет:
- 📥 Выгружать данные в
.lgdпо заданным критериям (например, только документы за последний день). - 📤 Загружать данные с преобразованием (например, конвертировать справочник "Номенклатура" в "Товары").
- 📊 Формировать отчёты о результатах обмена.
Пример кода для автоматической выгрузки с фильтром по дате:
// Выгружаем документы "РеализацияТоваровУслуг" за сегодня
НачалоДня = НачалоДня(ТекущаяДата());
Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
Выборка.Отбор.Дата.Установить(НачалоДня);
// Выгрузка в LGD
Выгрузка = Новый ЗаписьLGD();
Выгрузка.ОткрытьФайл("C:\Obmen\Реализация_" + Формат(ТекущаяДата(), "ДФ=ddMMyyyy") + ".lgd");
Пока Выборка.Следующий() Цикл
Выгрузка.ЗаписатьОбъект(Выборка.Ссылка);
КонецЦикла;
Выгрузка.Закрыть();
Для полной автоматизации такой скрипт можно разместить на сервере 1С и запускать по расписанию или по событию (например, после проведения документа).
Если обмен данными происходит между базами на разных серверах, используйте FTP или общие сетевые папки для передачи .lgd-файлов. Настройте права доступа, чтобы 1С могла автоматически читать и записывать файлы.
Когда стоит использовать LGD, а когда — альтернативные форматы
Несмотря на все преимущества, LGD не всегда является оптимальным выбором. Давайте разберём, в каких случаях его стоит применять, а когда лучше выбрать другой формат.
Когда LGD — лучший выбор:
- 🔄 Обмен между одинаковыми или близкими конфигурациями 1С (например, УТ 11 → УТ 11).
- 🚀 Нужна максимальная скорость выгрузки/загрузки (например, для больших справочников).
- 🔗 Важно сохранить все связи между объектами без дополнительной обработки.
- 🔒 Требуется минимальное вмешательство в процесс (нет необходимости в трансформации данных).
Когда лучше использовать альтернативы:
- 🌐 Интеграция с внешними системами (не 1С).
- 🔧 Нужна трансформация данных (например, конвертация справочников).
- 📊 Требуется человекочитаемый формат для анализа или редактирования.
- 🔄 Обмен между сильно различающимися конфигурациями (например, УТ 10.3 → ERP 2.5).
Если вы сомневаетесь, какой формат выбрать, ответьте на два вопроса:
- Нужно ли редактировать данные вручную? Если да — используйте
XMLилиJSON. - Будут ли данные загружаться обратно в 1С? Если да и конфигурации совместимы — LGD оптимален.
Для сложных сценариев (например, миграция данных при переходе на новую конфигурацию) часто используется комбинированный подход: сначала данные выгружаются в LGD, затем конвертируются в XML для трансформации, и только после этого загружаются в целевую базу.
LGD идеален для внутреннего обмена между базами 1С, но для интеграции с внешними системами или сложных преобразований лучше использовать XML/JSON.
FAQ: Частые вопросы о LGD в 1С
Можно ли открыть файл LGD в текстовом редакторе?
Нет, .lgd — это бинарный формат, и при открытии в текстовом редакторе вы увидите нечитаемые символы. Для просмотра содержимого используйте специализированные обработки для 1С или выгружайте данные в XML.
Как перенести данные из 1С 7.7 в 1С 8.3 с помощью LGD?
Непосредственно — никак. Формат LGD несовместим между версиями 7.7 и 8.x. Для переноса данных используйте промежуточный формат (например, DBF или XML) или специализированные обработки для конвертации.
Почему при загрузке LGD некоторые данные не переносятся?
Это может происходить по нескольким причинам:
- В целевой базе нет соответствующих объектов (справочников, документов).
- Нарушены права доступа у пользователя, выполняющего загрузку.
- В файле
.lgdесть ссылки на отсутствующие объекты. - Версии конфигураций несовместимы.
Проверьте логи загрузки и сравните структуры метаданных в исходной и целевой базе.
Можно ли выгрузить в LGD только часть справочника (например, только активные элементы)?
Да, для этого при выгрузке используйте отбор. В ручном режиме это можно сделать в окне выгрузки, установив фильтр. При программной выгрузке добавьте условие в запрос:
Выборка