Настройка привязки документов качества к товарам 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка привязки документов качества к товарам 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка привязки документов качества к товарам 1С-Битрикс

Документы качества — это более широкое понятие, чем сертификаты соответствия. Сюда входят: декларации ТР ТС, паспорта качества, протоколы испытаний, СГР (свидетельства о государственной регистрации), инструкции по применению. Для каждого типа документа — свои требования к хранению и отображению.

Структура хранения документов

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

Инфоблок QUALITY_DOCS (тип catalog не нужен, обычный контентный):

Свойство Код Тип Описание
Тип документа DOC_TYPE Список Декларация / Сертификат / Паспорт качества / СГР
Файл FILE Файл PDF или изображение
Номер документа DOC_NUMBER Строка Номер декларации/сертификата
Действителен до VALID_TO Дата Срок действия
Товары PRODUCTS Привязка к инфоблоку Множественное, ID товаров
Торговые марки BRANDS Привязка к инфоблоку Опционально, если документ покрывает бренд целиком

Привязка «один документ — много товаров»

Декларация ТР ТС обычно выдаётся на серию товаров или на торговую марку. Свойство PRODUCTS в инфоблоке документов делаете множественным — один документ ссылается на список товаров.

При выводе в карточке товара делаете обратный запрос:

$docsRes = \CIBlockElement::GetList(
    ['PROPERTY_VALID_TO' => 'DESC'],
    [
        'IBLOCK_ID'          => QUALITY_DOCS_IBLOCK_ID,
        'PROPERTY_PRODUCTS'  => $productId,
        'ACTIVE'             => 'Y',
    ],
    false,
    false,
    ['ID', 'NAME', 'PROPERTY_DOC_TYPE', 'PROPERTY_FILE',
     'PROPERTY_DOC_NUMBER', 'PROPERTY_VALID_TO']
);
$docs = [];
while ($doc = $docsRes->GetNext()) {
    $docs[] = $doc;
}

Контроль срока действия

Документы с истёкшим сроком нельзя показывать как актуальные. Варианты обработки:

Вариант 1 — фильтрация в запросе:

'>=PROPERTY_VALID_TO' => date('d.m.Y')

Вариант 2 — автоматическая деактивация через агент. Создаёте агент Битрикса (таблица b_agent), который раз в сутки проверяет документы с истёкшей датой и ставит им ACTIVE = N. Регистрируете через \CAgent::AddAgent():

\CAgent::AddAgent(
    '\Local\QualityDocs\Agent::deactivateExpired();',
    'local_quality_docs',
    'N',  // не однократно
    86400 // раз в сутки
);

Массовая привязка документов

Если нужно привязать один документ к сотням товаров — вручную через административный интерфейс неудобно. Делаете импорт через CIBlockElement::Update() с обновлением свойства PRODUCTS. Или создаёте административную страницу с поиском товаров по фильтру (категория, бренд) и массовой привязкой.

Для массовой привязки всех товаров бренда к документу:

$productIds = [];
$res = \CIBlockElement::GetList(
    [],
    ['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'PROPERTY_BRAND' => $brandId],
    false, false, ['ID']
);
while ($row = $res->Fetch()) {
    $productIds[] = ['VALUE' => $row['ID']];
}

\CIBlockElement::SetPropertyValueCode(
    $docElementId,
    'PRODUCTS',
    $productIds
);

Уведомления об истекающих документах

Полезная доработка: за 30 дней до истечения документа — уведомление ответственному менеджеру. Реализуется через тот же агент: находит документы с VALID_TO в диапазоне сегодня+30 дней и отправляет письмо через \CEvent::Send() с шаблоном уведомления.

Этап Время
Создание инфоблока документов качества 2–3 ч
Доработка карточки товара 3–4 ч
Агент деактивации истёкших документов 2–3 ч
Страница массовой привязки (опционально) 4–6 ч
Уведомления об истечении срока (опционально) 2–3 ч