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

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

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

Ошибка работы триггера в базе SQL

Разработка приложений и функций - Плагины - Технические вопросы
Страницы: 1
Ошибка работы триггера в базе SQL
 
Добрый день. В программе Vogbit потребовалось реализовать механизм, который при обновлении таблицы (в данном случае, штрих-коды) автоматически записывает некоторые данные в файл. Решил сделать через триггер в БД SQL.
Триггер:
Код
USE [VOGBIT_splav]
GO
/****** Object:  Trigger [General].[csvBarCodesUpdate]    Script Date: 13.11.2017 9:00:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [General].[csvBarCodesUpdate]
ON [VOGBIT].[General].[BarCodes]  
AFTER Insert, Update, Delete
AS  
   EXEC sp_xp_cmdshell_proxy_account 'SPLAV/eremin.mv','a23B49';
   EXEC xp_cmdshell "C:/Progs/BarCodesQuery.bat"

После изменения Vogbit выдает сообщение "У пользователя нет разрешений на выполнение данного действия."
Подробности ошибки:
Код
Сообщение:
   У пользователя нет разрешений на выполнение данного действия.

Отправитель:
   Csdn.Vogbit.Data.BarCodes

Исключение:
   Csdn.Vogbit.Data.SqlServerException

Источник:
   Csdn.Vogbit.Data

Версия 1.1.37841 сборка 171

Внутреннее исключение:: У пользователя нет разрешений на выполнение данного действия.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:15247>
<ErrSeverity:16>
<ErrState:1>
<ErrProcedure:Called from [General].[BarCodes.Insert]: >
<ErrLine:1>
Ошибка преобразования значения varchar "except" в тип данных int.


Список вызовов:
   в Csdn.Vogbit.Data.SqlExceptionBuilder.ThrowError(Object sender, SqlException ex, String database)
   в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
   в Csdn.Vogbit.Data.DataObjectList.Apply(Boolean raiseEvent)
   в Csdn.Vogbit.Data.BizObject.Save()
   в Csdn.Vogbit.Forms.BaseEditForm.Apply()
   в Csdn.Vogbit.Forms.EditDialog.EditFormApply()
   в Csdn.Vogbit.Forms.EditDialog.Apply()

Inner Exception ---------------

Сообщение:
   У пользователя нет разрешений на выполнение данного действия.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:15247>
<ErrSeverity:16>
<ErrState:1>
<ErrProcedure:Called from [General].[BarCodes.Insert]: >
<ErrLine:1>
Ошибка преобразования значения varchar "except" в тип данных int.

Исключение:
   System.Data.SqlClient.SqlException

Источник:
   .Net SqlClient Data Provider

Список вызовов:
   в System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
   в System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
   в System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
   в System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
   в System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
   в Csdn.Vogbit.Data.DataAdapter.Update(DataTable dataTable)
   в Csdn.Vogbit.Data.DataAdapter.UpdateDataTable(DataTable dataTable)
   в Csdn.Vogbit.Data.DataObjectList.ApplyInternal()
   в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)


Что сделано неправильно и как это исправить?

P.S. Логин и пароль пользователя правильные.
Изменено: Максим Еремин - 13.11.2017 09:05:20
 
Крайне не рекомендуется добавлять свои триггера, таблицы и т.п. непосредственно в базу. После этого мы не гарантируем никоим образом ни работоспособность штатных функций, ни возможность обновления. П.7.2. лицензионного соглашения. Т.е. фактически такую базу мы поддерживать не будем. Если что-то с ней случиться - вам разбираться только самостоятельно.

Если нужно добыть какую-то информацию для использования её снаружи, то лучше написать plugin для этого.
 
Цитата
Если нужно добыть какую-то информацию для использования её снаружи, то лучше написать plugin для этого.

Но возможно ли написать какой-либо плагин для автоматического создания csv файла, а не по нажатию на кнопку?
 
Можно написать плагин, который будет всё время запущен, раз в какое-то время (хоть каждую минуту) проверять, не пора ли что-нибудь выгрузить, и если пора, то выгружать.
Например...

А что за задача то? По сути. Для чего нужно?
 
Для передачи в другую программу нужно выгружать в csv-файлы:
1. Таблица сотрудников со штрих-кодами
2. Таблица соответствий рабочих, выполняющих задания, и используемого в этом задании инструментом.
 
И там, и там объём данных маленький, а изменения редкие.
Для второго пункта, вполне должно хватить выгрузки раз в день. Максимум пару раз в день. Но это если уж очень активно работать...
Для первого и того реже. Там и раз в день не нужно.
Так что вполне можно обойтись plugin'ом. Я бы для начала сделал просто по кнопке. Чтобы всё обкатать, наладить.
А потом, когда уже реально заработает всё по прямому назначению, если реально надоест кнопку нажимать, сделал бы, чтобы она по времени нажималась сама.
 
Где можно посмотреть руководство по созданию плагинов и по таблицам (не нашел на сайте)?
Изменено: Максим Еремин - 13.11.2017 15:43:05
 
Руководства нет.
Слишком мало желающих пописать плагины самостоятельно  :)

Есть несколько тем на форуме. Вот, например.
 
При компиляции dll возникает ошибка:
Код
1>CSC : error CS1705: Сборка "Csdn.Vogbit.Main" с удостоверением "Csdn.Vogbit.Main, Version=1.1.37841.171, Culture=neutral, PublicKeyToken=ae4e3879760d1984" использует "Csdn.Vogbit.Forms, Version=65535.65535.65535.65535, Culture=neutral, PublicKeyToken=ae4e3879760d1984" с более высокой версией, чем у сборки "Csdn.Vogbit.Forms" с удостоверением "Csdn.Vogbit.Forms, Version=1.1.37841.171, Culture=neutral, PublicKeyToken=ae4e3879760d1984", на которую делается ссылка.

Код взят отсюда
Все библиотеки подключены, ошибок до компиляции не выдает. Как это исправить?
 
Цитата
Максим Еремин пишет:
Как это исправить?
используйте Visual Studio 12

Если формы вогбита не нужны, то можно писать не плагин, а отдельное приложение.
Тогда понадобится только Csdn.Vogbit.Data.dll - для доступа к данным через API.
В этом случае должно работать и в более новых студиях.
 
При запуске программы возникает ошибка
Код
VogbitPluginExport.Export: идентификатор плагина не определён.

Код сделан на основе этого. Что нужно в нем поменять? Это как-то связано со строками ниже?
Код
[Caption("PluginExport")]
[ID("{EB7B1DCC-0DDE-4eaf-B500-2D669DE4557C}")]
 
Вы плагин пишете(dll) или свою отдельную программу(exe)?
 
Цитата
Сергей пишет:
Вы плагин пишете(dll) или свою отдельную программу(exe)?
Плагин
 
Связано.
[ID("{EB7B1DCC-0DDE-4eaf-B500-2D669DE4557C}")]
это и есть идентификатор плагина.
Сейчас попробую собрать плагин из того сообщения.
 
В том то и дела, что код из того листинга работает, но я внес правки и он перестал. Вот мой код
Код
using System;
using Csdn.Vogbit.Base;
using Csdn.Vogbit.Data;
using Csdn.Vogbit.Forms;
using Csdn.Vogbit.Main;
using DevExpress.Utils;
using DevExpress.XtraEditors;
using System.Windows.Forms;
using Csdn.Vogbit.QB;

namespace VogbitPluginExport
{
    [Caption("PluginExport")]
    [ID("{EB7B1DCC-0DDE-4eaf-B500-2D669DE4557C}")]

    public class BarCodesForm : DataViewForm
    {
        public BarCodesForm(IExtensibleApplication app) : base (app)
        {

        }

        protected override void OnLoad(System.EventArgs e)
        {
            base.OnLoad(e);

            GetData();

            DataControl.Columns.Add(DataSource.PropertyDefs["BarCode"], "Штрих-код");
            DataControl.Columns.Add(DataSource.PropertyDefs["Name"], "ФИО");
        }

        void GetData()
        {
            var sqlQuery = new SqlQuery();
            var selectQuery = sqlQuery.CreateQuery();

            var barCode = (Csdn.Vogbit.QB.Schema.Views.BarCodes)selectQuery.From.AddView(Views.BarCodes, "barCode");
            var name = (Csdn.Vogbit.QB.Schema.Views.Employees)selectQuery.From.AddView(Views.Employees, "name");

            var j = new Join(barCode, name, JoinType.Inner, new Condition().EqualTo(barCode.ObjectID, name.ID));

            selectQuery.Joins.Add(j);
            selectQuery.Columns.Add(barCode.Code, "BarCode");
            selectQuery.Columns.Add(name.Name, "Name");

            sqlQuery.Add(selectQuery);

            var data = ExtensibleApplication.Application.ExecuteQuery(sqlQuery);

            data.Close();
            data.Prepare();
            DataSource = data;          
        }            

    }

    public class Export : PlugInBase
    {
        private const string CommandGuidString = "{67ED1590-AB70-46f7-94F9-58A462D333DB}";
        private const string CategoryGuidString = "{B18D68B3-33B2-45eb-BBCA-424B30E65B48}";

        protected override void Connect()
        {
            base.Connect();
            ExtForms.EventHandler += ExtFormsEventHandler;
        }

        void ExtFormsEventHandler(object sender, ExtensibleFormsEventArgs e)
        {
            if (e.EventType == ExtensibleFormsEventType.NewForm)
            {
                if (e.PlugInForm.GetType() == typeof(EmployeesGridForm))
                {
                    var commandId = new Guid(CommandGuidString);
                    var categoryId = new Guid(CategoryGuidString);

                    var barManager = (IBarManager)e.PlugInForm;
                    var barCategory = barManager.BarCategories.Add(categoryId, "Пример");

                    var exampleButton = barManager.BarCommands.AddButtonCommand(commandId, barCategory, "Команда", false);
                    exampleButton.Caption = "Список штрих-кодов";
                    exampleButton.ActionExecute += ExampleButtonActionExecute;
                }
            }
        }

        void ExampleButtonActionExecute(object sender, ActionExecuteEventArgs e)
        {
            if (((IPlugInDataForm)ExtForms.ActiveForm).CurrentItem != null)
            {
                //long nmkId = ((IPlugInDataForm)ExtForms.ActiveForm).CurrentItem["ID"].AsLongInt;

                //var formParams = new PlugInFormParams();
                //formParams["OwnerID"].Value = nmkId;

                var barCodesForm = ExtForms.GetNewForm(typeof(BarCodesForm).ToString());
                barCodesForm.TabText = "Список штрих-кодов";
                //barCodesForm.OpenForm(formParams);
                barCodesForm.ShowFloatingForm(DockStyle.None);
            }

        }
    }
}

Не уверен, что он правильный, но и проверить никак не могу. Как прописывать ИД плагина в дальнейшем, когда буду создавать другие плагины?
 
Это атрибуты класса.
Писать их надо перед соответствующим классом. Т.е. в вашем случае перед
Код
public class Export : PlugInBase
 
Цитата
Максим Еремин пишет:
Как прописывать ИД плагина в дальнейшем, когда буду создавать другие плагины?
Сгенерить новый GUID
 
Спасибо, заработало.

Подскажите ещё, пожалуйста, каким образом можно сделать экспорт данных из таблицы в CSV-файл с помощью какой-нибудь библиотеки Vogbit? Или нужно подключать стороннюю библиотеку?
Изменено: Максим Еремин - 29.11.2017 14:09:26
 
можно так попробовать
Код
(DataConrol as IDataExport).ExportTo(ExportFormat.Csv, "filename.csv")
 
Можно подробнее? Попробовал со строкой выше, не сохранилось.

Вот функция
Код
void GetData()
        {
            var sqlQuery = new SqlQuery();
            var selectQuery = sqlQuery.CreateQuery();

            var barCode = (Csdn.Vogbit.QB.Schema.Views.BarCodes)selectQuery.From.AddView(Views.BarCodes, "barCode");
            var name = (Csdn.Vogbit.QB.Schema.Views.Employees)selectQuery.From.AddView(Views.Employees, "name");

            var j = new Join(barCode, name, JoinType.Inner, new Condition().EqualTo(barCode.ObjectID, name.ID));

            selectQuery.Joins.Add(j);
            selectQuery.Columns.Add(barCode.Code, "BarCode");
            selectQuery.Columns.Add(name.Name, "Name");

            sqlQuery.Add(selectQuery);

            var data = ExtensibleApplication.Application.ExecuteQuery(sqlQuery);

            data.Close();
            data.Prepare();
            DataSource = data;
            (DataControl as IDataExport).ExportTo(ExportFormat.Csv, "vogbit__bar_name.csv");     
        }    
 
ошибку выдаёт?
колонки не созданы у DataControl'а

UPD: Попробовал. Вставил эту строчку после создания колонок. Работает.
 
Я понял, что функция Data.Columns.Add(), но так и не понял, каким там должен быть первый параметр. Подскажете?

UPD: Разобрался.
Изменено: Максим Еремин - 30.11.2017 13:57:23
 
Подскажите, каким запросом можно вывести задание, сотрудника который его выполняет, и необходимый для него инструмент? А то без документации разобраться в БД практически невозможно, уже который день ковыряюсь
 
Тут есть нюансы.
В первую очередь:
- работник, по которому это нужно, на посту один или их там несколько может быть?
- по каким заданиям нужно смотреть? Которые включены работнику в план на смену? Или которые ему "выданы" в рамках смены?
- из задания можно добыть операцию в техпроцессе, по операции этой можно добыть из техпроцесса "инструмент". Вопрос - какой? Весь, который на эту операцию указан?

(уровень учёта подразумевается "высокий" или "максимальный" используется)

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

P.S. Вообще, если такими вещами заниматься серьёзно, то неплохо бы обучение какое-то организовывать. Если хотите логику понимать и знать, как там что внутри устроено.
Потому что это так в двух словах на форуме не объяснить всё.
 
Цитата
- работник, по которому это нужно, на посту один или их там несколько может быть?
Работник на посту может быть только один
Цитата
- по каким заданиям нужно смотреть? Которые включены работнику в план на смену? Или которые ему "выданы" в рамках смены?
Если я правильно понял, что задания выдаются в рамках смены.
Цитата
- из задания можно добыть операцию в техпроцессе, по операции этой можно добыть из техпроцесса "инструмент". Вопрос - какой? Весь, который на эту операцию указан?
Весь инструмент для операции

Цитата
P.S. Вообще, если такими вещами заниматься серьёзно, то неплохо бы обучение какое-то организовывать. Если хотите логику понимать и знать, как там что внутри устроено.
Скорее всего, это последний плагин, который нужно разработать для Вогбита в рамках проекта, так что обучение не целесообразно.
Изменено: Максим Еремин - 05.12.2017 09:54:07
 
Тогда нужно делать так (если от работника идти):

1. найти задание(я) (task) с типом связи = LT_Unit_Task, со статусом = ST_MAN_3, и с таким работником в "плановых трудовых ресурсах" - рис.1.

2. найти задание с типом связи = LT_Place_task, для которого (1) является Object task’ом (связанным заданием) – рис.2

3. в (2) взять Planned step (запланированные этапы). Там указан компонент (и коллекция откуда этот компонент) – это и есть операция (и техпроцесс, откуда она) – рис.3

4. Взять из коллекции компоненты, подчинённые (3) с типом связи LT_Tools – это инструмент к этой операции в техпроцессе - рис.4.

И будет то, что вы хотели.
Инструмент из операции, которая в задании, выданном работнику.
2.png (63.84 КБ)
3.png (66.96 КБ)
4.png (40.22 КБ)
1.png (66.88 КБ)
Страницы: 1
Сейчас на форуме
Всего зарегистрированных пользователей: 3988
Приняло участие в обсуждении: 415
Всего тем: 804
Всего сообщений: 6067

×
Вход на сайт