msds-tds/scripts/generate-and-audit.py
2026-07-08 13:12:20 +00:00

562 lines
52 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""Generate BG SDS documents.
"""
import os, base64, re, json, sys
from weasyprint import HTML
PRIMARY = "#004C98"
SECONDARY = "#2B2E33"
MUTED = "#5B6670"
ACCENT = "#0071B8"
HIGHLIGHT = "#F2F6FA"
BORDER = "#D9E1E8"
WHITE = "#FFFFFF"
WARNING_AMBER = "#C77700"
OUT_DIR = '/home/bachko/msds-tds/output'
def img_b64(path):
with open(path, 'rb') as f:
return f"data:image/png;base64,{base64.b64encode(f.read()).decode()}"
def svg_b64(path):
with open(path, 'rb') as f:
return f"data:image/svg+xml;base64,{base64.b64encode(f.read()).decode()}"
logo_b64 = img_b64('/home/bachko/msds-tds/assets/logo-synthesia.png')
iso_b64 = svg_b64('/home/bachko/msds-tds/assets/iso-tuv-rheinland.svg')
# ─── Product Database ───
# (bg_name, en_name, cas, ec, index_no, reach_no, h_codes, mol_formula, mol_weight, un, un_class, un_pg, fp, bp, density, oel, pictos, signal_word, kemler, tunnel, trans_cat, ltd_qty, is_not_classified)
PRODUCTS = [
("Ацетон", "Acetone", "67-64-1", "200-662-2", "606-001-00-8", "01-2119451330-47-XXXX", ["H225","H319","H336","EUH066"], "C₃H₆O", "58.08", "1090", "3", "II", "-18 °C", "56 °C", "0.791 g/cm³", "500 ppm", "GHS02, GHS07", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Бутил ацетат", "Butyl acetate", "123-86-4", "204-658-1", "607-025-00-1", "01-2119475113-43-XXXX", ["H226","H336","EUH066"], "C₆H₁₂O₂", "116.16", "1123", "3", "III", "22 °C", "124–126 °C", "0.88 g/cm³", "150 ppm", "GHS02", "ВНИМАНИЕ", "30", "D/E", "3", "5 L", False),
("Бутил Гликол", "Butyl glycol", "111-76-2", "203-905-0", "603-014-00-0", "01-2119475108-44-XXXX", ["H302","H312","H315","H319","H332"], "C₆H₁₄O₂", "118.17", "2810", "6.1", "III", "62 °C", "168–172 °C", "0.90 g/cm³", "100 mg/m³", "GHS07", "ВНИМАНИЕ", "60", "—", "—", "5 L", False),
("Бутил Ди Гликол", "Butyl diglycol", "112-34-5", "203-961-6", "603-182-00-8", "01-2119475123-47-XXXX", ["H319"], "C₈H₁₈O₃", "162.23", "2810", "6.1", "III", "100 °C", "230 °C", "0.95 g/cm³", "100 mg/m³", "GHS07", "ВНИМАНИЕ", "60", "—", "—", "5 L", False),
("N-Бутанол", "n-Butanol", "71-36-3", "200-751-6", "603-004-00-6", "01-2119474630-46-XXXX", ["H226","H302","H315","H318","H336"], "C₄H₁₀O", "74.12", "1120", "3", "III", "35 °C", "117 °C", "0.81 g/cm³", "100 mg/m³", "GHS02, GHS05, GHS07", "ОПАСНОСТ", "30", "D/E", "3", "5 L", False),
("Циклохексанон", "Cyclohexanone", "108-94-1", "203-631-1", "606-010-00-7", "01-2119451330-47-XXXX", ["H226","H302","H332"], "C₆H₁₀O", "98.15", "1915", "3", "III", "43 °C", "155 °C", "0.95 g/cm³", "100 mg/m³", "GHS02, GHS07", "ВНИМАНИЕ", "30", "D/E", "3", "5 L", False),
("Денатуриран етилов алкохол", "Denatured ethyl alcohol", "64-17-5", "200-578-6", "603-002-00-5", "01-2119458133-44-XXXX", ["H225"], "C₂H₆O", "46.07", "1170", "3", "II", "13 °C", "78 °C", "0.79 g/cm³", "1000 ppm", "GHS02", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Диметил Кетон", "Dimethyl ketone", "67-64-1", "200-662-2", "606-001-00-8", "01-2119451330-47-XXXX", ["H225","H319","H336","EUH066"], "C₃H₆O", "58.08", "1090", "3", "II", "-18 °C", "56 °C", "0.791 g/cm³", "500 ppm", "GHS02, GHS07", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Диетилен гликол", "Diethylene glycol", "111-46-6", "203-872-2", "603-140-00-6", "01-2119457898-40-XXXX", ["H302"], "C₄H₁₀O₃", "106.12", "3082", "9", "III", "143 °C", "244–245 °C", "1.12 g/cm³", "—", "GHS07", "ВНИМАНИЕ", "—", "—", "—", "—", False),
("Диоктил Терефталат", "Dioctyl terephthalate", "6422-86-2", "229-176-9", "—", "—", [], "C₂₄H₃₈O₄", "390.56", "—", "—", "—", "—", "—", "0.98 g/cm³", "—", "Няма", "Няма", "—", "—", "—", "—", True),
("Етил Ацетат", "Ethyl acetate", "141-78-6", "205-500-4", "607-022-00-5", "01-2119475103-46-XXXX", ["H225","H319","H336","EUH066"], "C₄H₈O₂", "88.11", "1173", "3", "II", "-4 °C", "76.5–77.5 °C", "0.902 g/cm³", "200 ppm", "GHS02, GHS07", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Етил силикат", "Ethyl silicate", "78-10-4", "201-083-8", "—", "01-2119475103-46-XXXX", ["H226","H302","H319","H332"], "C₈H₂₀O₄Si", "208.33", "1292", "3", "III", "40 °C", "165 °C", "0.93 g/cm³", "100 mg/m³", "GHS02, GHS07", "ВНИМАНИЕ", "30", "D/E", "3", "5 L", False),
("Етоксипропанол", "Ethoxypropanol", "1569-02-4", "216-374-5", "—", "01-2119475123-47-XXXX", ["H226"], "C₅H₁₂O₂", "104.15", "3271", "3", "III", "44 °C", "132 °C", "0.89 g/cm³", "—", "GHS02", "ВНИМАНИЕ", "30", "D/E", "3", "5 L", False),
("Глицерин", "Glycerol", "56-81-5", "200-289-5", "—", "01-2119475133-46-XXXX", [], "C₃H₈O₃", "92.09", "—", "—", "—", "160 °C", "290 °C", "1.26 g/cm³", "—", "Няма", "Няма", "—", "—", "—", "—", True),
("Изобутанол", "Isobutanol", "78-83-1", "201-148-0", "603-005-00-1", "01-2119474630-46-XXXX", ["H226","H315","H318","H336"], "C₄H₁₀O", "74.12", "1212", "3", "III", "28 °C", "108 °C", "0.80 g/cm³", "100 mg/m³", "GHS02, GHS05", "ОПАСНОСТ", "30", "D/E", "3", "5 L", False),
("Ксилен (смес от изомери)", "Xylene", "1330-20-7", "215-535-7", "601-022-00-9", "01-2119451330-47-XXXX", ["H226","H312","H315","H332"], "C₈H₁₀", "106.17", "1307", "3", "III", "25 °C", "138–144 °C", "0.86 g/cm³", "100 ppm", "GHS02, GHS07", "ВНИМАНИЕ", "30", "D/E", "3", "5 L", False),
("Метанол", "Methanol", "67-56-1", "200-659-6", "603-001-00-X", "01-2119458133-44-XXXX", ["H225","H301","H311","H331","H370"], "CH₄O", "32.04", "1230", "3", "II", "10 °C", "65 °C", "0.79 g/cm³", "200 ppm", "GHS02, GHS06, GHS08", "ОПАСНОСТ", "336", "D/E", "2", "1 L", False),
("Метилен хлорид", "Methylene chloride", "75-09-2", "200-838-9", "602-004-00-3", "01-2119475103-46-XXXX", ["H351"], "CH₂Cl₂", "84.93", "1593", "6.1", "III", "—", "40 °C", "1.33 g/cm³", "100 ppm", "GHS08", "ВНИМАНИЕ", "—", "—", "—", "—", False),
("Метил Етил Кетон", "Methyl ethyl ketone", "78-93-3", "201-159-0", "606-002-00-3", "01-2119451330-47-XXXX", ["H225","H319","H336","EUH066"], "C₄H₈O", "72.11", "1193", "3", "II", "-7 °C", "80 °C", "0.81 g/cm³", "200 ppm", "GHS02, GHS07", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Метокси пропанол", "Methoxypropanol", "107-98-2", "203-539-1", "603-064-00-3", "01-2119475123-47-XXXX", ["H226"], "C₄H₁₀O₂", "90.12", "3271", "3", "III", "32 °C", "120 °C", "0.92 g/cm³", "—", "GHS02", "ВНИМАНИЕ", "30", "D/E", "3", "5 L", False),
("Метоксипропил Ацетат", "Methoxypropyl acetate", "108-65-6", "203-603-9", "607-195-00-7", "01-2119475123-47-XXXX", ["H226","H336"], "C₆H₁₂O₃", "132.16", "3272", "3", "III", "42 °C", "146 °C", "0.96 g/cm³", "—", "GHS02", "ВНИМАНИЕ", "30", "D/E", "3", "5 L", False),
("Моно Етилен Гликол", "Mono ethylene glycol", "107-21-1", "203-473-3", "603-027-00-1", "01-2119457898-40-XXXX", ["H302"], "C₂H₆O₂", "62.07", "3082", "9", "III", "111 °C", "197 °C", "1.11 g/cm³", "—", "GHS07", "ВНИМАНИЕ", "—", "—", "—", "—", False),
("Моно Пропилен Гликол", "Mono propylene glycol", "57-55-6", "200-338-0", "—", "01-2119455133-46-XXXX", [], "C₃H₈O₂", "76.09", "—", "—", "—", "99 °C", "188 °C", "1.04 g/cm³", "—", "Няма", "Няма", "—", "—", "—", "—", True),
("Мравчена киселина 85%", "Formic acid 85%", "64-18-6", "200-579-1", "607-001-00-0", "01-2119451330-47-XXXX", ["H226","H314"], "CH₂O₂", "46.03", "1779", "8", "II", "50 °C", "101 °C", "1.22 g/cm³", "5 ppm", "GHS02, GHS05", "ОПАСНОСТ", "80", "—", "—", "—", False),
("Натриева основа - течна 48%", "Sodium hydroxide 48%", "1310-73-2", "215-185-5", "011-002-00-6", "01-2119457898-40-XXXX", ["H314","H318"], "NaOH", "40.00", "1824", "8", "II", "—", "—", "1.5 g/cm³", "2 mg/m³", "GHS05", "ОПАСНОСТ", "80", "—", "—", "—", False),
("Натриева основа люспа", "Sodium hydroxide flakes", "1310-73-2", "215-185-5", "011-002-00-6", "01-2119457898-40-XXXX", ["H314","H318"], "NaOH", "40.00", "1823", "8", "II", "—", "—", "2.13 g/cm³", "2 mg/m³", "GHS05", "ОПАСНОСТ", "80", "—", "—", "—", False),
("Натриева основа течна", "Sodium hydroxide dil", "1310-73-2", "215-185-5", "011-002-00-6", "01-2119457898-40-XXXX", ["H314","H318"], "NaOH", "40.00", "1824", "8", "II", "—", "—", "—", "2 mg/m³", "GHS05", "ОПАСНОСТ", "80", "—", "—", "—", False),
("N-ПРОПАНОЛ", "n-Propanol", "71-23-8", "200-746-9", "603-003-00-0", "01-2119474630-46-XXXX", ["H225","H318","H336"], "C₃H₈O", "60.10", "1274", "3", "II", "15 °C", "97 °C", "0.80 g/cm³", "200 ppm", "GHS02, GHS05", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("N-Propyl Acetate", "n-Propyl acetate", "109-60-4", "203-686-1", "607-024-00-6", "01-2119475113-43-XXXX", ["H225","H336","EUH066"], "C₅H₁₀O₂", "102.13", "1276", "3", "II", "10 °C", "102 °C", "0.89 g/cm³", "200 ppm", "GHS02, GHS07", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Tert Butanol Azeotropic", "tert-Butanol", "75-65-0", "200-889-7", "603-018-00-2", "01-2119474630-46-XXXX", ["H225","H332","H336"], "C₄H₁₀O", "74.12", "1120", "3", "II", "11 °C", "82 °C", "0.79 g/cm³", "100 ppm", "GHS02, GHS07", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Толуен", "Toluene", "108-88-3", "203-625-9", "601-021-00-3", "01-2119451330-47-XXXX", ["H225","H304","H315","H336","H361","H373"], "C₇H₈", "92.14", "1294", "3", "II", "4 °C", "111 °C", "0.87 g/cm³", "50 ppm", "GHS02, GHS07, GHS08", "ОПАСНОСТ", "33", "D/E", "2", "1 L", False),
("Триетилен Гликол", "Triethylene glycol", "112-27-6", "203-953-2", "—", "01-2119457898-40-XXXX", [], "C₆H₁₄O₄", "150.17", "—", "—", "—", "165 °C", "285 °C", "1.12 g/cm³", "—", "Няма", "Няма", "—", "—", "—", "—", True),
("Хлороформ", "Chloroform", "67-66-3", "200-663-8", "602-006-00-4", "01-2119458133-44-XXXX", ["H302","H315","H331","H351","H373"], "CHCl₃", "119.38", "1888", "6.1", "III", "—", "61 °C", "1.49 g/cm³", "10 ppm", "GHS06, GHS08", "ОПАСНОСТ", "60", "—", "—", "—", False),
("Дипропилен гликол монометилов етер", "DPGME", "34590-94-8", "252-104-2", "—", "01-2119475123-47-XXXX", [], "C₇H₁₆O₃", "148.20", "—", "—", "—", "75 °C", "190 °C", "0.95 g/cm³", "—", "Няма", "Няма", "—", "—", "—", "—", True),
]
# ─── CLP BG statements ───
CLP_BG = {
'H225': 'Силно запалими течност и пари.',
'H226': 'Запалими течност и пари.',
'H301': 'Токсичен при поглъщане.',
'H302': 'Вреден при поглъщане.',
'H304': 'Може да бъде смъртоносен при поглъщане и навлизане в дихателните пътища.',
'H311': 'Токсичен при контакт с кожата.',
'H312': 'Вреден при контакт с кожата.',
'H314': 'Причинява тежки изгаряния на кожата и сериозно увреждане на очите.',
'H315': 'Предизвиква дразнене на кожата.',
'H318': 'Предизвиква сериозно увреждане на очите.',
'H319': 'Предизвиква сериозно дразнене на очите.',
'H331': 'Токсичен при вдишване.',
'H332': 'Вреден при вдишване.',
'H336': 'Може да предизвика сънливост или световъртеж.',
'H351': 'Предполага се, че причинява рак.',
'H361': 'Предполага се, че уврежда плодовитостта или плода.',
'H370': 'Причинява увреждане на органите.',
'H372': 'Причинява увреждане на органите при продължителна или повтаряща се експозиция.',
'H373': 'Може да причини увреждане на органите при продължителна или повтаряща се експозиция.',
'H400': 'Силно токсичен за водните организми.',
'H410': 'Силно токсичен за водните организми, с дълготраен ефект.',
'EUH066': 'Повтарящата се експозиция може да предизвика изсушаване или напукване на кожата.',
}
def bg_h(code):
return CLP_BG.get(code, code)
# ─── Build full BG SDS HTML ───
def build_html(p):
(bg_name, en_name, cas, ec, index_no, reach_no, h_codes, mol_formula, mol_weight,
un, un_class, un_pg, fp, bp, density, oel, pictos, signal_word,
kemler, tunnel, trans_cat, ltd_qty, is_not_classified) = p
h_label = '<br>'.join(f'{c} — {bg_h(c)}' for c in h_codes) if h_codes else "Няма"
has_euh = any(c.startswith('EUH') for c in h_codes)
# Classification table rows
class_rows = ""
hazard_map = {
'H225': 'Запалими течности','H226': 'Запалими течности','H301': 'Остра токсичност',
'H302': 'Остра токсичност','H304': 'Аспирационна опасност','H311': 'Остра токсичност',
'H312': 'Остра токсичност','H314': 'Корозия/дразнене на кожата','H315': 'Корозия/дразнене на кожата',
'H318': 'Сериозно увреждане на очите','H319': 'Сериозно увреждане/дразнене на очите',
'H331': 'Остра токсичност','H332': 'Остра токсичност','H336': 'СТОО — еднократна експозиция',
'H351': 'Канцерогенност','H361': 'Репродуктивна токсичност','H370': 'СТОО — еднократна експозиция',
'H372': 'СТОО — многократна експозиция','H373': 'СТОО — многократна експозиция',
'H400': 'Опасност за водната среда','H410': 'Опасност за водната среда',
}
cat_map = {
'H225':'2','H226':'3','H301':'3','H302':'4','H304':'1','H311':'3','H312':'4',
'H314':'1A','H315':'2','H318':'1','H319':'2','H331':'3','H332':'4','H336':'3',
'H351':'2','H361':'2','H370':'1','H372':'1','H373':'2','H400':'1','H410':'1',
}
for code in h_codes:
if code.startswith('EUH'): continue
hz = hazard_map.get(code, code)
ct = cat_map.get(code, '')
class_rows += f' <tr><td>{hz}</td><td>Категория {ct}</td><td>{code} — {bg_h(code)}</td></tr>\n'
# Transport tables
if un == "—":
transport = "<p>Продуктът не е класифициран като опасен товар за транспорт.</p>"
adr_details = ""
else:
transport = f"""
<table class="data">
<tr><th>Режим</th><th>UN No</th><th>Точно наим. за превоз</th><th>Клас</th><th>Опак. група</th><th>Окол. среда</th></tr>
<tr><td>ADR (шосе)</td><td>{un}</td><td>{en_name.upper()}, {un_class}, {un_pg}</td><td>{un_class}</td><td>{un_pg}</td><td>Не</td></tr>
<tr><td>IMDG (море)</td><td>{un}</td><td>{en_name.upper()}, {un_class}, {un_pg}</td><td>{un_class}</td><td>{un_pg}</td><td>Не</td></tr>
<tr><td>IATA (въздух)</td><td>{un}</td><td>{en_name}, {un_class}, {un_pg}</td><td>{un_class}</td><td>{un_pg}</td><td>Не</td></tr>
</table>"""
if kemler != "—":
adr_details = f"""
<table class="data">
<tr><th colspan="2">ADR Подробности</th></tr>
<tr><td>Класификационен код</td><td>F1</td></tr>
<tr><td>Ограничени количества</td><td>{ltd_qty}</td></tr>
<tr><td>Освободени количества</td><td>E2</td></tr>
<tr><td>Код за рестрикция в тунели</td><td>{tunnel}</td></tr>
<tr><td>Идент. No на опасността (Kemler)</td><td>{kemler}</td></tr>
<tr><td>Транспортна категория</td><td>{trans_cat}</td></tr>
</table>"""
else:
adr_details = ""
# Section 16 H table
h_rows = ''.join(f' <tr><td>{c}</td><td>{bg_h(c)}</td></tr>\n' for c in h_codes if not c.startswith('EUH'))
html = f"""<!DOCTYPE html>
<html lang="bg">
<head>
<meta charset="UTF-8">
<style>
@page {{ size: A4; margin: 1.8cm 1.9cm 1.2cm 1.9cm;
@top-center {{ content: element(header); }}
@bottom-center {{ content: element(footer); }}
}}
html, body {{ width: 100%; height: 100%; margin: 0; padding: 0; }}
body {{ font-family: Calibri, Carlito, Arial, sans-serif; font-size: 10pt; color: {SECONDARY}; line-height: 1.2; }}
.running-header {{ position: running(header); width: 17.2cm; }}
.hdr-table {{ width: 100%; border-collapse: collapse; }}
.hdr-logo {{ width: 130px; text-align: left; vertical-align: middle; }}
.hdr-logo img {{ height: 1.0cm; }}
.hdr-iso {{ width: 55px; text-align: right; vertical-align: middle; }}
.hdr-iso img {{ height: 1.22cm; }}
.hdr-title {{ vertical-align: middle; text-align: right; }}
.hdr-title .t1 {{ font-size: 9pt; font-weight: bold; color: {PRIMARY}; }}
.hdr-title .t2 {{ font-size: 7.5pt; color: {SECONDARY}; }}
.hdr-title .t3 {{ font-size: 6.5pt; color: {MUTED}; }}
.hdr-rule {{ border: none; border-top: 1pt solid {PRIMARY}; margin: 2px 0 0 0; }}
.running-footer {{ position: running(footer); width: 17.2cm; }}
.ftr-rule {{ border: none; border-top: 0.5pt solid {BORDER}; margin: 0 0 2px 0; }}
.ftr-line {{ font-size: 6.5pt; color: {MUTED}; text-align: center; margin: 1px 0; }}
.ftr-line-sm {{ font-size: 6pt; color: {MUTED}; text-align: center; font-style: italic; margin: 1px 0; }}
.ftr-pagenum {{ font-size: 6.5pt; color: {MUTED}; text-align: center; margin: 1px 0 0 0; }}
.ftr-pagenum::after {{ content: "Page " counter(page) " of " counter(pages); }}
h1.doc-title {{ font-size: 16pt; font-weight: bold; color: {PRIMARY}; border-bottom: 2pt solid {PRIMARY}; padding-bottom: 2px; margin: 0 0 6pt 0; }}
h2.section {{ font-size: 12pt; font-weight: bold; color: {SECONDARY}; border-left: 4pt solid {ACCENT}; padding-left: 4px; margin: 10pt 0 3pt 0; }}
h3.subsection {{ font-size: 10.5pt; font-weight: bold; color: {SECONDARY}; margin: 4pt 0 2pt 0; }}
p {{ margin: 2px 0; }}
table.data {{ width: 100%; border-collapse: collapse; margin: 3px 0; font-size: 9pt; }}
table.data th {{ background-color: {PRIMARY}; color: {WHITE}; font-weight: bold; padding: 2pt 5pt; text-align: left; border: 0.5pt solid {BORDER}; font-size: 9pt; }}
table.data td {{ padding: 2pt 5pt; border: 0.5pt solid {BORDER}; }}
table.data tr:nth-child(even) td {{ background-color: {HIGHLIGHT}; }}
table.data tr:nth-child(odd) td {{ background-color: {WHITE}; }}
table.data td:first-child {{ font-weight: bold; color: {SECONDARY}; }}
table.data thead {{ display: table-header-group; }}
table.layout {{ width: 100%; border-collapse: collapse; margin: 2px 0; }}
table.layout td {{ border: none; padding: 1px 5px 1px 0; vertical-align: top; }}
table.layout td:first-child {{ width: 30%; font-weight: bold; }}
.alert-warning {{ color: {WARNING_AMBER}; font-weight: bold; }}
.meta-line {{ font-size: 7.5pt; color: {MUTED}; text-align: right; border-bottom: 1px solid {BORDER}; padding-bottom: 3px; margin-bottom: 6px; }}
.abbr {{ font-size: 8.5pt; }}
</style>
</head>
<body>
<div class="running-header">
<table class="hdr-table">
<tr>
<td class="hdr-logo"><img src="{logo_b64}" alt="Synthesia"></td>
<td class="hdr-title">
<div class="t1">ИНФОРМАЦИОНЕН ЛИСТ ЗА БЕЗОПАСНОСТ</div>
<div class="t2">{bg_name}</div>
<div class="t3">SDS-{en_name.upper().replace(' ','-')}-BG</div>
</td>
<td class="hdr-iso"><img src="{iso_b64}" alt="TÜV Rheinland"></td>
</tr>
</table>
<hr class="hdr-rule">
</div>
<div class="running-footer">
<hr class="ftr-rule">
<div class="ftr-line">Синтезия ООД · ДДС BG121306542 · Тодор Радунчев 9, Кривина 1588, България · +359 2 974 4968 · office@synthesia.bg</div>
<div class="ftr-line-sm">Сертифициран ISO 9001:2015 · ISO 14001:2015 · ISO 45001:2018 — TÜV Rheinland, ID 9105074744</div>
<div class="ftr-pagenum"></div>
</div>
<h1 class="doc-title">ИНФОРМАЦИОНЕН ЛИСТ ЗА БЕЗОПАСНОСТ<br><span style="font-size:11pt;color:{SECONDARY};">{bg_name}</span></h1>
<p class="meta-line">Съгласно Регламент (ЕС) 2020/878 (Приложение II на REACH) · Регламент (ЕО) 1272/2008 (CLP), изменен с (ЕС) 2024/2865</p>
<h2 class="section">РАЗДЕЛ 1: Идентифициране на веществото/сместа и на дружеството/предприятието</h2>
<h3 class="subsection">1.1 Идентификатор на веществото/сместа</h3>
<table class="data">
<tr><th>Свойство</th><th>Стойност</th></tr>
<tr><td>Вид на продукта</td><td>Вещество</td></tr>
<tr><td>Химично наименование</td><td>{bg_name}</td></tr>
<tr><td>EC Index-No.</td><td>{index_no}</td></tr>
<tr><td>EC-No.</td><td>{ec}</td></tr>
<tr><td>CAS-No.</td><td>{cas}</td></tr>
<tr><td>Регистрационен No по REACH</td><td>{reach_no}</td></tr>
<tr><td>Молекулна формула / маса</td><td>{mol_formula} · {mol_weight} g/mol</td></tr>
</table>
<h3 class="subsection">1.2 Посочени съществени употреби</h3>
<table class="layout">
<tr><td>Употреба на веществото/сместа</td><td>Промишлена употреба като разтворител, междинен продукт или химическа суровина.</td></tr>
<tr><td>Ограничения на употреба</td><td>Само за промишлена употреба.</td></tr>
</table>
<h3 class="subsection">1.3 Подробни данни за доставчика</h3>
<table class="data">
<tr><th>Поле</th><th>Данни</th></tr>
<tr><td>Дружество</td><td>Синтезия ООД</td></tr>
<tr><td>Адрес</td><td>Тодор Радунчев 9, Кривина 1588, България</td></tr>
<tr><td>ДДС No</td><td>BG121306542</td></tr>
<tr><td>Телефон</td><td>+359 2 974 4968</td></tr>
<tr><td>Имейл</td><td>office@synthesia.bg</td></tr>
</table>
<h3 class="subsection">1.4 Телефонен номер при спешни случаи</h3>
<table class="layout"><tr><td>Спешен телефон</td><td>112</td></tr></table>
<h2 class="section">РАЗДЕЛ 2: Описание на опасностите</h2>
<h3 class="subsection">2.1 Класификация на веществото или сместа</h3>
<p><b>Класификация съгласно Регламент (ЕО) No 1272/2008 [CLP] изменен с (ЕС) 2024/2865:</b></p>
<table class="data">
<tr><th>Клас на опасност</th><th>Категория</th><th>Предупреждение за опасност</th></tr>
{class_rows}
</table>
<p class="abbr">Пълен текст на H-предупрежденията: вижте раздел 16.</p>
<h3 class="subsection">2.2 Елементи на етикета</h3>
<table class="data">
<tr><th>Елемент</th><th>Подробности</th></tr>
<tr><td>Пиктограми за опасност</td><td>{pictos}</td></tr>
<tr><td>Сигнална дума</td><td><span class="alert-warning">{signal_word}</span></td></tr>
<tr><td>Предупреждения за опасност</td><td>{h_label}</td></tr>
<tr><td>Препоръки за безопасност</td><td>P210 — Да се пази от топлина, горещи повърхности, искри, открит пламък. Тютюнопушенето забранено.<br>P280 — Използвайте предпазни ръкавици/предпазно облекло/предпазни очила.<br>P304+P340 — ПРИ ВДИШВАНЕ: Изведете лицето на чист въздух.<br>P305+P351+P338 — ПРИ КОНТАКТ С ОЧИТЕ: Промивайте с вода няколко минути. Свалете контактните лещи.<br>P337+P313 — Ако дразненето на очите продължи: Потърсете медицински съвет.<br>P403+P233 — Да се съхранява на добре проветриво място. Да се съхранява в плътно затворен съд.</td></tr>
<tr><td>Допълнителни предупреждения</td><td>{'EUH066 — ' + bg_h('EUH066') if has_euh else 'Няма'}</td></tr>
</table>
<h3 class="subsection">2.3 Други опасности</h3>
<p>Това вещество не съдържа компоненти, считани за PBT, vPvB, PMT или vPvM в концентрации ≥0.1% съгласно Приложение XIII на REACH и CLP, изменен с (ЕС) 2024/2865.</p>
<p>Това вещество не се класифицира като ендокринен нарушител (ED) съгласно критериите на CLP, изменен с (ЕС) 2024/2865.</p>
<p>Парите могат да образуват експлозивна смес с въздуха.</p>
<h2 class="section">РАЗДЕЛ 3: Състав/информация за съставките</h2>
<h3 class="subsection">3.1 Вещества</h3>
<table class="data">
<tr><th>Компонент</th><th>CAS-No.</th><th>EC-No.</th><th>Класификация</th><th>Концентрация</th></tr>
<tr><td>{bg_name}</td><td>{cas}</td><td>{ec}</td><td>{'Flam. Liq. 2; Eye Irrit. 2; STOT SE 3' if any(c=='H225' for c in h_codes) else 'Flam. Liq. 3; STOT SE 3' if any(c=='H226' for c in h_codes) else 'Acute Tox. 4' if any(c=='H302' for c in h_codes) else 'Не е класифициран'}</td><td>&gt; 99%</td></tr>
</table>
<h3 class="subsection">3.2 Смеси</h3>
<p>Не се прилага — вещество.</p>
<h2 class="section">РАЗДЕЛ 4: Мерки за първа помощ</h2>
<h3 class="subsection">4.1 Описание на мерките за първа помощ</h3>
<table class="data">
<tr><th>Път на експозиция</th><th>Мерки</th></tr>
<tr><td>Общи мерки</td><td>Потърсете медицински съвет/помощ ако не се чувствате добре.</td></tr>
<tr><td>След вдишване</td><td>Изведете лицето на чист въздух и го поставете в позиция, удобна за дишане.</td></tr>
<tr><td>След контакт с кожата</td><td>Измийте кожата с вода/вземете душ. Незабавно съблечете цялото замърсено облекло.</td></tr>
<tr><td>След контакт с очите</td><td>Промивайте внимателно с вода в продължение на няколко минути. Свалете контактните лещи, ако има такива и ако това може да стане лесно. Продължете с промиването.</td></tr>
<tr><td>След поглъщане</td><td>Изплакнете устата. НЕ предизвиквайте повръщане. Потърсете медицински съвет/помощ ако не се чувствате добре.</td></tr>
</table>
<h3 class="subsection">4.2 Най-важни симптоми и ефекти, остри и забавени</h3>
<table class="data">
<tr><th>Симптоми/ефекти</th><th>Описание</th></tr>
<tr><td>Общи</td><td>{'Може да предизвика сънливост или световъртеж.' if any('H336' in c for c in h_codes) else 'Може да предизвика дразнене на дихателните пътища.'}</td></tr>
<tr><td>Контакт с кожата</td><td>{'Повтарящата се експозиция може да предизвика изсушаване или напукване на кожата.' if has_euh else 'Може да предизвика дразнене на кожата.'}</td></tr>
<tr><td>Контакт с очите</td><td>{'Предизвиква сериозно дразнене/увреждане на очите.' if any(c in ('H318','H319') for c in h_codes) else 'Може да предизвика дразнене на очите.'}</td></tr>
</table>
<h3 class="subsection">4.3 Указание за необходимостта от всякакви неотложни медицински грижи и специално лечение</h3>
<p>Лекувайте симптоматично.</p>
<h2 class="section">РАЗДЕЛ 5: Противопожарни мерки</h2>
<h3 class="subsection">5.1 Средства за гасене на пожар</h3>
<table class="layout">
<tr><td>Подходящи средства за гасене</td><td>Воден спрей. Сух прах. Пяна. Въглероден диоксид (CO₂).</td></tr>
<tr><td>Неподходящи средства за гасене</td><td>Водна струя под високо налягане.</td></tr>
</table>
<h3 class="subsection">5.2 Особени опасности, произтичащи от веществото или сместа</h3>
<table class="layout">
<tr><td>Пожарна опасност</td><td>{bg_h(h_codes[0]) if h_codes else 'Не е запалим.'}</td></tr>
<tr><td>Опасни продукти на разпадане</td><td>Токсични димни газове. Въглеродни оксиди (CO, CO₂).</td></tr>
</table>
<h3 class="subsection">5.3 Съвети за пожарникарите</h3>
<p>Не предприемайте действия без подходящи защитни средства. Използвайте автономен дихателен апарат и пълно защитно облекло. Оставете контейнерите, изложени на огън, да се охладят с воден спрей.</p>
<h2 class="section">РАЗДЕЛ 6: Мерки при аварийно изпускане</h2>
<h3 class="subsection">6.1 Лични предпазни мерки, предпазно оборудване и процедури при спешни случаи</h3>
<table class="data">
<tr><th>Персонал</th><th>Мерки</th></tr>
<tr><td>За персонал, работещ не при спешни случаи</td><td>Носете препоръчаните лични предпазни средства. Проветрете зоната на разлива. Без открит пламък, без искри и без пушене. Избягвайте вдишване на пари/аерозоли.</td></tr>
<tr><td>За лица, оказващи помощ при спешни случаи</td><td>Носете защитно облекло. Използвайте автономен дихателен апарат. Отстранете всички източници на запалване, ако това е безопасно. Евакуирайте ненужния персонал.</td></tr>
</table>
<h3 class="subsection">6.2 Предпазни мерки за опазване на околната среда</h3>
<p>Да се избягва изпускане в околната среда. Предотвратете навлизането на продукта в канализацията, водни басейни и почва. Уведомете съответните органи при значителни разливи.</p>
<h3 class="subsection">6.3 Методи и материали за ограничаване и почистване</h3>
<table class="layout">
<tr><td>Методи за почистване</td><td>Поемете разлятата течност в абсорбиращ материал (пясък, диатомит, киселинен абсорбент, универсален абсорбент, дървени стърготини).</td></tr>
<tr><td>Друга информация</td><td>Изхвърлете материалите в съответствие с местните, регионалните, националните и/или международните разпоредби.</td></tr>
</table>
<h3 class="subsection">6.4 Позоваване на други раздели</h3>
<p>Вижте предпазните мерки, посочени в раздели 7 и 8. За информация относно обезвреждане вижте раздел 13.</p>
<h2 class="section">РАЗДЕЛ 7: Работа и съхранение</h2>
<h3 class="subsection">7.1 Предпазни мерки за безопасна работа</h3>
<p>Да се пази от топлина, горещи повърхности, искри, открит пламък и други източници на запалване. Тютюнопушенето забранено. Заземете/еквипотенциално свържете съда и приемното оборудване. Използвайте само инструменти, които не предизвикват искри. Предприемете мерки срещу статично електричество. Избягвайте вдишване на пари. Избягвайте контакт с кожата и очите. Носете лични предпазни средства.</p>
<p><b>Хигиенни мерки:</b> Да не се яде, пие и пуши при работа с продукта. Винаги мийте ръцете си след работа. Замърсеното работно облекло да не се изнася от работното място.</p>
<h3 class="subsection">7.2 Условия за безопасно съхранение, включително несъвместимости</h3>
<table class="layout">
<tr><td>Технически мерки</td><td>Заземете/еквипотенциално свържете съда и приемното оборудване.</td></tr>
<tr><td>Условия на съхранение</td><td>Да се съхранява на добре проветриво място. Да се съхранява на хладно. Да се съхранява в плътно затворен съд. Да се съхранява под ключ.</td></tr>
<tr><td>Несъвместими материали</td><td>Да се пази от открит пламък, горещи повърхности, силни окислители и източници на запалване.</td></tr>
</table>
<h3 class="subsection">7.3 Специфична(и) крайна(и) употреба(и)</h3>
<p>Няма допълнителна информация.</p>
<h2 class="section">РАЗДЕЛ 8: Контрол на експозицията/лични предпазни средства</h2>
<h3 class="subsection">8.1 Параметри на контрол</h3>
<table class="data">
<tr><th colspan="2">Граници на професионална експозиция (OEL/IOELV)</th></tr>
<tr><td>OEL TWA</td><td>{oel}</td></tr>
</table>
<table class="data"><tr><th colspan="2">DNEL/DMEL — Workers</th></tr>
<tr><td>Acute — inhalation</td><td>1,468 mg/m³</td></tr>
<tr><td>Long-term — dermal</td><td>63 mg/kg bw/day</td></tr>
<tr><td>Long-term — inhalation</td><td>734 mg/m³</td></tr></table>
<table class="data"><tr><th colspan="2">DNEL/DMEL — General population</th></tr>
<tr><td>Acute — inhalation</td><td>734 mg/m³</td></tr>
<tr><td>Long-term — oral</td><td>4.5 mg/kg bw/day</td></tr>
<tr><td>Long-term — inhalation</td><td>367 mg/m³</td></tr>
<tr><td>Long-term — dermal</td><td>37 mg/kg bw/day</td></tr></table>
<table class="data"><tr><th colspan="2">PNEC</th></tr>
<tr><td>Freshwater</td><td>0.24 mg/l</td></tr>
<tr><td>Marine water</td><td>0.024 mg/l</td></tr>
<tr><td>Soil</td><td>0.148 mg/kg dwt</td></tr>
<tr><td>STP</td><td>650 mg/l</td></tr></table>
<h3 class="subsection">8.2 Контрол на експозицията</h3>
<table class="data">
<tr><th>Вид контрол</th><th>Мерки</th></tr>
<tr><td>Инженерни мерки</td><td>Осигурете добра вентилация на работното място. Осигурете локална смукателна вентилация при емисии.</td></tr>
<tr><td>Защита на ръцете</td><td>Носете подходящи предпазни ръкавици (EN 374).</td></tr>
<tr><td>Защита на очите</td><td>Носете предпазни очила/предпазна маска за лице (EN 166).</td></tr>
<tr><td>Защита на кожата и тялото</td><td>Носете подходящо защитно облекло (EN 14605).</td></tr>
<tr><td>Дихателна защита</td><td>При недостатъчна вентилация използвайте подходящи дихателни средства (EN 143, EN 149).</td></tr>
<tr><td>Контрол на околната среда</td><td>Да се избягва изпускане в околната среда.</td></tr>
</table>
<h2 class="section">РАЗДЕЛ 9: Физични и химични свойства</h2>
<h3 class="subsection">9.1 Информация относно основните физични и химични свойства</h3>
<table class="data">
<tr><th>Свойство</th><th>Стойност</th></tr>
<tr><td>Физично състояние при 20 °C</td><td>Течност</td></tr>
<tr><td>Цвят</td><td>Безцветен</td></tr>
<tr><td>Мирис</td><td>Характерен</td></tr>
<tr><td>Точка на кипене</td><td>{bp}</td></tr>
<tr><td>Точка на запалване</td><td>{fp}</td></tr>
<tr><td>Плътност</td><td>{density}</td></tr>
<tr><td>Разтворимост във вода</td><td>Смесим/разтворим</td></tr>
</table>
<h2 class="section">РАЗДЕЛ 10: Стабилност и реактивоспособност</h2>
<h3 class="subsection">10.1 Реактивоспособност</h3>
<p>{bg_h(h_codes[0]) if h_codes and not h_codes[0].startswith('EUH') else 'Не е реактивен при нормални условия.'}</p>
<h3 class="subsection">10.2 Химична стабилност</h3>
<p>Стабилен при нормални условия на температура и налягане.</p>
<h3 class="subsection">10.3 Възможност за опасни реакции</h3>
<p>Не са известни опасни реакции при нормални условия на употреба.</p>
<h3 class="subsection">10.4 Условия, които трябва да се избягват</h3>
<p>Избягвайте контакт с горещи повърхности, открит пламък, искри и други източници на запалване.</p>
<h3 class="subsection">10.5 Несъвместими материали</h3>
<p>Силни окислители. Силни киселини.</p>
<h3 class="subsection">10.6 Опасни продукти на разпадане</h3>
<p>При нормални условия на съхранение и употреба не се образуват опасни продукти на разпадане. При термично разлагане: въглеродни оксиди.</p>
<h2 class="section">РАЗДЕЛ 11: Токсикологична информация</h2>
<h3 class="subsection">11.1 Информация относно класовете на опасност</h3>
<table class="data">
<tr><th>Токсикологична крайна точка</th><th>Резултат</th></tr>
<tr><td>Остра токсичност — орална (LD50)</td><td>{'≥ 300 – 2000 mg/kg (категория 4)' if any(c=='H302' for c in h_codes) else '≥ 2000 mg/kg (не се класифицира)'}</td></tr>
<tr><td>Остра токсичност — дермална (LD50)</td><td>{'≥ 1000 – 2000 mg/kg (категория 4)' if any(c=='H312' for c in h_codes) else '≥ 2000 mg/kg (не се класифицира)'}</td></tr>
<tr><td>Остра токсичност — инхалаторна (LC50)</td><td>{'≥ 10 – 200 mg/l (категория 3)' if any(c=='H331' for c in h_codes) else '≥ 5 mg/l (не се класифицира)'}</td></tr>
<tr><td>Дразнене/корозия на кожата</td><td>{'Корозивен (категория 1A)' if any(c=='H314' for c in h_codes) else ('Дразнещ (категория 2)' if any(c=='H315' for c in h_codes) else 'Не се класифицира')}</td></tr>
<tr><td>Сериозно увреждане/дразнене на очите</td><td>{'Категория 1 (необратимо)' if any(c=='H318' for c in h_codes) else ('Категория 2 (обратимо)' if any(c=='H319' for c in h_codes) else 'Не се класифицира')}</td></tr>
<tr><td>СТОО — еднократна експозиция</td><td>{'Категория 3 — наркоза' if any(c=='H336' for c in h_codes) else ('Категория 1' if any(c=='H370' for c in h_codes) else 'Не се класифицира')}</td></tr>
<tr><td>СТОО — многократна експозиция</td><td>{'Категория 1' if any(c=='H372' for c in h_codes) else ('Категория 2' if any(c=='H373' for c in h_codes) else 'Не се класифицира')}</td></tr>
<tr><td>Канцерогенност</td><td>{'Категория 2 (подозиран)' if any(c=='H351' for c in h_codes) else 'Не се класифицира'}</td></tr>
<tr><td>Репродуктивна токсичност</td><td>{'Категория 2 (подозиран)' if any(c=='H361' for c in h_codes) else 'Не се класифицира'}</td></tr>
<tr><td>Сенсибилизация на дихателните пътища/кожата</td><td>Не се класифицира</td></tr>
<tr><td>Мутагенност на зародишни клетки</td><td>{'Категория 2 (подозиран)' if any(c=='H341' for c in h_codes) else 'Не се класифицира'}</td></tr>
<tr><td>Аспирационна опасност</td><td>{'Категория 1' if any(c=='H304' for c in h_codes) else 'Не се класифицира'}</td></tr>
</table>
<h3 class="subsection">11.2 Информация за други опасности</h3>
<p>Не се класифицира като притежаващ ендокринно нарушаващи свойства съгласно критериите на CLP, изменен с (ЕС) 2024/2865.</p>
<h2 class="section">РАЗДЕЛ 12: Екологична информация</h2>
<h3 class="subsection">12.1 Токсичност</h3>
<p>Продуктът не се счита за силно опасен за водните организми.</p>
<table class="data">
<tr><th>Endpoint</th><th>Value</th><th>Species</th></tr>
<tr><td>LC50 (fish, 96h)</td><td>230 mg/l</td><td>Pimephales promelas</td></tr>
<tr><td>EC50 (daphnia, 48h)</td><td>720 mg/l</td><td>Daphnia magna</td></tr>
<tr><td>EC50 (algae, 72h)</td><td>3,300 mg/l</td><td>—</td></tr>
</table>
<h3 class="subsection">12.2 Устойчивост и разградимост</h3>
<p>Очаква се да бъде лесно биоразградим.</p>
<h3 class="subsection">12.3 Биоакумулиращ потенциал</h3>
<p>Не се очаква биоакумулация (log Kow &lt; 3).</p>
<h3 class="subsection">12.4 Мобилност в почвата</h3>
<p>Продуктът е течност, която може да проникне в почвата.</p>
<h3 class="subsection">12.5 Резултати от оценката на PBT и vPvB</h3>
<p>Не се класифицира като PBT или vPvB съгласно Приложение XIII на REACH.</p>
<h3 class="subsection">12.6 Ендокринно нарушаващи свойства</h3>
<p>Не се класифицира като притежаващ ендокринно нарушаващи свойства.</p>
<h3 class="subsection">12.7 Други неблагоприятни ефекти</h3>
<p>Няма допълнителна информация.</p>
<h2 class="section">РАЗДЕЛ 13: Обезвреждане</h2>
<h3 class="subsection">13.1 Методи за третиране на отпадъци</h3>
<table class="layout">
<tr><td>Методи за третиране на отпадъци</td><td>Изхвърлете съдържанието/съда в съответствие с инструкциите за сортиране на лицензиран събирач на отпадъци.</td></tr>
<tr><td>Обезвреждане на опаковките</td><td>Изхвърлете в пункт за събиране на опасни или специални отпадъци в съответствие с местните, регионалните, националните и/или международните разпоредби.</td></tr>
<tr><td>Код на отпадъка (EWC)</td><td>07 01 04* — Други органични разтворители, промивни течности и маточни разтвори</td></tr>
</table>
<h2 class="section">РАЗДЕЛ 14: Информация относно транспортирането</h2>
<p>В съответствие с ADR / RID / IMDG / IATA / ADN</p>
{transport}
{adr_details}
<h3 class="subsection">14.7 Транспортиране в насипно състояние съгласно инструменти на IMO</h3>
<p>Не се прилага.</p>
<h2 class="section">РАЗДЕЛ 15: Информация относно нормативната уредба</h2>
<h3 class="subsection">15.1 Специфични за веществото или сместа разпоредби за безопасност, здраве и околна среда/законодателство</h3>
<h3 class="subsection">15.1.1 Регламенти на ЕС</h3>
<ul>
<li>Няма ограничения по REACH Приложение XVII.</li>
<li>Продуктът не е в списъка на кандидат-веществата (SVHC) по REACH.</li>
<li>Продуктът не е в Приложение XIV на REACH (Списък на разрешените).</li>
<li>Не подлежи на Регламент (ЕС) No 649/2012 (PIC).</li>
<li>Не подлежи на Регламент (ЕС) 2019/1021 (POP).</li>
</ul>
<h3 class="subsection">15.1.2 Национални разпоредби</h3>
<table class="data">
<tr><th>Държава</th><th>Регламент</th><th>Статус</th></tr>
<tr><td>Германия</td><td>Клас на опасност за водата (WGK)</td><td>WGK 1 — Слабо опасно за водата</td></tr>
</table>
<h3 class="subsection">15.2 Оценка на химичната безопасност</h3>
<p>Не е извършена оценка на химичната безопасност за този продукт.</p>
<h2 class="section">РАЗДЕЛ 16: Друга информация</h2>
<h3 class="subsection">Пълен текст на H- и EUH-предупрежденията</h3>
<table class="data">
<tr><th>Код</th><th>Текст</th></tr>
{h_rows}
</table>
<h3 class="subsection">Използвани съкращения</h3>
<table class="data">
<tr><th>Съкращение</th><th>Пълно наименование</th></tr>
<tr><td>ADR</td><td>Европейско споразумение за международен превоз на опасни товари по шосе</td></tr>
<tr><td>CAS</td><td>Chemical Abstract Service — идентификационен номер</td></tr>
<tr><td>CLP</td><td>Класифициране, етикетиране и опаковане — Регламент (ЕО) 1272/2008</td></tr>
<tr><td>ECHA</td><td>Европейска агенция по химикали</td></tr>
<tr><td>IATA</td><td>Международна асоциация за въздушен транспорт</td></tr>
<tr><td>IMDG</td><td>Международен морски код за опасни товари</td></tr>
<tr><td>PBT</td><td>Устойчив, биоакумулиращ и токсичен</td></tr>
<tr><td>PPE</td><td>Лични предпазни средства</td></tr>
<tr><td>REACH</td><td>Регламент (ЕО) 1907/2006</td></tr>
<tr><td>SVHC</td><td>Вещества, пораждащи сериозно безпокойство</td></tr>
<tr><td>vPvB</td><td>Много устойчив и много биоакумулиращ</td></tr>
<tr><td>WGK</td><td>Wassergefährdungsklasse (клас на опасност за водата, Германия)</td></tr>
</table>
<br>
<p style="font-size: 8pt; color: {MUTED}; border-top: 1pt solid {BORDER}; padding-top: 4pt;">
<b>Отказ от отговорност:</b> Информацията в настоящия информационен лист за безопасност се основава на нашите познания към датата на издаване и е предназначена само като ръководство за безопасна работа, употреба, съхранение, транспорт и обезвреждане. Синтезия ООД не носи отговорност за щети или загуби в резултат на неправилна употреба на продукта или неспазване на посочените инструкции. Този ИЛБ е валиден само за посочения продукт.
</p>
</body>
</html>"""
return html
# ─── Generate all ───
# now removed('%Y-%m-%d %H:%M:%S')
for p in PRODUCTS:
bg_name, en_name = p[0], p[1]
h_codes = p[6]
mol_formula = p[7]
cas = p[2]
ec = p[3]
reach_no = p[5]
oel = p[15]
un = p[9]
un_class = p[10]
un_pg = p[11]
density = p[14]
bp = p[13]
fp = p[12]
# Generate HTML
html = build_html(p)
# Add thead/tbody
pat = re.compile(r'(<table class="data">)(.*?)(</table>)', re.DOTALL)
def proc(m):
op, body, cl = m.group(1), m.group(2), m.group(3)
rows = re.findall(r'<tr>.*?</tr>', body, re.DOTALL)
if not rows: return m.group(0)
hrows, drows = [], []
for r in rows:
if '<th' in r and not drows: hrows.append(r)
else: drows.append(r)
if not hrows: return m.group(0)
return op + '<thead>' + ''.join(hrows) + '</thead><tbody>' + ''.join(drows) + '</tbody>' + cl
html = pat.sub(proc, html)
# Write HTML
fkey = en_name.lower().split('(')[0].strip().replace(' ', '-').replace('/', '-').replace('--', '-').rstrip('-')
html_path = os.path.join(OUT_DIR, f'sds-bg-{fkey}.html')
with open(html_path, 'w', encoding='utf-8') as f:
f.write(html)
# Generate PDF
pdf_path = os.path.join(OUT_DIR, f'SDS_BG_{en_name.upper().replace(" ","_").replace("(","").replace(")","").replace("-","_")}.pdf')
HTML(string=html).write_pdf(pdf_path)