При расширении бизнеса на рынки стран СНГ (Узбекистан, Казахстан, Киргизия) компании часто сталкиваются с проблемой разобщенности данных. Основная сложность заключается в том, что каждая страна имеет свое законодательство, свои налоговые ставки и специфические требования к локализации 1С. В данной статье мы разберем, как эффективно организовать работу филиалов, сохранив единый справочник товаров для выгрузки актуальных остатков на сайт.
Рассмотрим ситуацию, когда компания пытается вести учет в единой базе 1С:Управление торговлей (УТ) для всех стран. На первый взгляд, это кажется идеальным решением: общая номенклатура, понятные остатки. Однако на практике мы сталкиваемся с серьезными препятствиями:
Проанализируем более гибкие и надежные способы реализации этой задачи.
Этот вариант считается оптимальным для среднего бизнеса. Мы выделяем одну информационную базу как «эталонную» (Мастер-база), в которой заводится вся номенклатура. Остальные базы филиалов становятся «потребителями» этих данных.
Разберем по шагам, как настроить такую схему:
Номенклатура.ПередЗаписью устанавливаем запрет на создание и изменение элементов справочника номенклатуры. Все изменения должны приходить только извне.GUID. Это гарантирует, что «Порошок А» в Казахстане и «Порошок А» в Узбекистане — это один и тот же объект в системе, даже если их названия локализованы.Для реализации программного запрета редактирования в подчиненных базах можно использовать следующий пример кода:
Процедура ПриЗаписиНоменклатурыПередЗаписью(Источник, Отказ) Экспорт
Если НЕ Источник.ОбменДанными.Загрузка Тогда
Если Пользователи.ТекущийПользователь() <> Справочники.Пользователи.НайтиПоНаименованию("АдминистраторОбмена") Тогда
Сообщить("Редактирование номенклатуры разрешено только через центральный узел!");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Если справочник товаров насчитывает десятки тысяч позиций и характеристики товаров постоянно меняются, рассмотрим использование специализированного решения — 1С:MDM Управление нормативно-справочной информацией.
В чем преимущество такого подхода? MDM-система берет на себя роль «полицейского» данных:
EnterpriseData.Этот вариант требует наличия в штате администратора НСИ, но он полностью исключает «чертову тучу характеристик», в которых легко запутаться при ручном сопоставлении.
Если ваша главная цель — отображать остатки на сайте в рекламных целях, а глубокий управленческий учет между странами пока не требуется, можно использовать метод агрегации через API или промежуточную базу.
Посмотрим, как это работает:
Для реализации выгрузки из 1С удобно использовать HTTPСервис. Пример формирования JSON с остатками:
Функция ПолучитьОстаткиДляСайта(Запрос)
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗапросОстатков = Новый Запрос;
ЗапросОстатков.Текст = "ВЫБРАТЬ Номенклатура.Артикул, ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Остаток ...";
Результат = ЗапросОстатков.Выполнить().Выгрузить();
ЗаписатьJSON(ЗаписьJSON, Результат);
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
Возврат Ответ;
КонецФункции
При работе в разных странах неизбежно встает вопрос языка. Выясним, как лучше поступить: наименования в Мастер-базе лучше вести на русском языке (как на основном языке сайта), а для локальных печатных форм в филиалах использовать дополнительные реквизиты или механизмы интернационализации 1С.
Что касается характеристик, проанализируем ситуацию: если их слишком много, попытка синхронизировать их «в лоб» через Excel-файлы (как предлагали некоторые участники форума) приведет к краху системы. Используйте только штатные механизмы обмена 1С, которые поддерживают выгрузку дополнительных реквизитов и сведений. Это сохранит ссылочную целостность данных.
Подытожим наш анализ и составим план действий для организации работы:
Следуя этим принципам, мы сможем построить надежную систему, которая обеспечит актуальные остатки на сайте и прозрачный учет во всех международных подразделениях компании.