Налаштування прив'язки документів якості до товарів 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування прив'язки документів якості до товарів 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування привязки документів якості до товарів у 1С-Bitrix

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

Структура зберігання документів

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

Інфоблок 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 — автоматична деактивація через агент. Створюєте агент Bitrix (таблиця 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 ч