# Периоды форм ББ/ОФР: подпись колонки или подзаголовок формы -> дата (конец периода). §11.3, §12 п. 4. # Регулярки ищутся без учёта регистра. Относительные подписи применяются к подписи после normalize_caption. max_text_length: 200 # длиннее — не дата (защита от backtracking) years: {min: 1990, max: 2100} # одинокий год вне диапазона датой не считается # Основа названия месяца -> номер (сопоставляется по началу слова) months: январ: 1 феврал: 2 март: 3 апрел: 4 ма: 5 июн: 6 июл: 7 август: 8 сентябр: 9 октябр: 10 ноябр: 11 декабр: 12 # Относительные подписи колонок (по порядку проверки) relative: - {kind: "relative:prev_prev_year_end", pattern: 'предшествующ\w*\s+предыдущ'} - {kind: "relative:prev_year_end", pattern: 'декабр\w*\s+предыдущ'} - {kind: "relative:prev_period", pattern: 'аналогичн\w*\s+период\w*\s+предыдущ'} - {kind: "relative:current", pattern: 'отч[её]тн\w*\s+(дат|период)'} # Абсолютные формы по приоритету (§11.3 п. 3). Именованные группы: d (день), m (месяц числом), mw (месяц словом), # y (год, 2 или 4 цифры), q (номер квартала/полугодия словом, римской или арабской цифрой), n (число месяцев). absolute: - kind: range_end # «с 01.01.2025 по 30.09.2025»: конец диапазона pattern: 'по\s*(?P\d{1,2})[.\-/ ](?P\d{1,2})[.\-/ ](?P\d{4}|\d{2})' - kind: day_month_year # «31 декабря 2025 г.», «на 30 сентября 2025 года» pattern: '(?P\d{1,2})\s+(?P[а-яё]{3,8})\s+(?P\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?' - kind: quarter # «I квартал 2026», «1-й кв. 2026», «первый квартал» pattern: '(?PI{1,3}V?|IV|\d|перв\w*|втор\w*|трет\w*|четв\w*)\s*-?\s*(?:й|ый|ого|го)?\s*кв\w*\.?\s*(?P\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?' - kind: half # «1 полугодие 2026», «первое полугодие», «1 п/г 2026» pattern: '(?PI{1,3}V?|IV|\d|перв\w*|втор\w*|трет\w*|четв\w*)\s*-?\s*(?:е|ое|го)?\s*(?:полугоди\w*|п/г)\.?\s*(?P\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?' - kind: months # «9 месяцев 2025», «9 мес. 2025» pattern: '(?P\d{1,2})\s*мес\w*\.?\s*(?P\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?' - kind: month_range # «январь - сентябрь 2025»: последний месяц pattern: '[а-яё]{3,8}\s*[-–—]\s*(?P[а-яё]{3,8})\s*(?P\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?' - kind: year # «за 2025 г.», «2025 год», «2025г» pattern: '(?:за\s*)?(?:отч[её]тный\s*)?(?P\d{4})\s*(?:г\b|г\.|r\b|r\.|год)'