Изменение цен на лицензии - С 01 июня 2025 г. изменятся цены на лицензии ПО VOGBIT

Последние темы на форумах VOGBIT

Тёмная тема - Прочее
Сергей: Здравствуйте! В этом окне сейчас нет настроек отображения. Цвет текста починим в новой версии. Если ещё где-то сталкиваетесь с подобным ...
Движение за период CurrentQuery - Отчёты
Сергей: Здравствуйте! Запрос в файле.
Сменный график - Общие вопросы
Константин Чилингаров: Да, список для выбора получится так поменьше. Но зато сначала то нужно будет ещё составить этот "список поменьше" из общего. Причем ...
Альтернативное обозначение отправочных марок - Отчёты
Константин Чилингаров: Здравствуйте,  Нужно в шаблоне отчёта поменять, чтобы вместо обозначения номенклатуры выводилось значение параметра этой номенклату ...
Пример создания плагина - Плагины
Константин Чилингаров: Не вижу смысла писать в таком случае свои "удалялки". Потеря времени. Проще и быстрее штатными функциями все поудалять в данном конк ...
Создание заказа на производство с учетом остатков/задела - Прочее
Константин Чилингаров: Здравствуйте, В современных версиях VOGBIT есть (где-то в прошлом году появилось впервые) "Автоматическое" заполнение (раззворачиван ...
Типовой технологический процесс - Состав и технология
Константин Чилингаров: Здравствуйте, Можно, например, создать стандартными средствами «Производственный заказ» (там как раз «разматывается» всё изделие по ...
График производства. Текущие работы - Производство
Sidneyanton: Спасибо за ответ, действительно не было связей, наверное при запуске стояла другая настройка последовательности.
Статистика - Производство
Алексей Пономарев: Благодарю за помощь все поправил.
Складской учет - Материалы, Комплектующие, Складской учёт
Константин Чилингаров: написал: Еще бы поиск допилить в обеспеченности по заказам, чтоб искал не только номер, но и материал Будет. В ближайшем обновлении, на ...
Предварительные заявки - Материалы, Комплектующие, Складской учёт
Константин Чилингаров: Здравствуйте, Я посмотрел Ваш ролик. Спасибо! Только с обновлением это, по-моему, никак не связано.   Давайте поясню один момент: ...
Новая документация "График производства" - Прочее
Константин Чилингаров: Движок форума не разрешает напрямую Excel файлы в сообщения вставлять. Ну ладно. Понятно, в общем, о чем речь. на будущее: если нужно Excel фа ...
Ошибка отчёта "Недостаточно памяти" - Отчёты
Константин Чилингаров: Тут ещё знаете, в чем может быть дело... Не в размере даже, а во внутренностях конкретного файла с картинкой. Ошибка может озвучиваться си ...
Дублирование приходных ордеров - Прочее
Константин Чилингаров: Здравствуйте, Очень странная картина... Не сталкивались никогда с таким. Копию базы данных можете дать нам посмотреть? Если есть техни ...
Распределение работ. Дискретность настройки - Прочее
Константин Чилингаров: Здравствуйте, В этом окне, насколько я помню, сохраняется только список "постов" выбранных. При закрытии/открытии окна. Порядок сл ...
«Шаблон техпроцесса» - Состав и технология
Sidneyanton: Спасибо, за подробное разъяснение!
VOGBIT Онлайн - Общие вопросы
Владимир Белов: написал: Добрый день! Такой вопрос. Могу я установить базу данных на съемный диск и пользоваться на разных компьютерах - переставляя то ...
Создание нового производственного задания - Производство
Константин Чилингаров: Здравствуйте, написал: еперь при создании заказа в окне "Производственные заказы" этот самый заказ "дублируется" в окне " ...
Вопрос на тему "Технология подробно" - Состав и технология
Zms.komissarov: Нужно открыть, какой-нибудь (из какого удобно печатать) вариант "подробного" графика производства, там выбрать соответствующую опе ...
Не отображается выпадающий список, а также неактивна кнопка "Импорт" - Ошибки в работе
Сергей: написал: Не отображается выпадающий список при нажатии на стрелочку Напишите на mailto:info@vogbit.ru info@vogbit.ru Попробуем починить

Хранение файлов в БД

Вопросы в целом о программе и её возможностях - Общие вопросы - Вопросы новичков
Страницы: 1
Хранение файлов в БД, Хранение файлов в БД
 
Добрый день!
Хочу через программу на C# напрямую добавлять файлы в БД.
Насколько я поняла, используется FileStream класс для формирования filedata. Нашла несколько примеров в интернете по работе с этим классом, но возникают ошибки(в основном с доступом к файлам при FileAccess.Read).
Подскажите, пожалуйста, как добавляются файлы в бд(если это не filestrem). Или как можно исправить ошибку при чтении файла (как программа получает доступ к файлам)
 
Здравствуйте!
Возможно, проще будет просто указать имя файла?
Добавление файла к объекту:
Код
var files = ExtensibleApplication.Application.General.Files(objectId);
file = files.AddNew();
try
{
   file.FileData.LoadFromFile(fullFileName);
   file.Save();
}
finally
{
   file.Cancel();
}
Добавление связанного файла:
Код
var linkedFiles = ExtensibleApplication.Application.General.LinkedFiles(objectId)
var lf = linkedFiles.AddNew();
try
{
   lf.FileID.Value = fileId;
   lf.LinkTypeID.Value = linkTypeId; 
   lf.Save();
}
finally
{
   lf.Cancel();
}
 
1) Подключила:

using Csdn.Vogbit.Base;
using Csdn.Vogbit.Data;
using Csdn.Vogbit.Forms;
using Csdn.Vogbit.Main;
using Csdn.Vogbit.QB;
using Csdn.Vogbit.Tools;

Откуда берем ExtensibleApplication? (возникает ошибка).

2)objectId - это идентификатор номенклатуры, к которой добавляем файл или самого файла. Как он формируется?
 
1. Вы плагин пишете или внешнее приложение?
2. objectId - идентификатор объекта к которому файл добавить хотите. Может быть в т. ч. и  ID номенклатуры.

ID номенклатуры может быть
  • известен заранее (если вы, например, занимаетесь интеграцией с какой-то другой программой и храните там эту информацию)
  • выбран во время работы программы
  • найден по каким-то признакам(например, обозначение и\или наименование)
  • получен в результате выполнения запроса
 
Пишу внешнее приложение, которое работает непосредственно с базой.
Только недавно нашла информацию, что при самостоятельном вмешательстве в базу(/изменении триггеров и тд), она больше не будет поддерживаться разработчиками.
Возможно буду "переделывать" приложение в плагин.
 
Цитата
написал:
Пишу внешнее приложение, которое работает непосредственно с базой.
Только недавно нашла информацию, что при самостоятельном вмешательстве в базу(/изменении триггеров и тд), она больше не будет поддерживаться разработчиками.
Возможно буду "переделывать" приложение в плагин.
Внешнее приложение может напрямую работать с БД только при следующих условиях:
- приложение читает данные из БД, но не изменяет
- приложение читает данные из БД только через представления из схемы Views.

Изменять схему БД - триггеры, представления, столбцы, сохраненные процедуры нельзя, это сломает логику БД и будущие обновления БД. Изменять данные в БД напрямую тоже нельзя, они могут стать несогласованными.

Если вам нужно работать с данными в БД Вогбит, то для работы с данными в БД есть API в сборке Csdn.Vogbit.Data.dll, там уровень абстракции - это объекты Вогбит (номенклатура, сотрудники, справочники, файлы, связанные объекты, файлы и т.д.), а не таблицы в БД. Сам Вогбит работает только через этот API, клиентское приложение напрямую в БД не "ходит", а манипулирует этими объектами.

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

В общем, будет лучше, если вы опишите задачу, которую вы хотите автоматизировать, и тогда можно будет подсказать, с чего начать и набросать пример кода.
 
Разработана система шифрования и хранения КД для единиц номенклатуры.

Схема дерева хранения КД в прикрепленном файле: по обозначению мы понимаем, что определенная деталь относится к сборке, а сборка - к готовой продукции.

Необходимо разработать плагин или сторонее приложение, в котором пользователь может выбрать папку с названием готовой продукции и все файлы КД (чертежи или внешний вид) автоматически внесутся для самой продукции, для всех деталей и сборок этой продукции. Таким образом внесение чертежей в программу займет меньше времени.

Предполагается, что в Vogbit уже заранее созданы папки и единицы номенклатуры с названиями (т.е. дерево продукции совпадает с деревом в папке на компьютере).
Пыталась реализовать это через стороннее приложение, (используя типы связи с номенклатурой и тд), в новую бд без триггеров вносить удавалось.

У плагина есть еще одна задача, но ее реализовать будет легче после того как реализуется первая часть.
2.png (46.06 КБ)
Изменено: Olyaasolya - 13.11.2023 16:26:44
 
Здравствуйте,

Если я правильно понял, то задача, к уже имеющейся в БД VOGBIT номенклатуре найти и прицепить файлы, которые лежат на диске?

Если так, то писать не обязательно, есть уже написанная штатная функция в VOGBIT.
Умеет искать по обозначению ДСЕ файлы на диске (в указанной папке, включая все подпапки, ищет по принципу, что начало имени файла совпадает с обозначением номенклатурной позиции), показывает найденные файлы, складывает их в БД, прицепляет к выбранной номенклатуре с выбранным типом связи.
Т.е.:
- выделяешь номенклатуру;
- говоришь "ищи файлы";
- указываешь путь, где искать, расширение файлов, какие искать, тип связи, как что их приделывать (запоминает и предлагает последние выбранные значения);
- показывает, что нашлось, есть или нет такие файлы в БД. Если уже есть, то предлагает на выбор варианты, что делать: не трогать и оставить те файлы, какие есть в БД, перезаписать то, что в БД ,тем, что нашлось, или оставить, что есть в БД и рядом прицепить, что нашлось, дописав условно ".1" в конец имени файла.
- загружает найденные файлы в базу и прицепляет их с указанным типом связи к номенклатуре.

P.S. Воспроизведение структуры изделия в виде папок на диске и присваивание обозначений по принципу кто в кого входит (в какой папке лежит), конечно, хорошо, но только до той поры пока не начнётся заимствование деталей и узлов из одного изделия в другое. Тут вся стройная система и порушится)))
 
Есть еще одна задача, которую хотелось бы решить с помощью плагина:

В шифровании детали заложен тех-процесс. (Тех-процессы однотипны и заранее все пронумерованны рис.3)
Из этой же папки с КД хочется подгружать чертежи для операций в тех-процессе
Заранее известно какие типы документов нужно прикрепить к участкам(операциям) рис.4

В итоге, рабочий будет видеть только нужные ему чертежи на своей операции и процесс прикрепления файлов автоматизирован
3.png (30.52 КБ)
 
Из табличек, если честно, понял не много.
Понял, что вы, наверное, хотите прикреплять в VOGBIT файлы к операциям в техпроцессе некоей детали или сборочной единицы.
Если так, то да. Такой готовой функции/плагина нет готовых, только писать под себя.
Первый вопрос:
А сам ТП и операции в нём, к которым добавлять файлы, уже есть в VOGBIT?
Или плагин должен сначала как-то сам в процессе создать/заполнить техпроцесс и к созданным операциям в ТП уже файлы прицепить?

P.S.
В VOGBIT "участок" и "операция" - это разные по смыслу сущности. Можно, конечно, настроить и так, что одному "участку" будет соответствовать одна "операция", но в большинстве случаев это только создаёт дополнительные неудобства.
 
Да, тех процесс будет внесен в VOGBIT, необходимо только прикрпеплять файлы из папки к операциям.
 

Если при этом вы хотите потом использовать штатные возможности VOGBIT (например, просматривать эти прикрепленные к операциям файлы в окне «Технология подробно» или на терминале в цехе), то технически Вам нужно чтобы к операции в ТП был прикреплен нужный файл, как «связанный файл» с типом связи LT_Sketch (UID типа связи, который следует использовать в данном случае).

Таким образом задача распадается на:

1.     Сложить файл в БД VOGBIT

2.     Добавить этот сложенный в базу файл, как «связанный файл», к нужному объекту.

Пойдем с конца:

Добавить связанный файл нужно к операции в ТП.

Операция в ТП – это компонент с типом связи LT_Operation. Находится этот компонент в коллекции с типом связи LT_ManProcess – это Техпроцесс. Номенклатура-owner этой коллекции – это деталь, на которую техпроцесс. Выбрать в базе нужную коллекцию и в ней нужный компонент – это, собственно, и есть логика работы Вашего плагина. Тип связи, с которым добавлять связанный файл к компоненту - LT_Sketch.

К вопросу, куда сложить файл в базе:

Файл добавляется к объекту. Если этот файл чисто «однократного применения», в плане того, что нигде он больше, кроме как в качестве связанного к одной конкретной операции в одном конкретном ТП не нужен будет, то не особо принципиально и куда его складывать. Хоть в файлы объекта «компонент», хоть в файлы к «коллекции», например.

Мы сами в таких случаях делаем несколько по-другому в своих плагинах. Мы создаём некий «контейнер». Используем для этого коллекцию специальную специальной номенклатурной позиции, которую всегда знаем, как найти, если нужно. И туда складываем файлы. А потом уже приделываем их, как «связанные файлы» к нужным объектам в базе с нужными типами связей.

Чем это лучше:

- при необходимости проще так приделывать потом один и тот же файл к разным объектам в базе данных (один и тот же чертёж, к разным деталям, один и тот же эскиз к разным операциям в разных ТП и т.п.), если это понадобится.

- так файлы меньше потом мешают удалению объектов, к которым они приделаны в качестве «связанных», если (когда) понадобится это делать.

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

Технически, как сложить файл в базу, и как прикрепить файл, как «связанный», к объекту написано в сообщении #2 в этой теме.

Ну а Ваша часть – решить, куда вы в базе эти файлы будете складывать и прописать в плагине логику, каким именно образом Вы будете выбирать нужную коллекцию и компонент в ней (ТП и операцию в нём), файл, который сложить, ну и дальше сложить файл в базу и прицепить, как связанный файл в нужное место.

Страницы: 1
Сейчас на форуме
Всего зарегистрированных пользователей: 4171
Приняло участие в обсуждении: 430
Всего тем: 804
Всего сообщений: 6067

×
Вход на сайт