Перейти к публикации

Экспорт спецификации в XML


verb

Рекомендованные сообщения

Доброго времени суток!

Господа, ищу совета опытных пользователей системы управления данными.

Работаю с командой в молодом стартапе. Встал вопрос экспорта спецификации готового изделия в 1С. Набивать ее в ручную долго и не продуктивно. Было принято решение установить PDM и экспортировать спецификацию из него в формат XML, дабы в последующем xml файл подтянуть в 1С.

За некоторое время разобрался, как это делать, но теперь стала проблема в сохранении дерева построения при экспорте.

Возможно кто то уже сталкивался с такой проблемой? Читал, что можно сделать приложение, используя API Солидворкс, которое будет генерировать необходимую спецификацию под конкретные нужды предприятия, но это очень сложно.

Либо, может быть, есть возможность настроить шаблоны экспорта нужным образом?
Заранее спасибо за информацию и просьба, к интеграторам не отсылать)

Ссылка на сообщение
Поделиться на других сайтах
  • 10 месяцев спустя...


UnPinned posts
13.12.2020 в 22:06, verb сказал:

стала проблема в сохранении дерева построения при экспорте.

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

Ссылка на сообщение
Поделиться на других сайтах
On 12/13/2020 at 9:06 PM, verb said:

Доброго времени суток!

Господа, ищу совета опытных пользователей системы управления данными.

Работаю с командой в молодом стартапе. Встал вопрос экспорта спецификации готового изделия в 1С. Набивать ее в ручную долго и не продуктивно. Было принято решение установить PDM и экспортировать спецификацию из него в формат XML, дабы в последующем xml файл подтянуть в 1С.

За некоторое время разобрался, как это делать, но теперь стала проблема в сохранении дерева построения при экспорте.

Возможно кто то уже сталкивался с такой проблемой? Читал, что можно сделать приложение, используя API Солидворкс, которое будет генерировать необходимую спецификацию под конкретные нужды предприятия, но это очень сложно.

Либо, может быть, есть возможность настроить шаблоны экспорта нужным образом?
Заранее спасибо за информацию и просьба, к интеграторам не отсылать)

Метод парсит спецификацию SOLIDWORKS PDM. Дальше в XML или в другой любой источник.

public void GetBomShell(string filePath, string bomConfiguration)
        {
            try
            {
                IEdmFolder5 oFolder;
                IEdmFile7 EdmFile7 = (IEdmFile7)PdmExemplar.GetFileFromPath(filePath, out oFolder);
                var bomView = EdmFile7.GetComputedBOM(BoomId, -1, bomConfiguration, (int)EdmBomFlag.EdmBf_ShowSelected);

                if (bomView == null)
                {
                    throw new Exception("Computed BOM it can not be null");
                }
                object[] bomRows;
                EdmBomColumn[] bomColumns;
                bomView.GetRows(out bomRows);
                bomView.GetColumns(out bomColumns);
                DataTable bomTable = new DataTable();
                foreach (EdmBomColumn bomColumn in bomColumns)
                {
                    bomTable.Columns.Add(new DataColumn { ColumnName = bomColumn.mbsCaption });
                }
                for (var i = 0; i < bomRows.Length; i++)
                {
                    var cell = (IEdmBomCell)bomRows.GetValue(i);

                    bomTable.Rows.Add();

                    for (var j = 0; j < bomColumns.Length; j++)
                    {
                        EdmBomColumn column = (EdmBomColumn)bomColumns.GetValue(j);
                        object value;
                        object computedValue;
                        string config;
                        bool readOnly;
                        cell.GetVar(column.mlVariableID, column.meType, out value, out computedValue, out config, out readOnly);
                        if (value != null)
                        {
                            bomTable.Rows[i][j] = value;
                        }
                        else
                        {
                            bomTable.Rows[i][j] = null;
                        }
                    }
                }
            }
            catch (COMException ex)
            {
                throw ex;
            }
        }

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



×
×
  • Создать...