public Notification ChangeResponse(ResponseSupplement response)
		{
			OnBeforeValidationRequest(response);
			var ackResult = response.Check();
			var notification = CreateNotification(response, ackResult);
			return ReturnNotification(response.Header, notification);
		}
		public void TestCreate()
		{
			var doc = new ResponseSupplement();
			Assert.IsNull(doc.Header);
			Assert.IsNull(doc.Document);
			Assert.IsNull(doc.AddDocuments);
			Assert.IsNull(doc.Expansion);
			Assert.IsNull(doc.DocTransfer);
		}
		public void TestMissingAreas_Format3()
		{
			var type = new ResponseSupplement();

			var ackResult = type.Check();
			Assert.IsNotNull(ackResult);
			Assert.That(ackResult.Count, Is.GreaterThanOrEqualTo(1));
			var ex = ErrorReceiptCode.MissingAreas_Format;
			var arg0 = "AddDocuments";
			var obj = ackResult.FirstOrDefault(p => ((p.errorcode == ex.errorcode) && (p.Value.Contains(arg0))));
			EqualTo(obj, ex, arg0);
		}
		public void TestAreas_Format2()
		{
			var type = new ResponseSupplement();
			type.Document = new DocumentType();

			var ackResult = type.Check();
			Assert.IsNotNull(ackResult);
			Assert.That(ackResult.Count, Is.GreaterThanOrEqualTo(1));
			var ex = ErrorReceiptCode.MissingAreas_Format;
			var arg0 = "Document";
			var obj = ackResult.FirstOrDefault(p => ((p.errorcode == ex.errorcode) && (p.Value.Contains("<" +arg0 + ">"))));
			Assert.IsNull(obj);
		}
		private List<AckResult> LoadFromDb(ResponseSupplement data, out List<MainSupplement> source)
		{
			source = new List<MainSupplement>();
			return new List<AckResult>();
		}
		private List<AckResult> SaveToDb(ResponseSupplement data)
		{
			return new List<AckResult>();
		}
		private Notification CreateNotification(ResponseSupplement response, List<AckResult> ackResult)
		{
			// TODO: Добавьте код выполняемый после проверки полей полученного запроса

			// TODO: Возможно, потребуется сохранить запрос в базу данных
			if ( ackResult.Count == 0 )
			{
				ackResult.AddRange(SaveToDb(response));
			}

			Main main = null;
			var result = LoadFromDb(response, out main);
			if ( result.Count == 0 )
			{
				// TODO: Обрабатываем документ main
			}
			ackResult.AddRange(result);

			List<MainSupplement> supplements = null;
			result = LoadFromDb(response, out supplements);
			if ( result.Count == 0 )
			{
				// TODO: Обрабатываем документы supplements
			}
			ackResult.AddRange(result);

			var notification = Notification.Init();

			// TODO: Необходимо сформировать ответ

			// Добавляем сообщения об ошибках (при необходимости часть можно поправить)
			notification.Acknowledgement.AckResult = ackResult;


			return notification;
		}
		partial void OnBeforeValidationRequest(ResponseSupplement request)
		{
			// TODO: Этот метод может быть удален
			// TODO: Добавьте код выполняемый перед проверкой полей полученного запроса
		}
		partial void OnBeforeValidationRequest(ResponseSupplement response);