Работа с логистическими модулями в экосистеме 1С:Предприятие часто требует детального анализа данных, содержащихся в транспортных заданиях. Стандартные печатные формы не всегда удовлетворяют потребности аналитиков или водителей, которым нужен"сырой" массив данных для дальнейшей обработки во внешних системах. Особенно актуальным становится вопрос, когда необходимо изолировать конкретный параметр, например, вес брутто, габариты или статус загрузки, и передать его контрагенту.
Процесс извлечения отдельной колонки из документа ТранспортноеЗадание простым, но на практике сталкивается с рядом технических ограничений платформы. Интерфейс списка документов не всегда позволяет гибко настраивать экспорт, а стандартные отчеты могут скрывать нужные реквизиты. В этой статье мы разберем три основных способа решения задачи: от использования встроенных механизмов отчета до написания небольшой обработки для сложных случаев.
Прежде чем приступать к техническим действиям, необходимо понять структуру хранения данных. В большинстве конфигураций, таких как 1С:Управление торговлей или 1С:Комплексная автоматизация, транспортное задание представляет собой документ, содержащий табличную часть. Именно из этой табличной части нам и потребуется извлечь данные конкретной колонки для последующей выгрузки в файл формата XLSX или XML.
Подготовка данных и анализ структуры документа
Первым шагом перед любой выгрузкой является тщательный анализ того, что именно мы хотим получить. Откройте список документов Транспортные задания и войдите в режим редактирования любого из них. Вам нужно визуально убедиться, что требуемая информация отображается в табличной части"Грузы" или"Маршрутные листы". Часто пользователи путают реквизиты шапки документа и реквизиты строк табличной части.
Обратите внимание на типы данных в интересующей вас колонке. Если это текстовое поле, проблем с выгрузкой обычно не возникает. Однако, если колонка содержит справочные ссылки (например, номенклатуру или контрагента), при экспорте в простой текстовый файл вы можете получить только уникальный идентификатор (GUID), а не читаемое название. Это критическая ошибка, которую легко допустить на этапе планирования.
Также стоит проверить права доступа. Для корректной работы с отчетами и выгрузкой данных у вашей учетной записи должны быть права на чтение документа ТранспортноеЗадание и связанных справочников. Отсутствие прав может привести к тому, что отчет сформируется пустым или выдаст ошибку доступа к данным, даже если интерфейс документа вам доступен.
⚠️ Внимание: В некоторых релизах конфигураций структура табличной части ТЗ была изменена. Если вы не находите привычную колонку, сверьтесь с документацией к вашей конкретной версии платформы или проверьте наличие обновлений конфигурации, которые могли переместить реквизит в другой регистр накопления.
Используйте кнопку"Еще" ->"Изменить форму" в списке документов, чтобы временно добавить скрытые колонки и убедиться, что данные там действительно заполнены, прежде чем настраивать их выгрузку.
Использование стандартного отчета для выгрузки списка
Самый быстрый и безопасный способ получить данные — воспользоваться универсальным механизмом отчетов, встроенным в платформу 1С. Этот метод не требует вмешательства программиста и доступен любому пользователю с базовыми навыками. Перейдите в раздел, где хранятся ваши транспортные задания, и откройте общий отчет Универсальный отчет или специализированный отчет по логистике, если он предусмотрен вашей конфигурацией.
В настройках отчета необходимо выбрать объект мета-данных Документ.ТранспортноеЗадание. После выбора система предложит настроить структуру. Здесь вы можете добавить нужные поля из шапки документа и, что наиболее важно, поля из табличных частей. Найдите в списке доступных полей название вашей колонки и перенесите его в область отображаемых данных.
После формирования отчета вы увидите таблицу, содержащую только те данные, которые вы выбрали. Для сохранения результата используйте кнопку Сохранить как... или Вывести список. Система предложит несколько форматов: MXL (внутренний формат), XLSX (Excel), CSV или XML. Для дальнейшей работы с колонкой в сторонних программах лучше всего подходит формат XLSX, так как он сохраняет типы данных и форматирование.
- 📊 Выберите объект"Документ.ТранспортноеЗадание" в дереве настроек отчета.
- 🔍 Раскройте ветку"Табличные части" и отметьте галочкой нужную колонку.
- 💾 Нажмите кнопку"Вывести список" и выберите формат Excel.
- ⚙️ При необходимости отфильтруйте данные по дате или статусу перед выгрузкой.
Настройка пользовательских полей и группировок
Иногда стандартного набора полей в отчете недостаточно, особенно если нужная вам"колонка" является вычисляемым значением или находится в связанном регистре. В этом случае приходится прибегать к расширенным настройкам отчета. В режиме Настройки перейдите на вкладку Поля и сортировки. Здесь можно добавить вычисляемое поле, используя конструктор формул.
Например, если вам нужно выгрузить не просто вес, а удельный вес груза на единицу объема, а такой колонки в ТЗ нет, вы можете создать формулу Вес / Объем. Платформа 1С позволяет оперировать числовыми полями напрямую в отчете. Это избавляет от необходимости выгружать две разные колонки и считать формулу потом в Excel, что снижает риск человеческой ошибки.
Особое внимание уделите группировкам. Если в одном транспортном задании несколько строк с разными грузами, а вам нужно свести данные по машинам, используйте группировку по реквизиту шапки ТранспортноеСредство. Это позволит сгруппировать выгружаемые колонки и, при необходимости, получить итоговые суммы по числовым полям прямо в отчете перед экспортом.
| Тип поля | Источник данных | Особенности выгрузки |
|---|---|---|
| Числовое | Табличная часть"Грузы" | Корректно экспортируется в Excel, сохраняется формат чисел |
| Строковое | Реквизиты шапки | Может содержать переносы строк, требующие очистки |
| Справочник | Номенклатура | При выгрузке в CSV может требоваться код, а не наименование |
| Дата/Время | Плановое время подачи | Зависит от региональных настроек компьютера пользователя |
Использование вычисляемых полей в настройках отчета позволяет получить готовые аналитические данные без необходимости пост-обработки файла в Excel.
Прямая выгрузка через консоль запросов или обработки
Для продвинутых пользователей и администраторов, которым нужно автоматизировать процесс или выгрузить данные, недоступные в стандартных отчетах, существует метод прямого запроса к базе данных. Этот способ требует прав на запуск консоли запросов или наличие специальной внешней обработки. Суть метода заключается в написании SQL-подобного запроса к структуре таблиц 1С.
Запрос должен выбирать данные из таблицы документа и_join_ить её с таблицами табличной части. Синтаксис зависит от СУБД (MSSQL, PostgreSQL или встроенная файловая), но в консоли запросов 1С используется язык запросов платформы. Пример логики запроса: выбрать Ссылка, НомерДок, Груз.Вес из Документ.ТранспортноеЗадание как ТЗ левое соединение ТЗ.Грузы как Груз.
После выполнения запроса результат отображается в виде таблицы. Кнопка Вывести список в консоли запросов работает аналогично отчетам, позволяя сохранить результат в файл. Этот метод особенно полезен, когда нужно выгрузить исторические данные за большой период, где стандартные отчеты работают медленно из-за сложных алгоритмов формирования.
ВЫБРАТЬ
ТранспортныеЗадания.Ссылка КАК Ссылка,
ТранспортныеЗадания.Номер КАК Номер,
Грузы.Номенклатура КАК Номенклатура,
Грузы.Количество КАК Количество
ИЗ
Документ.ТранспортныеЗадания КАК ТранспортныеЗадания
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТранспортныеЗадания.Грузы КАК Грузы
ПО ТранспортныеЗадания.Ссылка = Грузы.Ссылка
ГДЕ
ТранспортныеЗадания.Дата МЕЖДУ &НачДата И &КонДата
⚠️ Внимание: Прямые запросы обходят бизнес-логику конфигурации. Вы можете получить данные, которые в интерфейсе скрыты фильтрами или правами доступа. Используйте этот метод только если вы понимаете структуру базы данных и последствия выборки"сырых" записей.
Экспорт в XML для интеграции с внешними системами
Если ваша цель — не просто проанализировать данные в Excel, а передать колонку из ТЗ в другую информационную систему (например, в систему мониторинга транспорта или на маркетплейс), лучшим выбором будет формат XML. Структурированный формат позволяет однозначно интерпретировать данные принимающей стороной, в отличие от Excel, где формат ячеек может"плыть".
При выгрузке в XML через стандартный отчет или обработку убедитесь, что имена тегов соответствуют требованиям принимающей системы. В настройках отчета 1С можно задать имена элементов XML вручную. Например, колонку"ВесБрутто" можно переименовать в тег <GrossWeight>, чтобы она корректно считывалась иностранным ПО.
Для массовой выгрузки тысяч документов лучше использовать специализированные обработки обмена данными (например, через Enterprise Data или стандартные механизмы обмена). Они позволяют настроить правило регистрации, по которому при проведении ТЗ автоматически формируется XML-файл с нужными колонками и отправляется в папку обмена или по HTTP-запросу.
Как настроить маппинг полей в XML?
В настройках отчета перейдите во вкладку"Дополнительно" или"Настройки вывода". Там можно задать схему XDTO или вручную прописать соответствие полей 1С и тегов XML. Это требует знания структуры XSD-схемы принимающей системы.
Устранение частых ошибок при экспорте данных
При выгрузке колонок пользователи часто сталкиваются с проблемой кодировки. Если вы сохраняете файл в формате CSV и открываете его в Excel, русские буквы могут превратиться в"кракозябры". Это происходит из-за несоответствия кодировки файла (часто UTF-8 без BOM) и ожиданий Excel (Windows-1251). Решение простое: при сохранении выбирайте кодировку ANSI или открывайте файл через импорт данных в Excel, явно указывая кодировку UTF-8.
Еще одна распространенная ошибка — потеря лидирующих нулей в числовых колонках, например, в кодах транспортных средств или артикулах. Excel автоматически определяет такие значения как числа и убирает нули. Чтобы избежать этого, при выгрузке в CSV можно добавить к значению символ табуляции или апостроф, либо использовать формат XLSX, где тип данных"Текст" сохраняется жестко.
Также стоит помнить о лимитах строк. Старые форматы XLS поддерживают только 65 536 строк. Если ваша выгрузка колонки ТЗ содержит историю за несколько лет, файл может обрезаться. Всегда используйте современные форматы XLSX или разбивайте выгрузку на периоды по месяцам, если объем данных превышает миллион строк.
- 🛑 Проверяйте кодировку файла перед открытием в текстовых редакторах.
- 🔢 Форматируйте колонки с кодами как"Текст" до вставки данных.
- 📅 Разбивайте большие объемы данных на периоды для избежания зависаний.
- 📝 Сверяйте количество строк в источнике и в выгруженном файле.
☑️ Контроль качества выгрузки
Автоматизация выгрузки с помощью внешних обработок
Для регулярной выгрузки одной и той же колонки имеет смысл создать или заказать простую внешнюю обработку (.epf). Такая обработка может иметь одну кнопку"Выгрузить", которая автоматически формирует выборку за смену и сохраняет файл в заранее определенную папку с именем, содержащим дату. Это экономит время оператора и исключает риск выбора неверных настроек в отчете.
Разработка такой обработки занимает минимум времени у программиста 1С. В коде используется объект ТабличныйДокумент или библиотека работы с Excel (Excel COM-объект или сторонние библиотеки типа DataProcessor). Обработка может быть подключена к форме списка документов как дополнительная команда, вызываемая из контекстного меню.
Использование внешних обработок также позволяет реализовать сложную логику: например, выгружать колонку только по тем ТЗ, которые имеют статус"В пути", и автоматически отправлять файл по электронной почте логисту. Это превращает рутинную операцию выгрузки в часть автоматизированного бизнес-процесса.
Можно ли выгрузить колонку ТЗ, если она скрыта в интерфейсе?
Да, можно. Данные в базе 1С хранятся независимо от того, отображаются они в форме документа или нет. Используя Универсальный отчет или Консоль запросов, вы можете обратиться к мета-данным конфигурации и выбрать поле, которое просто убрано из формы пользователю для упрощения интерфейса.
Почему при выгрузке в CSV даты отображаются неправильно?
Это связано с региональными настройками вашей операционной системы и настройками разделителя в CSV. 1С может использовать точку или дефис, а Excel ожидать слэш. Рекомендуется использовать формат XLSX для дат или настраивать параметры регионального стандарта в самой 1С перед выгрузкой.
Как выгрузить только одну конкретную колонку без лишних данных?
В Универсальном отчете перед формированием нажмите кнопку"Настройки". В списке полей снимите галочки со всех пунктов, оставив только ту колонку (и, при необходимости, номер документа для привязки), которую нужно выгрузить. Затем сформируйте отчет и сохраните его.
Влияет ли проведение документа на возможность выгрузки данных?
Нет, выгрузить данные можно из любого документа, независимо от его статуса (проведен, не проведен, помечен на удаление). Однако, если документ не проведен, некоторые расчетные поля, зависящие от движений регистров, могут быть пустыми или неактуальными.