рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЛрдиреЛрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ 1 рд╕реА рдореЗрдВ рдХрдм рддрдХ рдФрд░ рдХрдард┐рди рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ OLAP рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИред OLAP - рдЯреЗрдмрд▓ рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рдЙрджреНрдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдСрдирд▓рд╛рдЗрди рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧред рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА, рдЙрдирдХреЗ рд▓рд┐рдП Microsoft Excel рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрддреНрдпрдВрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдмрди рдЧрдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ 1C: ERP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрджреНрдпрдореЛрдВ рдореЗрдВред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо Visual Studio C #, 2 Microsoft SQL Server рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рдПрдХ рд╣реИ 1C: ERP рдФрд░ рджреВрд╕рд░рд╛ OLAP рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕рд╛рде Microsoft Excel рдореЗрдВ рдкрд┐рд╡рдЯ рдЯреЗрдмрд▓ред
рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ 1C: ERP рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдВрдЯрд░рдиреЗрдЯ (GetDatabaseStructure.epf рдпрд╛ base_structure.epf) рдкрд░ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо 1C рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА, рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд╕, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд▓рд╛рдЗрди, рдПрдиреБрдорд░реЗрд╢рдВрд╕, рдЗрддреНрдпрд╛рджрд┐) рдФрд░ рдЙрдирдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦреЗрдВрдЧреЗред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ OLAP рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо Microsoft SQL рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред
Visual Studio рдореЗрдВ, SQL рдореЗрдВ LinC рдореЗрдВ 1C рдЯреЗрдмрд▓ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЬреЛрдбрд╝реЗрдВ

рд╣рдо Linq рдореЗрдВ SQL рдореЗрдВ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдмрдирд╛рдПрдВрдЧреЗред

Visual Studio рдХреЛ 1C рд╕рдВрд░рдЪрдирд╛ рд╕реЗ OLAP рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдБ
public class DocProductionImporter { DataClasses1DataContext dataContext; s1_DataClasses1DataContext dataContextS1; public DocProductionImporter() { dataContext = new DataClasses1DataContext(); dataContextS1 = new s1_DataClasses1DataContext(); } .... }
рд╣рдо OLC рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз 1C рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред 1C рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ IDRRef рдФрд░ Version рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЯреНрдпреВрдкрд▓ рд╣рдореЗрдВ рдПрдХ рд╕рдордЧреНрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
OLAP рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА SQL рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдореЗрдВ рднрд░реЗрдВ
HashSet<Tuple<System.Data.Linq.Binary,
рд╣рдо 1 рд╕реА рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ: рдИрдЖрд░рдкреА рдФрд░ рд╣рдорд╛рд░реЗ рдУрдПрд▓рдПрдкреА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдирдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред _Version рдлрд╝реАрд▓реНрдб рдореЗрдВ 1C рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЛ рд╕рдореЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди рд╣реЛрддрд╛ рд╣реИ
var prodDocs = from c in dataContextS1._Document581s where c._Posted == posted select c; int i = 0; foreach (_Document581 doc in prodDocs) { if (fndDocVer.Contains(Tuple.Create(doc._IDRRef, doc._Version)) == true) { i++; continue; } ....
рдПрдХ рдирдпрд╛ рдмрдирд╛рдПрдБ рдпрд╛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓реВрдк рдХреЗ рдЕрдВрджрд░, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рднрд░реЗ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред
рдореЗрдореЛрд░реА рдореЗрдВ рдмрд╛рдж рдХреА рдЦреЛрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рднрд░реЗрдВ (SQL рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреЗрдЬ рдХрд░реЗрдВ)
Dictionary<System.Data.Linq.Binary, Int64> fndDepartments = new Dictionary<System.Data.Linq.Binary, Int64>(); var fDepartments = from g in dataContext.DimDepartments select g; foreach (DimDepartments fd in fDepartments) { fndDepartments.Add(fd.IDRRef, fd.ID);
рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ
if (fndDepartments.ContainsKey(doc._Fld15867RRef)) { Int64 val; fndDepartments.TryGetValue(doc._Fld15867RRef, out val); dp.DepartmentID = val; } else throw new Exception();
рдЪрдХреНрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ OLAP рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ
dp.IDRRef = doc._IDRRef; dp.Version = doc._Version; if (doc._Posted == posted)
рдЗрд╕ рдкрд░, рдкреНрд▓реЗрдЯреЛрдВ рдореЗрдВ рднрд░рдиреЗ рдкрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХрд╛рдо рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдзреБрд░реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред рдПрдХ рдирдИ рдзреБрд░реА рддрд╛рд▓рд┐рдХрд╛ рдЬреЛрдбрд╝реЗрдВ

рд╣рдо рд╕рд╛рд░рдгреА рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рд╛рд░рдгреАрдмрджреНрдз рднрд╛рдЧ рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг)

рд╣рдордиреЗ рдХрд┐рд╕реА 1C рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ OLAP рдФрд░ Excel рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХреАред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рд╕реНрд▓рд╛рдЗрд╕ рдФрд░ рд╕рдВрдХреЗрддрдХ рдХрд╛ рд╕реЗрдЯ Microsoft рдПрдХреНрд╕реЗрд▓ рдзреБрд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рд░рд┐рдкреЛрд░реНрдЯ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
GitHub рдкрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдПрдХ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ