alfaitstudio.ru
Услуги
Пресс-центр
  • Новости
  • Блог
  • Блогинг и соцсети
  • Всё о видеоконтенте
  • Онлайн обучение
  • Системное администрирование
Проекты
Команда
Компания
  • О компании
  • Команда
  • Сертификаты
  • Реквизиты
  • Пользовательское соглашение
  • Политика обработки персональных данных
  • Публичный договор-оферта
  • Правила работы в студии
  • Как оставить отзыв
Контакты
Ещё
    Задать вопрос
    +7 (800) 555-26-23
    +7 (982) 928-11-11
    Заказать звонок
    222@alfaitstudio.ru
    Тюмень, ул. Ленина 2а, ТРЦ Панорама, 6 этаж 603 офис
    • Вконтакте
    • Facebook
    • Telegram
    • Одноклассники
    • Pinterest
    +7 (800) 555-26-23
    +7 (982) 928-11-11
    Заказать звонок
    Telegram Telegram
    alfaitstudio.ru
    Услуги
    Пресс-центр
    • Новости
    • Блог
    • Блогинг и соцсети
    • Всё о видеоконтенте
    • Онлайн обучение
    • Системное администрирование
    Проекты
    Команда
    Компания
    • О компании
    • Команда
    • Сертификаты
    • Реквизиты
    • Пользовательское соглашение
    • Политика обработки персональных данных
    • Публичный договор-оферта
    • Правила работы в студии
    • Как оставить отзыв
    Контакты

      Видеостудия

      Разработка сайтов

      Дизайн и графика

      1С - установка и оптимизация

      Реклама и продвижение

      alfaitstudio.ru
      Услуги
      Пресс-центр
      • Новости
      • Блог
      • Блогинг и соцсети
      • Всё о видеоконтенте
      • Онлайн обучение
      • Системное администрирование
      Проекты
      Команда
      Компания
      • О компании
      • Команда
      • Сертификаты
      • Реквизиты
      • Пользовательское соглашение
      • Политика обработки персональных данных
      • Публичный договор-оферта
      • Правила работы в студии
      • Как оставить отзыв
      Контакты
        alfaitstudio.ru
        Telegram
        Телефоны
        +7 (800) 555-26-23
        +7 (982) 928-11-11
        Заказать звонок
        • Услуги
        • Пресс-центр
          • Назад
          • Пресс-центр
          • Новости
          • Блог
          • Блогинг и соцсети
          • Всё о видеоконтенте
          • Онлайн обучение
          • Системное администрирование
        • Проекты
        • Команда
        • Компания
          • Назад
          • Компания
          • О компании
          • Команда
          • Сертификаты
          • Реквизиты
          • Пользовательское соглашение
          • Политика обработки персональных данных
          • Публичный договор-оферта
          • Правила работы в студии
          • Как оставить отзыв
        • Контакты
        • +7 (800) 555-26-23
          • Назад
          • +7 (800) 555-26-23
          • +7 (982) 928-11-11
          • Заказать звонок
        222@alfaitstudio.ru
        Тюмень, ул. Ленина 2а, ТРЦ Панорама, 6 этаж 603 офис
        • Вконтакте
        • Facebook
        • Telegram
        • Одноклассники
        • Pinterest
        • Главная
        • Пресс-центр
        • Блог
        • Как выгрузить значения из 1С в Битрикс минимальной партии или других в "Коэффициент единицы измерения" для товаров и торговых предложений

        Как выгрузить значения из 1С в Битрикс минимальной партии или других в "Коэффициент единицы измерения" для товаров и торговых предложений

        9 июля 2024
        Блог

        Как правило, при продаже минимальными партиями необходимо, чтобы у товаров были добавлены значения "Коэффициент единицы измерения". Это, например, если в корзину необходимо добавить по две, пять, десять единиц товара. Дорабатывать шаблон на Битриксе в таком случае неразумно, так как после пары обновлений всё может слететь. Как быть в этом случае?

        скрин1.jpg

        Можно автоматизировать выгрузку из 1С и добавления "Коэффициент единицы измерения" в товары и торговые предложения.

        В сети попадаются решения, когда из свойства 1С "Минимальная партия" переносятся значения в "Коэффициент единицы измерения" для отдельных товаров, но для торговых предложений таких решений нет.

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

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

        1. Создаём свойство в 1С (дополнительный реквизит для товаров), например, "Минимальная партия" или используем любое другое свойство из 1С.
          скрин4.jpg
        2. Далее делаем полную выгрузку из 1С на сайт и смотрим ID нашего реквизита "Минимальная партия", у нас на примере 969.
          скрин2.jpg
        3. Смотрим ID инфоблока, действующего на сайте (товаров и торговых предложений), у нас на примере 46 и 51.
          скрин3.jpg
        <?php
        use Bitrix\Main\Loader;
        use Bitrix\Iblock\ElementTable;
        use Bitrix\Catalog\MeasureRatioTable;
        
        Loader::includeModule('iblock');
        Loader::includeModule('catalog');
        
        $iblockId = 46; // ID инфоблока товаров
        $offersIblockId = 51; // ID инфоблока торговых предложений
        $propertyId = 969; // ID свойства MINIMALNAYA_PARTIYA у товаров
        
        // Получаем список элементов инфоблока товаров
        $updateElements = ElementTable::getList([
        'select' => ['ID'],
        'filter' => ['IBLOCK_ID' => $iblockId],
         ]);
        
        while ($arFields = $updateElements->fetch()) {
        // Получаем значение свойства 'MINIMALNAYA_PARTIYA' у товара
        $propertyValue = CIBlockElement::GetProperty(
        $iblockId,
        $arFields['ID'],
        [],
        ['ID' => $propertyId]
        );
        
        if ($arProperty = $propertyValue->Fetch()) {
        $coeff = $arProperty['VALUE'];
        
        // Обновляем текущий коэффициент единицы измерения товара
        $curElementRatio = MeasureRatioTable::getList([
        'filter' => ['=PRODUCT_ID' => $arFields['ID']],
        ]);
        
        if ($arRatio = $curElementRatio->fetch()) {
        MeasureRatioTable::update($arRatio['ID'], ['RATIO' => $coeff]);
        }
        
        // Получаем список торговых предложений для товара
        $offerElements = CIBlockElement::GetList(
        [],
        ['IBLOCK_ID' => $offersIblockId, 'PROPERTY_CML2_LINK' => $arFields['ID']],
        false,
        false,
        ['ID']
        );
        
        while ($offer = $offerElements->Fetch()) {
        // Обновляем коэффициент единицы измерения для торгового предложения
        $curOfferRatio = MeasureRatioTable::getList([
        'filter' => ['=PRODUCT_ID' => $offer['ID']],
        ]);
        
        if ($arOfferRatio = $curOfferRatio->fetch()) {
        MeasureRatioTable::update($arOfferRatio['ID'], ['RATIO' => $coeff]);
        } else {
        MeasureRatioTable::add([
        'PRODUCT_ID' => $offer['ID'],
        'RATIO' => $coeff,
        ]);
        }
        }
        }
        }
        ?>

        Это решение протестировано и работает на нескольких проектах, доработки добавляются в init.php, следовательно, вы всегда сможете легко их убрать.

        Антон Моисеев
        Автор статьи
        Антон Моисеев
        1С Битрикс Разработчик, стаж более 8 лет

        Подписаться на
        рассылку

        Будьте в курсе последних новостей отрасли

        Подписаться
        • Комментарии
        Загрузка комментариев...
        Назад к списку
        Услуги
        Пресс-центр
        Новости
        Блог
        Блогинг и соцсети
        Всё о видеоконтенте
        Онлайн обучение
        Системное администрирование
        Компания
        О компании
        Команда
        Сертификаты
        Реквизиты
        Пользовательское соглашение
        Политика обработки персональных данных
        Публичный договор-оферта
        Правила работы в студии
        Как оставить отзыв
        Проекты
        Контакты
        Подписка на рассылку
        +7 (800) 555-26-23
        +7 (982) 928-11-11
        Заказать звонок
        222@alfaitstudio.ru
        Тюмень, ул. Ленина 2а, ТРЦ Панорама, 6 этаж 603 офис
        • Вконтакте
        • Facebook
        • Telegram
        • Одноклассники
        • Pinterest
        Версия для печати
        Политика конфиденциальности
        © 2026
        Заказать звонок
        Написать сообщение
        Оставить отзыв
        Ближайший офис

        Мы используем файлы cookie, разработанные нашими специалистами и третьими лицами, для анализа событий на нашем веб-сайте, что позволяет нам улучшать взаимодействие с пользователями и обслуживание. Продолжая просмотр страниц нашего сайта, вы принимаете условия его использования. Более подробные сведения смотрите в нашей Политике в отношении файлов Cookie.