public НалогиНаФОП() { Sotrs = new List <SotrFOP>(); List <НалогНаФОП> NalogsFOP = new List <НалогНаФОП>(); OLE ноЗПФонды; OLE СпрШкала = V7Z.CreateObject("Справочник.ШкалаСтавок"); if (СпрШкала.Method("НайтиПоКоду", (object)"ЗПФонды").ToBool()) { ноЗПФонды = СпрШкала.Method("ТекущийЭлемент"); } else { throw new Exception("ОШИБКА !!! Не могу найти сведения о налогах с фонда оплаты труда \n В справочнике 'Шкалы ставок' не обнаружен элемент с кодом 'ЗПФонды'"); } СпрШкала.Method("ИспользоватьРодителя", ноЗПФонды); СпрШкала.Method("ИспользоватьДату", ДатаПериода.End); СпрШкала.Method("ПорядокКодов"); СпрШкала.Method("ВыбратьЭлементы"); while (СпрШкала.Method("ПолучитьЭлемент").ToBool()) { НалогНаФОП nalog = new НалогНаФОП((string)СпрШкала.Property("Код")); NalogsFOP.Add(nalog); } }
public IVsTextBuffer CreateVsTextBufferAdapterForSecondaryBuffer(OLE.Interop.IServiceProvider serviceProvider, ITextBuffer secondaryBuffer) { VsTextBufferMock tb = new VsTextBufferMock(secondaryBuffer); _textBufferAdapters[tb.TextBuffer] = tb; _vsTextBufferAdapters[tb] = tb.TextBuffer; return tb; }
public IVsTextView CreateVsTextViewAdapter(OLE.Interop.IServiceProvider serviceProvider) { VsTextViewMock tv = new VsTextViewMock(); _textViewAdapters[tv.TextView] = tv; _vsTextViewAdapters[tv] = tv.TextView; return tv; }
private ICharacterMarkerSymbol GetMarkerSymbol(bool bLocated) { //Create a new system draw font System.Drawing.Font drawFont = new System.Drawing.Font("ESRI Crime Analysis", 21); //Create a new CharacterMarkerSymbol and get the ICharacterMarkerSymbol interface ICharacterMarkerSymbol charMarker = new CharacterMarkerSymbolClass(); //Set the marker symbol properties charMarker.Font = (stdole.IFontDisp)OLE.GetIFontDispFromFont(drawFont); if (bLocated == true) { charMarker.CharacterIndex = 56; charMarker.Color = GetRGBColor(255, 0, 0); charMarker.Size = 30; } else { charMarker.CharacterIndex = 46; charMarker.Color = GetRGBColor(0, 0, 0); charMarker.Size = 30; } return(charMarker); }
public IVsTextBuffer CreateVsTextBufferAdapter(OLE.Interop.IServiceProvider serviceProvider, IContentType contentType) { VsTextBufferMock tb = new VsTextBufferMock(contentType); _textBufferAdapters[tb.TextBuffer] = tb; _vsTextBufferAdapters[tb] = tb.TextBuffer; return tb; }
private void SetLineDoc(ref OLE DOC, Проводка provodka, int WriteCount) { DOC.Method("НоваяСтрока"); Trace.WriteLine(WriteCount + " Проводка - Д(" + provodka.Debit.Account.Property("Код").ToString() + ") K(" + provodka.Credit.Account.Property("Код").ToString() + ") SUMM(" + (double)provodka.Summ + ")"); DOC.Property("ВидДеятельности", provodka.Debit.Subconto[0]); DOC.Property("Подразделение", provodka.Debit.Subconto[1]); if (provodka.Debit.Zatrat != null) { DOC.Property("ВидЗатрат", provodka.Debit.Zatrat); } else { DOC.Property("ВидЗатрат", provodka.Credit.Zatrat); } DOC.Property("Счет", provodka.Credit.Account); int i; for (i = 0; i < provodka.Credit.Subconto.Length; i++) { if (provodka.Credit.Subconto[i] != null) { DOC.Method("НазначитьТип", "Субконто" + (i + 1), provodka.Credit.Account.Method("ВидСубконто", i + 1)); DOC.Property("Субконто" + (i + 1), provodka.Credit.Subconto[i]); } } DOC.Property("Сумма", (double)provodka.Summ); DOC.Property("Примечание", provodka.Comment); //Operation.Property("НашаФирма", CommonVariables.FirmB /* CommonVariables.BFirm.CurrentItem */); }
private OLE DefaultSubconto(int SubcontoNumber, string SubcontoName) { OLE Result; if (SubcontoName == "договора") { Result = V7B.CreateObject("Документ.Договор"); if (Result.Method("НайтиПоНомеру", TemplateEntry.Property("Субконто" + Marker + (SubcontoNumber + 1)).Property("Code").ToString()).ToBool()) { return(Result.Method("CurrentItem")); } } else { Result = V7B.CreateObject("Справочник." + SubcontoName); int search = 0; if (V7B.EvalExpr("Метаданные.Справочник(\"" + SubcontoName + "\").СерииКодов").ToString().Trim().ToUpper() == ("ВПределахПодчинения").ToUpper()) { search = 2; } if (Result.Method("FindByCode", TemplateEntry.Property("Субконто" + Marker + (SubcontoNumber + 1)).Property("КАУ").ToString().Trim(), search).ToBool()) { if (SubcontoName.ToUpper() == "ВидыЗатрат".ToUpper()) { Zatrat = Result.Method("CurrentItem"); } return(Result.Method("CurrentItem")); } } return(null); }
// OLE Проводка - элемент справочника ЭП_Проводки, на основании которого формируется проводка // decimal Сумма - сумма проводки // string СотрудникКод - код сотрудника, по которому формирует проводка // string ПодразделениеКод - код подразделения по которому формируется проводка // DateTime Period - Период формируемой проводки // bool ЭтоНачисленияНаОтпуск - Прзнак начисления на отпуск public Проводка(OLE ШаблонПроводки, decimal Сумма, string СотрудникКод, string ПодразделениеКод, DateTime Period, bool ЭтоНачисленияНаОтпуск) { if (OLE.IsEmtyValue(ШаблонПроводки.Property("СчетДебета")) && OLE.IsEmtyValue(ШаблонПроводки.Property("СчетКредита"))) { Error = "В проводке " + ШаблонПроводки.Property("Код") + " хоз. операции " + ШаблонПроводки.Property("Владелец").Property("Description") + " не заданы счета! Проводка не формируется!"; return; } Сумма = decimal.Round(Сумма, 2); if (Сумма == 0) { Error = "По проводке №" + ШаблонПроводки.Property("Код") + " хоз. операции " + ШаблонПроводки.Property("Владелец").Property("Description") + " сумма 0! Проводка не формируется!"; return; } if (ШаблонПроводки.Property("УказанПроцент").ToBool()) { Summ = decimal.Round(Сумма * ШаблонПроводки.Property("Процент").ToDecimal() / 100, 2); } else { Summ = Сумма; } Debit = new Debit(ШаблонПроводки, СотрудникКод, ПодразделениеКод, Period, ЭтоНачисленияНаОтпуск); Credit = new Credit(ШаблонПроводки, СотрудникКод, ПодразделениеКод, Period, ЭтоНачисленияНаОтпуск); Comment = " "; }
private stdole.IFontDisp GetIFontDisp(float size) { const string FontFamilyName = "Arial"; const FontStyle FontStyle = FontStyle.Bold; Font font = new Font(FontFamilyName, size, FontStyle); return(OLE.GetIFontDispFromFont(font) as stdole.IFontDisp); }
public static OLE GetReferenceElementZIK(string ReferenceType, string Code) { OLE reference = V7Z.CreateObject("Справочник." + ReferenceType); if (reference.Method("FindByCode", Code).ToBool()) { return(reference.Method("CurrentItem")); } return(null); }
public decimal Procent(DateTime onDate) { OLE СпрШкала = V7Z.CreateObject("Справочник.ШкалаСтавок"); if (!СпрШкала.Method("НайтиПоКоду", СпрШкалаКод).ToBool()) { throw new Exception("Ошибка позиционирования по коду ШкалаСтавок."); } return((decimal)СпрШкала.Property("Ставка").Method("Получить", onDate)); }
public static bool СистемныйВидРасч(OLE Вир) { // Возвращает 1, если вид расчета является системным (нач. сальдо, к выплате за месяц) if ((Вир.Property("ВидРасч").Property("CODE").ToString() == "НачальноеСальдо") || (Вир.Property("ВидРасч").Property("CODE").ToString() == "КВыплатеЗаМесяц") || (Вир.Property("ВидРасч").Property("CODE").ToString() == "ВыплатаЧерезКассу") || (Вир.Property("ВидРасч").Property("CODE").ToString() == "ВыплатаЧерезБанк")) { return(true); } return(false); }
public void Add(OLE Rasch, decimal rez, List <НалогНаФОП> NalogsFOP) { PeriodFOP p = new PeriodFOP(Rasch.Method("НачалоПериодаПоДате", Rasch.Property("ДатаНачала")).ToDateTime(), Rasch.Property("Объект"), NalogsFOP); int i = Period.BinarySearch(p); if (i < 0) // New Period { Period.Add(p); Period.Sort(); i = Period.BinarySearch(p); } Period[i].Add(Rasch, rez); }
public static ITextSymbol makeTextSymbol(string fontName, int fontSize) { ITextSymbol textSymbol = new TextSymbolClass(); System.Drawing.Font drawFont = new System.Drawing.Font(fontName, fontSize, FontStyle.Bold); textSymbol.Font = (stdole.IFontDisp)OLE.GetIFontDispFromFont(drawFont); textSymbol.Color = GetRGBColor(0, 0, 0); ITextPath textPath = new BezierTextPathClass(); //to spline the text ISimpleTextSymbol simpleTextSymbol = (ISimpleTextSymbol)textSymbol; simpleTextSymbol.TextPath = textPath; return(textSymbol); }
public void Add(OLE Sotr, OLE Rasch, decimal rez) { if (Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.ОсновныеНачисления")).ToBool()) { MainRaschet(Sotr, Rasch, rez); return; } if (СистемныйВидРасч(Rasch)) { return; // системные виды расчета (нач.сальдо, к выплате за месяц) не эспортируем } AtherRaschet(Sotr, Rasch, rez); return; }
public decimal Predel(DateTime onDate) { OLE СпрШкала = V7Z.CreateObject("Справочник.ШкалаСтавок"); if (!СпрШкала.Method("НайтиПоКоду", СпрШкалаКод).ToBool()) { throw new Exception("Ошибка позиционирования по коду ШкалаСтавок."); } string s = (string)СпрШкала.Property("Дополнительно").Method("Получить", onDate); int start = s.LastIndexOf('=') + 1; s = s.Substring(start, s.IndexOf(';', start) - start); return(decimal.Parse(s)); }
public static List <MEMReferences> CopyOLERefToMEMRef(OLE OLERef, string Index, bool ISMethodIndex, bool NoDeleted, bool NoGroup) { List <MEMReferences> MEMRef = new List <MEMReferences>(); OLERef.Method("¬ыбратьЁлементы"); while (OLERef.Method("ѕолучитьЁлемент").ToBool()) { if (NoDeleted) { if (OLERef.Method("DeleteMark").ToBool()) { continue; } } if (NoGroup) { if ((double)OLERef.Method("IsGroup") == 1.0) { continue; } } MEMReferences MR = new MEMReferences(); try { if (ISMethodIndex) { MR.INDEX = OLERef.Method(Index).ToString().Trim(); } else { MR.INDEX = OLERef.Property(Index).ToString().Trim(); } } catch { throw new Exception("ќшибка копировани¤ справочника"); } MR.CODE = OLERef.Property("Code").ToString().Trim(); MR.DESCRIPTION = OLERef.Property("Description").ToString().Trim(); MR.Reference = OLERef.Method("CurrentItem"); MR.FULLCODE = OLERef.Method("FullCode").ToString().Trim(); MEMRef.Add(MR); } return(MEMRef); }
private bool FindOperation(ref OLE Oper) { if ((double)Oper.Method("SelectOpers", CommonVariables.ДатаПериода.End, CommonVariables.ДатаПериода.End) == 0) { return(false); } while ((double)Oper.Method("GetOper") == 1.0) { string s = (string)Oper.Property("Description"); if (s.Trim() == OperationDescription) { return(true); } } return(false); }
public static OLE ПолучитьСотрудникаПУБ(string СотрудникКод) { OLE SotrZIK = GetReferenceElementZIK("Сотрудники", СотрудникКод); string TIN = SotrZIK.Property("ФизическоеЛицо").Property("ИНН").ToString().Trim(); MEMReferences MR = new MEMReferences(); MR.INDEX = TIN; int i = 0; OLE PUB = V7B.CreateObject("Справочник.Сотрудники"); do { i = MEMPUBWoker.BinarySearch(MR); if (i < 0) { // Нет сотрудника в ПУБ MR.DESCRIPTION = SotrZIK.Property("Description").ToString().Trim(); if (AutoInsertUser) { MR.Reference = SotrZIK; PUB.Method("New"); PUB.Property("ИНН", MR.INDEX); PUB.Property("Description", MR.DESCRIPTION); PUB.Method("Write"); MR.CODE = PUB.Property("Code").ToString().Trim(); MR.FULLCODE = PUB.Method("FullCode").ToString().Trim(); MEMPUBWoker.Add(MR); MEMPUBWoker.Sort(); Trace.WriteLine("Вставим сотрудника в Бухгалтерию - " + MR.CODE + " " + MR.DESCRIPTION + " ИНН - " + MR.INDEX); return(PUB.Method("CurrentItem")); } DialogResult result = MessageBox.Show("В 1С7.7 Бух отсутствует сотрудник " + MR.DESCRIPTION + " с кодом ИНН - " + MR.INDEX + ". Загрузите не монопольно 1С7.7 и введите даного пользователя, после чего нажмите ОК.", "Ошибка в справочнике Сотрудники.", MessageBoxButtons.OKCancel); if (result == DialogResult.Cancel) { return(null); } CommonVariables.MEMPUBWoker = MEMReferences.CopyOLERefToMEMRef(PUB, "ИНН"); MEMPUBWoker.Sort(); } } while (i < 0); PUB.Method("FindByCode", MEMPUBWoker[i].CODE); return(PUB.Method("CurrentItem")); }
// Ищем документ // Global - глобальный контекст конфигурации // DocName - название документа // DateStart - начальная дата // DateEnd - конечная дата // LabelDoc - метка документа // Возврат: // Найденый документ или null private OLE FindDoc(OLE Global, string DocName, DateTime DateStart, DateTime DateEnd, string LabelDoc) { OLE doc = Global.CreateObject("Документ." + DocName); if (!doc.Method("ВыбратьДокументы", DateStart, DateEnd).ToBool()) { return(null); } while (doc.Method("Получитьдокумент").ToBool()) { if (doc.Property("Операция").Property("Description").ToString().Trim() == OperationDescription) { return(doc); } } return(null); }
public void GenEntries(ref Проводки prov, OLE Sotr, List <НалогНаФОП> NalogsFOP) { foreach (FOPDivision Division in FOPDivision.Values) { foreach (PeriodFOP per in Division.Period) { for (int i = 0; i < per.Nalogs.Count; i++) { OLE спрПроводки = V7Z.CreateObject("Справочник.Проводки"); спрПроводки.Method("ИспользоватьВладельца", per.Nalogs[i].НалогНаФОП.ХозОперация); спрПроводки.Method("ВыбратьЭлементы"); System.Diagnostics.Trace.WriteLine("Налог на фонд " + per.Nalogs[i].НалогНаФОП.СпрШкалаКод + " за период " + per.PerD.ToShortDateString() + " - " + per.Nalogs[i].Налог.ToString() + " с отпуска - " + per.Nalogs[i].Налог_с_Отпуска.ToString()); while (спрПроводки.Method("ПолучитьЭлемент").ToBool()) { if (спрПроводки.Method("ПометкаУдаления").ToBool()) { continue; } // Проведём деление на отпускные if (NalogFOP.ИспользоватьРезервОтпусков) { prov.Item.Add(new Проводка(спрПроводки.Method("CurrentItem"), //Проводка per.Nalogs[i].Налог_с_Отпуска, //Сумма Code, //Сотрудник FOPDivision.Keys[FOPDivision.IndexOfValue(Division)], //Division per.PerD, //Период true)); //471 счёт } prov.Item.Add(new Проводка(спрПроводки.Method("CurrentItem"), //Проводка per.Nalogs[i].Налог, //Сумма Code, //Сотрудник FOPDivision.Keys[FOPDivision.IndexOfValue(Division)], /*Division*/ per.PerD)); //Период } } } } }
/// <summary> /// Updates the bitmap image with the image from the <paramref name="bitmap" />. /// </summary> /// <param name="bitmap">The bitmap.</param> protected void UpdateBitmap(Bitmap bitmap) { try { this.Bitmap = OLE.GetIPictureDispFromBitmap(bitmap) as IPictureDisp; } catch (Exception e) { if (MinerRuntimeEnvironment.IsUserInterfaceSupported) { Log.Error("Error Updating Bitmap " + this.Name, e); } else { Log.Error(e); } } }
public Debit(OLE Проводка, string СотрудникКод, string ПодразделениеКод, DateTime Period, bool ЭтоНачисленияНаОтпуск) { this.TemplateEntry = Проводка; string tAccount = Проводка.Property("Счет" + Marker + "а").Property("Code").ToString().Trim(); if (tAccount == "") { throw new Exception(""); } if (tAccount == "ВТ") {// Спецподстановка tAccount = СчётЗатрат(ПодразделениеКод); if (tAccount == "") { tAccount = "91"; //throw new Exception(""); } } this.Account = CommonVariables.BConnection.Global.EvalExpr("СчетПоКоду(\"" + tAccount + "\")"); tAccount = this.Account.Property("Code").ToString().Trim(); if (tAccount == "") { tAccount = "91"; this.Account = CommonVariables.BConnection.Global.EvalExpr("СчетПоКоду(\"" + tAccount + "\")"); //throw new Exception(""); } // если начисление на отпуск то if (ЭтоНачисленияНаОтпуск && (Marker == "Дебет") && ЭтоСчетЗатрат(tAccount)) { this.Account = CommonVariables.BConnection.Global.EvalExpr("СчетПоКоду(\"" + "471" + "\")"); Subconto = new OLE[this.Account.Method("КоличествоСубконто").ToInt()]; Subconto[0] = ВидДеятельности(ПодразделениеКод); Subconto[1] = GetReferenceElementPUB("подразделения", ПодразделениеКод); Subconto[2] = GetReferenceElementPUB("видызатрат", "0014"); //Отпускные return; } Subconto = new OLE[this.Account.Method("КоличествоСубконто").ToInt()]; for (int i = 0; i < Subconto.Length; i++) { Subconto[i] = Analiz(this.Account.Method("ВидСубконто", i + 1).Method("Идентификатор").ToString().Trim().ToLower(), i, СотрудникКод, ПодразделениеКод, Period); } }
private bool НужноРаспределятьПоЗаказам(OLE Пров) { // Назначение: // По проводке определяет, нужно ли распределять сумму между заказами // Аргументы: // Пров - проводка, элемент справочника // Возвращает: // true - нужно, false - нет string стрДебетКредит = "Дебет"; for (int Инд = 1; Инд < 2; Инд++) { for (int ИндСубк = 1; ИндСубк < Проводка.МаксКоличествоСубконто; ИндСубк++) { // дебет if ((double)Пров.Method("ПолучитьАтрибут", "АвтоСубконто" + стрДебетКредит + ИндСубк) == 1.0) { OLE Счет = Пров.Method("ПолучитьАтрибут", "Счет" + стрДебетКредит + "а"); if (!OLE.IsEmtyValue(Счет)) { // автоматически могут определяться также сотрудники и подразделения OLE ВидСубк = Счет.Method("ПолучитьАтрибут", "ВидСубконто" + ИндСубк); if (OLE.IsEmtyValue(ВидСубк)) { continue; } string ИдентВидСубк = ВидСубк.Property("Идентиф").ToString().Trim().ToLower(); if ((double)V7Z.Property("глСпецВидыСубконто").Method("НайтиЗначение", ИдентВидСубк) == 0) { return(true); } } else { return(true); } } } стрДебетКредит = "Кредит"; } return(false); }
private OLE GenDoc231() { OLE doc = FindDoc(V7B, "ЗатратыПроизводственногоХарактера", CommonVariables.ДатаПериода.End, CommonVariables.ДатаПериода.End, OperationDescription); if (doc != null) { if (doc.Method("Проведен").ToBool()) { doc.Method("СделатьНеПроведенным"); } doc.Method("УдалитьСтроки"); } else { doc = V7B.CreateObject("Документ.ЗатратыПроизводственногоХарактера"); doc.Method("New"); V7B.Method("глУстановитьФирму", doc); doc.Property("ПроводитьПоЭлементамЗатрат", V7B.EvalExpr("?(ИспользоватьСчетаРасходов <> Класс9,1,0)")); doc.Property("ДатаДок", CommonVariables.ДатаПериода.End); doc.Property("Операция").Property("Description", OperationDescription); } doc.Property("Примечание", "Генерація проводок " + DateTime.Now); // Проверим на пригодность к записи bool entr_ok = true; do { try { doc.Method("Записать"); entr_ok = true; } catch { entr_ok = false; doc.Property("НомерДок", int.Parse(doc.Property("НомерДок").ToString()) + 1); } } while (!entr_ok); return(doc); }
private void axMapControl1_OnAfterDraw(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnAfterDrawEvent e) { //If foreground refreshed if (e.viewDrawPhase == (int)esriViewDrawPhase.esriViewForeground) { //If a line object for splining text exists if (m_Polyline != null) { //Ensure there's at least two points in the line if (m_PointCollection.PointCount > 1) { //Create a line symbol and grab hold of the ILineSymbol interface ILineSymbol lineSymbol = new SimpleLineSymbolClass(); //Set line symbol properties lineSymbol.Color = GetRGBColor(0, 0, 0); lineSymbol.Width = 2; //Create a text symbol and grab hold of the ITextSymbol interface ITextSymbol textSymbol = new TextSymbolClass(); //Create a system drawing font symbol with the specified properties System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 16, FontStyle.Bold); //Set the text symbol font by getting the IFontDisp interface textSymbol.Font = (stdole.IFontDisp)OLE.GetIFontDispFromFont(drawFont); textSymbol.Color = GetRGBColor(0, 0, 0); //Create a text path and grab hold of the ITextPath interface ITextPath textPath = new BezierTextPathClass(); //to spline the text //Grab hold of the ISimpleTextSymbol interface through the ITextSymbol interface ISimpleTextSymbol simpleTextSymbol = (ISimpleTextSymbol)textSymbol; //Set the text path of the simple text symbol simpleTextSymbol.TextPath = textPath; //Draw the line object and spline the user text around the line object oLineSymbol = lineSymbol; object oTextSymbol = textSymbol; axMapControl1.DrawShape(m_Polyline, ref oLineSymbol); axMapControl1.DrawText(m_Polyline, Text1.Text, ref oTextSymbol); } } } }
/// <summary> /// The ID2D1Factory interface provides the starting point for Direct2D. /// In general, an object created from a single instance of a factory object can be used with other resources created from that instance, /// but not with resources created by other factory instances. /// </summary> /// <returns></returns> public static bool CreateD2DFactory(ID2D1Factory factory) { factory = null; object ppIFactory = null; int rc = Win32Error.S_OK; IntPtr ptrIID = IntPtr.Zero; GUID iid; if ((rc = OLE.IIDFromString(D2DInterfaceID.ID2D1Factory, out iid)) != Win32Error.S_OK) { logger.ErrorFormat("获取ID2D1Factory IID失败, guid = {0}, code = {1}", D2DInterfaceID.ID2D1Factory, rc); return(false); } try { ptrIID = Marshal.AllocHGlobal(Marshal.SizeOf(iid)); Marshal.StructureToPtr(iid, ptrIID, true); if ((rc = D2D1.D2D1CreateFactory(D2D1_FACTORY_TYPE.D2D1_FACTORY_TYPE_SINGLE_THREADED, ptrIID, IntPtr.Zero, out ppIFactory)) != Win32Error.S_OK) { logger.ErrorFormat("D2D1CreateFactory失败, code = {0}", rc); return(false); } } catch (Exception ex) { logger.Error("创建D2DFactory异常", ex); return(false); } finally { if (ptrIID != IntPtr.Zero) { Marshal.FreeHGlobal(ptrIID); } } factory = ppIFactory as ID2D1Factory; return(true); }
private void New(OLE Сотрудник, OLE Назначение, OLE Проводка, OLE Rasch, decimal Сумма, OLE Comu) { // Процедура предназначена для добавления проводки к списку проводок // Сотрудник, Назначение - используются для выдачи сообщений и проводок // Проводка - уже найденная проводка // Сумма - сумма для распределения между заказами // Распределение - документ "Распределение основных начислений", согласно которому выполняется распределение string СотрудникКод = Сотрудник.Property("Code").ToString().Trim(); string ПодразделениеКод = Rasch.Property("Объект").Property("Подразделение").Property("Code").ToString().Trim(); // Вводим поддержку подразделений из назначения if (!OLE.IsEmtyValue(Rasch.Property("Назначение"))) { ПодразделениеКод = Rasch.Property("Назначение").Property("МестоРаботы").Property("Владелец").Property("Code").ToString().Trim(); } DateTime period = Rasch.Property("ДатаНачала").ToDateTime(); Item.Add(new Проводка(Проводка, Сумма, СотрудникКод, ПодразделениеКод, period)); }
/// <summary> /// Updates the bitmap image with the image from the <paramref name="stream" />. /// </summary> /// <param name="stream">Stream of bitmap to load.</param> protected void UpdateBitmap(Stream stream) { try { Bitmap bitmap = new Bitmap(stream); bitmap.MakeTransparent(bitmap.GetPixel(0, 0)); this.Bitmap = OLE.GetIPictureDispFromBitmap(bitmap) as IPictureDisp; } catch (Exception e) { if (MinerRuntimeEnvironment.IsUserInterfaceSupported) { Log.Error("Error Updating Bitmap " + this.Name, e); } else { Log.Error(e); } } }
private OLE CreateOperation() { OLE Operation = V7B.CreateObject("Operation"); if (FindOperation(ref Operation)) { while (Operation.Method("SelectEntries").ToBool()) { Operation.Method("DeleteEntry"); } } else { Operation.Method("New"); Operation.Property("OperDate", CommonVariables.ДатаПериода.End); Operation.Property("Description", OperationDescription); } Operation.Property("Документ").Property("Фирма", CommonVariables.GetFirm(Operation) /*CommonVariables.BFirm.CurrentItem*/); Operation.Property("Документ").Property("Примечание", "Генерація проводок " + DateTime.Now); // Проверим на пригодность к записи bool entr_ok = true; do { try { Operation.Method("Записать"); entr_ok = true; } catch { entr_ok = false; Operation.Property("Документ").Property("НомерДок", int.Parse(Operation.Property("Документ").Property("НомерДок").ToString()) + 1); } } while (!entr_ok); return(Operation); }
private void НайтиРаспределение(OLE ПоЧемИщем, ref OLE аспределение, ref OLE ХозОперация) { // процедура предназначена для поиска документа-распределения и хозоперации в списке // ПоЧемИщем - назначение, сотрудник, подразделение или категория, по которой ищем в списке // Распределение - найденный документ "Распределение основных начислений" // ХозОперация - найденная хозоперация if (!OLE.IsEmtyValue(аспределение)) { return; // распределение уже выбрано } // собственно поиск аспределение r = new аспределение(); r.DocNumber = ПоЧемИщем.Global.Method("ЗначениеВСтрокуВнутр", ПоЧемИщем).ToString(); r.Doc = ПоЧемИщем; int Инд = аспределения.Items.BinarySearch(r); if (Инд >= 0) { // получилось найти документ-распределение в списке аспределение = аспределения.Items[Инд].Doc; } else { if (OLE.IsEmtyValue(ХозОперация)) { // найдем хозоперацию // возможно для элемента справочника ПоЧемИщем хозоперация задана явно try { ХозОперация = ПоЧемИщем.Property("ХозОперация"); } catch { } } } }
public string СпрШкалаКод; // код налога в справочнике шкалы ставок /// <summary> /// Проверить использутся ли данный вид расчета в даном налоге /// </summary> /// <param name="Rasch">Пороверяемый расчет </param> public bool ВходитВНалог(OLE Rasch) { switch (СпрШкалаКод) { case "ФЗППенс": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаПенсионныйФЗП2004")).ToBool()); case "ФЗППенсЛет": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаПенсионныйФЗП2004")).ToBool()); case "ФЗППенсИнв": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаПенсионныйФЗП2004")).ToBool()); case "ФЗПСоцСтрах": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаСоцСтрахФЗП2004")).ToBool()); case "ФЗПСоцСтрахИнв": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаСоцСтрахФЗП2004")).ToBool()); case "ФЗПБезраб": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаБезработицаФЗП2004")).ToBool()); case "ФЗПБезрабИнв": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаБезработицаФЗП2004")).ToBool()); case "ФЗПСоцСтрахНесч": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаСоцСтрахНесчФЗП2004")).ToBool()); case "ФЗПРезервОтп": return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.ВключатьВСреднююДляОтпуска")).ToBool()); case "ФЗПБезрабГПХ": return(Rasch.Property("ВидРасч").Property("CODE").ToString().Trim() == "ОплатаПоДоговору"); } return(false); }
/// <summary> /// Получить зарегистрированный элемент справочника "фирмы" /// </summary> /// <param name="handle">Ссылка на активную 1С7.7 </param> public static OLE GetFirm(OLE handle) { if (handle == null) { return(null); } OLE temp = handle.Global.CreateObject("Справочник.Фирмы"); temp.Method("ВыбратьЭлементы"); while (temp.Method("ПолучитьЭлемент").ToBool()) { if (temp.Method("DeleteMark").ToBool()) { continue; } if (temp.Property("ЕДРПОУ").ToString().Trim() == conf.CommonAllConfig.ЕДРПОУ) { return(temp.Method("CurrentItem")); } } System.Diagnostics.Trace.WriteLine("Программа не зарегистрирована для даной базы: " + handle.EvalExpr("SystemCaption()").ToString()); temp.Dispose(); return(null); }
public IVsTextView CreateVsTextViewAdapter(OLE.Interop.IServiceProvider serviceProvider, ITextViewRoleSet roles) { return CreateVsTextViewAdapter(serviceProvider); }
public IVsCodeWindow CreateVsCodeWindowAdapter(OLE.Interop.IServiceProvider serviceProvider) { return new VsCodeWindowMock(); }
public int CreateToolWindow(uint grfCTW, uint dwToolWindowId, object punkTool, ref Guid rclsidTool, ref Guid rguidPersistenceSlot, ref Guid rguidAutoActivate, OLE.Interop.IServiceProvider psp, string pszCaption, int[] pfDefaultPosition, out IVsWindowFrame ppWindowFrame) { var mock = new VsWindowFrameMock(pszCaption); _frames[rguidPersistenceSlot] = mock; ppWindowFrame = mock; return VSConstants.S_OK; }
public int CreateDocumentWindow(uint grfCDW, string pszMkDocument, IVsUIHierarchy pUIH, uint itemid, IntPtr punkDocView, IntPtr punkDocData, ref Guid rguidEditorType, string pszPhysicalView, ref Guid rguidCmdUI, OLE.Interop.IServiceProvider psp, string pszOwnerCaption, string pszEditorCaption, int[] pfDefaultPosition, out IVsWindowFrame ppWindowFrame) { throw new NotImplementedException(); }