static void Main(string[] args)
        {
            // http://www.compilemode.com/2016/03/calling-web-service-using-soap-request-without-wsdl-and-endpoints.html
            // https://victorz.ru/20180805729
            OperationHistory12  operation     = new OperationHistory12();
            AuthorizationHeader authorization = new AuthorizationHeader
            {
                mustUnderstand = "1",
                login          = "******",
                password       = "******"
            };
            OperationHistoryRequest request = new OperationHistoryRequest
            {
                MessageType = 0,
                Barcode     = "22221312123123"
            };
            var res = operation.getOperationHistory(
                request
                , authorization
                );


            Console.Write(res.ToString());
            Console.ReadKey();
        }
        public override bool ProcessRow(DataRow row)
        {
            string barcode = GetStringFieldValue(row, "Barcode");

            using (var ws = new OperationHistory12())
            {
                OperationHistoryRequest request = new OperationHistoryRequest();
                request.Barcode     = barcode;
                request.Language    = "RUS";
                request.MessageType = 0;

                AuthorizationHeader ah = new AuthorizationHeader();
                ah.login          = "******";
                ah.password       = "******";
                ah.mustUnderstand = true;

                var Values = ws.getOperationHistory(request, ah);


                OperationHistoryRecord latestOperation = null;
                bool IsReturned = false;
                foreach (var Value in Values)
                {
                    if (Value.OperationParameters.OperType.Name == "Возврат")
                    {
                        IsReturned = true;
                    }
                    if (latestOperation == null || latestOperation.OperationParameters.OperDate < Value.OperationParameters.OperDate)
                    {
                        latestOperation = Value;
                    }
                }

                if (latestOperation != null)
                {
                    string lastStatus = string.Empty;
                    if (IsReturned)
                    {
                        lastStatus = "Возврат!!!";
                    }

                    lastStatus += latestOperation.OperationParameters.OperType.Name + ":" + latestOperation.OperationParameters.OperAttr.Name;
                    DateTime latestDate = latestOperation.OperationParameters.OperDate;
                    SetStringFieldValue(row, "Status", lastStatus);
                    if (Fieldsmap.ContainsKey("Date"))
                    {
                        SetStringFieldValue(row, "Date", latestDate.ToString("yyyy.MM.dd H:mm:ss"));
                    }
                }
            }
            return(true);
        }