Как открыть 200-гигабайтный файл журнала регистрации 1С (.lgd) или файл информационной базы (.1cd) для просмотра данных о номенклатуре?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с информационными системами 1С:Предприятие часто возникает необходимость просмотреть данные из файлов, которые могут достигать очень больших объемов. Один из таких сценариев — это попытка открыть гигантский файл (например, 200 гигабайт) для извлечения конкретной информации, такой как запись о номенклатуре. В рамках этой темы мы разберем, как подойти к этой задаче, учитывая специфику файлов 1С и их расширений.

Первоначально важно точно определить, с каким типом файла мы имеем дело, поскольку от этого зависят методы и подходы к его анализу. В экосистеме 1С:Предприятие существуют различные типы файлов, которые могут быть ошибочно приняты за другие, особенно при больших размерах.

Разбираемся в типах файлов 1С: .lgp, .lgd и .1cd

Прежде чем приступить к решению, давайте четко определим, что означают расширения файлов, упомянутые в вопросе, и как они соотносятся с целями просмотра номенклатуры:

  1. Файл .lgp (журнал регистрации старого формата): Это текстовый файл старого формата журнала регистрации 1С. Такие файлы содержат записи о событиях в информационной базе (действия пользователей, ошибки, операции). Часть логов, перенесенную в отдельный файл .lgp, вы можете просмотреть штатными средствами 1С через меню "Все функции" -> "Стандартные" -> "Журнал регистрации" -> "Еще" -> "Просмотреть из файла". Однако этот файл не содержит номенклатуру напрямую.

  2. Файл .lgd (журнал регистрации нового формата): Это журнал регистрации нового формата, который хранится в одном файле базы данных SQLite. Как и .lgp, он содержит информацию о действиях пользователей, ошибках и операциях в системе, но не является хранилищем данных о номенклатуре. Открыть 200-гигабайтный .lgd файл напрямую в конфигураторе 1С для просмотра записей о номенклатуре, скорее всего, невозможно, так как номенклатура не является частью журнала регистрации.

  3. Файл .1cd (информационная база 1С): Это основной файл файловой информационной базы 1С:Предприятие. Именно в этом файле хранится вся структура данных и сами данные конфигурации, включая справочники, документы, регистры и, конечно же, номенклатура. Если вы ищете номенклатуру, то, вероятно, речь идет именно о файле .1cd, а не о журнале регистрации, даже если вы ошибочно назвали его .lgp или .lgd.

Учитывая, что вам необходимо просмотреть запись о номенклатуре, мы рассмотрим два основных сценария: если файл действительно является журналом регистрации .lgd (и мы уточним, почему номенклатуры там нет), и если это все же файл информационной базы .1cd (что более вероятно для вашей задачи).

Сценарий 1: Если файл действительно является журналом регистрации .lgd (база SQLite)

Если у вас на руках 200-гигабайтный файл .lgd, и вы хотите его проанализировать, необходимо понимать, что номенклатура непосредственно в нем не хранится. Журнал регистрации содержит метаданные о событиях (кто, когда, что сделал), а не основные данные конфигурации, такие как товары или услуги. Однако, если вам все же нужно просмотреть содержимое этого файла, поскольку он является базой данных SQLite, мы можем использовать специализированные инструменты.

Особенности работы с .lgd файлами:

Файл .lgd представляет собой полноценную базу данных SQLite. Это означает, что для его открытия и анализа нам потребуются внешние утилиты, предназначенные для работы с SQLite. Мы не будем открывать его в конфигураторе 1С, поскольку конфигуратор не предназначен для прямого анализа журнала регистрации как базы данных.

Шаг 1: Используем специализированные инструменты для SQLite

Для просмотра и анализа содержимого .lgd файла, мы рекомендуем использовать следующие программы:

  1. SQLiteStudio: Это мощный, кроссплатформенный и интуитивно понятный инструмент для управления базами данных SQLite. Вы можете загрузить .lgd файл как обычную базу данных SQLite, просмотреть все таблицы, их структуру и записи. Мы сможем выполнять SQL-запросы для фильтрации и поиска нужной информации.

  2. DB Browser for SQLite (бывший SQLite Database Browser): Еще один отличный инструмент с открытым исходным кодом, который предоставляет графический интерфейс для создания, проектирования и редактирования файлов баз данных SQLite. Он также позволяет просматривать данные, выполнять запросы и экспортировать результаты.

Как это сделать:

  1. Загрузите и установите одну из упомянутых программ (например, SQLiteStudio).

  2. Запустите программу и выберите опцию "Открыть базу данных" или аналогичную.

  3. Укажите путь к вашему 200-гигабайтному файлу .lgd.

  4. После открытия вы увидите список таблиц в левой части окна. Обычно журнал регистрации 1С содержит таблицы, названия которых могут быть похожи на _Log, _Objects и т.д. Мы сможем просматривать содержимое этих таблиц, используя вкладки "Данные" или "Browse Data".

  5. Для поиска конкретной информации, например, о действиях, связанных с номенклатурой (хотя самой номенклатуры там не будет), мы можем написать SQL-запрос на вкладке "SQL Editor". Например, чтобы найти все записи, связанные с определенным типом объектов, мы можем написать что-то вроде:

    SELECT * FROM _LogEvents WHERE EventDescription LIKE '%Номенклатура%';

    Обратите внимание, что это пример запроса, и конкретные названия таблиц и полей могут отличаться в зависимости от версии 1С и структуры журнала регистрации.

Шаг 2: Используем утилиты командной строки (для продвинутых пользователей)

Если вам удобнее работать с командной строкой, существуют также утилиты, такие как sqlite3 (входит в дистрибутив SQLite) или sqlite-utils. Они позволяют выполнять SQL-запросы к базе данных SQLite из терминала. Для очень больших файлов это может быть эффективнее, если требуется выполнять автоматизированные скрипты или извлекать данные без графического интерфейса.

Важно помнить, что даже с этими инструментами просмотр или запрос данных из 200-гигабайтного файла может занять значительное время и потребовать большого объема оперативной памяти. Мы рекомендуем убедиться, что ваша система обладает достаточными ресурсами.

Сценарий 2: Если файл на самом деле является информационной базой .1cd (и вы ищете номенклатуру)

Если ваша основная цель — просмотреть записи о номенклатуре, то наиболее вероятно, что вы работаете с файлом информационной базы 1С, который имеет расширение .1cd, а не .lgd. Открытие 200-гигабайтной базы данных в режиме конфигуратора 1С для прямого просмотра займет очень много времени и потребует значительных системных ресурсов. Такая операция может привести к замедлениям, ошибкам и зависаниям. Мы проанализируем альтернативные и более эффективные способы.

Метод 1: Использование утилиты Tool_1CD для прямого просмотра базы данных

Для просмотра содержимого таблиц и структуры полей файловой базы 1Cv8 (файла .1cd) без запуска платформы 1С существует очень полезная утилита Tool_1CD. Это один из наиболее эффективных способов для анализа больших баз данных, когда нет возможности или желания запускать полноценный конфигуратор.

Преимущества Tool_1CD:

Как работать с Tool_1CD:

  1. Найдите и загрузите актуальную версию утилиты Tool_1CD. Она обычно распространяется как портативное приложение, не требующее установки.

  2. Запустите утилиту. В окне программы выберите ваш 200-гигабайтный файл .1cd.

  3. После загрузки файла Tool_1CD отобразит список всех таблиц базы данных. Мы увидим таблицы, относящиеся к справочникам, документам и регистрам.

  4. Для просмотра номенклатуры мы найдем таблицу, соответствующую справочнику "Номенклатура". Ее название может быть, например, _Reference26, _Reference29 или _ReferenceNomenclature, где число — это внутренний идентификатор справочника. Мы сможем выбрать эту таблицу и просмотреть ее содержимое, включая поля с названиями, артикулами и другими характеристиками номенклатуры.

  5. Мы также можем воспользоваться функциями поиска и фильтрации внутри утилиты для быстрого нахождения нужной записи о номенклатуре.

Метод 2: Использование Консоли запросов или Консоли кода в режиме "1С:Предприятие"

Если у вас есть доступ к рабочей информационной базе (или ее копии) и вы можете запустить ее в режиме "1С:Предприятие", то "Консоль запросов" или "Консоль кода" являются мощными инструментами для выборочного получения данных без необходимости заходить в конфигуратор и выполнять ресурсоемкие операции по его открытию. Эти инструменты представляют собой внешние обработки или расширения, которые мы подключаем к базе.

Преимущества Консоли запросов/кода:

Как использовать Консоль запросов для получения номенклатуры:

  1. Найдите и скачайте актуальную внешнюю обработку "Консоль запросов" или "Консоль кода" (их много на специализированных ресурсах).

  2. Запустите вашу информационную базу в режиме "1С:Предприятие".

  3. Откройте скачанную обработку через меню "Файл" -> "Открыть..." (или через "Все функции" -> "Стандартные" -> "Открыть").

  4. В окне "Консоли запросов" мы сможем написать и выполнить запрос к базе данных. Для просмотра записей о номенклатуре мы можем использовать следующий пример:

    
    ВЫБРАТЬ
        Номенклатура.Код,
        Номенклатура.Наименование,
        Номенклатура.ПолноеНаименование,
        Номенклатура.Артикул,
        Номенклатура.ЕдиницаИзмерения,
        Номенклатура.Описание
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        Номенклатура.Наименование ПОДОБНО "%Пример%" // Опциональный фильтр
    УПОРЯДОЧИТЬ ПО
        Номенклатура.Наименование
    

    Мы можем адаптировать этот запрос, добавляя нужные поля, условия фильтрации (например, по части наименования, артикулу) или ограничения на количество выводимых записей (ПЕРВЫЕ 100).

  5. Нажмите кнопку "Выполнить" или "Выполнить запрос". Результат запроса отобразится в табличном виде, и мы сможем просмотреть нужную номенклатуру.

Как использовать Консоль кода:

Консоль кода позволяет выполнять произвольный код на встроенном языке 1С. Это еще более гибкий инструмент, позволяющий не только получать данные, но и выполнять сложную логику. Для получения номенклатуры мы можем использовать следующий код:


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
    |    Номенклатура.Код,
    |    Номенклатура.Наименование
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.ПометкаУдаления = ЛОЖЬ
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура.Наименование";

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныхЗаписей = РезультатЗапроса.Выбрать();

Сообщить("Список номенклатуры:");
Пока ВыборкаДетальныхЗаписей.Следующий() Цикл
    Сообщить("Код: " + ВыборкаДетальныхЗаписей.Код + ", Наименование: " + ВыборкаДетальныхЗаписей.Наименование);
КонецЦикла;

Мы сможем выполнить этот код и увидеть результат в окне сообщений 1С:Предприятия или другой области вывода Консоли кода.

Метод 3: Очистка и дефрагментация базы данных

Хотя это не прямой способ "открытия" файла для просмотра, регулярное обслуживание базы данных, такое как очистка устаревших данных и дефрагментация, может помочь уменьшить общий размер файла .1cd. Если файл станет меньше, операции с ним, включая возможное открытие в конфигураторе (хотя это все равно не рекомендуется для 200 ГБ), будут выполняться быстрее. Для этого мы можем использовать штатную утилиту chdbfl.exe для проверки и исправления ошибок базы данных и затем выполнить переиндексацию и сжатие в конфигураторе.

Важные замечания

Таким образом, для просмотра записи о номенклатуре из 200-гигабайтного файла, если это основной файл информационной базы (.1cd), мы рекомендуем использовать внешние утилиты типа Tool_1CD или специализированные обработки для выполнения запросов (Консоль запросов/кода). Если же файл действительно .lgd, то это журнал регистрации, который не содержит номенклатуру напрямую, но его можно просмотреть инструментами SQLite.

← На главную