Экспорт документов в 1С

 

Логика формирования таблицы в DBF/CSV-файл такая.

1.Сначала берётся документ, добавляется запись в таблицу, заполняются поля:

  DOC_NUM     -- Номер документа (bills.bill_number)
  DOC_DATE    -- Дата документа. Зависит от глобального параметра use_bill_date_in_doc_date_1C
              --  (plAdmin -> Справочники\Глобальные параметры -> Экспорт в 1С\"Использовать дату выставления счета как дату документа"):
              --  -если флаг сброшен (по умолчанию) - дата соответствует концу отчётного периода (bills.end_date)
              --  -если флаг установлен             - дата соответствует дате выставления счёта (bills.bill_date)
  DOC_TYPE    -- Код экспорта из справочника "Типы документов" (doc_types.export_code)
  NAME        -- Краткое название клиента (clients.code)
  CODE        -- Код экспорта клиента (clients.export_code)
  CONTR_NUM   -- Название (номер) договора (client_contracts.name)
  CONTR_DATE  -- Дата заключения договора (client_contracts.begin_dt)

 

Если в экспортируемом документе указан оператор, то номер и дата договора берутся из доп. параметров договора:

  CURRENCY    -- Код валюты статьи счёта (currencies.export_code, если не указано, то просто bill_entries.currency или bills.currency)
  REMARK      -- Примечение (bills.remark)
  BASE        -- ? (не заполняется - осталось от прошлого)
  TOTAL_SUM   -- Сумма (bills.total_sum)
  NDS_SUM     -- Сумма НДС (bills.nds_sum)
  REFDOCNUM   -- Номер родительского документа (bills.parent_doc_num)
  BILL_DATE   -- дата выставления счёта (bills.bill_date)
  BEGIN_DATE  -- дата первого дня расчётного периода (bills.begin_date)
  END_DATE    -- дата последнего дня расчётного периода (bills.end_date)

 

2.Затем перебираются статьи документов, для каждой статьи создаётся по одной записи в этой же таблице, заполняются поля:

  NO          -- Порядковый номер статьи документа (начиная с 1)
  DOC_NUM     -- Номер документа (bills.bill_number)
  NAME        -- Наименование статьи (bill_entries.name)
  CODE        -- Код экспорта статьи (bill_entry_types.export_code)
  TOTAL_SUM   -- Сумма (bill_entries.total_sum_c)
  NDS_SUM     -- Сумма НДС (bill_entries.nds_sum_c)
  VALUE_SUM   -- Количество услуг (bill_entries.value_sum)
  VALUE_NAME  -- Единица измерения (bill_entries.value_name) 

 

Эту логику можно переопределить:

1.Если указан глобальный параметр c1_use_custom_view, то будет использоваться указанная view для экспорта в 1С (иначе - старая логика, описанная выше).

2.View должна соединяться с bills_tmp - bills_tmp заполняется bill_id, выделенными в приложении plBill.

3.Для view есть предопределённые поля:

EXP_DATE   -- текущая дата (с локального компьютера)
EXP_BEG_DT -- дата "период с", подставляется из фильтра из главного окна
EXP_END_DT -- дата "период по", подставляется из фильтра из главного окна

Если эти поля есть во view, то их значения затираются приложением локально.

4.Сохранять можно в dbf и csv, имя файла по-умолчанию предлагается по формату: bills_to_1c_<EXP_BEG_DT>_<EXP_END_DT>.dbf, однако это можно переопределить глобальным параметром c1_file_name_fmt.