Просмотр Исходного

h1. Требования

* 1С Предприятие 8.x
* Конфигурация "Бухгалтерия предприятия, редакция 2.0"

h1. Общая информация

Интеграция 1С построена по принципу работы через API [http://docs.carbonsoft.ru/display/CarbonBilling/API+REST+v2.0]

В составе АСР имеется модуль для синхронизации платежей и актов по контрагентам.

[https://github.com/carbonsoft/carbon_1c8_sync]




Пароль для доступа к api можно посмотреть в настройке биллинга (в файле)

!Unnamed image (2).png|border=1!

id группы - это id группы в биллинге, для всех абонентов которой проводится синхронизация платежей.

h2. Настройка интеграции биллинга с 1С


h4. *1. Настроить в биллинге адреса API машин*

Для этого зайти в биллинг Настройки - Настройки в файле \- IP адреса машин работающих через API
!Выделение_057.jpeg|border=1!
Вводить адреса можно через запятую.

h4. *2. Настроить в биллинге доступ с сервера 1С*

Указывается в веб-интерфейсе биллинга в строке через пробел: Платежные системы \-> Настройки сети \-> АДРЕСА СЕРВЕРОВ ПЛАТЕЖНЫХ СИСТЕМ
Указывать можно в формате, совместимом с iptables (конкретный ip-адрес, ip-адрес подсети с указанием маски в формате CIDR, доменное имя)
После этого нажать кнопку "Сохранить и применить"
С этих адресов в firewall будет разрешен обмен пакетами по портам 1443 и 1444.

h4. *3. Скопировать модуль на ПК с 1С.*


h5. {color:#333333}Для 1С 8 версии:{color}
{code}
http://локальный_ip_сервера:1444/carbonsoft1c8.epf
{code}

h4. *4. Обязательно сделать копию БД 1С и сначала проверять на ней\!*


h4. *5. Пометить в БД какие старые операции не нужно синхронизировать*

*Установите поле sync1c=1*

Через ib_expert CTRL+f11:
{code}
update FINANCE_OPERATIONS set  sync1c=1,  code1c='old'  where FINANCE_OPERATIONS.op_date<'01.01.2011'
{code}
или из консоли рута/помощника:
{code}
sqlexec "update FINANCE_OPERATIONS set  sync1c=1,  code1c='old'  where FINANCE_OPERATIONS.op_date<'01.01.2011'"
{code}

h4. 6. Отладка

Сделать тестовую группу, завести тестовых абонентов.

Провести тестовые испытания синхронизации в обе стороны по тестовым абонентам убедиться что все работает как вам нужно.

Очистите предыдущие тестовые синхронизации&nbsp;если нужно{code} sqlexec "execute procedure api_clear_all;"

sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c=NULL"

sqlexec "update users set sync1c=0, code1c=NULL"
{code}

h4. *7. Тестирование*

Пробовать работать с модулем синхронизации на реальной БД 1С, предварительно сделав резервные копии БД 1С и БД Carbon Billing 5.

h4. *8. Если что-то не получается обращайтесь в тех.поддержку.*

Сотрудники тех. поддержки подскажут в чем проблема. Стоит учитывать, что &nbsp;при этом может потребоваться подключение стороннего или своего 1С разработчика, в случае если конфигурация&nbsp;1С отличается от стандартной, указанной в требованиях выше.

h2. Работа с модулем.

*Примечание: при открытии модуля нужно использовать толстый клиент. Посмотреть какой клиент используется можно в Справка \-> О программе*

!Selection_059.png|border=1!

* "Период с:" - даты для фильтрации ПКО при выгрузке
* "Пароль к системному API:" - задается в биллинге
* "Адрес сервера:" - адрес по которому досупна администраторская панель с компьютера который запускает обработку
* "Организация:" - необходима для создания Абонентов в 1С
* "id группы:" - получается из биллинга путем открытия группы в администраторской панели(последняя цифра) &nbsp; !Selection_060.png|border=1!
* "Загружать контрагентов" - загружает ранее не синхронизированных абонентов (пометка в биллинге)
* "Загружать ПКО" - загружает Операции с типом "Приход", только по выгруженным в 1С контрагентам
* "Загружать акты" - загружает Операции с типом "Акт",&nbsp;только по выгруженным в 1С контрагентам
* "Выгружать ПКО" - создает в биллинге Операции с типом "Приход" у синхронизированных абонентов

h2. Полезные команды


h4. 1. Сброс синхронизации всех приходов
{code}
sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c=NULL where op_type=2 and code1c is not null"
{code}

h4. 2. Сброс синхронизации конкретной операции
{code}
sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c=NULL where code1c ='<год операции>_<номер операции в 1с>'"

sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c=NULL where code1c ='2015_ВА0000003432'"
{code}