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

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

Калькуляция на изделие - отчет! - Отчёты
Константин Чилингаров: Здравствуйте, Отчёт сделать можно. Вопрос только в трудоёмкости (соответственно, стоимости). В идеале, хорошо бы взглянуть на данные, и ...
К чему привязан StarForce - Активация, Деактивация, Лицензии
Константин Чилингаров: Здравствуйте, К процессору, материнской плате, сетевой карте, памяти, диску, ОС. Ко всему этому в разных пропорциях. По идее, в инструкц ...
Создание нового производственного задания - Производство
Константин Чилингаров: Здравствуйте, Вероятно, или нет вообще технологии на соответствующую позицию (деталь, сборочную единицу), или в этой технологии нет ни ...
Отчет задание на пилу - Отчёты
Виктор Левушкин: Спасибо....уже применяем.
Ошибка печати отчета - Отчёты
Виктор Левушкин: Спасибо. Вроде уже разобрался. Веду теперь блокнот по каждой операции пишу последовательность, т.к. пока нет опыта, но уже много чего запу ...
Одно задание для нескольких работников и совместное выполнение - Обновление
Константин Чилингаров: Здравствуйте, Совместное выполнение отмечать через терминал "Тип 2" и раньше было можно. Вот пример - краткое пояснение на эту тему ...
Нормы расхода на окраску - Состав и технология
Lyovushkin: Спасибо буду пробовать
VOGBIT Онлайн - Общие вопросы
Константин Чилингаров: Здравствуйте, Клиентское приложение VOGBIT в данном случае ставится не на ваш конечный компьютер, а на сервер. А вы работаете с ним через и ...
Планирование производства - Демо версия
Константин Чилингаров: API есть. Описания базы данных нет (и вряд ли будем делать в ближайшее время). Есть /forum/forum35/ раздел на форуме . Там примеры использования AP ...
Как отслеживать все детали, входящие в заказ? - Прочее
Константин Чилингаров: Чуть добавлю: Ответ кратко: Да, можно будет продолжать работать с тем, что ввели в "демо-версии". Дополнение к предыдущему сообщен ...
Ошибка при открытии спецификации - Прочее
Константин Чилингаров: Здравствуйте! Версия программы старовата. Хорошо бы обновить. Когда-то, давным-давно, кажется, была такая ошибка, но её быстро починил ...
Учет материалов - Материалы, Комплектующие, Складской учёт
Константин Чилингаров: Здравствуйте, Вкладка меню "Складской учёт" -> Алгоритм списания -> FIFO.
Обороты по складу - Материалы, Комплектующие, Складской учёт
Константин Чилингаров: Здравствуйте, Это какими-то настройками или ещё как-то самостоятельно не решается, к сожалению. Нужно форму экранную саму поменять нем ...
Удаление позиции из номенклатуры - Прочее
mansur: Доброе утро, спасибо, все сделал по второму варианту. 
Ошибка при входе в Vogbit - Прочее
Григорий Клеков: написал: Здравствуйте. ...
Установка Демо версии - Демо версия
Amg: Спасибо большое за ответ. Демо-версию установил на ноутбук, если руководство решит перейти на ваш продукт, то думаю видеоконференция буд ...
Хранение файлов в БД - Общие вопросы
Константин Чилингаров: Если при этом вы хотите потом использовать штатные возможности VOGBIT (например, просматривать эти прикрепленные к операциям файлы в окне ...
Предварительные заявки, ЛЗК, Требования - Материалы, Комплектующие, Складской учёт
Константин Чилингаров: Здравствуйте! Периодически возникают похожие вопросы по "Предварительным заявкам", "ЛЗК", "Требованиям". В чём разница, ...
Конструктор фильтра - Прочее
Kochurova.av: Спасибо Вам большое!  Всё как всегда оказалось проще простого)
Свои поля для справочников и вывод их в список. - Общие вопросы
Константин Чилингаров: Здравствуйте, В "Номенклатуре" стандартно есть свойство "Комментарий" и соответствующая колонка в современных версиях VOGBIT ( ...

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

Вопросы в целом о программе и её возможностях - Общие вопросы - Вопросы новичков
Страницы: 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
Сейчас на форуме
Всего зарегистрированных пользователей: 4007
Приняло участие в обсуждении: 416
Всего тем: 804
Всего сообщений: 6067

×
Вход на сайт