Я думаю, ни у кого нет сомнений в пользе интеграции «Битрикс24» и «1С:Предприятие», вопрос только каким образом это сделать. Компания «Битрикс» предлагает две готовые базовые интеграции: первая - это «1С-треккер», которая использует REST API, вторая - это интеграция, которая использует «Bitrix Framework» API. У обоих этих базовых интеграций есть свои достоинства и ограничения. Основное ограничение первого варианта заключается в том, что оно односторонее. Ограничение второго варианта заключается в том, что я не могу изменять скрипты со стороны облака и не могу произвольно добраться до сущностей. В коробочной версии изменять скрипты можно. Используя обе эти базовые интеграции и открытый REST API можно создать практически любую интеграцию. У меня есть опыт в доработках, модификациях и готовые наработки в обоих базовых интеграциях, а также и интеграции этих двух базовых интеграций.
Интеграция «1С-треккер» - это интеграция в одну сторону. Из 1С в Б24 идут следующие данные: контрагенты, банковские счета контрагентов, контактная информация контрагентов, контактные лица и документы (по умолчанию только "Реализация товаров и услуг", но можно еще туда добавить). Здесь используется не просто REST API, а специальный слабо-документированный механизм "Внешние каналы" внутри REST API, которому я пока не нашел практического применения кроме как в 1С-треккере.
Под базовой двухсторонней интеграцией я подразумеваю интеграцию «Bitrix24» и «1С:Предприятие» со стороны «Битрикс24» с помощью настроек через интерфейс, а со стороны «1С:Предприятие» с помощью штатной подсистемы «Обмен с сайтом» или с помощью добавляемой подсистемы фирмы «1С-Битрикс».
Под базовой триадной интеграцией «Б24+1C» я подразумеваю объединение базовой односторонней интеграции «Б24+1C» и базовой двухсторонней интеграции «Б24+1C». Между ними конфликты отстутствуют, по крайней мене пока я не замечал. Этот вид интеграции является наиболее востребованным.
Если функционала базовых интеграций не хватает, то тогда можно расширить этот функционал путем разнообразных доработок со стороны 1С (по линии REST API и/или по линии FrameWork API) в случае облака и/или возможности API «Bitrix Framework» в случае коробочной версии.
В данной области у меня есть готовые наработки, которые я постоянно развиваю, дополняю и систематизирую. Они помогают мне быстрее собирать интеграции, тщательнее их отлаживать, глубже понимать REST API «Bitrix24» и плодотворнее экспериментировать с приложениями, веб-хуками (web-hooks) и авторизацией OAuth.
Инструменты позволяют мне контролировать процесс интеграции и производить разные манипуляции с базой данных 1С и Б24.
Технический пример нужен для того, что бы смоделировать Вашу ситуацию и для проработки технического задания. Я не знаю всех тонкостей Ваших бизнес-процессов. Вы не знаете всех возможностей интеграции «Б24+1С». На основании технического примера мы составляем техническое задание. Пример я показываю через Skype или TeamViewer. Прежде чем рассмативать техничесский пример, очень желательно, что бы вы заполнили бриф по интеграции «Б24+1С». Интеграция делается на основании готового модуля Битрикс, который изначально предназначен для интеграции 1С и Битрикс-интернет-магазина, и/или моих наработок с REST API.
«Мини» - это не в том смысле, что они не имеют существенного значения, а в том смысле, что они являются первичными структурными элементами внедрения CRM «Bitrix24».
Иногда владелец бизнеса ведет свою предпринимательскую деятельность через нескольких субъектов предпринимательской деятельности. Зачем это делается и как технически лучше организовать бухгалтерский и управленческий учет в такой схеме я расскажу в другой статье. Здесь важно то, что счета в Б24 можно выписывать от имени нескольких организаций, но базовая интеграция не позволяет переносить поле "Своя организация" как из Б24-счета в 1С-заказ так и в обратном направлении. Для этого нужна доработка.
В Б24-счете есть несколько дат, в том числе дата создания счета. Поле "Дата создания счета" инициализируется в момент создания счета с точностью до секунды, не является редактируемой и именно она переходит в поле "Дата" 1С-заказа. В Б24-счете есть еще одно поле - "Дата выставления счета", которое инициализируется в момент создания счета и является редактируемой. Счет в Б24 вы можете создать сегодня, но выставить его завтра и дата будет в Б24 счете будет стоять завтрашняя, но в 1С попадает сегодняшняя дата. Для того, что бы при синхронизации в 1С-заказ попадала дата выставления, а не дата создания Б24-счета, требуется доработка базовой интеграции.
Иногда при выписке счета в Б24 необходимо видеть остатки на 1С-складе, что бы сразу сказать клиенту, что есть на складе, а чего нет. В базовой интеграции остатки товаров не переносятся из 1С в Б24. Я этот перенос делаю ...
В базовой интеграции товары и группы товаров сами по себе, то есть независимо от заказов, переходят из 1С в Б24. То есть, если Вы заносите товары и группы товаров в 1С, а счета отстутствует, то эти товары и группы перейдут в Б24. Если вы добавляете товар в Б24, то он попадет в 1С только вместе с заказом. Если Вы заведете товар в Б24, но счет на него не выпишите, то он не попадет в 1С. Если Вы заведете группу товаров в Б24, то при базовой интеграции он никак не попадет в 1С. Иногда бывают случаи, когда менеджер сам заносит товары в Б24 во время составления Б24-счета. Например, это может быть когда организация занимается покраской давальческого товара своей краской на своем оборудовании. В этом случае вопрос о том, какой товар в какую краску покрасить и как его посушить и обработать, определяется в момент выписки счета. Поэтому в данном случае новые группы и новые товары заносятся в Б24 и они должны попасть в 1С.
Часто бывает так, что выпиской счетов занимается не один менеджер, а сразу несколько. Когда менеджер выписывает Б24-счет, то в этом счете остается информация, что этот счет выписан именно этим менеджером. При переносе Б24-счета в 1С-заказ информация о менеджере, который выписал счет, теряется. То есть, в 1С не видно кто выписал счет. Это очень неудобно, потому что часто в 1С для начисления зарплаты нужно знать какие счета выписал какой менеджер. Иногда зарплату менеджерам начисляют в по оплаченным и отгруженным заказам. Для того, что бы в 1С-заказах стоял тот же менеджер, что и в Б24-счете, нужно доработать базовую интеграцию.
Иногда бизнес-процессы в организации могут быть устроены так, что новые контрагенты регулярно добавляются в 1С, а потом они должны идти в Б24. А из Б24 должны идти счета в 1С. Если в данном случае применить треккер, то да, он будет регулярно отправлять контрагентов из 1С в Б24, но что бы регулярно счета шли из Б24 в 1С, нужно применить базовую двух-стороннюю организацию. В таком случае контрагенты будут задваиваться. Почему они будут задваиваться - я тут объяснять не буду, потому что все равно мало кому это интересно. Тут главное то, что эту интеграцию можно сделать как минимум двумя принципиально различающимися способами.
Если среди номенклатуры в Б24 есть номенклатура с типом "Услуга", то базовая интеграция перестает правильно работать. Это связано с тем, что базовая интеграции 1С+Б24 построена на интеграции 1С и интернет-магазинов. А в интернет-магазине не продаются услуги, там продаются только товары. Услуги там используются только как услуги по доставке. Я это поправляю ...
Иногда при выписке Б24-счетов желательно видеть задолженность и/или обороты контрагенты. При большой задолжжености можно принять решение об отгрузке или неотгрузке товара. При больших оборотах можно принять решение о скидке. Передавать задолженость и/или обороты из 1С в Б24 можно двумя путями. Первый путь: 1С периодически записывает данные в пользовательское поле Б24-карточки контрагента. Второй путь. 1С периодически выкладывает данные в xml- или json-файлик на ftp. В Б24 приложение первого типа периодически забирает эти данные. Я это делаю ...
В Б24 выписали счет, потом он попал в 1С. В 1С что-то поменяли, например, организацию. Эту организацию в Б24-счете не поменяли или поменяли, но механизма переноса организации из Б24 в 1С нет. Тогда после синхронизации изменения, сделанные в 1С-заказе, сотруться и нужно будет заново исправлять 1С-заказ. То есть, иногда нужно что бы при синхронизации уже перенесенных в 1С-заказов одни изменения в 1С-заказе не трогались, а другие изменения переносились из Б24-счета в 1С-заказ. То есть, нужно закрыть некоторые реквизиты 1С-заказа от изменения при синхронизации. Я это делаю ...
Базовая интеграции устроена так, что при синхронизации контрагентов есть выбор по какому полю и в каком приоретете синхронизировать - по внутреннему идентификатору, по email, по ИНН. Во всех трех видах есть свои нюансы, достоинства и недостатки. Расстановка приоритетов этих полей - это зависит от бизнес-процессов и в разных случаях решается по-разному. При выписке счета не всегда ИНН заведен в Б24-карточку контрагента, а если даже и заведен, то иногда, когда дело доходит до реального перечисления денег, покупатель может решить покупать на другую организацию, поэтому и ИНН поменяется, поэтому если делать приоритетом ИНН, то в 1С этот контрагент задвоится. Можно конечно сделать так, что бы в 1С переходили только те Б24-счета, контрагент у которых имеет ИНН или в целом Б24-счет имеет определенный статус. Несмотря на то, что есть возможность синхронизации по ИНН и по email, очень часто возникает необходимость синхронизации контрагентов по внутреннему идентификатору по аналогии с товаром. Но тут есть тоже свои нюансы. Внутренний идентификатор контрагента образуется путем слияния внутреннего кода контрагента и наименования из карточки. Таким образом, если поменять наименование из карточки, но контрагент задвоится и более того, наименование из карточки не переходит в краткое наименование в 1С-контрагенте. Я это делаю ...
Часто бизнес-процессы устроены так, что на основании Б24-сделки создается Б24-счет и надо программным образом отправить Б24-счет на почту покупателя и потом ему на телефон из Б24 сделки программным образом отправить SMS c указанием номера счета. Но Б24-счет создается позже, чем Б24-сделка, поэтому в Б24-счете есть ссылка на Б24-сделку, но в Б24-сделке нет ссылки на Б24-счет. Поэтому можно сделать так - добавить пользовательское поле "Номер счета" в Б24-сделку, а потом сделать так, что бы номер Б24-сделки записывался в это поле. Это можно сделать несколькими способами. Я это делаю ...
В спец-форме по составлению тех-задания есть поля: [«1C:Предприятие» → Платформа → Версия] и [«1C:Предприятие» → Конфигурация → Версия]. Потенциальные заказчики путаются в их написании, а они имеют существенное значение, потому что в разных версиях платформы есть разный фунционал, поэтому мне нужно дорабатывать 1С именно на той платформе, на которой работает заказчик. Кроме этого формат хранения конфигуации в пределах платформы они иногда меняют от версии к версии. Поэтому может возникнуть такая ситуация, что на моей платформе 1С работает, а на платформе заказчика мои доработки работать не будут.
Иногда заказчику нужно сделать некоторые манипуляции в своем «Битрикс24» для того, что бы мне что-нибудь продемонстрировать в области интеграции «Б24+1С» или для того, чтобы уже существующая интеграция продолжила свою работу.
Инструкция по созданию входящего и исходящего веб-хука
Для того, что бы договориться о существенных условиях договора, на основании которого я буду что-то делать, Вам необходимо заполнить бриф на интеграцию Битрикс24 и 1С. Иногда этих данных достаточно для того, что бы я сказал мои условия сделки. Если данных не достаточно, то на основании введенных Вами данных я у себя подбираю пример и в режиме диалога через демонстрацию экрана мы уточняем разные детали. В случае, если у меня есть внутреннее подозрение, что переговоры затянуться относительно долго и не приведут к заключению сделки, и информация, полученная от меня по поводу вариантов интеграции представляет для вас ценность, я оставляю за собой право вести переговоры по поводу технического задания в форме платной консультации. Иногда на основании заполненного брифа я делаю web-страничку с техническим заданием и там ведем обсуждение, потому не всегда с первой секунды переговоров ясны все детали.