... {toc} h1. Требования * 1С Предприятие 8.x * Конфигурация "Бухгалтерия предприятия, редакция 2.0" или "Бухгалтерия предприятия, редакция 3.0" Для работы обработки в 1С Предприятие 8.3 необходимо запускать "Толстый клиент (обычный режим)" h1. Общая информация В составе АСР имеется модуль для синхронизации платежей и актов по контрагентам. Вы можете загрузить его в разделе "*Помощь*" Вашего биллинга Интеграция 1С построена по принципу работы через [API|http://docs.carbonsoft.ru/display/CarbonBilling/API+REST+v2.0] !1c_help.png|border=1,width=700! {info} Логи api запросов от 1с обработчика можно посмотреть в */app/asr_billing/var/log/admin_web_server.log | grep api_1c* {info} h2. Настройка интеграции биллинга с 1С {tip}{*}Время выполнения инструкции*: 10-15 минут, при необходимости исключить часть операций из теста на пятом шаге, время теста может увеличиться {tip} h3. *1. Настроить доступ к API биллинга* Откройте страницу *Настройки* \-> *Настройки в файле* \-> *network*, укажите IP-адреса компьютеров, с которых планируется выполнять синхронизацию 1С в поле "*Список IP для которых разрешено подключаться к системному API*" {info}Если биллинг и компьютеры с 1С находятся в разных подсетях, вероятно клиентские запросы будут проходить NAT-трансляцию - в таком случае укажите конечный IP-адрес с которого будут приходит обращения к биллингу{info} Вводить адреса нужно через пробел. В этом же меню Вы можете узнать и задать пароль доступа к API, он потребуется Вам в дальнейшем в интерфейсе обработки 1С. !Unnamed image (2).png|border=1,width=600! После добавления адресов, нажмите кнопку "*Сохранить*" и выполните следующую команду в консоли: {code}chroot /app/asr_billing/ /etc/init.d/admin_web_server restart {code} h3. *2. Настроить в биллинге доступ с сервера 1С* Указывается в веб-интерфейсе биллинга в строке через пробел: Платежные системы \-> Настройки сети \-> АДРЕСА СЕРВЕРОВ ПЛАТЕЖНЫХ СИСТЕМ Указывать можно в формате, совместимом с iptables (конкретный ip-адрес, ip-адрес подсети с указанием маски в формате CIDR, доменное имя) После этого нажать кнопку "Сохранить и применить" С этих адресов в firewall будет разрешен обмен пакетами по портам 1443 и 1444. h3. *3. Скачать модуль на ПК с 1С.* *Для 1С 8 версии* Заходите в администраторскую панель *Помощь* \-> *Cписок онлайн документации* {color:#ff0000}Версия обработки должна быть не ниже 2.6{color} h3. *4. Обязательно сделать копию БД 1С и сначала проверять на ней\!* h3. *5. Пометить в БД какие старые операции не нужно синхронизировать* В примере отмечены все операции, однозначно не синхронизированные ранее (sync1c<>1), включая только приходы и акты (op_type<=2), созданные до 1 мая 2019 года (op_date<'01.05.2019'). При необходимости Вы можете изменить параметры фильтра. {code} sqlexec "set list; select op_id from finance_operations where sync1c<>1 and op_type<=2 and op_date<'01.05.2019'" | awk '$2{print $2}' | while read opid; do curl "http://169.254.80.82:8082/rest_api/v2/FinanceOperations/" -d 'method1=objects.get&arg1={"pk":'$opid'}&method2=set&arg2={"sync1c":1,"code1c":"old"}&method3=save'; done {code} h3. *6. Отладка* Сделать тестовую группу, завести тестовых абонентов. Провести тестовые испытания синхронизации в обе стороны по тестовым абонентам убедиться что все работает как вам нужно. Очистите предыдущие тестовые синхронизации, если нужно: {code} sqlexec "update abonents set SYNC1C=0, CODE1C=''" sqlexec "update FINANCE_OPERATIONS set SYNC1C=0, CODE1C=''" {code} h3. *7. Тестирование* Пробовать работать с модулем синхронизации на реальной БД 1С, предварительно сделав резервные копии БД 1С и БД Carbon Billing 5. *В нашем обработчике синхронизация абонентов в биллинге с контрагентами в 1с происходит по полю ИНН в 1с и реквизиту ИНН в биллинге.* При успешной синхронизации абонента будет заполнено поле "Код в 1С". Дальнейшие синхронизации финансовых операций будут производиться по этому коду. !1c_01.png|border=1! {info}Если что-то не получается, обратитесь в техническую поддержку. Сотрудники тех. поддержки подскажут в чем проблема. Стоит учитывать, что при этом может потребоваться подключение стороннего или своего 1С разработчика, в случае если конфигурация 1С отличается от стандартной, указанной в требованиях выше{info} h2. Работа с модулем || Бухгалтерия 3.0 || Бухгалтерия 2.0 || | !screen_1c_83_edited_v2.png|border=0,width=700! | !Selection_059.png|border=0! {note}При открытии модуля нужно использовать толстый клиент. Посмотреть какой клиент используется можно в *"Справка" \-> "О программе"*{note} | {info}Столбец "Выгружать" - выгрузка данных из 1С в биллинг. Столбец "Загружать" - загрузка данных из биллинга в 1С.{info} Для открытия модуля, выберите меню *"Файл" \-> "Открыть"* и укажите путь к модулю. * "Период с:", "По:"\- даты для фильтрации ПКО при выгрузке. {color:#ff0000}Выгрузка происходит по дату НЕ включительно, т.е. для выгрузки ПКО за 1 месяц необходимо указывать период с 1 числа по 1 число.{color} * "Пароль к системному API:" - задается в биллинге * "Адрес сервера:" - адрес, по которому доступна администраторская панель с компьютера, который запускает обработку * "Организация:" - необходима для создания Абонентов в 1С * "id группы" - это id группы в биллинге, для всех абонентов которой проводится синхронизация платежей. * "id группы:" - получается из биллинга путем открытия группы в администраторской панели(последняя цифра) !Selection_060.png|border=0! * "Загружать контрагентов" - загружает ранее не синхронизированных абонентов (пометка в биллинге) * "Загружать ПКО" - загружает Операции с типом "Приход", только по выгруженным в 1С контрагентам. Механизм загрузки следующий: Обработчик запрашивает с биллинга все операции с типом "Приход" без выставленного флага "sync1c" и загружает их в 1с, после чего выставляет у операции в биллинге флаг sync1c и добавляет code1c данной операции. Код состоит из года и номера операции * "Загружать акты" - загружает Операции с типом "Акт" только по выгруженным в 1С контрагентам {color:#ff0000}Загружаются с опцией "НДС включено в сумму"{color} * "Выгружать ПКО" - создает в биллинге Операции с типом "Приход" у синхронизированных абонентов.
|
h3. Как сопоставить абонента в биллинге и в 1С * Биллинг: !Интеграция 1С, абонент в биллинге, основные поля.png|border=0,width=1000! !Интеграция 1С, абонент в биллинге, учетная запись.png|border=0,width=300! !Интеграция 1С, абонент в биллинге, код в 1С.png|border=0,width=470! * 1С !Интеграция 1С, абонент в 1С, общие.png|border=0,width=450! !Интеграция 1С, абонент в 1С, адреса и телефоны.png|border=0,width=450! !Интеграция 1С, абонент в 1С, счета и договоры.png|border=0,width=450!
|
... * Биллинг: !Selection_355.png|border=1,width=800! \\ \\ * 1С !Selection_356.png|border=1,width=550! || Биллинг || 1С || | Код 1С | Год и Номер | | * *Для всех операций*: ** Номер документа (number) ** Баланс(бух) (balance_buh) * *Только для платежей (служебные поля в БД)*: ** Номер карты оплаты (op_card_id) ** Название платёжной системы (operator_name) ** Статус платежа в платёжной системе (operator_result) ** ID платежа от платёжной системы (operator_pay_id_str) | Комментарий | h2. Полезные команды # h5. Сброс синхронизации всех приходов {code} sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c='' where op_type=2" {code} # h5. Сброс синхронизации всех актов {code} sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c='' where op_type=1" {code} # h5. Сброс синхронизации конкретной операции {code} sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c='' where code1c ='<год операции>_<номер операции в 1с>'" sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c='' where code1c ='2015_ВА0000003432'" {code} # h5. Просмотреть всех синхронизированных абонентов в [конструкторе отчётов|конструктор отчетов] {code} select a.id, a.sync1c, a.code1c, a.name, v.ATTRIBUTE_VALUE as INN from abonents a left join attribute_values v on (v.ABONENT_ID=a.ID and v.attribute_id=4) {code} # h5. Сторнировать все синхронизированные операции {code} sqlexec "set list on; select op_id from finance_operations where code1c!='' and storno=0" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"op_id": '$line'}&method2=storno_op&arg2={"extra_descr": "Test_1C_Sync"}' 'http://169.254.80.82:8082/rest_api/v2/FinanceOperations/' -D - ; done {code} # h5. Добавление выписок и ПКО через API REST v2.0 Если Вы интегрированы с [CarbonBilling:АТОЛ Онлайн] и используете нестандартную обработку для 1С, добавляя платежи юр. лиц через [CarbonBilling:API REST v2.0], вероятно их не требуется фискализировать дополнительно, для этого используйте поле _prevent_submit_check=True_ при добавлении платежа, например: {code}curl -XPOST -d 'method1=objects.create&arg1={"abonent_id": 1111, "op_summa": "50.5", "op_type_id": 2, "descr": "ПКО из 1С", "prevent_submit_check": True}' 'http://169.254.80.82:8082/rest_api/v2/FinanceOperations/' -D -{code} h3. Лог синхронизации Синхронизация происходит по [системному API|Системные API]. {code:title=Лог системного API} /app/asr_billing/var/log/django/system_api.log {code}
|