SQL рд╕реЗ рд╕реАрдзреЗ рд╕рдВрд╕реНрдХрд░рдг 1c рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рдбреНрдпреВрдЯреА рдкрд░, рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХрдИ рд╕рдВрдЧрдардиреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рдмрдВрдзрди рдФрд░ рд▓реЗрдЦрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП 1s рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
1 рд╕реА, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдХрдо рд╕реЗ рдХрдо 5 рдЖрдзрд╛рд░реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рд╕рднреНрдп рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдЖрдЧреЗ MSSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ (рдЕрдкрдбреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред


рдЪрд▓реЛ "рдЕрдВрдд" рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рди рд╢реБрд░реВ рдХрд░реЗрдВ

1 рд╕реА рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╣реИ: рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░
рдкрдХрдбрд╝ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг 1s рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдмреЗрд╢рдХ 1c-COMConnector рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬреЛ рдХрдо рд╕реЗ рдХрдо 2 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЦрд╛рддрд╛ рд╣реИ, рдореЗрдореЛрд░реА рдФрд░ рдореЗрд░реА рдХреЙрдлреА рдкреАрддрд╛ рд╣реИред
рдореИрдВ рджреВрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рд╕рдВрд╕реНрдХрд░рдг 1c> 8.0 рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕рдм рдХреБрдЫ MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдПрдХ _config рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓рдирд╛рдо = рд░реВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред рд╣рдо рд╕рд╛рдордЧреНрд░реА (рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛) рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:
{2,e0666db2-45d6-49b4-a200-061c6ba7d569}
рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреАрдЪреЗ рдЗрд╕реЗ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рд╣рд╛рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ FileName = e0666db2-45d6-49b4-a200-061c6ba7d569 (рд╕рдорд╛рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ:
{2,
{1e4190e9-76c2-456e-a607-4d817110ffd9},6,
{9cd510cd-abfc-11d4-9434-004095e12fc7,
{1,
{36,
{0,
{0,
{0,3,6b021b70-482d-4baf-b590-b86b68d4730e},"",
{1,"ru"," , 2.5"},""}
},"",1,
{1,"ru"," , 2.5"},
{1,"ru"," , 2.5"},
{1,"ru","Copyright () ""1C"", 2007-2011. "},
{1,"ru","http://www.1c.ru"},
{1,"ru","http://v8.1c.ru/hrm/"},72ef09b4-4393-4d23-a530-7e5b50cf1d24,31e2aa98-4a9c-4d99-a3e7-540a13396b8c,1e7940af-fba5-46c3-8ffb-e8389ac2b79f,87090b31-2cd0-4b45-8b24-efdb2383b1a2,1," ""1""","2.5.40.3","http://downloads.v8.1c.ru/tmplts/",1,

(рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)

рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ 1s рд╣реИред
рдЕрдм рд╣рдореЗрдВ рдЗрд╕реЗ MS SQL рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕реА # рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдХрдХреНрд╖рд╛ рд▓рд┐рдЦреА:
 using System; using System.Collections.Generic; using System.Text; using System.IO; namespace metadata { class v8metadata { public object[] array_data; public v8metadata[] child; public v8metadata parent; public string filename; private Decoder d; public v8metadata(MemoryStream ms, string file_name, v8metadata p,Decoder dec) { d = dec; filename = file_name; array_data = new object[0]; child = new v8metadata[0]; parent = p; parse_ms(ms, true); } //     MD  1  7.7 //     public v8metadata(MemoryStream ms, string file_name,Decoder dec) { d = dec; filename = file_name; array_data = new object[0]; child = new v8metadata[0]; if (parent == null) ms.Position = 0; parse_ms(ms); } public v8metadata(MemoryStream ms, string file_name) { d = Encoding.UTF8.GetDecoder(); filename = file_name; array_data = new object[0]; child = new v8metadata[0]; if (parent == null) ms.Position = 0; parse_ms(ms); } public object get(int pos) { return array_data[pos]; } public string get(string descr) { string res = "error wrong param"; if (descr == "version") try { res = ((v8metadata)(((v8metadata)(((v8metadata)(this.array_data[3])).array_data[1])).array_data[1])).array_data[15].ToString(); } catch { res = ""; } else if (descr == "vendor") res = ((v8metadata)(((v8metadata)(((v8metadata)(this.array_data[3])).array_data[1])).array_data[1])).array_data[14].ToString(); else if (descr == "conf") res = ((v8metadata)(((v8metadata)(((v8metadata)(((v8metadata)(((v8metadata)(this.array_data[3])).array_data[1])).array_data[1])).array_data[1])).array_data[1])).array_data[2].ToString(); if ((res.Substring(0, 1) == "\"") && (res.Substring(res.Length - 1) == "\"")) { res = res.Substring(1); res = res.Substring(0, res.Length - 1); } return res.Replace("\"\"", "\""); } public string ToStr(string lev) { string ret = ""; for (int i = 0; i < this.array_data.Length; i++) { ret = ret+ lev +"_" + i.ToString() + ":"; if (this.array_data[i].GetType().FullName == "System.String") ret = ret + " " + this.array_data[i].ToString() + @" "; else ret = ret + ((v8metadata)this.array_data[i]).ToStr(lev + "_" + i.ToString()) + @" "; } return ret; } private void parse_ms(MemoryStream ms) { parse_ms(ms, false); } private int parse_ms(MemoryStream ms, Boolean findbegin) { int cur; byte[] bytedata = new byte[0]; //for (int i = Convert.ToInt16(ms.Position); i < ms.Length; i++) while (ms.Position < ms.Length) { cur = ms.ReadByte(); //  if (cur == 13) { cur = ms.ReadByte(); if (cur == 10) continue; else { Addtoarraybyte(ref bytedata, 13); Addtoarraybyte(ref bytedata, cur); } } if (cur == 123) { if (findbegin) { adddata(bytedata); adddata(new v8metadata(ms, filename, this,d)); } else { findbegin = true; bytedata = new byte[0]; } continue; } if (cur == 44) { // adddata(bytedata); bytedata = new byte[0]; continue; } if (cur == 125) break; Addtoarraybyte(ref bytedata, cur); } adddata(bytedata); return 0; } private static void Addtoarraybyte(ref byte[] arr, int val) { byte[] tmp = new byte[arr.Length + 1]; Array.Copy(arr, 0, tmp, 0, arr.Length); arr = tmp; arr[arr.Length - 1] = Convert.ToByte(val); } private void adddata(byte[] bytedata) { if (bytedata.Length == 0) return; char[] cs = new char[d.GetCharCount(bytedata, 0, bytedata.Length)]; d.GetChars(bytedata, 0, bytedata.Length, cs, 0); //  string a_data = new string(cs); object[] tmp = new object[array_data.Length + 1]; Array.Copy(array_data, 0, tmp, 0, array_data.Length); array_data = tmp; array_data[array_data.Length - 1] = a_data; } private void adddata(v8metadata childdata) { object[] tmp = new object[array_data.Length + 1]; Array.Copy(array_data, 0, tmp, 0, array_data.Length); array_data = tmp; array_data[array_data.Length - 1] = childdata; addv8metadata(childdata); } private void addv8metadata(v8metadata childdata) { v8metadata[] tmp1 = new v8metadata[child.Length + 1]; Array.Copy(child, 0, tmp1, 0, child.Length); child = tmp1; child[child.Length - 1] = childdata; } } } 


рдХреНрд▓рд╛рд╕ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдореЗрдореЛрд░реАрд╕реНрдЯреНрд░реАрдо рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЛ _config рдЯреЗрдмрд▓ рд╕реЗ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ 7.7 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред

рдЕрдм рдЖрдк рдЗрд╕рдХреЗ "рдкрддрд╛" рдХреЛ рдЬрд╛рдирдХрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЕрдЧрд▓рд╛, рдмрд╕ "рд╕рдВрд╕реНрдХрд░рдг" рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБ рдФрд░ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ "рдкрддрд╛" (v8metadata) (((v8metadata) ((v8metadata) ((v8metadata) (this.array_data [3])) ) .array_data [1]); array_data [1]); array_data [15] .ToString ();

рдХреНрд▓рд╛рд╕ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ:
 using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.IO.Compression; using System.IO; namespace metadata { class v8config { public SqlConnection con; public string rootfile; public string platform; public string vendor; public string conf; public string version; public v8metadata v8; private string db; private string server = ""; public v8config(string constring) { con = new SqlConnection(constring); db = con.Database; MemoryStream ms = file_data("root"); v8metadata v82 = new v8metadata(ms, "root"); rootfile = v82.get(1).ToString(); if (v82.array_data.Length > 2) platform = "8.2"; else platform = "8.1"; update_prop(); } //  linked  public v8config(SqlConnection conn, string srv, string database) { con = conn; server = srv; db = database; if (check_is_v8()) { MemoryStream ms = file_data("root"); v8metadata v82 = new v8metadata(ms, "root"); rootfile = v82.get(1).ToString(); if (v82.array_data.Length == 3) platform = "8.2"; else if (v82.array_data.Length > 3) { platform = "8.0"; rootfile = "root"; } else platform = "8.1"; update_prop(); } } public v8config(SqlConnection conn) { con = conn; db = con.Database; MemoryStream ms = file_data("root"); v8metadata v82 = new v8metadata(ms, "root"); rootfile = v82.get(1).ToString(); update_prop(); } //,  ,   private void update_prop() { if (platform != "8.0") { if (v8 == null) { v8 = new v8metadata(file_data(rootfile), rootfile); } if (((v8metadata)(((v8metadata)(((v8metadata)(v8.array_data[3])).array_data[1])).array_data[1])).array_data.Length > 20) platform = "8.2"; vendor = v8.get("vendor"); conf = v8.get("conf"); version = v8.get("version"); } else { vendor = "  "; conf = "  "; version = "  "; } } public void SaveToFile(string file, string filename) { FileStream fs = File.OpenWrite(filename); MemoryStream ms = file_data(file); byte[] data = ms.ToArray(); fs.Write(data, 0, data.Length); } private bool check_is_v8() { try { bool doopencon = false; SqlCommand cmdu1; bool haslinked = true; if (con.State != System.Data.ConnectionState.Open) { con.Open(); doopencon = true; } cmdu1 = new SqlCommand("", con); cmdu1.CommandText = "select name from [" + server + "].[master].dbo.sysdatabases where name='" + db + "'"; if (cmdu1.ExecuteScalar() == null) { haslinked = false; } if (!haslinked) { if (doopencon) con.Close(); return false; } cmdu1.CommandText = "select name from [" + server + "]." + db + ".dbo.sysobjects where name ='config'"; if (cmdu1.ExecuteScalar() == null) { haslinked = false; } if (doopencon) con.Close(); return haslinked; } catch { return false; } } private MemoryStream file_data(string name) { MemoryStream ms = new MemoryStream(); if (con.State != System.Data.ConnectionState.Open) con.Open(); string sql; if (server != "") sql = "select BinaryData from [" + server + "].[" + db + "].dbo.Config where [filename]='" + name + "'"; else sql = "select BinaryData from [" + db + "].dbo.Config where [filename]='" + name + "'"; SqlCommand cmdu1 = new SqlCommand(sql, con); cmdu1.CommandTimeout = 200; SqlDataReader rs = cmdu1.ExecuteReader(); if (rs.Read()) { DeflateStream dfs = new DeflateStream(rs.GetSqlBytes(0).Stream, CompressionMode.Decompress); byte[] BufferOut = new byte[100]; int BytesRead; while ((BytesRead = dfs.Read(BufferOut, 0, 100)) > 0) ms.Write(BufferOut, 0, BytesRead); dfs.Close(); } con.Close(); return ms; } public string get(string descr) { if (rootfile == null) return "     1 v8"; if (v8 == null) { v8 = new v8metadata(file_data(rootfile), rootfile); } if (descr == "test") { string fname = ((v8metadata)(((v8metadata)(((v8metadata)(v8.array_data[4])).array_data[2])).array_data[2])).array_data[3].ToString() + ".5"; MemoryStream ms = this.file_data(fname); v8metadata nv8 = new v8metadata(ms, fname); return "test"; } else return v8.get(descr); } } } 

рдЙрдкрдпреЛрдЧ:
  v8config v8 = new v8config("server=;database=;uid=sa;pwd=;Connection Timeout=300;"); v8.get("version"); 


рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ MSSQL рдХрд╣рд╛рдБ рд╣реИ?
рдпрд╣рд╛рдБ CLR рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ MSSQL рдореЗрдВ рд╣реА рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛:
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
 using System; using System.Collections; using System.Data; using System.Data.Sql; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; public partial class _1c_conf_functions { [SqlFunction(DataAccess = DataAccessKind.Read, FillRowMethodName = "FillRowConfig", TableDefinition = "[platform] nvarchar(5),vendor nvarchar(150),conf nvarchar(250),version nvarchar(100)")] public static IEnumerable v8getconfig(string srv, string dbs) { using (SqlConnection conn = new SqlConnection("context connection=true")) { metadata.v8config v8 = new metadata.v8config(conn, srv, dbs); metadata.v8config[] t = new metadata.v8config[1]; t[0] = v8; return t; } //v8metadata.v8_confmanager vconf = new v8metadata.v8_confmanager(@"\\ackiy_gw\public\1c_distr\tmplts_8.1"); //return vconf.find_config(" \"1\"", "").data; } public static void FillRowConfig(object obj, out SqlChars platform, out SqlChars vendor, out SqlChars conf, out SqlChars version) { // dateupdate = new SqlDateTime(((v8metadata.v8info)obj).dataupdate); metadata.v8config cfg = (metadata.v8config)obj; platform = new SqlChars(cfg.platform); vendor = new SqlChars(cfg.vendor); conf = new SqlChars(cfg.conf); version = new SqlChars(cfg.version); } }; 


рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ 1s рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдЕрджреНрдпрддрди рдЖрд╡рд╢реНрдпрдХ рд╣реИ?
рдЕрджреНрдпрддрди 1c рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рд╕рд░реНрд╡рд░ рдкрд░ рдЕрджреНрдпрддрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрдпрддрди рдореЗрдВ рдлреЙрд░реНрдо рдХреА .mft рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ:
Vendor= "1"
Name=
Version=2.0.25.5
AppVersion=8.2
........


рдФрд░ UpdateInfo.txt рдлрд╝рд╛рдЗрд▓
Version=2.0.25.5
FromVersions=;2.0.24.10;
UpdateDate=11.07.2011


рдмрд╕ рд╣рдореЗрдВ рдпрд╣реА рдЪрд╛рд╣рд┐рдП !!!
FromVersions рдФрд░ рдЕрджреНрдпрддрди рдХреА рд░рд┐рд▓реАрдЬрд╝ рддрд┐рдерд┐ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ 1c рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред (рд╡рд┐рд╖рдп рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рд▓рд┐рдВрдХ)

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ред 1s рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ "рдХрд┐рдХ рдЖрдЙрдЯ рдСрдлрд╝ рдпреВрдЬрд╝рд░реНрд╕" (vbscript)

 'basename-     1 'updateway -     'platform -  1 (8.1/8.2) 'srv1c -  1 'srvUser -      1 'srvPasswd-       1 'confchanged -  -  .      Function GetUpdateForConfig(basename,updateway,platform,srv1c,srvUser,srvPasswd,baseUsr,basepwd,confchanged) allowdisconnect=false '    12  6  -     if Hour(now())>0 and Hour(now)<6 then allowdisconnect=true End if set Connector=CreateObject("V" & Replace(platform,".","") & +".ComConnector") set AgentConnection=Connector.ConnectAgent(srv1c) set Cluster=AgentConnection.GetClusters() (0) AgentConnection.Authenticate Cluster,srvUser,srvPasswd 'WorkingProcess = AgentConnection.GetWorkingProcesses(Cluster)[0]; Process = AgentConnection.GetWorkingProcesses(Cluster) for each WorkingProcess in Process if WorkingProcess.Running<>0 then ConnectString = WorkingProcess.HostName & ":" & WorkingProcess.MainPort set WorkingProcessConnection = Connector.ConnectWorkingProcess("tcp://" & ConnectString) WorkingProcessConnection.AddAuthentication baseUsr,basepwd set ibDesc = WorkingProcessConnection.CreateInfoBaseInfo() ibDesc.Name = basename Connections = WorkingProcessConnection.GetInfoBaseConnections(ibDesc) for each Connection in Connections if LCase(Connection.AppID) <> "comconsole" then if allowdisconnect then WorkingProcessConnection.Disconnect Connection ShowStatus "Discconnect  " & Trim(Connection.ConnID),true,false else ShowStatus "  .",false,false GetUpdateForConfig=0 Exit function End if End if Next End if Next ShowStatus "  " & updateway,true,false ProcId=0 constr="/S""" & srv1c & "\" & basename & """" if baseUsr<>"" then constr=constr & " /N" & baseUsr & " /P" & basepwd end if if not confchanged then constr=constr & " /UpdateCfg""" & updateway & """" end if constr=constr & " /UpdateDBCfg" if Way1cv81="" then ShowStatus "    81",true,true GetUpdateForConfig="" Exit function End if RunString="""" & Way1cv81 & "1cv8.exe"" CONFIG " & constr & "" Resfile=WorkCatalog() & "result.txt" RunString=RunString & " /Out""" & Resfile & """" ShowStatus " : " & RunString,true,false CreateProcess RunString,true GetUpdateForConfig=ReadFileText(Resfile) End Function 

рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣реЗрд▓реА рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред

Source: https://habr.com/ru/post/In130924/


All Articles