Автоматизация работы на маркетплейсах — это не просто выгрузка остатков, а сложный процесс, включающий складскую логистику, учет операций нескольких юридических лиц в одной базе и глубокую аналитику. Рассмотрим, как построить надежную систему в 1С, способную обрабатывать миллионы записей и интегрироваться с внешними базами данных на PostgreSQL.
Прежде чем приступать к разработке, проанализируем масштаб задачи. Нам требуется вести учет для нескольких продавцов, управлять общим центром упаковки, отслеживать статусы накладных (от создания до продажи) и считать прибыль по методу FIFO. Рассмотрим наиболее подходящие конфигурации для этой цели:
Одной из ключевых задач является получение данных из базы PostgreSQL, куда асинхронно стекается информация с маркетплейса. Разберем, как подключить эти данные напрямую к 1С, не прибегая к медленному обмену файлами. В платформе 1С существует объект ВнешниеИсточникиДанных.
Выясним, как это работает по шагам:
ВнешнийИсточникДанных.После этого мы сможем работать с данными маркетплейса в коде 1С так же, как с обычными справочниками. Посмотрим на пример кода для получения данных о лимитах отгрузки:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВнешнийИсточникЛимиты.Артикул КАК Артикул,
| ВнешнийИсточникЛимиты.ДоступныйЛимит КАК Лимит
|ИЗ
| ВнешнийИсточникДанных.Маркетплейс.Таблица.Лимиты КАК ВнешнийИсточникЛимиты
|ГДЕ
| ВнешнийИсточникЛимиты.Артикул = &Артикул";
Запрос.УстановитьПараметр("Артикул", ТекущийАртикул);
Результат = Запрос.Выполнить();
Ситуация, когда несколько продавцов работают в одной базе и используют один склад, требует четкого разграничения прав. Мы не хотим, чтобы Продавец А видел закупки Продавца Б. Для этого проанализируем механизм RLS (Row Level Security).
В типовых конфигурациях (УТ 11, КА) уже встроены профили групп доступа. Мы можем настроить ограничения так, чтобы:
ПриобретениеТоваровУслуг и остатки по своим организациям.Важный этап — процесс упаковки. В 1С его можно реализовать через документ ЗаказНаСборку или создать кастомное РабочееМестоУпаковщика. Разберем, как реализовать выбор типа упаковки. Для этого будем использовать ДополнительныеРеквизиты.
Алгоритм работы упаковщика в системе:
Для реализации пунктов о Telegram-уведомлениях (о нестыковках статусов или приближении даты отгрузки) нам не нужны сторонние сервисы. Мы можем использовать встроенные средства 1С для работы с HTTP-запросами.
Проанализируем ситуацию: накладная уехала, но статус «Принята на складе» не появился. Нам нужно настроить РегламентноеЗадание, которое будет запускаться ежечасно и проверять разницу статусов.
Процедура ПроверитьСтатусыИУведомить() Экспорт
// Получаем список накладных, которые "Отправлены", но не "Приняты" более 24 часов
Запрос = Новый Запрос("ВЫБРАТЬ НомерНакладной ИЗ РегистрСведений.СтатусыЛогистики ГДЕ ...");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ТекстСообщения = "Внимание! Накладная №" + Выборка.НомерНакладной + " задерживается в пути!";
ОтправитьВTelegram(ТекстСообщения, ID_Пользователя);
КонецЦикла;
КонецПроцедуры
Система 1С идеально подходит для расчета себестоимости по методу FIFO. При каждой продаже программа «подбирает» самую старую партию закупки и списывает её стоимость. Это позволяет точно считать маржу, даже если закупочные цены меняются каждый день.
Для реализации отчетов ABC и XYZ анализа (по обороту или прибыли) в 1С:Управление торговлей используются стандартные обработки. Вам останется только настроить источники данных:
1,5 миллиона записей о продажах — это объем, с которым 1С на базе PostgreSQL или MS SQL Server справляется без проблем при соблюдении следующих условий:
Рассмотренный функционал полностью реализуем в 1С. Однако стоит предостеречь от попыток сделать всё за «5 дней». Подобный проект требует:
Выбирайте современные конфигурации на управляемых формах (УТ 11, УНФ), так как они имеют лучшую поддержку веб-сервисов и мобильных рабочих мест, что крайне важно для сотрудников склада со сканерами штрихкодов.