Заказчик
РМ (производитель продукции для печати под известным брендом Profiline) - одна из ведущих компаний России, занимающихся оптовыми поставками картриджей, тонеров и прочими расходниками для офисной техники.
- Работает с 1996 года
- Дилерская сеть компании - свыше 2000 партнеров
- Работает в 300 городах России и странах СНГ
- В компании работает более 180 человек
- Свое производство
- Склады - более 30 000 метров
Проблема-задача
Мы заключили с заказчиком контракт на разработку B2B платформы для автоматизации процессов продаж и документооборота с его текущими дилерами. В процессе работ над B2B платформой, заказчик попросил нас подлючиться к работе с его ERP, в данном случае это была 1С: Предприятие 7.7.
Рассказываем, какие задачи нам пришлось решить со стороны 1С по настройке и интеграции с B2B платформой.
Специфика архитектурного решения в связи с использованием 1С 7.7
На момент начала проекта по внедрению B2B-Портала, компания находилась в стадии перехода со старой версии 1С: Предприятие 7.7 на новую, реализованную «с нуля» на основе библиотеки стандартных подсистем, конфигурацию на платформе 1С: Предприятие 8.3. Мы предложили заказчику следующую схему дальнейшей работы:
Преимущества такой архитектуры в следующем:
- Появляется возможность запустить B2B-портал до полного перехода на новую систему 1С: Предприятие
- Решается вопрос переноса данных, необходимых для старта работы новой системы 1С: Предприятие, который в любом случае необходимо было решать
- Менеджеры, частично работая в новой системе, знакомятся с её интерфейсом и механизмами, имеют возможность отработать и протестировать бизнес-процессы на реальных данных и заказах еще до перехода на новую программу, что существенно облегчает момент перехода
- Исключается необходимость вносить одни и те же данные в разные программы
Обмен между 1С 7.7 и 1С 8.3 реализован с помощью внешних источников данных, что дает преимущества в скорости, загруженности и надежности перед классическим переносом через правила обмена.
Индивидуальное ценообразование
Проблема: Типовые возможности 1С позволяют для каждого соглашения с контрагентом указать только одну колонку прайс-листа для всех товаров. Маркетинговая(?) политика компании требовала от менеджеров предоставления более гибких соглашений и, по факту - для каждого контрагента требовалось создавать свою колонку цен, что сделало бы процесс ценообразования хаотичным и неуправляемым. Поэтому, многие цены зачастую ставились вручную, и если менеджер что-то забывал, возникали проблемы. Также, на портале B2B требовалось отображать цены клиента, по которым он может приобрести товар.
Дополнительно проблема осложнялась тем, что каждый товар рассматривался в разрезе ценовой группы и производителя, которые иногда не соответствовали непосредственно структуре каталога. Система ценообразования компании требовала возможности устанавливать колонки цен и наценки к ним в разрезе именно этих аналитик
Решение: Был разработан модуль, позволяющий на каждую категорию товара устанавливать для каждого клиента свою колонку цен и процент скидки/наценки к ней. Также, для каждой конкретной позиции создана возможность указать спец. цену. Интерфейс обработки управления ценами позволяет видеть номенклатуру в разрезе ценовых групп (модификаций) и производителей, причем пользователь имеет возможность самостоятельно настраивать порядок группировки в обработке (см. рис. Пункт 1). Обработка подсказывает пользователю на выбранную им позицию текущие значения цен в разрезе стандартных колонок общих прайс-листов.
Для повышения гибкости механизма ценообразования создана возможность задавать индивидуальные цены не только для клиента, но и для любого его договора. Также для каждого клиента реализована возможность задания индивидуального курса, по которым происходит расчет цен с возможностью просматривать его в личном кабинете, а также процента наценки на курс ЦБ, что позволило менеджерам выставлять меньшие цены, но по большему курсу, либо наоборот, что повысило гибкость маркетинговой политики компании. (см. рис. 3)
При управлении ценами, менеджер может гибко отбирать необходимую номенклатуру, с которой ему требуется поработать в данный момент времени с помощью функционала отбора (см. рис. Пункт 3)
Для быстрого поиска информации о цене товара, либо для задания фиксированного значения на конкретную позицию, имеется окно поиска. Существенным преимуществом является механизм «умного» поиска, позволяющий искать по вхождению введенной строки сразу в наименовании, артикуле, полном наименовании, идентификаторе.
Средства переноса данных позволили реализовать функционал карточки продаж (см. рис. 5), которая позволяет увидеть историю цен, по которым производилась продажа данной позиции этому контрагенту за всю историю работы. Причем, реальные документы в системе не хранятся, чтобы не перегружать базу и не «тянуть хвосты» из старой системы учета.
В связи с тем, что клиентов с индивидуальным ценообразованием в компании было очень много, было принято решение реализовать функционал загрузки данных об индивидуальных ценах из Excel-файлов, в которых хранилась информация о текущих соглашениях с клиентами (см. рис. Пункт 6).
Принципы выгрузки данных из 1С 8 в B2B
На уровне 1С реализованы WEB-сервисы, позволяющие порталу самому быть инициатором того или иного обмена. Это правило касается всех выгрузок, кроме загрузки информации о заказах в 1С. Такой метод позволяет порталу получать требуемую информацию тогда, когда это необходимо, что позволяет в дальнейшем использовать существенно более гибкую логику, нежели при стандартном обмене.
Данные обмена представляют собой отдельные передаваемые файлы в формате json. Механизм отправки данных на портал на уровне базы данных 1С работает следующим образом:
- Портал отправляет запрос, содержащий в себе как указание на тип выгрузки, так и, при необходимости дополнительные отборы (например, для контрагентов есть возможность указать идентификатор отдельного клиента и тогда в ответ придет информация только по этому пользователю), которые позволяют сделать обмен «точечным», что благоприятно сказывается на скорости обновления информации и на загруженности базы 1С.
- 1С, получив запрос, формирует необходимые файлы данных и передает их обратно на B2B-портал. При этом, в случае, если выгрузка полная (без каких бы то ни было отборов), на уровне портала происходит очистка неактуальных данных, в остальных случаях, они только дополняются.
Типы и состав выгрузок
В ходе реализации проекта были реализованы следующие допустимые запросы со стороны портала и соответствующие им файлы данных:
«Запрос Main» - в нем выгружается список пользователей сайта (головные контрагенты) (в 1С это новый отдельный объект – справочник «Пользователи сайта») с их свойствами – «Уникальный идентификатор», «Логин», «Пароль», «E-mail», «Статус активности пользователя», «Категория», «Основной менеджер»;
«Запрос Partners» - в нем выгружается список контрагентов с указанием привязки к головным контрагентам и другими свойствами – «Уникальный идентификатор», «Наименование», «Полное наименование», «ИНН», «КПП», «Телефон», «E-mail», «Юридический адрес», «Фактический адрес», «БИН банка», «Номер расчетного счета», «Номер кор.счета», «Уникальный идентификатор региона контрагента», «Наименование региона контрагента»;
«Запрос Contracts» и договором, которые относятся к каждому пользователю сайта (в 1С это табличная часть справочника «Пользователи сайта») с их свойствами – «Уникальный идентификатор пользователя», «Уникальный идентификатор контрагента», «Уникальный идентификатор договора контрагента», «Номер договора», «Наименование договора», «Дата договора», «Уникальный идентификатор типа цен в договоре», «Уникальный идентификатор организации в договоре»;
«Запрос Pricestype» - в нем выгружается список типов цен (в 1С это отдельный объект - регистр сведений «Типы цен для выгрузки на сайт») с их свойствами – «Уникальный идентификатор типа цен», «Наименование типа цен»;
«Запрос Warehouses» - в нем выгружается список складов (в 1С это отдельный объект - регистр сведений «Склады для выгрузки на сайт») с их свойствами – «Уникальный идентификатор», «Наименование склада»;
«Запрос Categories» - в нем выгружается список категорий (в 1С это отдельный объект – справочник «Категории сайта») с их свойствами – «Уникальный идентификатор», «Наименование», «Уникальный идентификатор родителя» (для создания иерархического списка на сайте);
«Запрос Goods» - в нем выгружается список номенклатуры (в 1С данные берутся из справочника «Номенклатура» и только те позиции, в которых заполнен реквизит «Категория сайта») с их свойствами – «Уникальный идентификатор», «Код», «Наименование», «Полное наименование», «Артикул», «Категория сайта», «Бренд», «Уникальный идентификатор папки-родителя», «Ссылка на основное изображение», «Список доп.параметров» (часть из которых могут быть использованы в качестве фильтров на сайте, а часть в качестве доп.описания. В 1С реализован особый механизм, позволяющий пользователям самостоятельно формировать данный список доп.параметров);
«Запрос Prices» - в нем выгружается список значений цен номенклатуры (в 1С данные берутся из регистра сведений «Цены номенклатуры», цены выгружаются только для тех типов цен, которые указаны в файле «Pricestype») с их свойствами – «Уникальный идентификатор номенклатуры», «Уникальный идентификатор типа цены», «Значение цены»;
«Запрос Rests» - в нем выгружаются данные по остаткам номенклатуры с учетом резервов (в 1С данные берутся из регистров накоплений «Товары на складах» и «Товары в резерве на складах» только по тем складам, которые указаны в файле «Warehouses») с их свойствами – «Уникальный идентификатор номенклатуры», «Уникальный идентификатор склада», «Количество свободного остатка»;
«Запрос Categories1c» - в нем выгружается список групп номенклатуры (в 1С данные берутся из справочника «Номенклатур» только папки) с их свойствами – «Уникальный идентификатор папки», «Наименование», «Уникальный идентификатор папки-родителя»;
«Запрос CategoriesUser» - в нем выгружается список категорий пользователей сайта (в 1С это отдельный объект – справочник «Категории пользователей сайта») с их свойствами – «Уникальный идентификатор», «Наименование», «Список доступных складов»;
«Запрос Finances» - в нем выгружаются данные по взаиморасчетам с контрагентами (в 1С данные берутся из регистра накопления «Взаиморасчеты с контрагентами») с их свойствами – «Уникальный идентификатор договора», «Остаток суммы взаиморасчетов»;
«Запрос Managers» - в нем выгружается список менеджеров (в 1С это отдельный объект – справочник «Пользователи») с их свойствами – «Уникальный идентификатор», «ФИО», «Телефон менеджера», «E-mail менеджера»;
«Запрос IndivPrices» - в нем выгружается список значений индивидуальных цен номенклатуры для контрагентов (в 1С данные берутся из регистра сведений «Индивидуальные цены номенклатуры для контрагентов») с их свойствами – «Уникальный идентификатор контрагента», «Список фиксированных цен, состоящий из «Уникального идентификатора номенклатуры», «Цена»», «Список правил для расчета индивидуальных цен, состоящий из «Уникального идентификатора группы номенклатуры», «Уникального идентификатора типа цен», «Процента скидки/наценки»»;
«Запрос Organizations» - в нем выгружается список организаций (в 1С данные берутся из отдельного объекта – справочник «Организации») с их свойствами – «Уникальный идентификатор организации», «Наименование», «Полное наименование», «ИНН», «КПП», «Телефон», «Юридический адрес», «Фактический адрес», «БИН Банка», «Номер расчетного счета», «Номер кор.счета»;
«Запрос Regions» - в нем выгружается список регионов, в которых работают контрагенты (в 1С данные берутся из дополнительных свойств контрагентов) с их свойствами – «Уникальный идентификатор», «Наименование региона»;
«Запрос Params» - в нем выгружается список дополнительных параметров номенклатуры (в 1С это отдельный объект – регистр сведений «Доп. сведения для выгрузки B2B») с их свойствами – «Наименование», «Тип параметра – Число или Список, для указания возможности указания фильтра по данному параметру;
Алгоритм загрузки заказов
Загрузка заказов, обратная выгрузка информации о сроках резервов, отгруженном количестве, статусах
Обратная загрузка данных с портала B2B в 1С, а именно документов Заказы покупателей, реализована через загрузку текстовых файлов, которые автоматически появляются в определенной папке на сервере, а после успешной обработки заказа этот файл удаляется. Формат этих файлов также заранее оговаривается и может включать в себя – номер заказа, данные клиента (передается уникальный идентификатор, который использовался при выгрузки данных; это позволяет на стороне 1С однозначно определять объект метаданных), данные по товарам. Загрузка также происходит в автоматическом режиме, т.е. с использованием регламентного задания, которое можно гибко настроить. Идентификация самого документа в 1С может происходить по отдельному реквизиту «Номер заказа на сайте», что позволит избежать создания новых дублирующий документов при повторной загрузке, а будет найден и перезаписан уже существующий заказ.
В связи с тем, что основной учет ведется в системе 1С: Предприятие 7.7, при появлении нового заказа происходит автоматическая отправка письма на почту менеджера, ответственного за работу с данным клиентом. При этом к письму автоматически прикрепляется файл, адаптированный для загрузки состава заказа в учетную систему. В качестве идентификатора товара используется GUID, что позволяет исключить любые возможные проблемы, связанные с задержкой в актуализации данных о товарах в цепочке 1С 7.7 <-> 1С 8 <->Портал
Бизнес-процесс отгрузки
В рамках перехода на новую систему учета на базе 1С: Предприятие 8.3, наша компания реализовала функционал прохождения заказа по циклу отгрузки, который является достаточно интересным и нестандартным решением.
Общая схема бизнес-процесса выглядит следующим образом:
Участники бизнес-процесса:
- Менеджер
- Управляющий доставкой
- Руководитель отдела продаж (далее РОП)
- Логист
Этап 1.
Менеджер может оформить заявку на отгрузку двух видов:
Обычная заявка – оформляется в случае, когда уже известно, что именно будет отправляться, в каких количествах и т.д.
Предварительная – эта возможность была реализована для случаев, когда уже близится конец рабочего дня, а клиент просит срочно отправить ему товар. В этом случае, менеджер не тратит времени на заполнение всех необходимых данных, а сразу же отправляет заявку на согласование, текстом указывая основные ее параметры. Что позволяет Управляющему доставкой раньше получить информацию о срочной отгрузке и запланировать транспорт. Уже после этого, менеджер спокойно заполняет детальный состав заявки
Этап 2.
Для обычной заявки – сразу после оформления, а для предварительной – после преобразования её в основную, происходит контроль возможности проведения отгрузки с финансовой точки зрения. При этом, независимо от результата, Управляющий доставкой получает информацию о планируемой доставке и уже имеет возможность распределить её по машинам. Финансовый контроль состоит в проверке наличия просроченной задолженности, отсутствия превышения кредитного лимита клиента, причем алгоритм учитывает наличие «головных» контрагентов, что позволяет проверять задолженность не только на уровне отдельного юр. Лица, но и на уровне всего холдинга, который может потенциально иметь очень большое число компаний.
Этап 3.
В случае, если проверка не была пройдена, формируется задача РОПу утвердить или отменить планируемую отгрузку. При этом, в форме задачи, пользователь может увидеть всю необходимую для принятия решения информацию – историю продаж, оплат, состояние взаиморасчетов. В случае отмены отгрузки, менеджер получает задачу передоговориться с клиентом, что позволяет ему быстро отреагировать и скорее принять решение по отгрузке. Также информацию о том, что доставки не будет, получает управляющий доставкой и может перераспределить другие отгрузки по машинам, исключив удаленные. Это предупреждение необходимо сотруднику, чтобы оперативно видеть отмены и изменения в планируемых поставках. Без него велик шанс не заметить, что та или иная машина отправится наполовину пустой.
Этап 4.
После утверждения возможности отгрузки, Логист в своей специальной обработке «Рабочее место логиста» видит перечень всех отгрузок, запланированных на сегодня и имеет возможность проверить и распечатать пакетом весь необходимый комплект документов по каждой отгрузке, включающей в себя ТОРГ-12, Счет-Фактуру, УПД, ТТН.
Этап 5.
Управляющий доставкой ведет свою работу в специализированном рабочем месте, которое позволяет распределять отгрузки по машинам, контролируя оптимальность маршрута, соответствие габаритов и веса груза ТТХ используемого автотранспорта, позволяет анализировать потребности в наемном транспорте.
По мере прохождения процесса каждый участник может видеть его текущее состояние. Основным заинтересованным лицом является менеджер и ему важно в онлайн-режиме знать, утвердил ли РОП его заявку, подготовил ли Логист документы, запланирована ли его доставка непосредственно в списке его накладных
Скорость загрузки данных 1С-B2B
Полная загрузка данных - порядка 600 000 записей синхронизируется 7-9 минут, в зависимости от нагрузки.
Пример. Синхронизация контрагентов на довольно слабом тестовом сервере с помощью автоматической консольной команды. 6858 контрагентов со всеми данными синхронизируются за 15 секунд.
Мы найдем лучшее решение вашей задачи!
Оставить заявкуДругие проекты
- Жесткий и несдвигаемый срок запуска: 4 месяца
- Сложные интеграции с SAP 4Hana
- Были задействованы фултайм 2 команды (11 специалистов)
- Настроены интеграции, улучшен функционал и обновлен IT-ландшафт компании.
- Проведена интеграция с внутренними системами
- Настроены необходимые отчеты;
- Организовано удобное и понятное визуальное отображение данных .