|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (110)
просмотр истории страницы... |
* Конфигурация "Бухгалтерия предприятия, редакция 2.0" или "Бухгалтерия предприятия, редакция 3.0" |
Для работы обработки в 1С Предприятие 8.3 необходимо запускать "Толстый клиент (обычный режим)" |
h1. Общая информация |
Интеграция 1С построена по принципу работы через API [http://docs.carbonsoft.ru/display/CarbonBilling/API+REST+v2.0] |
В составе АСР имеется модуль для синхронизации платежей и актов по контрагентам. Вы можете загрузить его в разделе "*Помощь*" Вашего биллинга. |
|
В составе АСР имеется модуль для синхронизации платежей и актов по контрагентам. Вы можете загрузить его в разделе "Помощь" Вашего биллинга |
Интеграция 1С построена реализована на [Системном API|Системные API]. |
|
!1c_help.png|border=1! |
!1c_help0407.png|border=0,width=800! {info} Логи API запросов от 1С обработчика к биллингу можно посмотреть в файле: {code} cat /app/asr_billing/var/log/admin_web_server.log | grep api_1c {code} {info} |
|
Пароль для доступа к api можно посмотреть в настройке биллинга (в файле) |
h1. Настройка интеграции биллинга с 1С |
|
!Unnamed image (2).png|border=1! |
{tip} {*}Время выполнения инструкции*: 10-15 минут. {tip} |
|
Так же необходимо добавить IP-адрес компьютера, на котором будет запущена внешняя обработка 1С, в соответствующий список как на скриншоте. |
h3. 1. Настроить доступ к API биллинга |
|
# Откройте страницу *Настройки* \-> *Настройки в файле* \-> *network*, укажите IP-адреса компьютеров, с которых планируется выполнять синхронизацию 1С в поле "*Список IP для которых разрешено подключаться к системному API*" Вводить адреса нужно через пробел. {info} Если биллинг и компьютеры с 1С находятся в разных подсетях, вероятно клиентские запросы будут проходить NAT-трансляцию - в таком случае укажите конечный IP-адрес с которого будут приходит обращения к биллингу {info} В этом же меню Вы можете узнать и задать пароль доступа к API, он потребуется Вам в дальнейшем в интерфейсе обработки 1С. {info}Старайтесь использовать в паролях только латинский алфавит, подчеркивания и цифры. Кириллицу и спецсимволы лучше не использовать, они могут некорректно обрабатываться или передаваться. Например: * *Подходящий пароль*: {color:green}zBxnaRBrxM_27dJHW{color} * *Нерабочий пароль*: D1kfGbdE{color:red}\#%{color}A0d {info} !Unnamed image (2).png|border=1,width=600! |
# После добавления адресов, нажмите кнопку "*Сохранить*" и выполните следующую команду в консоли: |
{code}chroot /app/asr_billing/ /etc/init.d/admin_web_server restart |
{code} |
chroot /app/asr_billing/ /etc/init.d/admin_web_server restart {code} |
|
h2. Настройка интеграции биллинга с 1С |
h3. 2. Скачать обработку на ПК с 1С. |
|
Заходите в администраторскую панель *Помощь* \-> *Cписок онлайн документации* |
|
h3. *1. Настроить доступ к API биллинга* |
!1C_83_download.png|border=1! |
|
Для этого зайти в биллинг Настройки - Настройки в файле - network - Список IP адресов машин, работающих через API Вводить адреса нужно через пробел. |
h3. 3. Обязательно сделайте копию БД 1С и сначала проверяйте на ней\! |
|
h3. *2. Настроить в биллинге доступ с сервера 1С* |
Копию может сделать Ваш системный администратор. |
|
Указывается в веб-интерфейсе биллинга в строке через пробел: Платежные системы \-> Настройки сети \-> АДРЕСА СЕРВЕРОВ ПЛАТЕЖНЫХ СИСТЕМ Указывать можно в формате, совместимом с iptables (конкретный ip-адрес, ip-адрес подсети с указанием маски в формате CIDR, доменное имя) После этого нажать кнопку "Сохранить и применить" С этих адресов в firewall будет разрешен обмен пакетами по портам 1443 и 1444. |
h3. 4. Пометить в БД старые операции, которые не нужно синхронизировать |
|
h3. *3. Скачать модуль на ПК с 1С.* |
В примере отмечены все операции, однозначно не синхронизированные ранее (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} |
|
*Для 1С 8 версии* Заходите в администраторскую панель Помощь->Cписок онлайн документации {color:#ff0000}Версия обработки должна быть не ниже 2.6{color} |
h3. 5. Отладка |
|
h3. *4. Обязательно сделать копию БД 1С и сначала проверять на ней\!* |
Сделать тестовую группу, завести тестовых абонентов. |
|
Провести тестовые испытания синхронизации в обе стороны по тестовым абонентам убедиться, что все работает как вам нужно. |
|
h3. *5. Пометить в БД какие старые операции не нужно синхронизировать* |
Очистите предыдущие тестовые синхронизации, если нужно: |
|
*Установите поле sync1c=1* Через ib_expert CTRL+f11: |
{code:title=Сбросить синхронизацию абонентов} sqlexec "update abonents set SYNC1C=0, CODE1C=''" |
{code} |
update FINANCE_OPERATIONS set sync1c=1, code1c='old' where FINANCE_OPERATIONS.op_date<'01.01.2011' |
{code:title=Сбросить синхронизацию актов} sqlexec "update FINANCE_OPERATIONS set SYNC1C=0, CODE1C=''" |
{code} |
или из консоли рута/помощника: |
После очиски синхронизации перезапустите веб интерфейс биллинга командами |
{code} |
sqlexec "update FINANCE_OPERATIONS set sync1c=1, code1c='old' where FINANCE_OPERATIONS.op_date<'01.01.2011'" |
chroot /app/asr_billing/ service memcached restart chroot /app/asr_billing/ service admin_web_server restart |
{code} |
h3. 6. Отладка |
{note} Если запустить загрузку данных после сброса синхронизации со стороны биллинга, то при загрузке: * *Абонентов* - данные будут помещены в уже созданного в 1С контрагента; * *Актов* - в 1С будут созданы дубли актов. {note} |
|
Сделать тестовую группу, завести тестовых абонентов. |
h3. 6. Тестирование |
|
Провести тестовые испытания синхронизации в обе стороны по тестовым абонентам убедиться что все работает как вам нужно. |
Пробовать работать с модулем синхронизации на реальной БД 1С, предварительно сделав резервные копии БД 1С и БД Carbon Billing 5. |
|
Очистите предыдущие тестовые синхронизации, если нужно: |
*В нашем обработчике синхронизация абонентов в биллинге с контрагентами в 1с происходит по полю ИНН в 1с и реквизиту ИНН в биллинге.* |
|
{code} |
При успешной синхронизации абонента будет заполнено поле "Код в 1С". Дальнейшие синхронизации финансовых операций будут производиться по этому коду. |
|
sqlexec "update USERS set USERS.SYNC1C = null, USERS.CODE1C = null" |
!1c_01.png|border=1! |
|
sqlexec "update FINANCE_OPERATIONS set SYNC1C = null, CODE1C = null" |
{info} Если что-то не получается, составьте обращение на портале [HelpDesk|https://helpdesk.carbonsoft.ru/login.php]. Нам может потребоваться подключение стороннего или своего 1С разработчика, в случае если конфигурация 1С отличается от стандартной, указанной в требованиях выше. {info} |
|
{code} |
h1. Совместимость с 1C:Fresh |
|
h3. *7. Тестирование* |
Кодовая база модуля удовлетворяет требованиям 1С:Fresh. Для запуска модуля на облачной платформе Вам необходимо использовать "Комплект поставки для 1С Fresh", который можно найти в разделе "Помощь" Вашего биллинга. |
|
Пробовать работать с модулем синхронизации на реальной БД 1С, предварительно сделав резервные копии БД 1С и БД Carbon Billing 5. |
!1Cfresh.png|width=800! |
|
*В нашем обработчике синхронизация абонентов в биллинге с контрагентами в 1с происходит по полю ИНН в 1с и реквизиту ИНН в биллинге.* |
h1. Работа с модулем |
|
{info}Если что-то не получается, обратитесь в техническую поддержку. |
!1С 8.3, современный интерфейс 2022.png|width=900! |
|
Сотрудники тех. поддержки подскажут в чем проблема. Стоит учитывать, что при этом может потребоваться подключение стороннего или своего 1С разработчика, в случае если конфигурация 1С отличается от стандартной, указанной в требованиях выше{info} |
{info} Столбец "Выгружать" - выгрузка данных из 1С в биллинг. Столбец "Загружать" - загрузка данных из биллинга в 1С. {info} |
|
h2. Работа с модулем. |
Чтобы открыть обработку в 1С, выберите меню *"Файл" \-> "Открыть"* и укажите путь к обработке. |
|
{note}При открытии модуля нужно использовать толстый клиент. Посмотреть какой клиент используется можно в *"Справка" \-> "О программе"*{note} |
* *Период с:, По:* - даты для фильтрации операций при выгрузке или загрузке. ** Чтобы загрузить данные за месяц укажите даты с 1-го по 1-е число. ** Загрузка актов происходит по дате окончания периода - finance_operations.period_end_date. Чтобы загрузить акты за месяц, так же укажите даты с 1-го по 1-е число. * *Пароль к системному API:* - задается в биллинге * *Адрес сервера:* - адрес сервера биллинга * *Организация:* - необходима для создания контрагентов в 1С * *id группы* - это id группы(или единственного абонента) в биллинге, по которым будут проведены операции Узнать ID группы можно в адресной строке браузера. !Selection_060.png|border=0! Загрузка абонентов в 1С проходит рекурсивно. * *Загружать контрагентов* - создаст в 1С контрагентов * *Загружать ПКО* - загружает операции с типом "Приход" в 1С * *Загружать акты* - загружает операции с типом "Акт" в 1С Акты загружаются в 1С с опцией "НДС включено в сумму" * *Выгружать ПКО* - создает в биллинге операции с типом "Приход" по ПКО из 1С * *Выгружать выписки* - создает в биллинге операции с типом "Приход" по платежным поручениям из 1С |
|
{note}Столбец "Выгружать" - выгрузка данных из 1С в биллинг. Столбец "Загружать" - загрузка данных из биллинга в 1С.{note} |
Синхронизация абонентов с 1С происходит, если абонент ранее не синхронизирован - пустые поля abonents.sync1c и abonents.code1c. Синхронизация финансовых операций с 1С проходит по синхронизированным абоннетам. При этом сама финансовая операции должны быть не синхронизированной - с пустыми полями finance_operations.sync1c и finance_operations.code1c. Например, механизм загрузки операций "Приход" следующий: # Обработчик запрашивает с биллинга все операции с типом "Приход" без выставленного флага "sync1c" и загружает их в 1с # Обработчик выставляет у операции в биллинге флаг sync1c и добавляет code1c данной операции. Код состоит из года и номера операции |
|
!Selection_059.png|border=1! |
h3. Как сопоставить абонента в биллинге и в 1С |
|
Для открытия модуля, выберите меню *"Файл" \-> "Открыть"* и укажите путь к модулю. |
* Биллинг: !Интеграция 1С, абонент в биллинге, основные поля.png|border=0,width=1000! !Интеграция 1С, абонент в биллинге, учетная запись.png|border=0,width=300! !Интеграция 1С, абонент в биллинге, код в 1С.png|border=0,width=470! |
|
* "Период с:", "По:"\- даты для фильтрации ПКО при выгрузке. {color:#ff0000}Выгрузка происходит по дату НЕ включительно, т.е. для выгрузки ПКО за 1 месяц необходимо указывать период с 1 числа по 1 число.{color} * "Пароль к системному API:" - задается в биллинге * "Адрес сервера:" - адрес по которому досупна администраторская панель с компьютера который запускает обработку * "Организация:" - необходима для создания Абонентов в 1С * "id группы" - это id группы в биллинге, для всех абонентов которой проводится синхронизация платежей. * "id группы:" - получается из биллинга путем открытия группы в администраторской панели(последняя цифра) !Selection_060.png|border=1! * "Загружать контрагентов" - загружает ранее не синхронизированных абонентов (пометка в биллинге) * "Загружать ПКО" - загружает Операции с типом "Приход", только по выгруженным в 1С контрагентам. Механизм загрузки следующий: Обработчик запрашивает с биллинга все операции с типом "Приход" без выставленного флага "sync1c" и загружает их в 1с, после чего выставляет у операции в биллинге флаг sync1c и добавляет code1c данной операции. Код состоит из года и номера операции * "Загружать акты" - загружает Операции с типом "Акт", только по выгруженным в 1С контрагентам {color:#ff0000}Загружаются с опцией "НДС включено в сумму"{color} * "Выгружать ПКО" - создает в биллинге Операции с типом "Приход" у синхронизированных абонентов. |
* 1С !Интеграция 1С, абонент в 1С, общие.png|border=0,width=450! !Интеграция 1С, абонент в 1С, адреса и телефоны.png|border=0,width=450! !Интеграция 1С, абонент в 1С, счета и договоры.png|border=0,width=450! |
|
h3. Бухгалтерия предприятия 3.0 |
|
По-умолчанию, конфигурация БП 3.0 загружается в режиме "управляемого приложения". Наш модуль не оптимизирован для данного режима, потому для обмена данными с биллингом необходимо запустить 1С в режиме "обычного приложения". Для этого выполните следующее: # В интерфейсе запуска 1С нажмите кнопку "Добавить" # Выберите "Добавление в список существующей информационной базы" # Укажите параметры доступа к Вашей конфигцрации 1С Бухгалтерия предприятия 3.0 # На последнем шаге укажите режим запуска "Толстый клиент" и напишите следующее в поле "Параметры запука", как показано на скришноте: |
h3. Как сопоставить операцию в биллинге и в 1С * Биллинг: !Selection_355.png|border=1,width=800!\\ |
\\ |
\\ {code}/DisableStartupMessages /RunModeOrdinaryApplication{code} !sync1c_acc30.png|border=1!\\ \\ # Нажмите "Готово" и запустите приложение. |
* 1С !Selection_356.png|border=1,width=550! |
|
Дальнейшие шаги идентичны запуску обработки в Бухгалтерии 2.0 платформы 1С 8.2 |
|| Биллинг || 1С || | Код 1С | Год и Номер | | * *Для всех операций*: ** Номер документа (number) ** Баланс(бух) (balance_buh) * *Только для платежей (служебные поля в БД)*: ** Номер карты оплаты (op_card_id) ** Название платёжной системы (operator_name) ** Статус платежа в платёжной системе (operator_result) ** ID платежа от платёжной системы (operator_pay_id_str) | Комментарий | |
|
h3. Пример выгрузки |
|
h2. Полезные команды |
Абоненту "Старт Телеком" за февраль 2022 года выставлен акт на следующие услуги: * Интернет, 1000р за полный месяц * Телефония, внутризоновый звонок на сумму 2р, на городской номер длительностью 1 минуту и 10 секунд, круглён до 2 минуты * Телефония, внутризоновый звонок на сумму 9.6р, на местный мобильный номер длительностью 7 минут и 8 секунд, круглён до 8 минуты Ещё он внёс платёж на сумму 2000р. |
|
Ниже можно посмотреть скриншоты из обеих систем после синхронизации. |
|
* Скриншот расхода в биллинге. На ней можно увидеть детальную информацию по потреблению услуг: звонки, длительность, стоимость услуг за единицу и сумму за месяц по каждой услуге в отдельности. \\ \\ !Интеграция с 1С, пример расхода интернет и телефония.png|border=1,width=1250!\\ \\ * Вкладка "Операции", на ней можно увидеть номер акта и итоговую сумму за месяц, а так же поступление денег, сделанное в биллинге. Докуметы уже синхронизированы с 1С, это видно по полю "Код 1С" \\ \\ !Интеграция с 1С, вкладка Операции в биллинге.png|border=1,width=1200!\\ \\ * Детальная информация по услугам в акте в биллинге, стандартная печатная форма. \\ \\ !Интеграция с 1С, акт по стандартной форме из биллинга.png|border=1,width=800!\\ \\ * Вкладка "Документы" в 1С, с информацией подобной вкладке "Операции" в биллинге. Можно увидеть, что и акт, и платёж синхронизированы. \\ \\ !Интеграция с 1С, вкладка Документы в 1С.png|border=1,width=1250!\\ \\ * Детальная информация по документу "Реализация" в 1С. Это акт, синхронизированный из биллинга. \\ \\ !Интеграция с 1С, акт в 1С (документ типа Реализация).png|border=1,width=1250! h1. Работа с операторами связи Для включения синхронизации операторв связи с 1С необходимо включить опцию *Экспортировать операторов в 1С* в [настройках|Глобальные настройки биллинга и оператора#Учет]. h1. Отладка h3. Полезные команды |
h3. 1. # h4. Сброс синхронизации всех приходов |
{code} |
sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c=NULL where op_type=2 and code1c is not null" |
sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c='' where op_type=2" |
{code} |
|
h3. 2. # h4. Сброс синхронизации всех актов |
{code} |
sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c=NULL where op_type=1 and code1c is not null" |
sqlexec "update FINANCE_OPERATIONS set sync1c=0, code1c='' where op_type=1" |
{code} |
# h4. Сброс синхронизации конкретной операции {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} # h4. Просмотреть всех синхронизированных абонентов в [конструкторе отчётов|конструктор отчетов] {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} # h4. Сторнировать все синхронизированные операции {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} # h4. Добавление выписок и ПКО через 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. 3. Сброс синхронизации конкретной операции |
h3. Лог синхронизации в 1С !1С 8.3, сообщения об обмене данными.png|border=0,width=700! После выгрузки, информацию об отправленных командах и переданных данных можно будет увидеть в окне "Сообщения", оно открывается автоматический после нажания кнопки "Выполнить" в интерфейсе обработки. h3. Лог синхронизации в биллинге Синхронизация происходит по [системному API|Системные API]. {code:title=Лог системного API} /app/asr_billing/var/log/django/system_api.log |
{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'" |
h1. Известные ошибки h3. При выполении операции "выгружать ПКО" в 1С ошибка - "Не удалось выполнить запрос: Дата операции не может быть раньше даты создания абонента" Ошибка возникает, так как системная дата создания абонента в биллинге старше даты прихода(ПКО) в 1С. Для решения проблемы необходимо изменить дату создания абонента на более раннюю чем дата первой операции(ПКО) в 1С. Запрос изменит системную дату создания абоннета с *id* 1234 на 01.01.2024 . |
{code} |
curl -ss -XPOST -d 'method1=objects.get&arg1={"id": 1234}&method2=set&arg2={"create_date_system": "2024-01-01"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D - {code} |