3.3.5. Импорт и экспорт контейнеров
 
Импорт или экспорт контейнеров Такском необходим в следующих случаях:
Для получения всех служебных сообщений при архивации документооборота (см. п. 3.3.4.5. Метод GetDocflowRawData).
Для подготовки к отправке ZIP-файла с одним или несколькими документами (см. п. 3.3.4.3. Метод Send).
Для согласования или иной обработки черновика документа в виде контейнера Такском.
Для проверки контейнера Такском.
Метод импорта для согласования или иной обработки черновика документа в виде контейнера Такском:
void CreateDraft(TaxcomContainer container);
 
container
контейнер Такском для отправки
 
Такском-Доклайнз .NET SDK имеет два метода экземпляра класса TaxcomContainer для импорта и экспорта контейнера Такском.
Метод ImportFromZip заполняет контейнер Такском данными из ZIP-файла.
void ImportFromZip(byte[] fileContent);
 
fileContent
ZIP-файл с контейнером Такском
 
Метод ExportToZip извлекает контейнер Такском из ZIP-файла:
byte[] ExportToZip();
 
 
Пример кода C# для извлечения текста уведомления об уточнении из контейнера Такском
// Define the docflow ID
string docflowId = "5E1701AD-F413-438C-BFC8-FBCA50F67BF6";
// Download the TTC
byte[] docflowBytes = Api.GetDocflowRawData(docflowId);
// Initialize the TTC instance
var container = new TaxcomContainer();
container.ImportFromZip(docflowBytes);
// Get the list of service messages
var serviceDocuments = container.GetServiceDocuments();
if(serviceDocuments.Any())
{
   // Get the notification on correction request
   var doc = serviceDocuments.FirstOrDefault(d => d.DocType == DocumentType.CorrectionNotice);
   if (doc != null)
   {
       // Get the text of the notification
       string comment = (doc as CorrectionNoticeDocument).Comment;
   }
}
 
Пример кода C# для извлечения кода ошибки из контейнера Такском
// Define the docflow ID
string docflowId = "5E1701AD-F413-438C-BFC8-FBCA50F67BF6";
// Download the TTC
byte[] docflowBytes = Api.GetDocflowRawData(docflowId);
// Initialize the TTC instance
var container = new TaxcomContainer();
container.ImportFromZip(docflowBytes);
// Get the list of service messages
var serviceDocuments = container.GetServiceDocuments();
if(serviceDocuments.Any())
{
   // Get the particular service message
   var doc = serviceDocuments.FirstOrDefault(d => d.DocType == DocumentType.ErrorMessage);
   if (doc != null)
   {
       // Get the error code
       string errorCode = (doc as ErrorMessage).Code;
       // Get the error text
       string errorDescription = (doc as ErrorMessage).Description;
   }
}