Использовать контрольные суммы элементов для оптимизации обновления каталога: Интеграция с 1С

Содержание

Интеграция с 1С

ПолеОписание
Сайт, заказы которого выгружать в «1С:Предприятие»Укажите сайт, заказы с которого вы будет принимать в «1С». Т.е. в системе можно создать несколько Интернет-магазинов, а обрабатывать их в одной «1С». Либо заказы с разных сайтов можно выгружать в разные учетные системы.
Создавать новые заказы и контрагенты из 1СПри отмеченной опции новые заказы и контрагенты из 1С будут добавляться на сайт при выполнении процедуры обмена заказами.
Сайт, на который добавлять новые заказы и контрагентыУказываются сайты, на которые будут добавляться новые заказы и контрагенты из 1С.
Префикс номера заказа при выгрузкеЗадается префикс, который будет добавляться к номеру заказа при выгрузке.
Выгружать только оплаченные заказыПри отмеченной опции в «1С» будут выгружаться только оплаченные заказы.
Выгружать только заказы c разрешенной доставкойПри отмеченной опции в «1С» будут выгружаться только заказы с разрешенной доставкой.
Менять статусы заказов по информации из 1СПри отмеченной опции статусы заказов на сайте будут изменяться в соответствии с данными из 1С (т.е. изменяется статус заказа в 1С и после выполнения обмена данными статус заказа на сайте будет изменен на тот, который был задан в 1С).
Выгружать заказы начиная со статусаУказывается статус, начиная с которого будут выгружаться заказы в «1С». Если указано Не выбрано, то будут выгружены все заказы.
Статус, в который переводить заказ при получении отгрузки от «1С:Предприятие»Укажите статус, в который будет переводиться заказ при условии, что в «1С» отгрузка товара по данному заказу проведена и информация об этом поступила на сайт.

Данный параметр рекомендуется отключать (указать значение Не выбрано), если отмечена опция Менять статусы заказов по информации из 1С.

Заменять валюту при выгрузке в «1С:Предприятие» наПри выгрузке заказов в «1С: Предприятие» валюта товаров (т.е. наименование товаров) будет заменена на указанную. Конвертация при этом не происходит.
Наличный расчет. Платежная система для новых заказовУказывается платежная система для новых документов оплаты заказа, которые приходят из 1С и их тип «наличный». Тип документа «наличный» или «безналичный расчет» сообщает 1С.
Безналичный расчет. Платежная система для новых заказовУказывается платежная система для новых документов оплаты заказа, которые приходят из 1С и их тип «безналичный расчет». Тип документа «наличный» или «безналичный расчет» сообщает 1С.
Эквайринговая операция. Платежная система для новых оплатУказывается платежная система для новых оплат, проводимых путем эквайринговой операции.
Платежная система для автоматической оплаты заказа по статусу оплаты заказа от 1СУказывается платежная система для автоматической оплаты заказа, для которого пришел статус оплаты из 1С.
Служба доставки для новых заказовУказывается служба доставки, которая подставляется в документы новых пришедших из 1С заказов.
Увеличивать количество продукта в корзине, если количество в доставке из 1с превышает количество в корзинеПри отмеченной опции количество продукта будет увеличено в соответствии с количеством, указанном в документе доставки из 1С.
Создавать новые документы оплаты из 1сПри отмеченной опции будут создаваться новые документы оплаты для новых заказов, пришедших из 1С.
Создавать новый документы доставки из 1сПри отмеченной опции будут создаваться новые документы доставки для новых заказов, пришедших из 1С.
Создавать новый заказ при получении новой доставки из 1с, если заказ основание на сайте не найденПри отмеченной опции на сайте будет создаваться новый заказ, если из 1С будет получен документ доставки, для которого нет соответствующего документа заказа на сайте.
Группы, пользователям которых разрешена выгрузкаВыберите группы пользователей, которые будут иметь права на выгрузку заказов в «1С».
Использовать сжатие zip, если доступноУстановите флаг, чтобы при передаче данных использовалось сжатие zip, если оно доступно.
Интервал одного шага в секундах (0 — выполнять загрузку за один шаг)Указывается интервал одного шага в секундах при обмене заказами.
Размер единовременно загружаемой части файла (в байтах)Указывается размер единовременно загружаемой части файла в байтах.

Интеграция 1С и Битрикс — особенности, инструкция, правила

Работа с интернет-магазином предполагает наполнение его товарами. Если делать это в ручном режиме, потратится много времени. Если фирма, которая владеет порталом, пользуется платформой 1С: Предприятие, то настройка интеграции с системой сэкономит десятки часов работы. Чтобы начать импорт и экспорт данных, следует настроить обмен на стороне сервера и программного обеспечения.

Настройка портала для взаимодействия с программой

Прежде чем наладить обмен с 1С:Предприятие, рекомендуется произвести базовые настройки веб-страниц для передачи информации платформе. Начать стоит с настройки магазина «Интеграция с 1С».

Здесь есть несколько вкладок. Первая из них – «Каталог». Здесь можно установить тип части сайта, куда будут переноситься продукты и услуги из 1С:Предприятие. Чтобы товары не загружались в блок с похожим идентификатором, ставится галочка «Учитывать тип блока при выгрузке».

Существует опция создания папки с пользователями, которые могут передавать переменные на портал. Есть функция «Загружать торговые предложения». Позволяет хранить раздельно несколько видов продукта.

Еще одна опция «Использовать контрольные суммы» — позволяет изменять только отдельные части веб-страниц, а не весь каталог. Если есть продукты, в которых заполнены не все атрибуты, стоит использовать опцию «Цены только в инфоблоке предложений». Если напротив функции стоит галочка, то в данных о товаре будут указаны цены.

Настройки автоматического создания картинки для торговой единицы и изменения детального отображения фотографии позволяют создавать все картинки товаров в едином формате. В программе можно ввести список посетителей, которым разрешено изменять каталог.

Следующий раздел — 

«Экспорт каталога». В поле «Инфоблок» вводят часть портала, с которого будут загружаться в программу продукты.

Другая вкладка – «Заказы». Здесь устанавливается и будет выгружаться информация со всех сайтов на этом сервере или из одного. Есть возможность выгружать только заказы с предустановленным статусом, например, оплаченные.

Есть возможность изменять статус заказа на основе обмена с программой. В этом случае информация по отгрузке и оплате будет обновляться каждый раз после обмена между сервером и платформой. Лучше заводить в системе новых партнеров и заказы во время интеграции с программой. Для этого существует отдельная вкладка, где 

прописывается url веб-страниц, на которых будут создаваться заказы. В соответствующем меню устанавливаются типы и названия платежных систем.

Следующий раздел – «Профили обмена». Здесь вписываются документы лица, ответственного за взаимодействие. Может быть выбрано как физическое, так и юридическое лицо. Среди информации – фамилия, имя, отчество, дата рождения, ИНН.

Настройки со стороны 1С: Предприятия

Чтобы полностью наладить взаимодействие между «Управлением торговлей» и сайтом, необходима настройка не только сайта, но и платформы. Начать ее стоит с установки модуля обмена.

Модуль можно выбрать и скачать на странице официального сайта системы Битрикс. Затем надо 

установить модуль и запустить «Конфигуратор» в 1С. Затем стоит объединить конфигурации. Для этого рекомендуется перейти в «Свойства». Затем нажать «Выполнить».

Новый способ передачи и приема данных добавляется кнопкой «Создать». Его лучше скопировать или провести поиск уже существующих узлов обменов. Затем рекомендуется нажать на «Синхронизацию данных».

Среди опций синхронизации – выполнение передачи информации или показ ее изменений. Здесь же показана версия модуля и техническая информация, которая нужны программистам.

Опции интеграции

Чтобы расширить функционал интеграции, стоит перейти в меню «Обмен с Web-сайтом»

. Здесь можно просмотреть параметры обмена, которые используются в 1С. Есть опция «Открыть список изменений», которая позволяет отслеживать, как пользователи изменяли набор узлов.

Еще одна опция – изменение кодов Битрикс . Позволяет просматривать и править код, который загружается с портала. Есть возможность задать расписание, по которому информация будет передаваться в режиме реального времени.

Опция добавления номенклатурных позиций с портала позволяет импортировать наборы продуктов с определенных веб-страниц. Можно перенести настройки работы с сайтом из другой версии программы «Управление торговлей». Важно установить соответствия электронных платежных систем и и касс.

 Пункт «Запустить обмен» позволяет начать непрерывное отслеживание переменных портала. При этом работа с платформой 1С будет недоступна.

Если нажать кнопку «Перейти», можно увидеть меню создания или редактирования узла. Здесь стоит настроить основные параметры. Функции интеграции:

  1. Обмен товарами. Позволяет выгружать продукты и услуги.
  2. Обмен заказами с платформой.

Приложение позволяет настроить загрузку пользовательских справочников и установить взаимодействие в реальном времени. Здесь настраивается полная выгрузка, когда в программу поступает вся информация, или экспорт только измененных данных. Второй вариант намного быстрее.

Среди возможных изменений – загрузка на сайт информации. Здесь прописывается сайт, ответственное лицо и пароль.

Настройка интеграции товаров

Чтобы появилось меню передачи информации между веб-страницами и 1С, рекомендуется использовать функцию «Обмен товарами». Следующим этапом стоит настроить конфигурацию выгрузки. Здесь есть несколько вкладок.

В разделе основных настроек указывают, какие данные будут загружаться. Чтобы обмен продуктами и услугами с сайтом вообще произошел, необходимо отметить функцию «Товары». Чтобы загружать развернутые данные по товарам, ставится галочка напротив «Свойства».

Также можно загружать картинки и описания товаров. Есть опция по передаче штрихкодов и времени поступления товаров, которые стоят в плане.

Следующий пункт меню – «Выгрузка регистровых данных». Здесь настраивается экспорт стоимости и количества торговых единиц на складе. Есть вариант по переносу тех товарных групп, в которых есть стоимость. Существует возможность вести учет по отдельным складам и разделять продукты на несколько групп.

Раздел «Таблица каталогов» содержит настройки списков продуктов. Здесь можно ввести наименование инфоблока сайта, где будут выводиться продукты и услуги. «Дерево групп» позволяет настроить несколько списков, с которыми производят интеграцию. Также на панели отображается сам вид каталога с необходимыми данными.

В части меню «Отбор и сортировка» можно задавать условия для поиска по номенклатуре, типу цен и товарным остатков. Можно отбирать по категории продуктов и услуг.

В меню «Настройка свойств товаров» выбираются атрибуты, которые будут изменять цену продуктов. Другая часть свойств будет храниться в описаниях.

После правки всех опций стоит произвести интеграционное взаимодействие. Если все настроено корректно, произойдет передача данных.

Интеграция заказов

Настраивать этот раздел возможно, если на главной вкладке помечена соответствующая функция. После этого можно настраивать интеграцию заказов. Здесь есть вкладки:

  1. Обмен заказами. Среди функций – выгружать все данные или только отгруженные. Есть возможность установить временные параметры для взаимодействия. Также предусмотрена интеграция отгрузок. Разработчики дали возможность указывать количество заказов, которые передаются за один сеанс. Если установить переключатель в «Загрузке оплат вместе с заказами», система создаст платежный ордер.
  2. Параметры создания документов. Чтобы начать редактировать ответственных лиц и склады, а также установить ИНН, КПП организации и ее адрес, надо использовать вкладку «Подстановка в создаваемые документы». Эти данные будут автоматически добавляться в заказы с сайта. Чтобы отбирать из 1С торговые единицы с определенными атрибутами, используется «Значение реквизитов и их свойств».
  3. Обмен контрагентами. Здесь устанавливают параметры передачи данных о поставщиках и покупателях. Можно указать идентификацию контрагентов. Если фирма или гражданин не нашелся по внутреннему номеру платформы, для поиска будет использован ИНН или КПП. В пункте «Группа для новых контрагентов» устанавливается папка, куда будут записываться название и стартовые параметры фирмы. Если установить «Не редактировать контрагентов», то в программе не будут изменяться данные поставщиков и покупателей. На вкладке задается подстановка информации о физическом лице, которая берется из XML-файла. Устанавливается соответствие адресов фирм. Есть возможность установить вид данных партнеров.
  4. Отбор и сортировка позволяет выбирать индивидуальных предпринимателей и фирмы по критериям категории.

Последним этапом идет сама передача данных. После нее рекомендуется рассмотреть изменения в списках пользователей, покупателей и заказов.

Интеграция пользовательских справочников

Чтобы связать список доступных на портале товаров с каталогом в 1С, разработчики рекомендуют использовать файл catalog.import.hl. Работа с файлом выполняется в программе 1С:Предприятие. Чтобы импортировать продукты на сервер, надо прописать адрес страницы модуля интеграции в файле.

Затем в платформе нужно открыть «Обмен пользовательскими справочниками». Если нажать «Добавить», можно выбрать справочники, которые необходимо выгрузить на портал. Когда пользователь выбирает справочник, появляются строчки, которые заполняет администратор. Для того, чтобы информация переписывалась из 1С на сайт, устанавливается функция «Выгружаемо».

Дальнейшее взаимодействие веб-страниц и программы аналогично уже рассмотренным вариантам. Следует нажать кнопку обмена, затем выбрать подходящие функции:

  1. Адрес. Здесь прописывается url файла интеграции.
  2. Авторизация. В этой функции вписывается аккаунт и пароль пользователя, который будет обмениваться справочниками с порталом.

Следующий этап – запись изменений в опции загрузки из 1С. На вкладке пользователи корректируют вид номенклатуры и единицу измерения, выбирается набор свойств торговых единиц, их картинки по умолчанию, прочие характеристики.

Импорт начинается при нажатии соответствующей кнопки. Сначала импортируются торговые единицы, а затем изображения к ним.

Интеграция в реальном времени

В обычном состоянии обмен с платформой происходит в фоновом режиме. По умолчанию интервал для соединения с сайтом – 40 секунд. В 1С:Предприятие отображаются два кода – 200 и 302. Если на экране появляется сообщение с кодом 200, значит нужно обменяться информацией с сервером. В случае возникновения кода 302, стоит поменять адрес для синхронизации.

Типичные ошибки взаимодействия

Когда начинающие пользователи пытаются наладить взаимодействие платформы и веб-страниц своими силами, возникают ошибки. Среди наиболее частых – проблемы со входом или недостатки работы сервера. Встречаются поломки на хостинге и логические ошибки.

Если ошибка произошла в базе данных, то исправление потребует вмешательства программиста или специальных знаний. В самом плохом варианте придется поменять хостинг.

Наиболее частая проблема – невозможность войти в аккаунт для синхронизации с сервером. Чтобы корректировать это, веб-страницы добавляются в белый список.

Еще одна неполадка – «Отсутствует необходимая номенклатура». Решается простым добавлением нужных позиций в платформу.

Итог

Для связи сервера и программы 1С используют дополнительный модуль. Он позволяет обмениваться данными в реальном времени. Чтобы система заработала, необходимо произвести корректировки в работе портала и платформы. При правильных настройках становится возможной выгрузка товаров, заказов и справочников с сайта и их размещение на сервере.

1С-Битрикс — Сотбит: 1С инструменты

3.8.21 (04.04.2019)— правки медких багов.
3.8.20 (07.03.2019)— Исправлены мелкие баги и опечатки
3.8.19 (01.03.2019)— исправлена ошибка некорректной обработки событий в новых версиях Битрикс;
— добавлен расширенный функционал создания скидок из свойств товара.
3.8.18 (16.01.2019)— убрано, связь с неактуальным событием модуля «orderCheckInn»;
— исправлено, при записи свойства в инфоблок деактивированные ранее значения не дублировались;
— исправлено, при записи свойства в инфоблок во внешний код записывалось ID значения;
— исправлено, ошибки в описании некоторых функций модуля
3.8.17 (08.03.2018)— Добавлена проверка на наличие папки «upload»,
— Добавлена возможность создания папки при её отсутствии,
— Исправлена информативность в сообщениях об ошибке.
3.8.16 (27.03.2018)— Исправлена ошибка с выгрузкой скидок.
3.8.15 (23.01.2018)-Добавлена ajax проверка инн по типам платильщиков при оформлении заказа
3.8.14 (14.12.2017)-Оптимизировано меню
3.8.13 (27.11.2017)-Исправлен запрос исключения заказов при обмене.
3.8.12 (16.11.2017)-Изменена логика загрузки оффлайн документов.
3.8.11 (04.11.2017)-Исправлена ошибка при обмене, возникающая при определенных условиях.
3.8.10 (27.10.2017)Добавлена уникализация инн по типам платильщиков при оформлении заказа
Добавлены исключения дублирования профилей по инн
3.8.9 (26.10.2017)Мелкие правки
3.8.8 (04.09.2017)Добавлена возможность исключить обновление поля «Основной раздел» у элемента при выгрузки из 1с Добавлена возможность проверять уникальность инн при создании заказа
3.8.7 (30.08.2017)Добавлена возможно создания скидок для нескольких сайтов Добавлена возможность выгрузки оффлайн заказов по профилям
3.8.6 (10.08.2017)Небольшие правки
3.8.5 (31.07.2017)Небольшие правки
3.8.4 (01.06.2017)— Небольшие правки и исправления
3.8.3 (05.05.2017)Исправлены мелкие ошибки
3.8.2 (12.04.2017)Добавлена возможность присваивать пользователям код карты при выгрузке из 1с
Добавлена возможность присваивать новым пользователям после регистрации код свободной карты
Добавлен компонент «Информация по дисконтным картам» для личного кабинета
3.8.1 (04.04.2017)— Небольшие правки и исправления
3.8.0 (27.03.2017)— Деактивация товаров по свойству
3.7.9 (23.03.2017)Добавлены следующие возможности:
— Убрать задвоения документов оплаты
— Убрать задвоения документов отгрузки
— Стягивание значений характеристик торговых предложений в товар
— Не удалять фотографии у торгового предложения если пустые фотографии и товара
— Фотографии в торговые предложения по нескольким характеристикам
— Выгрузка дисконтных карт
— Выгрузка чеков ККМ (На данный момент работает только на УТ11.2)
3.7.8 (29.12.2016)добавлена возможность исключать некоторые значения свойств, которые добавляются в higload — возможность запретить добавление и обновление значений полей для разделов
3.7.7 (27.06.2016)Незначительные правки
3.7.6 (13.05.2016)Правка ошибок
3.7.5 (04.05.2016)Небольшие исправления
3.7.4 (03.05.2016)Небольшие исправления
3.7.3 (26.04.2016)Добавление валюты в скидки по разнице цен
3.7.2 (26.04.2016)Исправление недочетов
3.7.1 (21.04.2016)Добавлена возможность деактивировать товар если остаток на складе 0
3.7.0 (24.03.2016)Добавление возможности выгружать заказы с определенной даты
3.6.22 (11.03.2016)Добавлена возможность выгружать скидки с копейками
3.6.21 (04.03.2016)Добавил запрет
3.6.20 (02.03.2016)Исправление ошибок
3.6.19 (29.09.2015)Небольшие правки
3.6.18 (09.09.2015)Исправление ошибки при загрузке торговых предложений
3.6.17 (27.06.2015)Добавлено ограничение 250 товаров на скидку созданную из 1С инструментов
3.6.16 (20.06.2015)Добавлена возможность игнорирования определенных характеристик про создание highload блока Добавлено удаление прошлой картинки в highload блоке при записи нового изображения
3.6.15 (17.05.2015)Правки в формирование скидки из разницы цен
3.6.14 (08.04.2015)Исправление предупреждение
3.6.13 (07.04.2015)Добавлена возможность выгрузки дополнительных данных в highload блоки для характеристик торгового предложения
3.6.12 (07.04.2015)Исправление предупреждений в модуле
3.6.11 (06.04.2015)Исправление ошибок в режиме работы «Ошибки и предупреждения»
3.6.10 (16.03.2015)Добавление обновления фасетного фильтра при работе с множественными свойствами
3.6.9 (02.03.2015)Исправление ошибки удаления скидок
3.6.8 (02.03.2015)Исправлена ошибка в работе интерфейсов Добавлены параметры в создание скидки для цены и группы пользователей
3.6.7 (27.02.2015)Добавлена возможность «не игнорировать нулевой остаток на складе 1C» Реализована возможность не обновлять раздел товара Доработаны интерфейсы настроек модуля
3.6.6 (20.01.2015)Добавлена возможность отключения кэширования в модуле.
3.6.5 (14.01.2015)Доработка выгрузки фотографий в торговые предложения
3.6.4 (12.01.2015)Добавлена отгрузка фотографий для торгового предложения в поля «Картинка для анонса» и «Детальная картинка»
3.6.3 (09.01.2015)Обновил инструкцию для выгрузки изображений в торговые предложения
3.6.2 (12.12.2014)Небольшие правки
3.6.1 (10.12.2014)Небольшие правки
3.6.0 (04.12.2014)Обновление функционала скидок для обмена с помощью модуля от 1C-Битрикс
3.5.12 (21.11.2014)Добавлена возможность изменения привязки к справочнику highload
3.5.11 (21.11.2014)Незначительные правки
3.5.10 (21.11.2014)Незначительные правки
3.5.9 (12.11.2014)Исправлена ошибка создания highload блока с длинным названием
3.5.8 (09.11.2014)Реализовали удаление товаров из скидки которых больше нет на сайте
3.5.7 (09.11.2014)Исправлена ошибка создания highload инфоблока для характеристики торгового предложения
3.5.6 (20.10.2014)Добавлена настройка параметра «Прекратить дальнейшее применение скидок» при создание скидок
3.5.5 (04.10.2014)Добавлена возможность отгрузки фотографий в торговое предложение по характеристикам
3.5.3 (25.08.2014)Исправили ошибку создания скидки в процентах
3.5.2 (01.07.2014)Исправили ошибку при создании highload блоков с несколькими словами
3.5.1 (24.06.2014)Незначительные изменения
3.5.0 (03.06.2014)Добавлена возможность создания highload справочников для свойств товаров из 1С. Добавлена возможность создания highload справочников для характеристик торговых предложений из 1С. Обновлена инструкция, добавлены видео-уроки.
3.1.0 (24.05.2014)Добавлена возможность создания скидок при выгрузке из 1С при разнице цен. Обновлена инструкция, добавлен видео-урок.
3.0.0 (18.05.2014)ВАЖНОЕ ОБНОВЛЕНИЕ: Реализована выгрузка скидок на товары из 1С
2.6.1 (15.05.2014)Добавлена возможность отделения характеристик торгового предложения в тип свойства «Список» Обновлена инструкция к модулю, добавлено видео
2.5.10 (11.04.2014)Исправил ошибки и добавил кэширование при сохранение артикула товара в торговое предложение.
2.5.9 (22.03.2014)Реализовал привязку свойства «привязка к элементу» к инфоблоку справочника
2.5.8 (22.03.2014)Добавили проверку на цифры при автоматическом создание символьного кода у свойства
2.5.5 (21.03.2014)Добавили проверку на цифры при автоматическом создание символьного кода у свойства
2.5.4 (20.03.2014)Незначительные правки
2.5.3 (18.03.2014)Убрал амперсанд из функций для работы в современных версиях
2.5.2 (11.02.2014)Правка файла настроек модуля
2.5.1 (23.01.2014)Исправление ошибки при первом создание элемента справочника
2.5.0 (14.01.2014)БОЛЬШОЕ ОБНОВЛЕНИЕ — модуль перенесен в отдельный раздел, улучшена архитектура — добавлена возможность связи со свойствами инфоблоков — реализован список свойств свойств созданных 1С инструменты — страница связи со справочниками свойств созданных модулем — ограничение отгрузки полей из 1С при создании элемента — реализованы справочники для всех свойств товара — добавлена множественность свойства связи со справочником — улучшена производительность — добавлена страница с инструкцией по использованию ВАЖНО: СВОЙСТВА БУДУТ СОЗДАНЫ МОДУЛЕМ 1С ИНСТРУМЕНТЫ ЗАНОВО, ЧТО БЫ УСТАНОВИТЬ СВЯЗЬ С НИМИ.
2.0.2 (30.11.2013)Исправлены мелкие баги
2.0.1 (26.11.2013)Исправлены ошибки кеширования при работе с memcache Добавлена возможность отгрузки реквизитов в отдельные свойства
2.0.0 (15.11.2013)БОЛЬШОЕ ОБНОВЛЕНИЕ: 1) Почти полностью переделана структура классов. 2) Добавлено кэширование на многие части модуля, что увеличит производительность. 3) Автоматическое создание справочников характеристик торговых предложений, элементов справочников, свойств для связи со справочником. 4) Автоматическое создание множественных свойств для полей с разделителем. 5) Возможность использования множественных полей у торговых предложений 6) Добавлена возможность уникальности символьных кодов свойств создаваемых из 1С. Модуль с версии 2.0.0 стал платный! Для использования нового функционала необходимо его удалить. Новый функционал вы можете тестировать в демо-режиме. Цена модуля 1499р, 15 дней запуска продаж акция цена 999р.
1.0.7 (26.09.2013)Добавлена возможность игнорировать значения отмены которые пришли в файле обмена из 1С
1.0.6 (07.06.2013)Исправил ошибку класса CSnsToolsC.
1.0.5 (11.04.2013)Исправил ошибки по отгрузке характеристик в отдельные свойства
1.0.4 (24.01.2013)Реализовал возможность выгружать характеристики торговых предложений в отдельные строки
1.0.3 (18.01.2013)Исправление ошибок во внешнем виде интерфейса
1.0.2 (11.01.2013)Добавил возможность не обновлять определенные поля при выгрузке из 1С. Разместил функционал по вкладкам.
1.0.1 (29.11.2012)Изменение вида интерфейса под 12 версию.

После выгрузки из 1С некорректно отображаются картинки

После выгрузки из 1С некорректно отображаются картинки

ID статьи: 23 , создана 11 Фев 2016

Актуально для:

После выгрузки из 1С возникли проблемы с отображением картинок товаров: они слишком большие/маленькие, плохого качества и т. д.


Решение

Подобные проблемы возникают из-за выгрузки в новый инфоблок каталога, в котором отсутствуют настройки изображений. Необходимо внести изменения в инфоблок каталога и настройки модуля интеграции 1С, а затем повторить полную выгрузку. 

  1. Перейдите в настройки инфоблока каталога товаров:
    Контент → Инфоблоки → Типы инфоблоков → Каталог

  2. Перейдите на вкладку «Поля» и выставите следующие настройки:

    — создавать картинку анонса из детальной (если не задана)
    — удалять картинку анонса, если удаляется детальная
    — создавать картинку анонса из детальной даже если задана
    — уменьшать, если большая

    Задайте размер изображений (по умолчанию он составляет 170х170 px). Сохраните изменения.

  3. Перейдите в настройки интеграции с 1С:
    Магазин → Настройки → Интеграция с 1С

  4. Проверьте правильность настроек:

    «Использовать контрольные суммы элементов для оптимизации обновления каталога» (неактивна)
    «Использовать настройки инфоблока для обработки изображений» (активна).


  5. Сохраните изменения и повторно выполните полную выгрузку из 1С в каталог решения.  


Битрикс — Реквизиты товара из 1С

Демо-версия полностью функциональная, срок демо-периода 30 дней.

Этот модуль (и ещё много других) вы можете получить от нас в подарок при покупке модуля «Продвинутый обмен с 1С»

——

Модуль помогает, если 1С выгружает некоторые реквизиты товара «не туда».

Решение закрывает много вопросов что и куда выгружать. Существенно упрощает интеграцию готового сайта с уже заполненной 1С.

Модуль необходим для многих готовых интернет-магазинов. Потому что разработчики готового магазина  не пишут сайт под конкретного заказчика и не могут знать, как заказчик заполнил свою 1С.

Модуль содержит много опций, какие реквизиты 1С в какие поля и свойства записывать.

1. Название товара

— название на сайте можно выгрузить из свойства
— название на сайте можно выгрузить из полного наименования в 1С
— название на сайте можно выгрузить из Наименования 1C (по умолчанию)
— название на сайте можно не записывать при выгрузке — редактор сайта напишет его сам.

2. Краткое описание

— краткое описание можно выгрузить из свойства,
— краткое описание можно выгрузить из описания в 1С,
— краткое описание можно выгрузить из полного наименования в 1С (по умолчанию)
— краткое описание можно не записывать при выгрузке — редактор сайта напишет его сам

3. Детальное описание

— детальное описание можно выгрузить из свойства,
— детальное описание можно записывать из Описания в 1С (по умолчанию)
— детальное описание можно не записывать — редактор сайта напишет его сам.

4. Множественное свойство реквизиты выгрузить в отдельные свойства

Стандартный обмен с 1С выгружает дополнительные данные о товаре в одно множественное свойство инфоблока «Реквизиты»:
— Код,
— Вес,
— Полное наименование,
— ВидНоменклатуры,
— ТипНоменклатуры,
— Упаковка,
— ЕдиницаИзмеренияУпаковки
— КоэффициентУпаковки

Наш модуль позволяет записать реквизиты в отдельные свойства инфоблока, чтобы потом удобно с ними работать.

Например, код товара из 1С можно записать в отдельное свойство, чтобы оптовые партнеры или сотрудники могли быстро по коду найти товар.

Набор реквизитов зависит от того, какая у вас конфигурация 1С, и, как заполнена информация о товаре.

———

Внимание: реквизит «Код» выгружается не из любой 1С.

Мы устанавливали дополнительные модули для обмена с 1С и проверяли.

«Код» выгружается с помощью:
дополнения для УТ 11.1.1.13 (16 Мб) и выше,
дополнения для УТ 10.3.21.2 (11 Мб) и выше
https://1c.1c-bitrix.ru/ecommerce/download.php

Подарок

Этот модуль (и ещё много других) вы можете получить от нас в подарок при покупке модуля «Продвинутый обмен с 1С»

Купите модуль «Продвинутый обмен с 1С» пришлите нам на [email protected] купон, и что вы хотите подарок. А мы вышлем вам ключи от модулей.

Характеристики торговых предложений

Этот модуль работает с реквизитами товара.

Для работы с характеристиками торговых предложений мы рекомендуем модуль: «Характеристики торговых предложений из 1С»

Статья:

Модуль «Реквизиты товара из 1С» 2.0. Когда что-то выгружается не туда или не оттуда

Если количествo не пришло из 1С, то устанавливать 0

 Данная опция исправляет ошибку при выгрузке доступного количества товаров из 1С. Когда остаток товара в 1С равен 0, а на сайте он ещё есть в наличии.

Настройки → Настройки продукта → Настройки модулей → Продвинутый обмен с 1С

На вкладке «Дополнительные настройки»:

Доступное количество приходит из 1С в файле offers.xml, например, <Количество>10<Количество>.

В Битриксе раньше считалось, что если <Количество> не пришло, то остаток надо записать 0.

В информационных блоках версии 14.0.6 от 2014-01-13 произошло важное изменение:
Теперь если <Количество> не пришло, то 0 не записывается. Ничего не происходит. Остается старое значение больше 0. Товар остается на сайте, как будто он есть в наличии.


В новых версиях дополнения Битрикса для 1С выгружается не пустое значение, а <Количество>0<Количество>, и этой ошибки больше нет. 0 записывается, как надо.

Но со старыми версиями 1С эта ошибка есть. На текущий момент (инфоблоки 14.5.5) поведение Битрикса не исправлено.

Опция «Если количествo не пришло из 1С, то устанавливать 0» позволяет без изменения кода в ядре Битрикса или в 1С записывать 0, если ничего не пришло.

Опция влияет только на доступное количество товаров. Со складами не работает.

Как проверить есть ли ошибка на вашем сайте, и нужна ли вам эта опция?
  • Выгрузите на сайт товар с количеством > 0.
  • Измените остаток в 1С, чтобы было 0.
  • Выгрузите на сайт еще раз.
Если у вас количество не стало 0,  значит вам следует попробовать эту опцию.

Внимание: если у вас используются торговые предложения, и вы включили опцию «Если количествo не пришло из 1С, то устанавливать 0», то может ничего не поменяться при следующем обмене.

Попробуйте отключить в настройках обмена с 1С ( Магазин → Настройки → Интеграция с 1С ) опцию «Использовать контрольные суммы элементов для оптимизации обновления каталога». После этого повторите обмен.

Опция «Использовать контрольные суммы элементов для оптимизации обновления каталога» полезная и реально ускоряет обмен. Включите ее обратно, после полной выгрузки товаров.

 Дополнительно | Описание курса | Реквизиты товара из 1С 

   

1С инструменты — расширение стандартного обмена

Интеграция 1C и 1C-bitrix идет из коробки и возможности интеграции из стандартной поставки действительно широкие, но есть функционал, который не был включен в нее. Модуль «1C инструменты» позволяет расширить возможности интеграции в пару кликов без программирования.

Модуль «1C инструменты», в отличие от многих представленных в marketplace, не затрагивает ядро 1C-bitrix, тем самым поддерживает будущие обновления интеграции с 1С.

Идеально подходит для настройки выгрузки из 1С под стандартный магазин  от 1С-Битрикс, свойства из 1С будут в нужных полях!

Функционал дисконтных карт позволит вам выгружать оффлайн клиентов в интернет-магазин, благодаря этому вы сможете:
— запускать по ним e-mail/sms маркетинг
— сделать личный кабинет клиента с его заказами с оффлайн
— повысить продажи через онлайн
подробнее

Бесплатный демо-период 14 дней.
Подробная инструкция и видео-уроки встроены модуль.

Функционал, который реализован на данный момент:

Дисконтные карты:
— выгрузка дисконтных карт с привязкой к контрагенту
— создание накопительной скидки с условием
— Перемещение пользователя по группам с разными ценами
— Выгрузка чеков ККМ и создание заказов (редакция УТ 11.2)

Скидки на товары
—  Выгрузка скидок из 1С через свойство товара
— Создание скидок из 1С за счет разницы в видах цен, только для редакций с несколькими видами цен.

Каталог — разделы товаров
— Возможность не затирать разделы выставленные на сайте для товара при выгрузке 1С

Каталог — товары:
— Не игнорировать нулевой остаток из 1С
— Устанавливать по умолчанию “Уменьшать количество при заказе”
— Задавать количество товаров которое будет у всех товаров отгруженных из 1С
— Устанавливать “Ставку налогов” у всех товаров отгруженных из 1С
— Устанавливать по умолчанию “НДС включен в цену”
— Настройки отгрузки множественных свойств типа “строка” за счет разделителя.
— Автоматическое создание множественных свойств для полей с разделителем
— Возможность использования множественных полей у торговых предложений
— Возможность создания справочников для свойств товара, в том числе и множественные справочники.
— Возможность создания highload справочников для свойств товара, в том числе и множественные highload справочники.
— Не заполнять определенные поля при создании элемента
— Не обновлять определенные поля при выгрузке из 1С
— Добавлена возможность уникальности символьных кодов свойств создаваемых из 1С
— Добавлена возможность отгрузки реквизитов в отдельные свойства

Каталог —  торговые предложения:
— Выгружать характеристики торговых предложений в поля инфоблока типа «Строка»
— Выгружать характеристики торговых предложений в поля инфоблока типа «Список»
-Автоматическое создание справочников характеристик торговых предложений, элементов справочников, свойств для связи со справочником( Привязка к элементам), в том числе множественные свойства
-Автоматическое создание highload справочников характеристик торговых предложений, элементов highload справочников, свойств для связи с highload справочником в том числе множественные свойства.
— Ставить артикул в торговые предложения
— Выгружать изображения в торговые предложения из товара по характеристикам (цвет, размер и т.д.)

Заказы
— Возможность игнорировать значения отмены, которые пришли в файле обмена из 1С
— Выгрузка заказов с определенной даты
— Возможность удалять дубли документов оплаты и отгрузки

Документация: https://www.sotbit.ru/learning/course7/chapter0222/
Видео-курс: https://www.sotbit.ru/learning/course7/lesson66/

Статьи:
Инструкция модуля 1С инструменты

Настройка 1С УТ 11 для выгрузки в 1с-bitrix

Инструкция по проведению заказов в 1С УТ 11:

«1С инструменты» версия 2.0.0 – теперь проще!

«1С инструменты» версия 2.5.0 – расширяем горизонты!

1С инструменты версия 3.0.0 — скидки это просто. Видео-урок.

1С инструменты версия 3.1.0 — скидки стали еще проще. Видео-урок

1С инструменты версия 3.5.0 — выгрузка highload справочников. Видео-урок.

Объединение офлайн и онлайн магазинов: Чеки ККМ. Дисконтная программа.

Настроим интеграцию с 1С: http://www.sotbit.ru/services/1C_integration/  

Хранилище на основе контрольной суммы

— JFrog — Документация JFrog

Дедупликация

Artifactory сохраняет любой двоичный файл только один раз. Это то, что мы называем «однократным хранением». При первой загрузке файла Artifactory выполняет необходимые вычисления контрольной суммы при сохранении файла, однако, если файл загружается снова (например, в другое место), выгрузка реализуется как простая транзакция базы данных, которая создает другое сопоставление записей. контрольную сумму файла на новое место.Фактически нет необходимости снова сохранять файл в хранилище. Независимо от того, сколько раз файл загружается, в хранилище файлов хранится только одна копия файла.

Копирование и перемещение файлов

Копирование и перемещение файла осуществляется путем простого добавления и удаления ссылок на базу данных и, соответственно, выполнение этих действий аналогично транзакции базы данных.

Удаление файлов

Удаление файла также является простой транзакцией базы данных, в которой удаляется соответствующая запись базы данных.Сам файл не удаляется напрямую, даже если удаляется последняя указывающая на него запись в базе данных. Так называемые «осиротевшие» файлы удаляются в фоновом режиме процессами сборки мусора Artifactory.

Загрузка, загрузка и репликация

Перед перемещением файлов из одного места в другое Artifactory отправляет заголовки контрольной суммы. Если файлы уже существуют в месте назначения, они не передаются, даже если они существуют по другому пути.

Производительность файловой системы

Производительность файловой системы значительно улучшена, поскольку действия в файловом хранилище реализованы как транзакции базы данных, поэтому нет необходимости блокировать запись в файловой системе.

Поиск по контрольной сумме

Поиск файла по его контрольной сумме происходит очень быстро, поскольку Artifactory фактически ищет в базе данных указанную контрольную сумму.

Гибкий макет

Поскольку база данных представляет собой уровень косвенного обращения между хранилищем файлов и отображаемым макетом, может поддерживаться любой макет, будь то один из стандартных форматов упаковки, таких как Maven1, Maven2, npm, NuGet и т. Д., Или любой другой. нестандартный макет.


Поддержка SHA-256

Начиная с версии 5.5, Artifactory изначально поддерживает SHA-256. Контрольная сумма SHA-256 артефакта вычисляется при его развертывании в Artifactory и сохраняется в постоянном хранилище как часть базы данных. Конечная точка Set Item SHA256 Checksum REST API (которая устанавливает контрольную сумму SHA-256 артефакта в качестве одного из его свойств) по-прежнему поддерживается для обратной совместимости, однако эта конечная точка в конечном итоге будет устаревшей.

Artifactory поддерживает контрольные суммы SHA-256 полнофункционально и проявляется несколькими способами:

  • Их можно использовать в запросах AQL и возвращать в соответствующих ответах
  • Они включены в качестве информации заголовка загрузки
  • Они могут использоваться в конечных точках API развертывания и развертывания артефактов контрольной суммы REST.
  • Они включены при загрузке папки
  • Они отображаются на вкладке «Общая информация» обозревателя репозитория артефактов
  • Их можно использовать в различных конечных точках REST API, используемых для поиска

После обновления до версии 5.5 (или выше), Artifactory будет полностью способна использовать контрольную сумму SHA-256 артефакта для любой из упомянутых выше функций.

Полноценное использование встроенной поддержки Artifactory для SHA256

Для новых загружаемых артефактов будет автоматически вычисляться контрольная сумма SHA-256, однако для артефактов, которые уже были размещены в Artifactory до обновления, контрольная сумма SHA-256 не будет отображаться. базы пока нет.

Чтобы в полной мере использовать возможности Artifactory SHA-256, вам необходимо запустить процесс, который переносит базу данных Artifactory, убедившись, что запись для каждого артефакта включает его контрольную сумму SHA-256.

Перенос базы данных с включением SHA-256

Перенос базы данных может потребовать значительных ресурсов.

В зависимости от размера базы данных этот процесс может потребовать значительных ресурсов. Чтобы уменьшить возможную нагрузку на вашу систему, вы можете настроить процесс, используя несколько системных свойств, перечисленных ниже, или REST API.Мы настоятельно рекомендуем прочитать весь процесс миграции, чтобы обеспечить оптимальную конфигурацию для вашей системы.

Миграция настраивается с помощью набора свойств в файле artifactory.system.properties от Artifactory , как описано ниже, или с помощью задачи миграции Start SHA256 и Stop SHA256 Migration Task REST Конечные точки API и, по сути, делают следующее:

  • Поиск всех записей базы данных, не имеющих значения SHA-256.
  • Для каждой такой записи найдите все остальные в базе данных с тем же значением контрольной суммы SHA1.
    • Если у любого из них уже вычислен SHA-256, используйте его для обновления всех остальных
    • Если ни у одного из них нет SHA- 256 уже вычислено, вычислите его и затем используйте его для обновления всех остальных
  • Если нет других записей с таким же значением SHA1, рассчитайте SHA-256

Сначала выполните сборку мусора для оптимизации процесса миграции

Процесс миграции завершен, когда все записи базы данных будут заполнены значениями SHA-256.Поскольку ваша база данных может содержать записи для артефактов, которые были удалены, но еще не были физически удалены с помощью сборки мусора, мы настоятельно рекомендуем вручную вызывать сборку мусора перед запуском миграции базы данных. Удаление удаленных артефактов может значительно улучшить производительность и общее время выполнения миграции за счет уменьшения количества генерируемых загрузок.

Настройка процесса миграции

Процесс миграции можно настроить с помощью следующих системных свойств или с помощью задачи миграции Start SHA256 и Stop SHA256 Migration Task REST API endpoints

По умолчанию миграция будет работать на первичном узле, однако, используя свойство forceRunOnNodeId , описанное ниже, вы можете настроить его для работы на вторичном узле.

Имя свойства
Функция

artifactory.sha2.migration.job.enabled true

[false] который переносит базу данных с включением контрольной суммы SHA-256 для всех артефактов, будет вызываться при перезапуске узла.

artifactory.sha2.migration.job.forceRunOnNodeId

[По умолчанию: ноль]

Действительно только для установки высокой доступности.

По умолчанию процесс миграции выполняется на основном узле. Чтобы запустить процесс на любом другом узле, установите для этого значения идентификатор соответствующего узла (как указано в разделе настроек узла в YAML-файле системы Artifactory).

Запуск миграции на выделенном узле

Это дает вам возможность выделить конкретный узел для запуска миграции и выделить дополнительные ресурсы, что позволит ему быстрее завершить процесс.

Установите свойство как на первичном, так и на соответствующем вторичном узле

Чтобы запустить процесс миграции на вторичном узле, вам необходимо установить это свойство на ОБЕИМ основном узле и соответствующем вторичном узле .Artifactory по-прежнему будет запускать процесс только на соответствующем вторичном узле.

artifactory.migration.job.dbQueryLimit

[По умолчанию: 100]

Задает количество строк, которые должны извлекаться каждый раз, когда задание миграции запрашивает в базе данных записи, в которых отсутствуют значения SHA-256 .

artifactory.migration.job.batchSize

[По умолчанию: 10]

Артефакты обновляются одновременно в пакетах с новыми значениями SHA-256, а затем инициируется цикл сна.Это свойство определяет количество артефактов в каждом пакете.

artifactory.sha2.migration.job.queue.workers

[по умолчанию: 2]

Указывает количество параллельных потоков, которые должны выполнять фактические обновления артефактов.

Каждое одновременное обновление артефакта может потребовать загрузки для вычисления его контрольной суммы SHA-256. Однако артефакт будет загружен только один раз, когда впервые будет найдена запись в базе данных без значения SHA-256.Последующие записи в базе данных для одного и того же артефакта (которые, следовательно, имеют то же значение SHA1) будут повторно использовать уже вычисленное значение SHA-256.

   

artifactory.migration.job.sleepIntervalMillis

[По умолчанию: 5000 миллисекунд]

Задает продолжительность цикла ожидания, который запускается после каждого пакета обновлений.

Образец фрагмента, который вы можете вставить в свой артефакт.system.properties приведен ниже, отрегулируйте количество рабочих процессов в зависимости от загрузки ввода-вывода и ЦП:

Пример фрагмента artifactory.system.properties

 ## Блок миграции SHA2
artifactory.sha2.migration.job.enabled = true
artifactory.sha2.migration.job.queue.workers = 5

Требуется перезапуск

Чтобы изменения в конфигурации миграции вступили в силу, необходимо перезапустить экземпляр (или узел в случае установки высокой доступности), на котором он будет запущен.Указанные выше значения по умолчанию предназначены для обеспечения оптимальной работы вашей системы в процессе миграции. Чтобы ускорить процесс миграции, вы можете настроить эти значения (помня об аппаратных ограничениях), однако это может сказаться на производительности системы.

Мониторинг процесса миграции

В зависимости от размера вашего хранилища и настроенных вами параметров миграции процесс миграции может занять много времени. Чтобы упростить мониторинг процесса, сообщения о состоянии и ошибках печатаются в специальном файле журнала: JFROG _HOME / artifactory / var / log / artifactory-sha256-migration.журнал. Кроме того, некоторые сообщения (инициация процесса, ошибки запуска) также регистрируются в файле JFROG _HOME / artifactory / var / log / artifactory-service.log .

После миграции SHA256

Хотя это не обязательно, рекомендуется удалить все свойства системы, связанные с SHA256, после завершения миграции и выполнить перезапуск.

.Производительность

— как оптимизировать медленный запрос обновления таблицы MySQL?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

10 основных шагов по оптимизации доступа к данным в SQL Server: Часть I (использование индексации)

Введение

« Прошло несколько месяцев с тех пор, как вы и ваша команда успешно разработали и развернули сайт в Интернете. У вас есть довольно довольный клиент, поскольку сайт смог привлечь тысячи пользователей для регистрации и использования сайта в небольшом количестве. времени. Ваш клиент, руководство, команда и вы — все довольны.

Жизнь — это не клумба из роз.Поскольку количество пользователей на сайте начало быстро расти день ото дня, начали возникать проблемы. Начали приходить электронные письма от клиента с жалобами на то, что сайт работает слишком медленно (некоторые из них были гневными). Клиент утверждал, что они начали терять пользователей.

Вы начинаете исследовать приложение. Вскоре вы обнаружите, что производственная база данных работает очень медленно, когда приложение пытается получить доступ / обновить данные. Заглянув в базу данных, вы обнаружите, что таблицы базы данных увеличились в размерах, и некоторые из них содержат сотни тысяч строк.Команда тестирования провела тест на производственной площадке, и они обнаружили, что процесс отправки заказа занимал 5 долгих минут, тогда как раньше он занимал всего 2/3 секунды на тестовой площадке до запуска производства. «

Это та же старая история для тысяч прикладных проектов, разработанных по всему миру. Почти каждый разработчик, включая меня, когда-нибудь участвовал в этой истории в своей жизни. Я знаю, почему возникают такие ситуации, и могу сказать вам, что с этим делать.

Посмотрим правде в глаза. Если вы являетесь участником этой истории, вы, должно быть, написали процедуры доступа к данным в своем приложении не лучшим образом, и сейчас пора их оптимизировать. Я хочу помочь вам в этом, поделившись с вами своим опытом и результатами по оптимизации доступа к данным в этой серии статей. Я просто надеюсь, что это может помочь вам оптимизировать процедуры доступа к данным в существующих системах или разработать процедуры доступа к данным оптимизированным способом в ваших будущих проектах.

Область применения

Обратите внимание, что основная цель этой серии статей — «оптимизация производительности доступа к данным в транзакционных (OLTP) базах данных SQL Server».Но большинство методов оптимизации примерно одинаковы для других платформ баз данных.

Кроме того, методы оптимизации, которые я собираюсь обсудить, применимы только для разработчиков программных приложений. То есть, как разработчик, я сосредоточусь на проблемах, которым вы должны следовать, чтобы убедиться, что вы сделали все возможное для оптимизации кода доступа к данным, который вы написали или собираетесь писать в будущем. Администраторы баз данных (DBA) также могут сыграть большую роль в оптимизации и настройке производительности базы данных.Но области оптимизации, которые входят в сферу компетенции администраторов баз данных, выходят за рамки этих статей.

У нас есть база данных для оптимизации, приступим!

Когда приложение на основе базы данных работает медленно, существует 90% -ная вероятность того, что процедуры доступа к данным этого приложения не оптимизированы или написаны не лучшим образом. Итак, вам необходимо пересмотреть и оптимизировать свои процедуры доступа к данным / обработки данных для повышения общей производительности приложения.

Давайте начнем нашу миссию по оптимизации с пошагового процесса:

Шаг 1. Примените правильную индексацию к столбцам таблицы в базе данных

Что ж, некоторые могут поспорить, должно ли правильное индексирование быть первым шагом в процессе оптимизации производительности для базы данных.Но я бы предпочел правильно применять индексацию в базе данных в первую очередь по двум причинам:

  1. Это позволит вам достичь максимально возможной производительности в кратчайшие сроки в производственной системе.
  2. Применение / создание индексов в базе данных не потребует от вас внесения каких-либо изменений в приложение и, следовательно, не потребует никакой сборки и развертывания.

Конечно, это быстрое улучшение производительности может быть достигнуто, если вы обнаружите, что индексирование в текущей базе данных не выполняется должным образом.Однако, если индексирование уже выполнено, я все равно рекомендую вам пройти этот шаг.

Что такое индексация?

Я думаю, вы знаете, что такое индексация. Но я видел, как многие люди не понимают этого. Итак, давайте попробуем еще раз разобраться в индексировании. Давайте прочитаем небольшой рассказ.

Когда-то в старинном городе была большая библиотека. Там были тысячи книг, но книги по полкам не были расположены в произвольном порядке. Таким образом, каждый раз, когда человек просил книгу у библиотекаря, у библиотекаря не было другого выхода, кроме как проверять каждую книгу, чтобы найти нужную книгу, которая нужна человеку.Поиск нужной книги раньше занимал несколько часов у библиотекаря, и большую часть времени людям, которые просили книгу, приходилось ждать долго.

[Хм … звучит как таблица без первичного ключа. Когда данные ищутся в таблице, ядро ​​базы данных должно сканировать всю таблицу, чтобы найти соответствующую строку, что выполняется очень медленно.]

Жизнь становилась невыносимой для библиотекаря, так как количество книг и людей, просящих книги, росли день ото дня.Однажды в библиотеку пришел умный парень и, увидев измеримую жизнь библиотекаря, посоветовал ему пронумеровать каждую книгу и расположить книжные полки по их количеству. «Какая мне польза?» — спросила библиотекарь. Умный парень ответил: «Ну, теперь, если кто-то даст вам номер книги и попросит эту книгу, вы сможете быстро найти полки с номером книги, а на этой полке вы сможете найти эту книгу очень быстро, как только книги расположены по их количеству ».

[Нумерация книг похожа на создание первичного ключа в таблице базы данных. Когда вы создаете первичный ключ в таблице, создается дерево кластеризованного индекса, и все страницы данных, содержащие строки таблицы, физически сортируются в файловой системе в соответствии со значениями их первичных ключей. Каждая страница данных содержит строки, которые также сортируются на странице данных в соответствии со значениями их первичных ключей. Таким образом, каждый раз, когда вы запрашиваете любую строку из таблицы, сервер базы данных сначала находит соответствующую страницу данных, используя дерево кластеризованного индекса (например, сначала находит книжную полку), а затем находит нужную строку на странице данных, которая содержит первичный ключ. ценность (например, найти книгу на полке).]

«Это именно то, что мне нужно!» Возбужденный библиотекарь тут же начал нумеровать книги и раскладывать их по разным книжным полкам. Он потратил целый день на эту аранжировку, но в конце дня он протестировал и обнаружил, что книгу теперь можно найти по номеру в кратчайшие сроки! Библиотекарь была очень довольна.

[Именно это происходит, когда вы создаете первичный ключ в таблице. Внутри создается кластеризованное индексное дерево, а страницы данных физически сортируются в файле данных в соответствии со значениями первичного ключа.Как вы легко понимаете, для таблицы можно создать только один кластеризованный индекс, поскольку данные можно физически упорядочить, используя только одно значение столбца в качестве критерия (первичный ключ). Как будто книги можно расположить только по одному критерию (номер книги здесь).]

Подождите! Проблема еще не решена полностью. Уже на следующий день человек спросил книгу по названию книги (у него не было номера книги, у него было только название книги). У бедного библиотекаря не было другого выхода, кроме как просмотреть все пронумерованные книги от 1 до N, чтобы найти ту, которую просил человек.Он нашел книгу на полке 67 . Библиотекарь нашла книгу за 20 минут. Раньше ему требовалось 2-3 часа, чтобы найти книги, когда они не были расставлены по полкам, так что это было улучшением. Но по сравнению со временем поиска книги по ее номеру (30 секунд), эти 20 минут показались библиотекарю очень большим количеством времени. Итак, он спросил мудрого человека, как это исправить.

[Это происходит, когда у вас есть таблица Product, в которой есть ProductID с первичным ключом, но у вас нет другого индекса в таблице.Таким образом, когда продукт должен быть найден с использованием названия продукта, ядро ​​базы данных не имеет другого выхода, кроме как сканировать все физически отсортированные страницы данных в файле, чтобы найти нужный элемент.]

Мудрец сказал библиотекарю: «Ну, поскольку вы уже разместили свои книги, используя их серийные номера, вы не можете их переупорядочивать. Лучше создайте каталог или указатель, где у вас будут все названия книг и соответствующие им серийные номера. . В этом каталоге расположите названия книг по их буквенным номерам и сгруппируйте названия книг, используя каждый алфавит, чтобы, если кто-то захочет найти книгу под названием «Система управления базами данных», вы просто выполните следующие шаги, чтобы найти книгу:

  1. Перейдите в раздел «D» названия вашей книги «Каталог» и найдите там название книги.
  2. Прочтите соответствующий серийный номер книги и найдите книгу по серийному номеру (вы уже знаете, как это сделать).

«Ты гений!» — воскликнула библиотекарь. Потратив несколько часов, он немедленно создал каталог «Название книги» и с помощью быстрого теста обнаружил, что ему требуется всего одна минута (30 секунд, чтобы найти серийный номер книги в каталоге «Название книги», и 30 секунд, чтобы найти номер книги). book по серийному номеру), чтобы найти книгу по ее названию.

Библиотекарь подумал, что люди могут запрашивать книги по нескольким другим критериям, таким как название книги и / или имя автора и т. Д., Поэтому он создал аналогичный каталог для имен авторов, и после создания этих каталогов библиотекарь мог найти любую книгу, используя общие критерии поиска книг (серийный номер, название книги, имя автора) в течение минуты. Бедствия библиотекаря вскоре закончились, и многие люди стали собираться в библиотеке за книгами, так как они могли получить книги очень быстро, и библиотека стала очень популярной.

Библиотекарь с тех пор жил счастливо. История заканчивается.

К этому времени, я уверен, вы поняли, что такое индексы на самом деле, почему они важны и какова их внутренняя работа. Например, если у нас есть таблица «Продукты», наряду с созданием кластеризованного индекса (который создается автоматически при создании первичного ключа в таблице), мы должны создать некластеризованный индекс в столбце ProductName . Если мы это сделаем, движок базы данных создаст дерево индекса для некластеризованного индекса (например, каталог «название книги» в истории), где названия продуктов будут отсортированы на страницах индекса.Каждая страница индекса будет содержать диапазон названий продуктов вместе с соответствующими значениями первичных ключей. Таким образом, при поиске продукта с использованием имени продукта в критериях поиска, механизм базы данных сначала будет искать некластеризованное дерево индекса для имени продукта, чтобы найти значение первичного ключа книги. После обнаружения механизм базы данных затем выполняет поиск в дереве кластеризованных индексов с помощью первичного ключа, чтобы найти строку для фактического элемента, в котором выполняется поиск.

Вот как выглядит дерево индексов:

Древовидная структура индекса

Это называется B + Tree (сбалансированное дерево).Промежуточные узлы содержат диапазон значений и направляют механизм SQL, куда идти при поиске определенного значения индекса в дереве, начиная с корневого узла. Листовые узлы — это узлы, которые содержат фактические значения индекса. Если это дерево кластеризованного индекса, конечные узлы являются физическими страницами данных. Если это некластеризованное индексное дерево, конечные узлы содержат значения индекса вместе с кластерными индексными ключами (которые ядро ​​базы данных использует для поиска соответствующей строки в кластеризованном индексном дереве).

Обычно поиск нужного значения в индексном дереве и переход оттуда к фактической строке занимает очень мало времени для механизма базы данных. Таким образом, индексация обычно улучшает операции по извлечению данных.

Пора применить индексирование в вашей базе данных для быстрого получения результатов!

Выполните следующие действия, чтобы обеспечить правильное индексирование в базе данных:

Убедитесь, что каждая таблица в вашей базе данных имеет первичный ключ.

Это гарантирует, что для каждой таблицы будет создан кластерный индекс (и, следовательно, соответствующие страницы таблицы будут физически отсортированы на диске в соответствии с полем первичного ключа).Таким образом, любая операция извлечения данных из таблицы с использованием первичного ключа или любая операция сортировки в поле первичного ключа или любом диапазоне значений первичного ключа, указанном в предложении where , будет извлекать данные из таблицы очень быстро.

Создать некластеризованные индексы для столбцов:
  • Часто используется в критериях поиска
  • Используется для объединения других таблиц
  • Используется в качестве полей внешнего ключа
  • Имеет высокую избирательность (столбец, который возвращает низкий процент (0-5%) строк от общего количества строк на определенное значение)
  • Используется в пункте ORDER BY
  • Типа XML (необходимо создать первичный и вторичный индексы; подробнее об этом в следующих статьях)

Ниже приведен пример команды создания индекса для стол:

 СОЗДАТЬ ИНДЕКС
NCLIX_OrderDetails_ProductID ВКЛ
dbo.OrderDetails (ProductID) 

В качестве альтернативы можно использовать SQL Server Management Studio для создания индекса нужной таблицы

Создание индекса с помощью SQL Server Management Studio

Шаг 2: Создайте соответствующие индексы покрытия

Значит, вы создали все соответствующие индексы в своей базе данных, верно? Предположим, в этом процессе вы создали индекс для столбца внешнего ключа ( ProductID ) в таблице Sales (SelesID, SalesDate, SalesPersonID, ProductID, Qty) .Теперь, если предположить, что столбец ProductID является «высокоселективным» столбцом (выбирает менее 5% от общего количества строк с использованием любого значения ProductID в критериях поиска), любой запрос SELECT , который считывает данные из эта таблица использует индексированный столбец ( ProductID ) в , где предложение должно выполняться быстро, верно?

Да, это так, по сравнению с ситуацией, когда индекс не создается для столбца внешнего ключа ( ProductID ), и в этом случае выполняется полное сканирование таблицы (сканирование всех связанных страниц в таблице для получения требуемых данных).Но все же есть возможности для улучшения этого запроса.

Предположим, что таблица Sales содержит 10000 строк, а следующий SQL выбирает 400 строк (4% от общего числа строк):

 ВЫБЕРИТЕ SalesDate, SalesPersonID из продаж, ГДЕ ProductID = 112 

Давайте попробуем понять, как этот SQL выполняется в механизме выполнения SQL:

  1. Таблица Sales имеет некластеризованный индекс в столбце ProductID . Таким образом, он «ищет» некластеризованное индексное дерево для поиска записи, содержащей ProductID = 112.
  2. Индексная страница, содержащая запись ProductID = 112, также содержит все ключи кластеризованного индекса (все значения первичных ключей, то есть SalesIDs , которые имеют ProductID = 112, при условии, что первичный ключ уже создан в Таблица продаж).
  3. Для каждого первичного ключа (здесь 400) механизм SQL Server «ищет» в дереве кластеризованных индексов, чтобы найти фактическое расположение строк на соответствующей странице.
  4. Для каждого первичного ключа, когда он найден, механизм SQL Server выбирает значения столбца SalesDate и SalesPersonID из соответствующих строк.

Обратите внимание, что на приведенных выше шагах для каждой записи первичного ключа (здесь 400) для ProductID = 112 механизм SQL Server должен выполнить поиск в дереве кластеризованного индекса (здесь 400 раз) для получения дополнительных столбцов ( SalesDate , SalesPersonID ) в запросе.

Похоже, что, наряду с содержащими ключи кластерного индекса (значения первичного ключа), если страница некластеризованного индекса может также содержать два других значения столбца, указанные в запросе ( SalesDate , SalesPersonID ), механизм SQL Server будет не нужно выполнять шаги 3 и 4 выше и, таким образом, можно будет выбрать желаемые результаты еще быстрее, просто «перейдя» в некластеризованное дерево индексов для столбца ProductID и напрямую прочитав все три упомянутых значения столбца со страницы индекса.

К счастью, есть способ реализовать эту функцию. Это то, что называется «покрытый индекс». Вы создаете «покрытые индексы» в столбцах таблицы, чтобы указать, какие дополнительные значения столбцов страница индекса должна хранить вместе со значениями ключей кластеризованного индекса (первичные ключи). Ниже приведен пример создания покрытого индекса в столбце ProductID в таблице продаж:

 СОЗДАТЬ ИНДЕКС NCLIX_Sales_ProductID
ПО dbo.Sales (ProductID)
ВКЛЮЧИТЬ (SalesDate, SalesPersonID) 

Обратите внимание, что необходимо создать покрываемый индекс, включающий несколько столбцов, которые часто используются в запросах Select .Включение слишком большого количества столбцов в покрываемые индексы не принесет вам особой пользы. Скорее, для этого потребуется слишком много памяти для хранения всех значений столбцов покрываемого индекса, что приведет к чрезмерному потреблению памяти и снижению производительности.

Используйте помощь помощника по настройке базы данных при создании покрытого индекса

Все мы знаем, что когда выдается SQL, оптимизатор в ядре SQL Server динамически генерирует различные планы запросов на основе:

  • Объем данных
  • Статистика
  • Вариация индекса
  • Значение параметра в TSQL
  • Нагрузка на сервер

Это означает, что для конкретного SQL план выполнения, созданный на производственном сервере, может не совпадать с планом выполнения, который генерируется на тестовом сервере, даже если структура таблицы и индекса одинакова.Это также указывает на то, что индекс, созданный на тестовом сервере, может частично повысить производительность вашего TSQL в тестовом приложении, но создание того же индекса в производственной базе данных может не дать вам никакого преимущества в производительности в производственном приложении! Почему? Ну, потому что планы выполнения SQL в тестовой среде используют вновь созданные индексы и, таким образом, обеспечивают лучшую производительность. Но планы выполнения, которые создаются на производственном сервере, могут вообще не использовать вновь созданный индекс по некоторым причинам (например, столбец некластеризованного индекса не является «очень» селективным в базе данных производственного сервера, что не является case в базе данных тестового сервера).

Итак, при создании индексов мы должны убедиться, что индекс будет использоваться механизмом выполнения для получения более быстрых результатов. Но как мы можем это сделать?

Ответ: нам нужно смоделировать нагрузку рабочего сервера на тестовом сервере, а затем создать соответствующие индексы и протестировать их. Только тогда, если вновь созданные индексы улучшат производительность в тестовой среде, они, скорее всего, улучшат производительность в производственной среде.

Сделать это должно быть сложно, но, к счастью, у нас есть несколько удобных инструментов для этого.Следуйте этим инструкциям:

  1. Используйте SQL Profiler для сбора трассировок на рабочем сервере. Используйте шаблон настройки (я знаю, что не рекомендуется использовать SQL Profiler в производственной базе данных, но иногда вам приходится использовать его при диагностике проблем с производительностью в производственной среде). Если вы не знакомы с этим инструментом или вам нужно узнать больше о профилировании и трассировке с помощью SQL Profiler, прочтите http://msdn.microsoft.com/en-us/library/ms181091.aspx.
  2. Используйте файл трассировки, созданный на предыдущем шаге, чтобы создать аналогичную нагрузку на тестовом сервере базы данных с помощью помощника по настройке базы данных.Попросите советника по настройке дать совет (в большинстве случаев совет по созданию индекса). Скорее всего, вы получите хороший реалистичный совет (создание индекса) от советника по настройке (поскольку советник по настройке загружает тестовую базу данных с трассировкой, сгенерированной из производственной базы данных, а затем пытается сгенерировать наилучшее возможное предложение по индексации). Используя инструмент Tuning Advisor, вы также можете создавать индексы, которые он предлагает. Если вы не знакомы с инструментом Tuning Advisor или если вам нужно узнать больше об использовании Tuning Advisor, прочтите http: // msdn.microsoft.com/en-us/library/ms166575.aspx.

Шаг 3. Дефрагментация индексов в случае фрагментации

Хорошо, вы создали все соответствующие индексы в своих таблицах. Или, может быть, индексы уже есть в таблицах вашей базы данных. Но вы все равно можете не получить желаемой хорошей производительности в соответствии с вашими ожиданиями.

Существует большая вероятность того, что произошла фрагментация индекса.

Что такое фрагментация индекса?

Фрагментация индекса — это ситуация, когда страницы индекса разделяются из-за интенсивных операций вставки, обновления и удаления в таблицах в базе данных.Если индексы имеют высокую фрагментацию, либо сканирование / поиск индексов занимает много времени, либо индексы вообще не используются (что приводит к сканированию таблиц) при выполнении запросов. Таким образом, операции извлечения данных выполняются медленно.

Возможны два типа фрагментации:

  • Внутренняя фрагментация : Возникает из-за операций удаления / обновления данных на страницах индекса, которые в конечном итоге приводят к распределению данных в виде разреженной матрицы на страницах индекса / данных (создает много пустых строк на страницах).Также приводит к увеличению количества страниц индекса / данных, что увеличивает время выполнения запроса.
  • Внешняя фрагментация : Возникает из-за операций вставки / обновления данных на страницах индекса / данных, которые в конечном итоге приводят к разделению страницы и выделению новых страниц индекса / данных, которые не являются смежными в файловой системе. Это снижает производительность при определении результата запроса, где диапазоны указаны в предложениях «, где ». Кроме того, сервер базы данных не может воспользоваться преимуществами операций упреждающего чтения, поскольку не гарантируется, что следующие связанные страницы данных будут смежными, скорее, эти следующие страницы могут быть где угодно в файле данных.
Как узнать, произошла ли фрагментация индекса или нет?

Выполните следующий SQL в своей базе данных (следующий SQL будет работать в SQL Server 2005 или более поздних базах данных). Замените имя базы данных « AdventureWorks » на имя целевой базы данных в следующем запросе:

 ВЫБЕРИТЕ имя_объекта (dt.object_id) Имя таблицы, si.name
Имя индекса, dt.avg_fragmentation_in_percent AS
ExternalFragmentation, dt.avg_page_space_used_in_percent AS
Внутренняя фрагментация
ОТ
(
    ВЫБЕРИТЕ object_id, index_id, avg_fragmentation_in_percent, avg_page_space_used_in_percent
    ОТ sys.dm_db_index_physical_stats (db_id ('AdventureWorks'), null, null, null, 'ПОДРОБНЕЕ'
)
WHERE index_id <> 0) AS dt INNER JOIN sys.indexes si ON si.object_id = dt.object_id
И si.index_id = dt.index_id И dt.avg_fragmentation_in_percent> 10
И dt.avg_page_space_used_in_percent <75 ЗАКАЗАТЬ ПО avg_fragmentation_in_percent DESC 

Приведенный выше запрос показывает информацию о фрагментации индекса для базы данных « AdventureWorks » следующим образом:

Информация о фрагментации индекса

Анализируя результат, вы можете определить, где произошла фрагментация индекса, используя следующие правила:

  • Значение ExternalFragmentation > 10 указывает, что для соответствующего индекса произошла внешняя фрагментация.
  • Значение InternalFragmentation <75 указывает, что для соответствующего индекса произошла внутренняя фрагментация.
Как дефрагментировать индексы?

Это можно сделать двумя способами:

  • Реорганизуйте фрагментированные индексы: выполните для этого следующую команду:
 ALTER INDEX ALL ON TableName REORGANIZE 
  • Перестроить индексы: для этого выполните следующую команду:
  •  ALTER INDEX ALL ON TableName REBUILD WITH (FILLFACTOR = 90, ONLINE = ON) 

    Вы также можете перестроить или реорганизовать отдельные индексы в таблицах, используя имя индекса вместо ключевого слова « ALL » в приведенных выше запросах.В качестве альтернативы вы также можете использовать SQL Server Management Studio для дефрагментации индекса.

    Восстановление индекса с помощью SQL Server Management Studio

    Когда реорганизовывать и когда восстанавливать индексы?

    Вы должны «реорганизовать» индексы, когда значение внешней фрагментации для соответствующего индекса находится в диапазоне от 10 до 15, а значение внутренней фрагментации находится в диапазоне от 60 до 75. В противном случае вам следует перестроить индексы.

    Важным моментом при перестроении индекса является то, что при перестроении индексов для конкретной таблицы вся таблица будет заблокирована (чего не происходит в случае реорганизации индекса).Таким образом, для большой таблицы в производственной базе данных такая блокировка может быть нежелательной, потому что восстановление индексов для этой таблицы может занять несколько часов. К счастью, в SQL Server 2005 есть решение. Вы можете использовать опцию ONLINE как ON при перестроении индексов для таблицы (см. Приведенную выше команду перестроения индекса). Это перестроит индексы для таблицы, а также сделает таблицу доступной для транзакций.

    Последние слова

    Очень заманчиво создать индекс для всех подходящих столбцов в таблицах базы данных.Но если вы работаете с транзакционной базой данных (OLTP-системой, в которой операции обновления выполняются большую часть времени), создание индексов для всех подходящих столбцов может быть нежелательно каждый раз. Фактически, создание интенсивного индексирования в системах OLTP может снизить общую производительность базы данных (поскольку большинство операций являются операциями обновления, обновление данных означает также обновление индексов).

    Можно предложить следующее эмпирическое правило: если вы работаете с транзакционной базой данных, вы не должны создавать в среднем более 5 индексов для таблиц.С другой стороны, если вы работаете с приложением хранилища данных, у вас должна быть возможность создать в среднем до 10 индексов для таблиц.

    Что дальше?

    Правильное применение индексирования в базе данных позволит вам значительно повысить производительность за небольшой промежуток времени. Но есть много других вещей, которые вы должны сделать для оптимизации вашей базы данных, включая некоторые расширенные функции индексирования в базах данных SQL Server. Они будут рассмотрены в других этапах оптимизации, представленных в следующих статьях.

    Взгляните на следующие шаги оптимизации в статье « 10 основных шагов по оптимизации доступа к данным в SQL Server: Часть II (перефакторизация TSQL и применение передовых практик )». Радоваться, веселиться.

    .

    7 способов оптимизировать управление запасами и улучшить выполнение

    Это гостевой пост, написанный Скубана. Skubana - это комплексное решение, которое объединяет операции после оформления заказа для омниканальных продавцов.

    Это худший кошмар любого интернет-магазина.

    Вы сделали повторный заказ вовремя. Производитель заверил вас, что все в порядке. Компания по доставке готова к работе.Ваш собственный склад готов.

    Но тогда есть проблема.

    В последнюю секунду в партии обнаружена неисправность. Задержка составит не менее недели.

    Это всего лишь один пример из целого ряда проблем, с которыми сталкиваются продавцы электронной коммерции на протяжении всей цепочки складских запасов. Подобные проблемы - источник упущенной выгоды, лишней бумажной волокиты и потенциального ущерба для вашего бренда.

    В этом посте мы рассмотрим семь ключевых способов оптимизации процессов управления запасами и выполнения заказов.Результатом станут более низкие затраты, меньше проблем и более довольные клиенты.

    Давайте нырнем.

    1. Используйте решение для управления с данными в реальном времени

    Один из самых простых способов для продавцов электронной коммерции быстро улучшить управление запасами - это использовать многоканальное программное обеспечение, которое обеспечит точный обзор запасов на всех этапах цепочки поставок.

    Многофункциональные приложения, такие как Skubana, например, позволят вам обрабатывать большие объемы данных, необходимых для жизненно важных действий, таких как прогнозирование, пополнение страховых запасов, планирование на периоды пиковых покупок и многое другое.

    Работа с центральной платформой также создаст единство данных и коммуникации во всей компании. Сохраняя информацию в центральной базе данных, отделы продаж и маркетинга будут согласованы с любыми важными изменениями в запасах, такими как увеличение заказов из-за рекламных акций и других разовых мероприятий.

    2. Внедрение сторонних решений и решений для автоматизации

    Здесь есть два аспекта. С одной стороны, инструменты автоматизации могут предоставлять в реальном времени обратную связь и аналитические данные для оптимизации управления запасами.

    Регистрируются ли, например, отчеты о запасах в вашей базе данных автоматически? Автоматически ли создаются заказы на основе уменьшения запасов? Будут ли поставщики немедленно сообщать вам о задержках отгрузки?

    С другой стороны, сторонние сервисы также могут помочь вам выбрать между конкурирующими игроками, чтобы повысить общую эффективность цепочки поставок. Такой инструмент, как Floship, например, позволит вам выбрать из ряда курьеров, чтобы найти самый быстрый и недорогой вариант доставки для каждого заказа.

    3. Отслеживание всей цепочки поставок

    В прошлом различные отдельные элементы цепочки поставок работали бы более или менее независимо, с небольшими обновлениями.

    В настоящее время все наоборот. Производители часто доставляют обновления в режиме реального времени, логистические компании сообщают точное местонахождение запасов, а службы доставки клиентов сообщают вам, когда ваши товары были доставлены.

    Использование новых технологий, таких как мобильные устройства, сканеры штрих-кода и устройства слежения, вносит большой вклад в это сочетание.Конечным преимуществом является то, что вы можете точно определять проблемы, как только они возникают, и быстро реализовывать непредвиденные обстоятельства.

    Наличие точного обзора цепочки поставок также позволит вам принимать обоснованные решения о вариантах сокращения затрат, таких как кросс-докинг и совместный заказ у поставщика (с другими розничными продавцами).

    4. Создание непредвиденных обстоятельств для инвентаризации трубопровода

    Инвентаризация конвейера представляет собой область, в которой продавцы электронной коммерции теряют много денег.

    На этом этапе запасы не находятся под контролем продавца, и любые возникающие проблемы часто приходится решать третьим лицам. Это особенно касается импортных товаров, которые перемещаются через границы.

    По этой причине важно разработать жесткие планы действий в непредвиденных обстоятельствах, которые ограничивают последствия из-за пропущенных заказов, медленного движения запасов, поздних поставок, ошибок производителя и многого другого. Наличие страхового запаса, соглашения с другими курьерами и способы уменьшить неудовлетворенность клиентов (например, скидки) - все это примеры непредвиденных обстоятельств.

    Большинство продавцов электронной коммерции ненавидят термин «ликвидация». Но важно четко понимать обстоятельства, при которых вам желательно либо продать акции по сниженной цене, либо полностью избавиться от них.

    5. Регулярно переоценивайте компоненты цепочки поставок, такие как производители и логистика

    Применяя структурированный и последовательный подход к анализу ваших внутренних процессов, а также эффективности поставщиков и логистики, вы сможете поддерживать затраты на идеальном уровне в долгосрочной перспективе.

    Оценка всегда должна проводиться в контексте отраслевых ключевых показателей эффективности, исследования конкурентов и показателей эффективности вашей компании.

    Например, регулярный анализ работы курьеров и службы доставки может напрямую сократить время приобретения и, следовательно, общие затраты на поддержание товарного запаса.

    Из-за отсутствия участия человека автоматические контрольные показатели, такие как предупреждения о низком уровне запасов, также должны подвергаться постоянной и последовательной переоценке на основе отзывов продаж.

    6. Поддерживайте неэффективность вашего склада

    Существует несколько способов снизить затраты на хранение запасов, независимо от того, хранятся ли запасы на вашем собственном складе или у сторонних поставщиков (3PL).

    Более жесткие методы хранения, более эффективная планировка, современное погрузочно-разгрузочное оборудование и перемещение запасов между складами с низким и высоким спросом - все это области для экспериментов, которые могут привести к улучшениям.

    Эффективное использование места также означает, что вы можете воспользоваться скидками поставщика, заказав большее количество запасов в подходящее время.

    Также стоит изучить, когда ваше складское хранилище может быть менее желательным, чем другие методы реализации, такие как кросс-докинг, 3PL или даже решения, управляемые поставщиком.

    7. Разработка сложных моделей прогнозирования

    Эффективные модели прогнозирования являются ключом к пониманию того, когда увеличивать или уменьшать уровни запасов в зависимости от изменения покупательской активности.

    Какие механизмы обратной связи у вас есть, например, для оценки изменений в потребительском спросе? Есть ли у вас четкое представление о влиянии сезонности и значительных покупательских праздников?

    И, что наиболее важно, есть ли четкие каналы связи между теми, кто отвечает за интерпретацию данных, и теми, кто принимает решения на местах?

    Программные инструменты, особенно те, которые обрабатывают данные из различных источников, обычно могут помочь с точным прогнозированием.Также стоит собирать информацию от разных звеньев цепочки поставок, например от производителей и поставщиков, чтобы дополнить ваши собственные данные.

    Заключение

    Эффективное управление запасами представляет собой один из самых простых способов для розничных продавцов электронной коммерции сократить расходы.

    Относительно простые процессы, такие как отслеживание, прогнозирование и планирование на случай непредвиденных обстоятельств, могут привести к значительному снижению затрат на приобретение, хранение и отгрузку запасов. Открытость для непроверенных методов выполнения заказов, таких как кросс-докинг и выбор альтернативного курьера, может еще больше снизить затраты.

    Также стоит помнить, что все эти методы требуют единого подхода к сбору и интерпретации данных, который можно значительно упростить с помощью программного обеспечения.

    В любом случае пора начать вычислять эти числа.

    .
    Leave a Reply

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *