Jump to content
  • entries
    15
  • comments
    97
  • views
    3,744

Как загрузить таблицу по ID в "голой" платформе?


doctorraz

500 views

 Share

Disclaimer сразу оговорюсь, способа узнать ID объекта в платформе пока не существует (по крайней мере мне неизвестно).
Хотя разработчики могли бы добавить такую возможность, например в утилиту конфигурации. 
 
Но подставить костылики можно.

Простой способ открыть в мастере объектов и посмотреть ID не рассматриваем (СПДС, Механик и прочие вертикалки работодатель не купил, а пробник выдохся))))

_________________________________________________________

 

Для чего нужен этот ID?

Для того, что бы иметь возможность в вставлять таблицы с кнопок, палитры инструментов или посредством lisp из командной строки. 

Вот такое выражение для кнопок, менюшек и инструментов:

^C^C_stdselected <ID>

 

для lisp (кстати лисп выражения прекрасно работают в менюшках и инструментах)

(defun C:ИмяКоманды ()
  (command "spStdSelected" "<ID>")
  (princ)
) 

Что такое этот ID?

Уникальный идентификатор объекта в базе данных (БД), именно по нему программа узнает какой объект вставить на чертеж.

Что мы знаем о таблицах и их ID?

У каждой таблицы в БД есть свой ID:

  1. Если перемещать таблицу внутри базы по "каталогам", ID не изменяется;
  2. Если переименовать таблицу , ID не изменяется;
  3. Если утилитой конфигурации экспортировать таблицу, у экспортированной ID будет такой же;
  4. Если импортировать таблицу в базу, у импортированной будет тот же ID, но
    если в базе таблица с таким ID уже есть она будет перезаписана импортируемой (независимо от имени);
  5. Если в в каталоге базы есть таблица с другим ID, но таким же именем, то при импорте таблица перезаписана не будет ( в этом каталоге будут две одноименные таблицы);
  6. После вставки на чертеж ID у таблицы на чертеже нет;
  7. Если после редактирования на чертеже сохранить в "каталог" базы одноименную таблицу,  ID таблицы которая была в базе не изменится.

Что дает нам это знание?

  1. Можно сделать экспорт из БД интересующих объектов и попросить имеющих СПДС импортировать их к себе, посмотреть ID,
    вариант рабочий, но далеко не каждый имеет БД для тестов и поэтому вряд ли будет импортировать себе неизвестно, что с риском перезаписать свои объекты;
  2. Можно модифицировать и перезаписать стандартные таблицы из БД (их ID можно посмотреть в инструментах)
    как по мне так себе идея  модифицировать стандартные объекты, при обновлении базы могут перезаписаться опять стандартными;
  3. Можно импортировать в свою БД таблицы с заранее известными ID и в дальнейшем работать с ними

Суть идеи...

  1. Загружаем в свою базу таблицы отсюда  
    в архиве *.mcd таблицы пустышки, имя таблицы, ее ID;
  2. Импортируем таблицы в свою БД в любое место;
  3. Запоминаем имена-ID таблиц либо сразу привязываем их на кнопки и в инструменты;
  4. В утилите конфигурации переименовываем таблицы, как требуется, там же в утилите можно переместить таблицы в нужные каталоги.
  5. Свои настроенные таблицы из БД вставляем на чертеж (либо настраиваем непосредственно на чертеже)
  6. Сохраняем таблицы с чертежа в БД 
    !!!Важно в тот же каталог и под тем же именем, где лежит таблица пустышка (с заранее известным ID)
    Настроенная таблица перезапишет ту, что в базе, но ID не измениться;
  7. Профит, пользуемся и :prey: разработчикам, что бы они добавили возможность посмотреть ID  в "голую" платформу

---------------

PS Если вдруг кто не в курсе

Спойлер

image.png.5210dcae15fde4d1c66586939616e71b.png

 

Спойлер

image.thumb.png.29242fbe4d57a5a3d35aa6df63d384fa.png

Спойлер

image.png.f228d66e60294bade5e679745996febd.png

Никак не связаны и не обязательно должны совпадать, 

Edited by doctorraz

 Share

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...