public static dynamic ConnectionString() { var com1S = new V83.COMConnector { PoolCapacity = 10, PoolTimeout = 60, MaxConnections = 2 }; //Result = com1S.Connect(@"File='\\srvkb\SolidWorks Admin\TEMP\1C_Test';Usr='******';pwd='';"); //Result = com1S.Connect(@"File='C:\1C_test_base';Usr='******';pwd='';"); Result = com1S.Connect("srvr='Srvprog'; ref='Yurchenko_new'; usr='******'; pwd='1'"); return Result; }
public IEnumerable <string> GetBases() { var agent = new V83.COMConnector().ConnectAgent($"tcp://{serverRef}"); V83.IClusterInfo cluster = (V83.IClusterInfo)agent.GetClusters().GetValue(0); agent.Authenticate(cluster, adminUser, adminPass); var bases = agent.GetInfoBases(cluster); List <string> listBases = new List <string>(); foreach (V83.IInfoBaseShort item in bases) { listBases.Add(item.Name); } return(listBases); }
public static void Connect1C(string cs) { try { con = new V83.COMConnector { PoolCapacity = 10, PoolTimeout = 60, MaxConnections = 2 }; Base = con.Connect(cs); } catch (Exception err) { MessageBox.Show(err.Message); return; } }
public void ClearSessions(string baseName, int delay) { V83.IInfoBaseShort currentBase = null; var agent = new V83.COMConnector().ConnectAgent($"tcp://{serverRef}"); V83.IClusterInfo cluster = (V83.IClusterInfo)agent.GetClusters().GetValue(0); agent.Authenticate(cluster, adminUser, adminPass); var bases = agent.GetInfoBases(cluster); foreach (V83.IInfoBaseShort item in bases) { if (item.Name.ToString().ToLower() == baseName.ToLower()) { currentBase = item; break; } } if (currentBase != null) { var sessions = agent.GetInfoBaseSessions(cluster, currentBase); short i = 0; foreach (var s in sessions) { i++; } if (i > 0) { Thread.Sleep(delay); } foreach (V83.ISessionInfo session in sessions) { ClearSession(agent, cluster, session); } } else { throw new System.Exception("Не найдена база на сервере!"); } }
public Form1() { InitializeComponent(); //MessageBox.Show("Start"); splitContainer1.Panel1MinSize = pictureBox1.Height; splitContainer1.SplitterDistance = flowLayoutPanel1.Height; pictureBox4.Visible = !Program.LicenseFlag; timer1.Interval = Properties.Settings.Default.Duration; timer1.Stop(); try { Browser = new ChromiumWebBrowser(Properties.Settings.Default.Site) { BackColor = Color.White, Name = "Br", TabIndex = 1, Dock = DockStyle.Fill }; con = new V83.COMConnector { PoolCapacity = 10, PoolTimeout = 60, MaxConnections = 2 }; CreateBazbyPanel(); } catch (Exception err) { MessageBox.Show($"{err.Message}"); } panel1.Controls.Add(Browser); Browser.Visible = false; panel1.Controls.Add(Baz); Baz.Visible = true; }
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; string MsgString; //создаем пустую базу string UpdBase = Dir.Text + @"\UpdBase"; //string UpdBase = @"C:\UpdBase"; if (!CreateEmptyBase(UpdBase)) { MsgString = "Не удалось скачать обновления (ошибка подключения)" + Environment.NewLine; worker.ReportProgress(100, MsgString); return; // "Не удалось скачать обновления (ошибка подключения)"; } //создаем СОМ-соединение V83.COMConnector com1s = new V83.COMConnector(); com1s.PoolCapacity = 10; com1s.PoolTimeout = 60; com1s.MaxConnections = 2; string path_connect_file = "File='" + UpdBase + "';"; try { DB1C = com1s.Connect(path_connect_file); MsgString = "Подключение выполнено успешно" + Environment.NewLine; worker.ReportProgress(1, MsgString); } catch { MessageBox.Show("Не удалось подключиться"); MsgString = "Не удалось скачать обновления (ошибка подключения)" + Environment.NewLine; worker.ReportProgress(100, MsgString); return;// "Не удалось скачать обновления"; } foreach (DataGridViewRow row in dataGridView1.Rows) { if ((bool)row.Cells["Up"].Value == true) { worker.ReportProgress(1, ""); //обнуляем переменные num = ""; NVer = ""; u = false; int Str = row.Index; if ((row.Cells["Address"].Value.ToString() == "") | (row.Cells["Reliz"].Value.ToString() == "") | (row.Cells["Konfig"].Value.ToString() == "") | (row.Cells["Platform"].Value.ToString() == "")) { MsgString = "Проверьте, заполнены ли все поля" + Environment.NewLine; worker.ReportProgress(100, MsgString); break; } string Login_user; if (row.Cells["User"].Value == null) { Login_user = ""; } else { Login_user = row.Cells["User"].Value.ToString(); } string Pas_user = row.Cells["Pass"].Value.ToString(); string file_db_user = row.Cells["Address"].Value.ToString(); string ThisVer = row.Cells["Reliz"].Value.ToString(); string confName = row.Cells["Konfig"].Value.ToString(); string platform = row.Cells["Platform"].Value.ToString(); string Code = row.Cells["Code"].Value.ToString(); MsgString = "===== Начато обновление базы " + file_db_user + " =====" + Environment.NewLine; worker.ReportProgress(10, MsgString); List <string> PathUpd = UpdateUserBase(ThisVer, confName, platform, sender); //получаем пути обновлений //обновляем if (PathUpd.Count > 0) { string Result = BatFile(Login_user, Pas_user, file_db_user, PathUpd, sender); if (u && (Code != "")) //выполнено без ошибок И значение получено из БД { //передаем обратно версию обновления using (Service service = new Service()) { service.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; service.Credentials = new System.Net.NetworkCredential(WS_login, WS_pass); var NumRequest = service.ReturnReliz(Code, NVer); } } SendMessage(Result, sender); MsgString = "===== Обновление завершено =====" + Environment.NewLine; worker.ReportProgress(100, MsgString); } else { MsgString = "Обновление не выполнено" + Environment.NewLine; worker.ReportProgress(100, MsgString); } } } //удаляем СОМ if (Directory.Exists(UpdBase)) { try { Directory.Delete(UpdBase, true); } catch { } } backgroundWorker2.Dispose(); }
private void FindByBarcode(string Code) { int QQ = 0; Bazlabel.Text = "Соединяемся с сервером"; while (QQ == 0) { dynamic r; if (Connection == null) { label1.Text = "Соединяемся с сервером"; Bazlabel.Text = "Соединяемся с сервером"; Connection = ConnectToServer(); } if (Connection != null) { // Сервер жив? try { r = Connection.ПолучитьСоединенияИнформационнойБазы(); QQ = r.Количество; } catch (Exception /*err*/) { //MessageBox.Show("reconnect"); label1.Text = "Соединение с сервером"; Bazlabel.Text = "Соединение с сервером"; Connection = null; con = null; GC.Collect(); con = new V83.COMConnector { PoolCapacity = 10, PoolTimeout = 60, MaxConnections = 2 }; } // StringBuilder b = new StringBuilder(); // foreach (var rr in r) // { // b.AppendLine($"{rr.ComputerName} {rr.ApplicationName} {rr.ConnectionStarted} {rr.SessionNumber} {rr.ConnectionNumber} {rr.User.Name}"); // } // //MessageBox.Show($"{b}"); } } if (Code != string.Empty) { label1.Text = $"Ищем {Code}"; Bazlabel.Text = $"Ищем {Code}"; } else { label1.Text = "Поднесите штрихкод товара к сканеру"; Bazlabel.Text = "Поднесите штрихкод товара к сканеру"; } try { // розничная цена dynamic TP = Connection.Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(Properties.Settings.Default.PriceType); Cursor = Cursors.WaitCursor; // Штрихкод dynamic Q = Connection.NewObject("Query"); Q.Текст = "ВЫБРАТЬ Штрихкоды.Владелец КАК CсылкаНаНоменклатуру, Штрихкоды.Штрихкод как Код " + "ИЗ РегистрСведений.Штрихкоды КАК Штрихкоды " + "ГДЕ Штрихкоды.Штрихкод = &Code и Штрихкоды.Владелец ССЫЛКА Справочник.Номенклатура;"; if (Code != string.Empty) { Q.УстановитьПараметр("Code", Code); label1.Text = $"Ищем {Code}"; Bazlabel.Text = $"Ищем {Code}"; } else { label1.Text = "Поднесите штрихкод товара к сканеру"; Bazlabel.Text = "Поднесите штрихкод товара к сканеру"; return; } dynamic res = Q.Выполнить(); dynamic l = res.Выбрать(); if (l.Количество > 0) { while (l.Следующий()) { //Title label1.Text = $"{l.CсылкаНаНоменклатуру.Наименование}"; //label1.Text = $"{l.CсылкаНаНоменклатуру.Код} {l.CсылкаНаНоменклатуру.Наименование}"; label1.TextAlign = ContentAlignment.TopLeft; // Picture dynamic pp = null; try { pp = Connection.Обработки.APPLIX_RU_ХДВИ_ЗМ.Создать().ХранилищеДополнительнойИнформации_ПолучитьДанныеФайла(l.CсылкаНаНоменклатуру.ОсновноеИзображение); } catch (Exception) { pp = l.CсылкаНаНоменклатуру.ОсновноеИзображение.Хранилище.Get(); } if (pp != null) { Bitmap pp1 = PictureFrom1C(Connection, pp); pictureBox3.Image = pp1; pictureBox3.Dock = DockStyle.Fill; tableLayoutPanel1.SetColumnSpan(pictureBox3, 2); tableLayoutPanel1.SetRowSpan(pictureBox3, 1); } else { pictureBox3.Image = Properties.Resources.bazby; pictureBox3.Dock = DockStyle.Fill; tableLayoutPanel1.SetColumnSpan(pictureBox3, 2); tableLayoutPanel1.SetRowSpan(pictureBox3, 2); } label2.Text = $"{l.CсылкаНаНоменклатуру.ДополнительноеОписаниеНоменклатуры}"; // Цена dynamic P = Connection.NewObject("Query"); P.Text = "select ЕстьNull(Цена,0) Price " + "from РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаПолучения) " + "where Номенклатура = &Goods and ТипЦен = &TP;"; P.УстановитьПараметр("ДатаПолучения", DateTime.Today); P.УстановитьПараметр("Goods", l.CсылкаНаНоменклатуру); P.УстановитьПараметр("TP", TP); decimal Price = 0m; dynamic PRes = P.Выполнить().Выбрать(); while (PRes.Следующий()) { Price = PRes.Price; label3.Text = $"Цена: {Price:C2}"; } // Скидки dynamic DiscountQuery = Connection.NewObject("Query"); DiscountQuery.Text = "select ЕстьNull(sum(ПроцентСкидкиНаценки),0) as Dis " + "from РегистрСведений.СкидкиНаценкиНоменклатуры " + "where Номенклатура.Ссылка = &Goods " + " and Активность " + " and ДатаОкончания >= &Date "+ " and Условие = Значение(Перечисление.УсловияСкидкиНаценки.ПоКоличествуТовара) "; DiscountQuery.УстановитьПараметр("Goods", l.CсылкаНаНоменклатуру); DiscountQuery.УстановитьПараметр("Date", DateTime.Today); dynamic DiscountRes = DiscountQuery.Execute().Select(); decimal Discount = 0; if (DiscountRes.Next()) { Discount = DiscountRes.Dis; DiscountLabel.Text = "Цена со скидкой:" + Environment.NewLine + $"{((100 - Discount) / 100 * Price):C2}"; } DiscountLabel.Visible = (Discount != 0); Baz.Visible = false; tableLayoutPanel1.Visible = true; timer1.Interval = Properties.Settings.Default.Duration; timer1.Start(); } } else { timer1.Stop(); label1.Text = "Поднесите штрихкод товара к сканеру"; Bazlabel.Text = "Поднесите штрихкод товара к сканеру"; label2.Text = string.Empty; label3.Text = string.Empty; pictureBox3.Image = Properties.Resources.bazby; label1.TextAlign = ContentAlignment.MiddleCenter; label3.Text = string.Empty; tableLayoutPanel1.Visible = false; Baz.Visible = true; } } catch (Exception err) { MessageBox.Show($"FindByBarcode: {err.Message}"); return; } finally { Cursor = Cursors.Default; nullButton.Focus(); //if (Connection != null) //{ // Connection = null; // //con = null; //} } }