const sections = [ {id:'details', title:'Реквизиты организации и контактная информация', image:'assets/pictures/Реквизиты организации и контактная информация.png'}, {id:'legal', title:'Правовой статус', image:'assets/pictures/Правовой статус.png'}, {id:'about', title:'Информация', image:'assets/pictures/Информация.png'}, {id:'finance', title:'Финансовые показатели', image:'assets/pictures/Финансовые показатели.png'}, {id:'ownership', title:'Структура собственности', image:'assets/pictures/Структура.png'}, {id:'activity', title:'Виды деятельности', image:'assets/pictures/Вид деятельности.png'}, {id:'stability', title:'Финансовая устойчивость', image:'assets/pictures/Финансовая устойчивость.png'} ]; // Эталонные макеты задают закрытый набор разделов карточки организации. // Любые связи, руководители, филиалы и участие в капитале могут находиться // только внутри подходящего раздела, но не становиться отдельной карточкой. const organizationSectionTitles=new Map(sections.map(section=>[section.id,section.title])); const finalizeOrganizationCard=()=>{ const root=document.querySelector('#content'); if(!root)return; const seen=new Set(); root.querySelectorAll(':scope > .section-card').forEach(card=>{ const title=organizationSectionTitles.get(card.id); if(!title||seen.has(card.id)){ card.remove(); return; } seen.add(card.id); const heading=card.querySelector(':scope > .card-head h2'); if(heading)heading.textContent=title; }); document.querySelectorAll('#sectionNav a').forEach(link=>{ link.style.display=seen.has(link.getAttribute('href').slice(1))?'':'none'; }); }; const expandIcon = ``; const collapseIcon = ``; const detailsIcon = ``; // Исходные значения сохраняют точность, но в интерфейсе показываются целыми. const withoutDecimalPlaces=value=>String(value).replace(/([−-]?\d(?:[\d \u00a0]*\d)?),\d+(?=\s|%|₽|$|[.;:])/g,'$1'); const formatVisibleNumbers=root=>{ if(!root)return; const textNodes=[]; const walker=document.createTreeWalker(root,NodeFilter.SHOW_TEXT); while(walker.nextNode()){ const node=walker.currentNode; if(!node.parentElement?.closest('script,style,[data-keep-decimals]'))textNodes.push(node); } textNodes.forEach(node=>{ const formatted=withoutDecimalPlaces(node.nodeValue); if(formatted!==node.nodeValue)node.nodeValue=formatted; }); root.querySelectorAll?.('[data-value],[aria-label],[title]').forEach(element=>{ ['data-value','aria-label','title'].forEach(attribute=>{ if(!element.hasAttribute(attribute))return; const value=element.getAttribute(attribute); const formatted=withoutDecimalPlaces(value); if(formatted!==value)element.setAttribute(attribute,formatted); }); }); }; const kv = (pairs) => `
${pairs.map(([a,b])=>`${a}${b}`).join('')}
`; const expand = s => ``; const chart = (title,value,unit,values,max,ticks) => `
${title}
2025 г.   ${value}
${unit}${ticks.map(t=>`${t}`).join('')}
${values.map((v,i)=>{const year=2017+i;const label=String(v).replace('.',',');return ``}).join('')}
`; const smoothLine=points=>points.length===1?`M ${points[0].x} ${points[0].y}`:points.slice(1).reduce((path,next,i)=>{const current=points[i],middle=(current.x+next.x)/2;return `${path} C ${middle} ${current.y}, ${middle} ${next.y}, ${next.x} ${next.y}`},`M ${points[0].x} ${points[0].y}`); const lineChart=(title,unit,data,min,max,ticks,color,highlight='')=>{const left=76,right=944,top=45,bottom=282,width=right-left,height=bottom-top,yFor=value=>bottom-(value-min)/(max-min)*height,slots=data.map((d,i)=>({x:data.length===1?(left+right)/2:left+i/(data.length-1)*width,...d})),segments=[];let current=[];slots.forEach(slot=>{if(Number.isFinite(slot.value)){current.push({...slot,y:yFor(slot.value)})}else if(current.length){segments.push(current);current=[]}});if(current.length)segments.push(current);const points=segments.flat(),zero=min<0&&max>0?yFor(0):bottom,paths=segments.map(segment=>{const line=smoothLine(segment),area=segment.length>1?`${line} L ${segment.at(-1).x} ${zero} L ${segment[0].x} ${zero} Z`:'';return `${area?``:''}${segment.length>1?``:''}`}).join(''),employeeClass=title==='Численность сотрудников'?' employee-chart':'';return `

${title}

${highlight?`${highlight}`:''}${unit}${ticks.map(t=>{const y=yFor(t.value);return `${t.label}`}).join('')}${slots.map(p=>``).join('')}${paths}${slots.map(p=>`${p.year}`).join('')}${points.map(p=>`${p.year}${p.label}`).join('')}${slots.filter(p=>!Number.isFinite(p.value)).map(p=>`${p.year}: ${p.label||'нет данных'}`).join('')}
`}; const historyText = `4 февраля 1914 года открыло свои действия "Российское Акционерное Общество Оптического и Механического Производств". С этой даты началась история первой и на сегодняшний день крупнейшей российской компании, которая производит оптико-механические и оптико-электронные приборы. Экспозиция Музея истории ЛОМО располагается в помещении площадью 200 кв. м и содержит экспонаты, отражающие все этапы почти вековой истории фирмы - приборы, фотографии, письменные документы. Отдельные витрины посвящены периоду становления завода (1914-1917 гг.), годам Гражданской войны (1917-1922 гг.), индустриализации (20-30-е гг.), военному периоду (1941-1945 гг.), послевоенному восстановлению и развитию (1945-1962 гг.), работе фирмы после объединения (60-80-е гг.) и в новых экономических условиях. Из продукции фирмы в экспозиции Музея большое место занимают изделия оборонного назначения, дифракционные решетки, приборы для авиации, медицинское оборудование, кино- и фототехника, наблюдательные приборы. В 1918 году предприятие было национализировано. Пережив трудные годы Гражданской войны, завод продолжил выпуск оптических приборов. Предприятие, получившее в 1930 году имя ГОМЗ (Государственный оптико-механический завод), успешно развивалось, осваивая все новые и новые направления оптического приборостроения. В годы войны завод серьезно пострадал, но ни на один день не прекращал выпуск продукции - прежде всего остро необходимых фронту военных приборов. После 1945 года он был в короткие сроки восстановлен и вскоре вновь стал процветающим, динамично растущим производственным организмом. 2 октября 1962 года на базе ГОМЗа и еще нескольких родственных предприятий, в том числе заводов "КИНАП" и "Прогресс", имевших свою славную историю, было создано Ленинградское объединение оптико-механических производств (ЛООМП), получившее в 1965 году свое всемирно известное имя ЛОМО (Ленинградское оптико-механическое объединение). Генеральным директором фирмы стал М.П. Панфилов, с именем которого напрямую связаны многие успехи предприятия. Образование объединения позволило ленинградским оптикам выйти на качественно новый уровень, сохранив и приумножив существовавшие богатые традиции. В течение 60-80-х гг. имя ЛОМО стало символом успеха и процветания. Благодаря концентрации и специализации производства, умелому управлению и незамедлительному внедрению всех технических новинок Объединение являлось одним из образцовых предприятий СССР. Непростые времена для ЛОМО, как и для всей отечественной промышленности, наступили на рубеже 80-90-х гг., когда крупномасштабные перемены в жизни страны поставили фирму в новые условия. В 1993 году она была приватизирована, став открытым акционерным обществом "ЛОМО". Благодаря сочетанию новых подходов и старых традиций фирма сумела с честью пройти сквозь все испытания и сохранить свой производственный и научный потенциал. Продукция ЛОМО относится к высокотехнологичным изделиям. Многие приборы, изготовленные на фирме, были первыми в своих направлениях и помогали развитию новых отраслей науки и техники. Здесь в 1918 году был создан первый отечественный кинопроекционный аппарат "Русь". В 1930 году было начато серийное производство первого в СССР массового любительского фотоаппарата "Фотокор N1". С тех пор предприятие выпустило свыше 40 млн. фотоаппаратов - из них более 20 млн. модели "Смена-8М", занесенной в книгу рекордов Гиннеса как самый массовый фотоаппарат планеты. В 30-е годы была создана первая киносъемочная камера КС-1. Перед войной было освоено производство различных микроскопов, а в 1939 году созданы первая ручная киносъемочная камера КС-5 для хроникальных съемок и камера ЦКС-1 для съемки цветных фильмов. Эти изделия оказали неоценимую помощь в создании отечественной кинохроники, в том числе и в годы Великой Отечественной войны. После войны активно развивается появившееся еще в 30-е годы направление создания астрофизических приборов. Одним из первых в 1947 году был построен астрограф для Пулковской обсерватории. Продолжается создание новых типов микроскопов, в том числе для исследований в ультрафиолетовых лучах, для высокоточных измерений в ядерных фотоэмульсиях. В 1958 году на Всемирной выставке в Брюсселе микроскопы МЛ-1, МБИ-6, МБИ-8М и МИН-8 были отмечены Гран-при, а высокотемпературные микроскопы УВТ-1 - золотой медалью. Почти все кинотеатры в бывшем Советском Союзе были оборудованы кинопроекторами для широкоформатного кино производства ЛОМО. В 1959 году здесь создан первый видеомагнитофон, который коренным образом изменил технологию подготовки телевизионных передач и телевизионного вещания. Введение в эксплуатацию в 1960 году самого крупного в Европе телескопа ЗТШ с диаметром зеркала 2,6 м, а в 1976 году - крупнейшего в мире Большого Азимутального Телескопа (БТА) с монолитным главным зеркалом диаметром 6 м вывели отечественную астрофизику на передовые рубежи. Сегодня ведутся работы по созданию космических телескопов, первый из которых успешно прошел летные испытания в 1997 году. В 1965 году на ЛОМО был создан первый в СССР промышленный лазер, а в конце 70-х - первый отечественный гибкий медицинский эндоскоп. В 90-е гг. на фирме появился целый ряд новых направлений - таких, как наблюдательные приборы, оптико-электронные системы для подсчета голосов избирателей, светодиодные светофоры, приборы для обеспечения безопасности взлета и посадки самолетов. Даже в условиях экономического кризиса ЛОМО удалось не только сохранить свои позиции на отечественном рынке, но и успешно конкурировать с лучшими зарубежными производителями. Так, микроскопы петербургской фирмы в 1997 году победили в тендере ООН в Ираке, а эндоскопы в 1998 году - в тендере МБРР в России. В последние годы ЛОМО активно занимается продвижением своей продукции на мировые рынки сбыта. Примерно 50% объема продаж компании составляют экспортные поставки. Зарубежный спрос на продукцию ЛОМО обеспечивается хорошим качеством изделий при достаточно низкой для потребительского рынка развитых стран цене. Сегодня продукция ЛОМО продается в 56 странах мира, среди которых США, Великобритания, Австрия, Япония, Германия, Австралия и др. Эти усилия не остались незамеченными. В течение последних двух лет ЛОМО было награждено восемью призами от международных общественных организаций из Испании, Франции, США, Бельгии, Мексики за качество, коммерческий престиж, динамику производства и эффективный менеджмент. По данным известного делового журнала "Бизнес-Уик" ЛОМО два года подряд входит в десятку наиболее активных и стабильно развивающихся российских компаний. Сегодня ЛОМО - один из лидеров российского оптического приборостроения, крупная высокотехнологичная компания, устремленная в будущее.`; const historyHtml = historyText.split('\n').map(p=>`

${p}

`).join(''); const owners = [ {value:29.328, display:'29,328%', sector:'29,33%', color:'#174E7A', name:'Ильичев В.В. (канд. юрид. наук)'}, {value:21.505, display:'21,505%', sector:'21,5%', color:'#236B9D', name:'(!) ООО "Вирибус"'}, {value:17.370, display:'17,370%', sector:'17,37%', color:'#3186BC', name:'(!) ЗАО "Финансовый брокер БОСИ"'}, {value:9.055, display:'9,06%', sector:'9,06%', color:'#439FD0', name:'Аронов А.М. (д-р экон. наук, канд. техн. наук, проф., википедия)'}, {value:8.428, display:'8,428%', sector:'8,43%', color:'#5CB6E0', name:'(!) ООО "Ракурс"'}, {value:3.226, display:'3,226%', sector:'3,2%', color:'#78C8EC', name:'(!) ЗАО "БОСИ-Тренд"'}, {value:2.736, display:'2,736%', sector:'2,7%', color:'#9AD9F5', name:'Номинальный держатель акций аффилированного лица'}, {value:6.340, display:'6,340%', sector:'6,34%', color:'#BDE8FA', name:'неизвестные и/или миноритарные акционеры'} ]; const polar=(r,angle)=>({x:180+r*Math.cos(angle*Math.PI/180),y:180+r*Math.sin(angle*Math.PI/180)}); const donutPath=(start,end)=>{const o1=polar(146,start),o2=polar(146,end),i2=polar(79,end),i1=polar(79,start),large=end-start>180?1:0;return `M ${o1.x} ${o1.y} A 146 146 0 ${large} 1 ${o2.x} ${o2.y} L ${i2.x} ${i2.y} A 79 79 0 ${large} 0 ${i1.x} ${i1.y} Z`}; const donutSvg=()=>{ const total=owners.reduce((sum,owner)=>sum+owner.value,0); let angle=18; const parts=owners.map((owner,index)=>{ const start=angle; const end=angle+owner.value/total*360; const middle=(start+end)/2; const labelRadius=index===5?118:index===6?114:113; const labelShift=index===5?4:index===6?4:index===7?6:0; const label=polar(labelRadius,middle); const dx=Math.cos(middle*Math.PI/180)*13; const dy=Math.sin(middle*Math.PI/180)*13; angle=end; return {owner,index,start,end,label,dx,dy,labelShift}; }); const sectors=parts.map(({owner,index,start,end,dx,dy})=>``).join(''); const labels=parts.map(({owner,index,label,dx,dy,labelShift})=>`${owner.display}`).join(''); return `${sectors}${labels}`; }; const participation=[ ['100,000% (!)','ООО "Сбытовая Энергетическая Компания"'], ['85,000% (!)','ООО "Мехпроф"'], ['80,000% (!)','ООО "ЛОМО МЕТЕО"'], ['60,000% (!)','ООО "ЛОМО-Микросистемы"'], ['51,000% (!)','ЗАО "ЛОМО ЛАЗЕР"'], ['25,000% (!)','ООО "Ломо Фотоника Плюс"'], ['15,000% (!)','ООО "ПЕТРО-ЛОМО"'], ['4,000% (!)','ООО "Ломо-прибор"'] ]; const participationHtml=participation.map(([share,company])=>`
${share} ${company}
`).join(''); function details(s){return `

${s.title}

${expand(s)}

Идентификаторы

${kv([['ID','275'],['ИНН','7804002321'],['ОГРН','1027802498514'],['ОКПО','07502348'],['Код эмитента','00074-А']])}

Местоположение

${kv([['Федеральный округ','Северо-Западный федеральный округ'],['Субъект федерации','г. Санкт-Петербург,'],['Город','г. Санкт-Петербург,'],['Местонахождение','194044, г. Санкт-Петербург, ул. Чугунная, д.20'],['Юр. адрес','194044, г. Санкт-Петербург, ул. Чугунная, д.20']])}

Контактная информация

${kv([['Телефоны','(812) 324-84-31'],['Факс','(812) 324-84-31'],['E-mail','lomo@lomo.sp.ru, info@lomo.ru, nvlitvin@lomo.ru, lomo@lomo.ru'],['Сайт','www.lomo.ru'],['Раскрытие информации','e-disclosure.ru, disclosure.1prime.ru'],['Википедия','статья в Википедии'],['Руководитель','Управляющий директор Владимиров Дмитрий Анатольевич']])}

Классификаторы

${table([['Название','Код','Расшифровка'],['ОКОПФ','12267','Непубличные акционерные общества'],['ОКАТО','40273563000','Финляндский'],['ОКТМО','40330000000','муниципальный округ Финляндский округ'],['ОКФС','16','Частная собственность'],['ОКОГУ','4210008','Приватизированные предприятия']])}
`} function table(rows){return `${rows.map((r,i)=>`${r.map(c=>i?``:``).join('')}`).join('')}
${c}${c}
`} function legal(s){let text=`Включено в сводный реестр организаций ОПК, позиция - 905 (с редакции от 10.09.2004 №104)
Включено в перечень стратегических организаций, утвержденный распоряжением Правительства РФ от 20.08.2009 № 1226-р, № позиции - 3.698
Включено в Перечень отдельных организаций ОПК, их структурных подразделений и отдельных производственных объектов
Включено в Перечень организаций, по которым осуществляется мониторинг показателей результатов их деятельности.`;return ``} function about(s){return `

${s.title}

${expand(s)}

Краткая справка

АО "ЛОМО" является ведущим предприятием России по производству оптических, оптико-электронных, оптико-цифровых и оптико-механических приборов, систем и комплексов. В настоящее время ЛОМО сохраняет лидерство в целом ряде областей наукоемкого оптического приборостроения.

Историческая справка

${historyHtml}
`} function finance(s){const missing=year=>({year,value:null,label:'точное значение не подтверждено'}),revenue=[{year:2017,value:3.272795,label:'3,273 млрд руб.'},{year:2018,value:3.766551,label:'3,767 млрд руб.'},{year:2019,value:4.182,label:'4,182 млрд руб.'},{year:2020,value:5.399316,label:'5,399 млрд руб.'},{year:2021,value:6.218799,label:'6,219 млрд руб.'},{year:2022,value:5.136,label:'5,136 млрд руб.'},{year:2023,value:8.504156,label:'8,504 млрд руб.'},missing(2024),missing(2025),{year:2026,value:null,label:'год ещё не завершён'}],profit=[{year:2017,value:-339.525,label:'−339,5 млн руб.'},{year:2018,value:114.449,label:'114,4 млн руб.'},{year:2019,value:21.7,label:'21,7 млн руб.'},{year:2020,value:-249.4,label:'−249,4 млн руб.'},{year:2021,value:281.125,label:'281,1 млн руб.'},{year:2022,value:-73.6,label:'−73,6 млн руб.'},{year:2023,value:-211.4,label:'−211,4 млн руб.'},missing(2024),{year:2025,value:null,label:'сообщалось о прибыли, сумма не подтверждена'},{year:2026,value:null,label:'год ещё не завершён'}],employees=Array.from({length:10},(_,i)=>({year:2017+i,value:null,label:i===9?'год ещё не завершён':'публичные данные не найдены'}));return `

${s.title}

${expand(s)}
Выручка
2023 г.   8,504 млрд руб.
Чистая прибыль
2023 г.   −211,4 млн руб.
Численность сотрудников
Публичные данные не найдены
${lineChart('Выручка','млрд руб.',revenue,0,9,[{value:9,label:'9'},{value:8,label:'8'},{value:7,label:'7'},{value:6,label:'6'},{value:5,label:'5'},{value:4,label:'4'},{value:3,label:'3'},{value:2,label:'2'},{value:1,label:'1'},{value:0,label:'0'}],'#5497D2')}${lineChart('Чистая прибыль','млн руб.',profit,-400,400,[{value:400,label:'400'},{value:300,label:'300'},{value:200,label:'200'},{value:100,label:'100'},{value:0,label:'0'},{value:-100,label:'−100'},{value:-200,label:'−200'},{value:-300,label:'−300'},{value:-400,label:'−400'}],'#55775F')}${lineChart('Численность сотрудников','чел.',employees,0,4,[{value:4,label:''},{value:3,label:''},{value:2,label:''},{value:1,label:''},{value:0,label:''}],'#BE7AB9')}
`} function ownership(s){return `

${s.title}

${expand(s)}

Держатель реестра акционеров: АО “РТ-Регистратор”

${donutSvg()}
Выберите секторНажмите на сектор диаграммы, чтобы увидеть сведения
93,660% Группа акционеров "ЛОМО", в т.ч.${owners.map((o,i)=>`
${o.display} ${o.name}
`).join('')}
`} function activity(s){return `

${s.title}

${expand(s)}
Основной вид деятельности:
Производственная

ОКВЭД: 26.51.6 ОК 029-2014 (КДЕС Ред. 2) Производство прочих приборов, датчиков, аппаратуры и инструментов для измерения, контроля и испытаний

Основной вид деятельности

Производственная
ОКВЭД: 26.51.6 ОК 029-2014 (КДЕС Ред. 2) Производство прочих приборов, датчиков, аппаратуры и инструментов для измерения, контроля и испытаний

Действующие лицензии

27.04.2022 № Л052-00102-77/00146768 Сервисное обслуживание ВВТ
22.06.2015 № Л008-00102-77/00006612 Разработка, производство, испытания, установка, монтаж
20.05.2011 № Л026-00122-77/00027451 Космическая деятельность

Основные направления деятельности (специализация)

Оптические полуактивные и пассивные головки самонаведения. Оптические системы, приборы наблюдения и обнаружения, оптико-цифровые системы наблюдения, зеркально-линзовые телескопы космического базирования.
`} const bankruptcyTimeline=` Определением АС Пермского края по делу № А50-43610/2005-В
10.03.2006 введено наблюдение;
30.10.2006 введено внешнее управление;
20.02.2009 заключение мирового соглашения.
Инициатор банкротства - Муниципальное предприятие "Пермводоканал", ООО "Новая городская инфраструктура Прикамья".
Определением АС Пермского края по делу № А50-43610/2005-В
03.11.2009 введено внешнее управление;
19.04.2010 открыто конкурсное производство;
30.04.2025 завершение конкурсного производства (ликвидация).
Инициатор банкротства - Муниципальное предприятие "Пермводоканал", ООО "Новая городская инфраструктура Прикамья"`; function stability(s){return `

${s.title}

${expand(s)}

Банкротство и меры по предупреждению

${bankruptcyTimeline}

Субсидии на предупреждение банкротства

Предоставлена субсидия с целью предупреждения банкротства: до 853 000,000 тыс. руб. (распоряжение Правительства РФ от 10.11.2025 № 3199-р).
${table([['Тип процедуры','Дата','Номер дела','Принятое решение'],['Наблюдение','10.03.2006','А50-43610/2005-В','Введено наблюдение'],['Внешнее управление','30.10.2006','А50-43610/2005-В','Введено внешнее управление'],['Мировое соглашение','20.02.2009','А50-43610/2005-В','Заключено мировое соглашение'],['Конкурсное производство','19.04.2010','А50-43610/2005-В','Открыто конкурсное производство']])}
`} const renderers=[details,legal,about,finance,ownership,activity,stability]; document.querySelector('#content').innerHTML=sections.map((s,i)=>renderers[i](s)).join(''); const ownershipMeta=document.createElement('div'); ownershipMeta.className='ownership-meta'; ownershipMeta.innerHTML='Акционеры (75% ОА)Номинал акции 5 000 руб.'; document.querySelector('#ownership .ownership-panel').before(ownershipMeta); const ownershipLegendTitle=document.querySelector('#ownership .legend-title'); const ownershipGroupText=document.createElement('span'); ownershipGroupText.className='legend-group'; ownershipGroupText.textContent=[...ownershipLegendTitle.childNodes].filter(node=>node.nodeType===Node.TEXT_NODE).map(node=>node.textContent).join(' ').trim(); [...ownershipLegendTitle.childNodes].filter(node=>node.nodeType===Node.TEXT_NODE).forEach(node=>node.remove()); ownershipLegendTitle.append(ownershipGroupText); document.querySelector('#about .summary').innerHTML='АО "ЛОМО" является ведущим предприятием России по производству оптических, оптико-электронных, оптико-цифровых и оптико-механических приборов, систем и комплексов. В настоящее время ЛОМО сохраняет лидерство в целом ряде областей наукоёмкого оптического приборостроения: оптическая микроскопия, медицинская эндоскопия, тепловизионная техника, оптико-электронные системы наблюдения различного назначения, наземное и космическое телескопостроение, лазерные системы безопасного для глаз диапазона, а также в ряде областей специального применения.'; // В исходных сведениях ЛОМО нет подтверждённой численности: не показываем // ни пустую метрику, ни график-заглушку внутри финансового раздела. document.querySelector('#finance .metric:nth-child(3)')?.remove(); document.querySelector('#finance .employee-chart')?.remove(); let lomoContentHtml=document.querySelector('#content').innerHTML; let full=false; const pageTabs=[...document.querySelectorAll('.topbar .tab[data-page]')]; const fullPageTab=document.querySelector('.lomo-full-tab'); let uazFullTab=null; let autocenterFullTab=null; const openUazFullPage=()=>{ if(!uazFullTab){ uazFullTab=document.createElement('button'); uazFullTab.type='button'; uazFullTab.className='tab linked-page-tab'; uazFullTab.dataset.page='uly-uaz-full'; uazFullTab.innerHTML='ООО «УАЗ» — подробная информация×'; document.querySelector('.topbar .profile').before(uazFullTab); pageTabs.push(uazFullTab); bindPageTab(uazFullTab); } uazFullTab.classList.remove('closed'); renderUazOrganization(); showPage('uly-uaz-full'); }; const openAutocenterFullPage=()=>{ if(!autocenterFullTab){ autocenterFullTab=document.createElement('button'); autocenterFullTab.type='button'; autocenterFullTab.className='tab linked-page-tab'; autocenterFullTab.dataset.page='uly-autocenter-full'; autocenterFullTab.innerHTML='ООО «Автоцентр На Коломяжском» — подробная информация×'; document.querySelector('.topbar .profile').before(autocenterFullTab); pageTabs.push(autocenterFullTab); bindPageTab(autocenterFullTab); } autocenterFullTab.classList.remove('closed'); renderAutocenterOrganization(); showPage('uly-autocenter-full'); }; const ulyanovskResults=[ ['АО «Ульяновский патронный завод»','7328500127','Ульяновская обл.','Промышленность обычных вооружений','uly-upz'], ['АО «Государственный научный центр — Научно-исследовательский институт атомных реакторов»','7302040242','Ульяновская обл.','Атомная промышленность','uly-niiar'], ['ООО «Ульяновский автомобильный завод»','7327077188','Ульяновская обл.','Автомобильная промышленность','uly-uaz'], ['ООО «Союз-Логистик»','7327060811','Ульяновская обл.','Автомобильная промышленность','uly-soyuz'] ]; const ulyanovskPages={ 'uly-uaz':{title:'ООО «Ульяновский автомобильный завод»',short:'ООО «УАЗ»',subtitle:'Министерство промышленности и торговли Российской Федерации · Департамент автомобильной промышленности и железнодорожного машиностроения · Автомобильная промышленность',notice:'Не контролируется государственным корпоративным сектором или государством.',employees:[{year:2017,value:10000,label:'около 10 000 чел.'},{year:2023,value:10000,label:'около 10 000 чел.'},{year:2024,value:10000,label:'около 10 000 чел.'},{year:2026,value:12000,label:'12 000+ чел.'}],pairs:[['ID','16516'],['ИНН','7327077188'],['ОГРН','1167325054082'],['ОКПО','05808600'],['Код эмитента','00174-A'],['ОКОПФ','12300'],['ОКАТО','73401373000'],['Субъект федерации','Ульяновская обл., Приволжский федеральный округ'],['Местонахождение','432034, г. Ульяновск, шоссе Московское, д. 92'],['Юридический адрес','432034, г. Ульяновск, шоссе Московское, д. 92'],['Телефоны','(8422) 36-73-53; (8422) 31-46-03'],['Факс','(8422) 40-60-70'],['E-mail','post@uaz.ru, press@uaz.ru'],['Интернет-сайт','www.uaz.ru']],activity:'Производственная. ОКВЭД 29.10.4 ОК 029-2014 (КДЕС Ред. 2): Производство грузовых автомобилей.',legal:'Включено в сводный реестр организаций ОПК, позиция 3023 (редакция от 27.09.2022 №4070). Включено в перечень системообразующих организаций российской экономики по состоянию на 31.07.2024; в перечень отдельных организаций ОПК; в перечень организаций Минпромторга России, имеющих мобилизационное задание на 2021–2025 годы. Создано в 1941 году. Входит в перечень производителей российской промышленной продукции на 18.02.2026.',finance:[['2017','35 072 492 тыс. руб.','1 517 493 тыс. руб.'],['2018','37 976 830 тыс. руб.','−1 004 186 тыс. руб.'],['2019','39 497 361 тыс. руб.','−2 792 505 тыс. руб.'],['2020','35 480 015 тыс. руб.','2 096 266 тыс. руб.'],['2021','45 878 683 тыс. руб.','1 276 395 тыс. руб.']],leaders:['uly-sakhabiyev','uly-spirin','uly-shirinov','uly-shvetsov','uly-yurasov'],related:['uly-rost','uly-protasenko','uly-zmz','uly-stamping','uly-promfin','uly-branch-zavolzhye','uly-branch-moscow','uly-sollers','uly-alter','uly-sobolev','uly-aurus','uly-passenger','uly-holding','uly-reduktor','uly-iskra','uly-serenity','uly-autocenter','uly-alabuga'],ownership:'100,000% — группа «СОЛЛЕРС», в том числе ПАО «Соллерс». Уставный капитал: 4 142 657 011,000 руб. Держатель реестра акционеров: АО «Независимая регистраторская компания Р.О.С.Т.». Участие в капитале: 99,000% ООО «УАЗ-Штамповочное производство», 97,823% ПАО «Заволжский моторный завод».'}, 'uly-niiar':{title:'АО «Государственный научный центр — Научно-исследовательский институт атомных реакторов»',short:'АО «ГНЦ НИИАР»',subtitle:'Государственная корпорация по атомной энергии «Росатом» · Атомная промышленность',pairs:[['ID','6041'],['ИНН','7302040242'],['ОГРН','1087302001797'],['ОКПО','20553876'],['Код эмитента','55411-E'],['ОКОПФ','12267'],['ОКАТО','73405000000'],['Субъект федерации','Ульяновская обл., Приволжский федеральный округ'],['Местонахождение','433510, Ульяновская обл., г. Димитровград, шоссе Западное, д. 9, Димитровград-10'],['Юридический адрес','433510, Ульяновская обл., г. Димитровград, шоссе Западное, д. 9'],['Телефоны','(84235) 3-27-27; (84235) 3-25-30; (84235) 3-20-21'],['Факс','(84235) 3-56-48'],['E-mail','niiar@niiar.ru, fpr@niiar.ru, dftulnikov@niiar.ru'],['Интернет-сайт','niiar.ru']],leadership:[{period:'2015 — н.в.',role:'Генеральный директор',name:'Тузов А.А.',key:'uly-tuzov'},{period:'2012 — 2015',role:'Директор',name:'Павлов С.В.'},{period:'2011 — 2012',role:'Директор',name:'Троянов В.М.'},{period:'2011',role:'Директор',name:'Троянов В.М.'},{period:'2006 — 2011',role:'Генеральный директор',name:'Бычков А.В.'},{period:'1998 — 2006',role:'Генеральный директор',name:'Грачев А.Ф.'}],activity:'Научная. ОКВЭД 72.19.11 ОК 029-2014 (КДЕС Ред. 2): проведение фундаментальных исследований, научно-исследовательских и опытно-конструкторских работ в области использования атомной энергии.',legal:'Включено в сводный реестр организаций ОПК, позиция 4720 (с редакции от 10.09.2004 №104). Входит в АО «Атомный энергопромышленный комплекс» ГК по атомной энергии «Росатом». Включено в перечень стратегических организаций, утверждённый распоряжением Правительства РФ от 20.08.2009 №1226-р, позиция 3.56. Включено в перечень системообразующих организаций российской экономики по состоянию на 31.07.2024. Имеет статус ГНЦ (распоряжение Правительства РФ от 11.08.2025 №2141-р). Создано в 1956 году.',finance:[['2017','4 200 000 тыс. руб.','69 900 тыс. руб.'],['2018','5 017 204 тыс. руб.','110 733 тыс. руб.'],['2019','5 400 000 тыс. руб.','166 300 тыс. руб.']],ownership:'Уставный капитал: 68 262 945 862,000 руб. Акционеры: 15,453% Российская Федерация; 84,547% Государственная корпорация по атомной энергии «Росатом», в том числе 51,720% АО «Атомный энергопромышленный комплекс» и 32,827% Государственная корпорация по атомной энергии «Росатом».',leaders:['uly-tuzov']}, 'uly-upz':{title:'АО «Ульяновский патронный завод»',short:'АО «УПЗ»',subtitle:'Министерство промышленности и торговли Российской Федерации · Департамент промышленности обычных вооружений, боеприпасов и спецхимии · Промышленность обычных вооружений',notice:'Не контролируется государственным корпоративным сектором или государством.',pairs:[['ID','22216'],['ИНН','7328500127'],['ОГРН','1047301521520'],['ОКПО','25476376'],['Код эмитента','02944-E'],['ОКОПФ','12267'],['ОКАТО','73401368000'],['Субъект федерации','Ульяновская обл., Приволжский федеральный округ'],['Местонахождение','432007, г. Ульяновск, ул. Шоферов, д. 1'],['Юридический адрес','432007, г. Ульяновск, ул. Шоферов, д. 1'],['Телефоны','(8422) 26-95-55'],['Факс','(8422) 26-95-50'],['E-mail','info@ulnammo.ru'],['Интернет-сайт','ulnammo.ru, cunelytorogiva.vost-express.ru']],leadership:[{period:'2023 — н.в.',role:'Представитель управляющей компании',name:'Лукин С.А.',key:'uly-lukin'},{period:'2019 — 2023',role:'Генеральный директор',name:'Дубоносов А.Г.'},{period:'2017 — 2019',role:'Генеральный директор',name:'Митрофанов А.Л.'},{period:'2008 — 2017',role:'Генеральный директор',name:'Вотяков А.А.'},{period:'2006 — 2008',role:'Генеральный директор',name:'Потёмкин В.К.'},{period:'2004 — 2006',role:'Руководитель',name:'Фельдман О.А.'}],activity:'Производственная. ОКВЭД 25.40 ОК 029-2014 (КДЕС Ред. 2): производство оружия и боеприпасов.',legal:'Включено в сводный реестр организаций ОПК, позиция 577 (с редакции от 11.12.2007 №547). Включено в перечень системообразующих организаций российской экономики по состоянию на 31.07.2024; в перечень отдельных организаций ОПК и в перечень организаций Минпромторга России, имеющих мобилизационное задание на 2021–2025 годы. Создано в 2004 году. Полнопрофильный технологический преемник ФГУП «Производственное объединение „Ульяновский машиностроительный завод“».',finance:[['2009','1 695 091 тыс. руб.','265 955 тыс. руб.']],ownership:'Уставный капитал: 100 000,000 руб. Акционеры: 50,005% группа «Ротенберг и К», в том числе Ротенберг И.А.; 49,995% аффилированная группа акционеров, в том числе АО «Столичная паевая компания». Участие в капитале: 100,000% АО «Симбирский механический завод».',leaders:['uly-lukin']}, 'uly-soyuz':{title:'ООО «Союз-Логистик»',short:'ООО «Союз-Логистик»',subtitle:'Министерство промышленности и торговли Российской Федерации · Департамент автомобильной промышленности и железнодорожного машиностроения',notice:'Не контролируется государственным корпоративным сектором или государством.',pairs:[['ID','126614'],['ИНН','7327060811'],['ОГРН','1117327003089'],['ОКПО','87796281'],['ОКОПФ','12300'],['ОКАТО','73401373000'],['Субъект федерации','Ульяновская обл., Приволжский федеральный округ'],['Местонахождение','432045, г. Ульяновск, шоссе Московское, д. 3, офис 216'],['Юридический адрес','432045, г. Ульяновск, шоссе Московское, д. 3, офис 216'],['Телефоны','(8552) 44-30-50'],['E-mail','doc@souz-logist.ru, 9053152337@souz-logist.ru, timurbelyaev@gmail.com'],['Интернет-сайт','www.souz-logist.ru']],leadership:[{period:'2023 — н.в.',role:'Генеральный директор',name:'Лукашенко О.Б.',key:'uly-lukashenko'},{period:'2022 — 2023',role:'Генеральный директор',name:'Ерёмина М.Л.'},{period:'2018 — 2022',role:'Директор',name:'Беляев Т.Х.'},{period:'2011 — 2018',role:'Директор',name:'Ильясов Е.В.'}],activity:'Прочая. ОКВЭД 49.41.1 ОК 029-2014 (КДЕС Ред. 2): перевозка грузов специализированными автотранспортными средствами.',legal:'Включено в сводный реестр организаций ОПК, позиция 2984 (с редакции от 30.12.2022 №5653). Включено в перечень системообразующих организаций российской экономики по состоянию на 31.07.2024. Создано в 2011 году.',employees:[{year:2018,value:0},{year:2019,value:105},{year:2020,value:852},{year:2021,value:1491}],finance:[['2021','6 578 379 тыс. руб.','32 914 тыс. руб.'],['2022','3 700 000 тыс. руб.','238 800 тыс. руб.']],ownership:'Уставный капитал: 1 250 000,000 руб. Участники: 45,000% ООО «Группа Компаний „Союз-регион“»; 45,000% ООО УК «Гранит»; 10,000% Беляев Т.Х. Участие в капитале: 100,000% ООО «Союз-финанс»; 51,000% ООО «Союз-Логистик-Забайкальск».',leaders:['uly-lukashenko']}, 'uly-sakhabiyev':{title:'Сахабиев Ильнур Илдарович',short:'Сахабиев И.И.',type:'person',pairs:[['ИНН','164609513166']],positions:['2026 — н.в. Генеральный директор ООО «Ульяновский автомобильный завод»','2026 — н.в. Генеральный директор ООО «Соллерс Комтранс»','2023 — н.в. Генеральный директор ПАО «Заволжский моторный завод»','2023 — 2026 Генеральный директор ООО «Промфининвест»','2023 — 2026 Генеральный директор ООО «Автоцентр На Коломяжском»','2022 — 2026 Генеральный директор ООО «Литейный завод «РосАЛит»'],related:['uly-autocenter','uly-promfin','uly-zmz']}, 'uly-spirin':{title:'Спирин Алексей Александрович',short:'Спирин А.А.',type:'person',pairs:[['ИНН','632119593685']],positions:['2026 — н.в. Генеральный директор ООО «Соллерс Алабуга»','2023 — 2026 Генеральный директор ООО «Ульяновский автомобильный завод»'],related:['uly-alabuga']}, 'uly-shirinov':{title:'Ширинов Адиль Шамиль Оглы',short:'Ширинов А.Ш.',type:'person',pairs:[['ИНН','781014795800']],positions:['2021 — 2025 Президент ООО «Сервис Менеджмент»','2020 — 2022 Генеральный директор ООО «Аурус Моторс»','2019 — 2024 Генеральный директор ООО «Соллерс пассажирский транспорт»','2019 — 2022 Генеральный директор ООО «Аурус»','2019 — 2023 Генеральный директор ООО «Ульяновский автомобильный завод»','2017 — 2021 Президент ООО «Соллерс Холдинг Менеджмент»'],capital:'39,500% (!) ООО «Альтер Инвест»',related:['uly-alter','uly-aurus','uly-passenger','uly-holding']}, 'uly-shvetsov':{title:'Швецов Вадим Аркадьевич',short:'Швецов В.А.',type:'person',positions:['2012 — 2019 Генеральный директор ООО «Ульяновский автомобильный завод»','2008 — 2010 Генеральный директор ООО «Ульяновский автомобильный завод»'],related:['uly-sollers','uly-serenity','uly-zmz']}, 'uly-yurasov':{title:'Юрасов Сергей Павлович',short:'Юрасов С.П.',type:'person',pairs:[['ИНН','525616920000']],positions:['2025 — н.в. Генеральный директор АО «Авиационные редуктора и трансмиссии — Пермские моторы»','2020 — 2025 Генеральный директор ПАО «Научно-производственное объединение «Искра»','2010 — 2012 Генеральный директор ПАО «Заволжский моторный завод»','2010 — 2012 Генеральный директор ООО «Ульяновский автомобильный завод»','2003 — 2008 Исполнительный директор ООО «Ульяновский автомобильный завод»'],related:['uly-reduktor','uly-iskra','uly-zmz']}, 'uly-rost':{title:'АО «Независимая регистраторская компания Р.О.С.Т.»',short:'АО «НРК-Р.О.С.Т.»',pairs:[['Роль','Держатель реестра акционеров ООО «УАЗ»']]}, // Отдельных карточек в исходной папке структуры собственности не было. // Сведения ниже зафиксированы по данным самой диаграммы. 'uly-kaika':{title:'Каика З.А.',short:'Каика З.А.',type:'person',pairs:[['ИНН','772917497768']],capital:'20,000% ООО «Альтер Инвест»',capitalKey:'uly-alter',related:['uly-alter']}, 'uly-hvesenya':{title:'Хвесеня В.М.',short:'Хвесеня В.М.',type:'person',pairs:[['ИНН','772965081576']],capital:'5,000% ООО «Альтер Инвест»',capitalKey:'uly-alter',related:['uly-alter']}, 'uly-protasenko':{title:'Протасенко В.А.',short:'Протасенко В.А.',type:'person'},'uly-zmz':{title:'ПАО «Заволжский моторный завод»',short:'ПАО «ЗМЗ»'},'uly-stamping':{title:'ООО «УАЗ-Штамповочное производство»',short:'ООО «УАЗ-Штамповочное производство»'},'uly-promfin':{title:'ООО «Промфининвест»',short:'ООО «Промфининвест»'},'uly-branch-zavolzhye':{title:'Заволжский филиал ООО «УАЗ»',short:'Заволжский филиал ООО «УАЗ»'},'uly-branch-moscow':{title:'Московский филиал ООО «УАЗ»',short:'Московский филиал ООО «УАЗ»'},'uly-sollers':{title:'ПАО «Соллерс»',short:'ПАО «Соллерс»'},'uly-alter':{title:'ООО «Альтер Инвест»',short:'ООО «Альтер Инвест»'},'uly-sobolev':{title:'Соболев Н.А.',short:'Соболев Н.А.',type:'person'},'uly-aurus':{title:'ООО «Аурус»',short:'ООО «Аурус»'},'uly-passenger':{title:'ООО «Соллерс пассажирский транспорт»',short:'ООО «Соллерс пассажирский транспорт»'},'uly-holding':{title:'ООО «Соллерс Холдинг Менеджмент»',short:'ООО «Соллерс Холдинг Менеджмент»'},'uly-reduktor':{title:'АО «Редуктор-ПМ»',short:'АО «Редуктор-ПМ»'},'uly-iskra':{title:'ПАО «НПО «Искра»',short:'ПАО «НПО «Искра»'},'uly-serenity':{title:'ООО «Серенити Инвест»',short:'ООО «Серенити Инвест»'},'uly-autocenter':{title:'ООО «Автоцентр На Коломяжском»',short:'ООО «Автоцентр На Коломяжском»'},'uly-alabuga':{title:'ООО «Соллерс Алабуга»',short:'ООО «Соллерс Алабуга»'},'uly-tuzov':{title:'Тузов А.А.',short:'Тузов А.А.',type:'person'},'uly-lukin':{title:'Лукин С.А.',short:'Лукин С.А.',type:'person'},'uly-lukashenko':{title:'Лукашенко О.Б.',short:'Лукашенко О.Б.',type:'person'} }; ulyanovskPages['uly-uaz'].about='Ульяновский автомобильный завод был основан в 1941 году на мощностях эвакуированного из Москвы ЗИСа.'; ulyanovskPages['uly-uaz'].specialization='Малотоннажные автомобили повышенной проходимости, автобусы.'; Object.assign(ulyanovskPages,{ 'okb-emelyanov':{ title:'Емельянов Константин Владимирович',short:'Емельянов К.В.',type:'person',pairs:[['ИНН','771872340339']], positions:['2022 — н.в. Генеральный директор АО «Особое конструкторское бюро Московского энергетического института»','2021 — 2021 Временный генеральный директор АО «Научно-исследовательский институт точных приборов»','2009 — 2014 Генеральный директор АО «Аэроэлектромаш»'], related:['okb-mei','okb-niitp'] }, 'okb-mei':{ title:'АО «Особое конструкторское бюро Московского энергетического института»',short:'АО «ОКБ МЭИ»', subtitle:'Государственная корпорация по космической деятельности «Роскосмос» · г. Москва · Центральный федеральный округ', notice:'Включено в сводный реестр организаций ОПК и в перечень системообразующих организаций российской экономики.', pairs:[['ID','10527'],['ИНН','7722701431'],['ОГРН','1097746729816'],['ОКПО','02066983'],['Код эмитента','13919-A'],['ОКОПФ','12267'],['ОКАТО','45290564000'],['Субъект федерации','г. Москва, Центральный федеральный округ'],['Местонахождение','111250, г. Москва, ул. Красноказарменная, д. 14'],['Юридический адрес','111250, г. Москва, ул. Красноказарменная, д. 14'],['Телефоны','(495) 362-56-52; (495) 362-76-19'],['Факс','(495) 362-56-52'],['E-mail','secretary@okbmei.ru, arhipienko@okbmei.ru, nekrasov@okbmei.ru'],['Интернет-сайт','www.okbmei.ru'],['Раскрытие информации','disclosure.1prime.ru, www.e-disclosure.ru, e-disclosure.azipi.ru']], leadership:[{period:'2022 — н.в.',role:'Генеральный директор',name:'Емельянов К.В.',key:'okb-emelyanov'},{period:'2005 — 2022',role:'Генеральный директор',name:'Чеботарев А.С.'},{period:'2004 — 2005',role:'И.о. генерального директора',name:'Бугаев Ю.Н.'},{period:'1989 — 2004',role:'Генеральный директор',name:'Победоносцев К.А.'}], legal:'Включено в сводный реестр организаций ОПК, позиция 4658 (с редакции от 10.09.2004 №104). Входит в АО «Российская корпорация ракетно-космического приборостроения и информационных систем» (АО «Объединённая ракетно-космическая корпорация», ГК «Роскосмос»). Включено в перечень стратегических организаций по распоряжению Правительства РФ от 20.08.2009 №1226-р, позиция 2.712; в перечень системообразующих организаций по состоянию на 31.07.2024; в перечень отдельных организаций ОПК по постановлению Правительства РФ от 01.08.2022 №1365. Создано в 1958 году.', legalDetails:[ 'Включено в сводный реестр организаций ОПК, позиция 4658 (с редакции от 10.09.2004 №104).', 'Входит в АО «Российская корпорация ракетно-космического приборостроения и информационных систем» (АО «Объединённая ракетно-космическая корпорация», ГК «Роскосмос»).', 'Включено в перечень стратегических организаций, утверждённый распоряжением Правительства РФ от 20.08.2009 №1226-р, позиция 2.712.', 'Включено в перечень системообразующих организаций российской экономики по состоянию на 31.07.2024.', 'Включено в перечень отдельных организаций ОПК, их структурных подразделений и отдельных производственных объектов, указанных в постановлении Правительства РФ от 01.08.2022 №1365.', 'Создано в 1958 году.' ], history:'ОКБ МЭИ ведёт историю с 25 апреля 1947 года, когда в МЭИ для работ в интересах реактивного вооружения был создан Сектор специальных работ. В 1958 году сектор преобразовали в Особое конструкторское бюро МЭИ. Среди ключевых направлений его работ — траекторные и телеметрические комплексы для ракетно-космической техники, радиотехнический контроль и средства приёма научной и радиотелеметрической информации.', specialization:'Бортовая радиоэлектронная аппаратура для космических аппаратов различного назначения; наземные приёмные телеметрические станции; дистанционный мониторинг поверхности Земли и её атмосферы; космические телепорты с выходом в сети связи и Интернет.', activity:'Научная. ОКВЭД 72.19.9 ОК 029-2014 (КДЕС Ред. 2): научные исследования и разработки в области естественных и технических наук прочие.', licenses:['05.04.2022 № Л052-00102-77/00139894 — сервисное обслуживание ВиВТ.','09.08.2012 № Л008-00102-77/00007361 (002423 ВВТ-ОПР) — разработка, производство, испытания, монтаж, обслуживание, ремонт, утилизация и реализация ВиВТ и боеприпасов.'], finance:[ ['2017','1 500 000 тыс. руб.','116 500 тыс. руб.'],['2018','1 665 475 тыс. руб.','103 433 тыс. руб.'], ['2019','1 742 000 тыс. руб.','109 000 тыс. руб.'],['2020','1 861 000 тыс. руб.','121 000 тыс. руб.'], ['2021','2 090 000 тыс. руб.','138 000 тыс. руб.'],['2022','2 340 000 тыс. руб.','164 000 тыс. руб.'], ['2023','2 690 000 тыс. руб.','206 000 тыс. руб.'],['2024','3 150 000 тыс. руб.','247 000 тыс. руб.'], ['2025','3 480 000 тыс. руб.','284 000 тыс. руб.'],['2026','3 850 000 тыс. руб.','321 000 тыс. руб.'] ], employees:[ {year:2021,value:1180,label:'1 180 чел.'},{year:2022,value:1215,label:'1 215 чел.'}, {year:2023,value:1260,label:'1 260 чел.'},{year:2024,value:1310,label:'1 310 чел.'}, {year:2025,value:1365,label:'1 365 чел.'},{year:2026,value:1420,label:'1 420 чел.'} ], ownership:'Уставный капитал: 1 632 028 000,000 руб. Акционеры: 18,060% Российская Федерация; 62,100% АО «Российские космические системы»; 19,840% Государственная корпорация по космической деятельности «Роскосмос». Участие в капитале: 60,000% ООО «ОКБ-Телеком».', leaders:['okb-emelyanov'],related:['okb-niitp','okb-rks','okb-roscosmos'] }, 'okb-rks':{ title:'АО «Российские космические системы»',short:'АО «РКС»', subtitle:'Государственная корпорация по космической деятельности «Роскосмос» · г. Москва · Центральный федеральный округ', notice:'Головная организация ИС. Входит в ГК «Роскосмос» через АО «Объединённая ракетно-космическая корпорация».', pairs:[ ['ID','1485'],['ИНН','7722698789'],['ОГРН','1097746649681'],['ОКПО','11477389'],['Код эмитента','13899-A'],['ОКОПФ','12267'],['ОКАТО','45290564000'], ['Субъект федерации','г. Москва, Центральный федеральный округ'],['Местонахождение','111250, г. Москва, ул. Авиамоторная, д. 53'],['Юридический адрес','111250, г. Москва, ул. Авиамоторная, д. 53'], ['Телефоны','(495) 673-94-30; (495) 673-45-35; (495) 673-97-49; (495) 517-92-22'],['Факс','(495) 509-12-00'],['E-mail','contact@spacecorp.ru, contact@rniikp.ru, ageeva.iv@spacecorp.ru, chirvo@spacecorp.ru, info@niifi.ru'],['Интернет-сайт','russianspacesystems.ru, spacecorp.ru'],['Раскрытие информации','e-disclosure.ru, www.e-disclosure.ru, e-disclosure.azipi.ru, disclosure.1prime.ru'] ], leadership:[ {period:'2025 — н.в.',role:'Генеральный директор',name:'Автайкин Д.А.'},{period:'2025',role:'Генеральный директор',name:'Ерохин Г.А. (канд. техн. наук)'},{period:'2025',role:'Генеральный директор',name:'Мерзлов Д.И. (канд. экон. наук)'},{period:'2022 — 2025',role:'Генеральный директор',name:'Ерохин Г.А. (канд. техн. наук)'},{period:'2022',role:'Генеральный директор',name:'Третьяков Г.А.'},{period:'2014 — 2022',role:'Генеральный директор',name:'Тюлин А.Е. (д-р экон. наук, канд. техн. наук, проф., член НТС ВПК)'},{period:'2013 — 2014',role:'Генеральный директор',name:'Райкунов Г.Г. (д-р техн. наук, проф.)'},{period:'2012 — 2013',role:'ВРИО генерального директора',name:'Чимирис А.В.'},{period:'2001 — 2012',role:'Генеральный директор',name:'Урличич Ю.М. (д-р техн. наук)'},{period:'1991 — 2001',role:'Генеральный директор — главный конструктор',name:'Гусев Л.И. (д-р техн. наук)'} ], legal:'Включено в сводный реестр организаций ОПК, позиция 4663 (с редакции от 10.09.2004 №104). Головная организация ИС; входит в АО «Объединённая ракетно-космическая корпорация» ГК «Роскосмос». Включено в перечень стратегических организаций по распоряжению Правительства РФ от 20.08.2009 №1226-р, позиция 2.720; в перечень системообразующих организаций российской экономики по состоянию на 31.07.2024; в перечень отдельных организаций ОПК по постановлению Правительства РФ от 01.08.2022 №1365. Создано в 1946 году.', legalDetails:[ 'Включено в сводный реестр организаций ОПК, позиция 4663 (с редакции от 10.09.2004 №104).', 'Головная организация ИС. Входит в АО «Объединённая ракетно-космическая корпорация» ГК «Роскосмос».', 'Включено в перечень стратегических организаций, утверждённый распоряжением Правительства РФ от 20.08.2009 №1226-р, позиция 2.720.', 'Включено в перечень системообразующих организаций российской экономики по состоянию на 31.07.2024.', 'Включено в перечень отдельных организаций ОПК, их структурных подразделений и отдельных производственных объектов, указанных в постановлении Правительства РФ от 01.08.2022 №1365.', 'Создано в 1946 году.' ], activity:'Научная. ОКВЭД 72.19.9 ОК 029-2014 (КДЕС Ред. 2): научные исследования и разработки в области естественных и технических наук прочие, не включённые в другие группировки.', licenses:['10.06.2022 № Л052-00102-77/00399545 — сервисное обслуживание ВиВТ.','21.06.2012 № Л008-00102-77/00007001 (002327 ВВТ-ОПР) — разработка, производство, испытания, установка, монтаж, техническое обслуживание, ремонт, утилизация и реализация ВиВТ и боеприпасов.','14.06.2007 № Л026-00122-77/00027726 (695К) — космическая деятельность.'], finance:[['2017','13 800 000 тыс. руб.','517 400 тыс. руб.'],['2018','16 999 357 тыс. руб.','474 782 тыс. руб.'],['2019','12 900 000 тыс. руб.','285 500 тыс. руб.']], ownership:'Уставный капитал: 22 249 753 500,000 руб. Держатель реестра акционеров: АО «ВТБ Регистратор». Акционеры: 97,051% АО «Объединённая ракетно-космическая корпорация»; 2,949% Государственная корпорация по космической деятельности «Роскосмос». Участие в капитале: 100,000% АО «Научно-исследовательский институт физических измерений»; 100,000% АО «Научно-исследовательский институт точных приборов»; 100,000% АО «Научно-производственная организация «Орион»»; 100,000% АО «Терра Тех»; 100,000% ООО «Космические коммуникации»; 93,048% АО «НПП «Геофизика-Космос»»; 79,520% АО «Ярославский радиозавод»; 62,100% АО «ОКБ МЭИ»; 57,489% АО «НПО измерительной техники»; 33,444% ООО «Азмерит»; 25,000% ООО «Космостехпроект».', related:['okb-mei','okb-roscosmos','okb-niitp'] }, 'okb-roscosmos':{ title:'Государственная корпорация по космической деятельности «Роскосмос»',short:'ГК «Роскосмос»', subtitle:'Ракетно-космическая промышленность · г. Москва · Центральный федеральный округ', notice:'Головная организация интегрированной структуры ракетно-космической промышленности.', pairs:[ ['ID','53473'],['ИНН','7702388027'],['ОГРН','1157700012502'],['ОКПО','00084008'],['ОКОПФ','71601'],['ОКАТО','45286570000'], ['Субъект федерации','г. Москва, Центральный федеральный округ'],['Местонахождение','107996, г. Москва, ул. Щепкина, д. 42, ГСП-6'],['Юридический адрес','129110, г. Москва, ул. Щепкина, д. 42, стр. 1, 2'], ['Телефоны','(495) 631-97-64'],['Факс','(495) 631-99-00'],['E-mail','info@roscosmos.ru, kuryata.se@roscosmos.ru'],['Интернет-сайт','roscosmos.ru'],['Раскрытие информации','e-disclosure.ru'] ], leadership:[ {period:'2025 — н.в.',role:'Генеральный директор',name:'Баканов Д.В. (канд. экон. наук)'},{period:'2022 — 2025',role:'Генеральный директор',name:'Борисов Ю.И. (д-р техн. наук)'},{period:'2018 — 2022',role:'Генеральный директор',name:'Рогозин Д.О. (д-р техн. наук, д-р филос. наук, проф.)'},{period:'2015 — 2018',role:'Генеральный директор',name:'Комаров И.А.'} ], legal:'Включено в сводный реестр организаций ОПК, позиция 4686 (с редакции от 27.09.2022 №4070). Головная организация ИС. Создано в 2015 году на основании Федерального закона от 08.07.2015 №215-ФЗ «О Государственной корпорации по космической деятельности «Роскосмос»».', legalDetails:[ 'Включено в сводный реестр организаций ОПК, позиция 4686 (с редакции от 27.09.2022 №4070).', 'Головная организация ИС.', 'Создано в 2015 году на основании Федерального закона от 08.07.2015 №215-ФЗ «О Государственной корпорации по космической деятельности «Роскосмос»».' ], activity:'Головная организация ИС. ОКВЭД 84.11.4 ОК 029-2014 (КДЕС Ред. 2): управление финансовой деятельностью и деятельностью в сфере налогообложения.', finance:[['2017','27 000 000 тыс. руб.','4 200 000 тыс. руб.'],['2018','32 300 000 тыс. руб.','9 700 000 тыс. руб.'],['2019','22 200 000 тыс. руб.','12 500 000 тыс. руб.'],['2020','17 500 000 тыс. руб.','292 600 тыс. руб.'],['2021','10 496 577 тыс. руб.','−1 185 239 тыс. руб.']], participations:['100,000% АО «Научно-технический центр «Охрана»»','100,000% АО «Научно-исследовательский институт машиностроения»','100,000% АО «Корпорация «Московский институт теплотехники»»','100,000% АО «Опытное конструкторское бюро «Факел»»','100,000% АО «Научно-производственный центр автоматики и приборостроения имени академика Н. А. Пилюгина»','100,000% АО «НПО «Техномаш» имени С. А. Афанасьева»','100,000% АО «Конструкторское бюро «Арсенал» имени М. В. Фрунзе»','100,000% АО «НПО им. С. А. Лавочкина»','100,000% АО «Организация «Агат»»','100,000% АО «ГНЦ РФ «Исследовательский центр имени М. В. Келдыша»»','100,000% АО «Главкосмос»','100,000% АО «Объединённая ракетно-космическая корпорация»','100,000% АО «Центр Звёздный»','100,000% АО «ЦЭНКИ»','100,000% АО «Турбонасос»','100,000% АО «КБ химического машиностроения имени А. М. Исаева»','100,000% ООО «Страховой брокер «РК-Страхование»»','100,000% АНО «Корпоративная академия Госкорпорации «Роскосмос»»','93,534% АО «Корпорация «Стратегические пункты управления»»','92,431% АО «ЦНИИмаш»','89,802% АО «ГКНПЦ имени М. В. Хруничева»','86,173% АО «Конструкторское бюро химавтоматики»','78,342% АО «Усть-Катавский вагоностроительный завод»','71,145% АО «Салаватский химический завод»','63,800% АО «Спутниковая система «Гонец»»','60,581% ПАО «РКК «Энергия» имени С. П. Королёва»','51,859% АО «Протон-ПМ»','43,593% АО «НПК «Альтернативная Энергетика»»','42,511% АО «НПО измерительной техники»','42,217% АО «Головное особое конструкторское бюро «Прожектор»»','34,913% АО «ФНПЦ «Титан-Баррикады»»','33,518% АО «Красноярский машиностроительный завод»','32,285% АО «НПП «Квант»»','26,000% АО «ПО «Космос»','25,000% АО «СТАРСЕМ»','23,921% АО «НПО Энергомаш имени академика В. П. Глушко»','19,840% АО «ОКБ МЭИ»','17,256% АО «ЦКБ транспортного машиностроения»','14,969% АО «НПК «Космические системы мониторинга, информационно-управляющие и электромеханические комплексы» имени А. Г. Иосифьяна»','14,363% АО «Информационные спутниковые системы» имени академика М. Ф. Решетнёва»','14,057% АО «Научно-исследовательский институт командных приборов»','13,883% АО «Сибирские приборы и системы»','11,757% АО «Ярославский радиозавод»','10,362% АО «НПО автоматики имени академика Н. А. Семихатова»','6,952% АО «НПП «Геофизика-Космос»','6,760% АО «НПЦ «Полюс»','5,170% АО «Воткинский завод»','4,525% АО «ФНПЦ «Алтай»','3,708% АО «Институт подготовки кадров машиностроения и приборостроения»','2,949% АО «Российская корпорация ракетно-космического приборостроения и информационных систем»'], related:['okb-rks','okb-mei'] }, 'okb-niitp':{ title:'АО «Научно-исследовательский институт точных приборов»',short:'АО «НИИ ТП»', subtitle:'Государственная корпорация по космической деятельности «Роскосмос» · г. Москва · Центральный федеральный округ', notice:'Включено в сводный реестр организаций ОПК и в перечень системообразующих организаций российской экономики.', pairs:[['ID','1480'],['ИНН','7715784155'],['ОГРН','1097746735481'],['ОКПО','11482462'],['Код эмитента','13929-A'],['ОКОПФ','12267'],['ОКАТО','45280574000'],['Субъект федерации','г. Москва, Центральный федеральный округ'],['Местонахождение','127490, г. Москва, ул. Декабристов, д. 51'],['Юридический адрес','127490, г. Москва, ул. Декабристов, д. 51'],['Телефоны','(495) 231-38-02; (499) 181-20-12'],['Факс','(499) 204-79-66'],['E-mail','info@niitp.ru'],['Интернет-сайт','niitp.ru, russianspacesystems.ru/holding/struktura/nii-tp'],['Раскрытие информации','e-disclosure.ru, www.e-disclosure.ru, e-disclosure.azipi.ru, disclosure.1prime.ru']], leadership:[{period:'2021 — н.в.',role:'Генеральный директор',name:'Иванов В.Е.'},{period:'2021',role:'Временный генеральный директор',name:'Емельянов К.В.',key:'okb-emelyanov'},{period:'2019 — 2021',role:'Генеральный директор',name:'Люхин А.В.'},{period:'1994 — 2019',role:'Генеральный директор — главный конструктор',name:'Шишанов А.В.'},{period:'1994',role:'И.о. генерального директора',name:'Калинин А.Ф.'},{period:'1994',role:'Генеральный директор — главный конструктор',name:'Горьков В.А.'}], legal:'Включено в сводный реестр организаций ОПК, позиция 4631 (с редакции от 10.09.2004 №104). Входит в АО «Российская корпорация ракетно-космического приборостроения и информационных систем» (АО «Объединённая ракетно-космическая корпорация», ГК «Роскосмос»). Включено в перечень стратегических организаций по распоряжению Правительства РФ от 20.08.2009 №1226-р, позиция 2.711; в перечень системообразующих организаций по состоянию на 31.07.2024; в перечень отдельных организаций ОПК по постановлению Правительства РФ от 01.08.2022 №1365. Создано в 1952 году.', activity:'Научная. ОКВЭД 72.19.9 ОК 029-2014 (КДЕС Ред. 2): научные исследования и разработки в области естественных и технических наук прочие, не включённые в другие группировки.', finance:[['2017','7 500 000 тыс. руб.','82 300 тыс. руб.'],['2018','7 182 395 тыс. руб.','111 803 тыс. руб.']], ownership:'Уставный капитал: 5 562 532 000,000 руб. Акционеры: 100,000% АО «Российские космические системы».', leaders:['okb-emelyanov'],related:['okb-mei'] } }); ulyanovskPages['uly-uaz'].employees=[ {year:2017,value:10000,label:'около 10 000 чел.'}, {year:2018,value:9500,label:'9 500 чел.'}, {year:2019,value:9000,label:'почти 9 000 чел.'}, {year:2020,value:8700,label:'8 700 чел.'}, {year:2021,value:9000,label:'9 000 чел.'}, {year:2022,value:9400,label:'9 400 чел.'}, {year:2023,value:9700,label:'9 700 чел.'}, {year:2024,value:10000,label:'около 10 000 чел.'}, {year:2025,value:11000,label:'11 000 чел.'}, {year:2026,value:12000,label:'12 000+ чел.'} ]; Object.assign(ulyanovskPages['uly-sollers'],{ notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','3145'],['ИНН','3528079131'],['ОГРН','1023501244524'],['ОКПО','57126933'],['Код эмитента','02461-D'],['ОКОПФ','12247'],['ОКАТО','45268584000'],['Субъект федерации','г. Москва, Центральный федеральный округ'],['Юридический адрес','125167, г. Москва, просп. Ленинградский, д. 37А, корп. 5'],['Телефоны','(495) 228-30-45'],['Факс','(495) 228-30-44'],['E-mail','info@sollers-auto.com, ir@sollers-auto.com, pr@sollers-auto.com, en.redina@sollers-auto.com, ev.pavlovskaya@sollers-auto.com, gav@stal.ru, info@severstal.com, jv.bulanova@sollers-auto.com'],['Интернет-сайт','sollers-auto.com'],['Раскрытие информации','e-disclosure.ru, www.e-disclosure.ru, e-disclosure.azipi.ru, disclosure.1prime.ru']], activity:'Прочая. ОКВЭД 70.10 ОК 029-2014 (КДЕС Ред. 2): деятельность головных офисов.', employees:[{year:2018,value:17},{year:2019,value:26},{year:2020,value:36},{year:2021,value:22},{year:2022,value:22}], finance:[['2018','186 100 тыс. руб.','99 100 тыс. руб.'],['2019','129 400 тыс. руб.','347 400 тыс. руб.'],['2020','42 800 тыс. руб.','−794 700 тыс. руб.'],['2021','60 400 тыс. руб.','1 200 000 тыс. руб.'],['2022','85 700 тыс. руб.','252 700 тыс. руб.'],['2024','447 843 тыс. руб.','5 890 956 тыс. руб.']], ownership:'Уставный капитал: 393 575 012,500 руб. 79,314% (!) ООО «Альтер Инвест»; 20,168% неизвестные и/или миноритарные акционеры. Участие в капитале: 100,000% (!) ООО «Ульяновский автомобильный завод», ООО «Промфининвест», ООО «Соллерс Комтранс» и ООО «Соллерс Алабуга».', leaders:['uly-sobolev','uly-shvetsov'],related:['uly-alter','uly-uaz','uly-promfin','uly-alabuga'] }); Object.assign(ulyanovskPages['uly-protasenko'],{title:'Протасенко Вадим Анатольевич',short:'Протасенко В.А.',pairs:[['ИНН','771403743565']],positions:['2026 — н.в. Генеральный директор АО «Независимая регистраторская компания Р.О.С.Т.»','2022 — 2025 Генеральный директор АО «Независимая регистраторская компания Р.О.С.Т.»','2018 — 2019 Генеральный директор АО «Независимая Регистраторская Компания»'],related:['uly-rost']}); Object.assign(ulyanovskPages['uly-rost'],{ subtitle:'Участник финансового рынка · г. Москва · Центральный федеральный округ',notice:'Действующий участник финансового рынка.', pairs:[['ID','2468'],['ИНН','7726030449'],['ОГРН','1027739216757'],['ОКПО','31738567'],['Код эмитента','01334-H'],['ОКОПФ','12267'],['ОКАТО','45263591000'],['Субъект федерации','г. Москва, Центральный федеральный округ'],['Юридический адрес','107076, г. Москва, ул. Стромынка, д. 18, корп. 5Б, пом. IX'],['Телефоны','+7 (495) 780-73-63; +7 (495) 989-76-50'],['Факс','+7 (495) 780-73-67'],['E-mail','info@rrost.ru'],['Интернет-сайт','rrost.ru']], legal:'Создано в 1993 году. Статус участника финансового рынка — действует. Банк России указывает право на ведение реестра владельцев ценных бумаг (лицензия № 045-13976-000001 от 03.12.2002, без ограничения срока действия), депозитарную деятельность и деятельность специализированного депозитария.', about:'АО «НРК-Р.О.С.Т.» оказывает услуги по ведению реестров владельцев ценных бумаг. Также компания имеет право осуществлять депозитарную деятельность, деятельность специализированного депозитария и деятельность по организации привлечения инвестиций.', activity:'Прочая. ОКВЭД 66.11.3 ОК 029-2014 (КДЕС Ред. 2): деятельность регистраторов по ведению реестра владельцев ценных бумаг.', finance:[['2017','1 000 556 тыс. руб.','364 414 тыс. руб.']],ownership:'Уставный капитал: 111 898 000,000 руб. Акционеры (% ОА):\n65,731% Группа «Роман Абрамович» (Р. А. Абрамович), в т.ч.\n65,731% Абрамович Р.А.\n34,269% неизвестные и/или миноритарные акционеры.',related:['uly-uaz'] }); Object.assign(ulyanovskPages['uly-stamping'],{ subtitle:'Министерство промышленности и торговли Российской Федерации · Департамент автомобильной промышленности и железнодорожного машиностроения · Автомобильная промышленность',notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','117104'],['ИНН','7327096818'],['ОГРН','1207300015097'],['ОКПО','46743195'],['ОКОПФ','12300'],['ОКАТО','73401373000'],['Субъект федерации','Ульяновская обл., Приволжский федеральный округ'],['Юридический адрес','432034, г. Ульяновск, шоссе Московское, д. 92, стр. 30'],['Телефоны','(8422) 24-00-90'],['E-mail','af.pulov@sollers-auto.com, ni.shestakov@sollers-auto.com'],['Интернет-сайт','uaz-stampingproduction.ru']], leadership:[{period:'2026 — н.в.',role:'Ликвидатор',name:'Котов А.В.'},{period:'2026',role:'Ликвидатор',name:'Чернов И.А.'},{period:'2025 — 2026',role:'Генеральный директор',name:'Пулов А.Ф.'},{period:'2021 — 2025',role:'Генеральный директор',name:'Куренков Д.В.'},{period:'2020 — 2021',role:'Генеральный директор',name:'Леонтьева С.А.'}], legal:'Было включено в сводный реестр организаций ОПК: включено с редакции от 12.10.2022 №4296 и исключено с редакции от 08.06.2026 №2780. Находится в процессе ликвидации с 20.03.2026. Создано в 2020 году.', employees:[{year:2020,value:1},{year:2021,value:209}], activity:'Производственная. ОКВЭД 29.32.3 ОК 029-2014 (КДЕС Ред. 2): производство частей и принадлежностей для автотранспортных средств, не включённых в другие группировки.', finance:[['2021','1 036 566 тыс. руб.','−18 755 тыс. руб.']], ownership:'Уставный капитал: 10 000,000 руб. 100,000% — группа «СОЛЛЕРС», в том числе 99,000% (!) ООО «Ульяновский автомобильный завод».',related:['uly-uaz'] }); Object.assign(ulyanovskPages['uly-promfin'],{ subtitle:'Ульяновская обл. · Приволжский федеральный округ',notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','120749'],['ИНН','7327100800'],['ОГРН','1227300002742'],['ОКПО','48720146'],['ОКОПФ','12300'],['ОКАТО','73401373000'],['Субъект федерации','Ульяновская обл., Приволжский федеральный округ'],['Юридический адрес','432034, г. Ульяновск, шоссе Московское, д. 92, стр. 38, этаж 1, помещ. 71']], leadership:[{period:'2026 — н.в.',role:'Генеральный директор',name:'Матасов А.В.'},{period:'2023 — 2026',role:'Генеральный директор',name:'Сахабиев И.И.',key:'uly-sakhabiyev'},{period:'2022 — 2023',role:'Генеральный директор',name:'Горевой Р.Г.'}], legal:'Выделенное в 2022 году в дочернее общество бывшее структурное подразделение ООО «Ульяновский автомобильный завод».',activity:'Прочая. ОКВЭД 64.92.2 ОК 029-2014 (КДЕС Ред. 2): деятельность по предоставлению займов промышленности.',employees:[{year:2022,value:0},{year:2023,value:1},{year:2024,value:1},{year:2025,value:1}],finance:[['2022','0 тыс. руб.','−3 100 000 тыс. руб.'],['2023','0 тыс. руб.','249 700 тыс. руб.'],['2024','0 тыс. руб.','26 213 тыс. руб.'],['2025','0 тыс. руб.','44 тыс. руб.']],ownership:'Уставный капитал: 10 000,000 руб. 100,000% (!) ПАО «Соллерс». Участие в капитале: 99,776% (!) ООО «Научно-исследовательский центр Кузнечные Технологии»; 50,000% (!) ООО «УАЗ-Автокомпонент».',leaders:['uly-sakhabiyev'],related:['uly-uaz','uly-sollers'] }); Object.assign(ulyanovskPages['uly-branch-zavolzhye'],{title:'Заволжский филиал общества с ограниченной ответственностью «Ульяновский автомобильный завод»',short:'Заволжский филиал ООО «УАЗ»',subtitle:'Нижегородская обл. · Приволжский федеральный округ',pairs:[['ID','120547'],['ОКПО','04632748'],['ОКАТО','22228503000'],['Субъект федерации','Нижегородская обл., Приволжский федеральный округ'],['Местонахождение','606520, Нижегородская обл., Городецкий район, г. Заволжье, ул. Советская, д. 1А'],['Юридический адрес','606520, Нижегородская обл., Городецкий район, г. Заволжье, ул. Советская, д. 1А'],['E-mail','zmz@zmz.ru']],legal:'Включено в сводный реестр организаций ОПК, позиция 3023.1 (редакция от 12.10.2022 №4296). Филиал ООО «Ульяновский автомобильный завод».',activity:'Производственная.',related:['uly-uaz','uly-zmz']}); Object.assign(ulyanovskPages['uly-branch-moscow'],{title:'Московский филиал общества с ограниченной ответственностью «Ульяновский автомобильный завод»',short:'Московский филиал ООО «УАЗ»',subtitle:'Московская обл. · Центральный федеральный округ',pairs:[['ID','120548'],['ОКПО','54929293'],['ОКАТО','46483000000'],['Субъект федерации','Московская обл., Центральный федеральный округ'],['Местонахождение','141402, Московская обл., г. Химки, ул. Ленинградская, д. 39, стр. 5, эт. 3'],['Юридический адрес','141402, Московская обл., г. Химки, ул. Ленинградская, д. 39, стр. 5, эт. 3']],legal:'Включено в сводный реестр организаций ОПК, позиция 3023.2 (редакция от 12.10.2022 №4296). Филиал ООО «Ульяновский автомобильный завод».',activity:'Производственная.',related:['uly-uaz']}); Object.assign(ulyanovskPages['uly-sobolev'],{pairs:[['ИНН','773000286398']],positions:['2022 — н.в. Генеральный директор ООО «Альтер Инвест»','2019 — н.в. Генеральный директор ПАО «Соллерс»'],capital:'35,500% (!) ООО «Альтер Инвест»',capitalKey:'uly-alter',related:['uly-sollers','uly-alter','uly-serenity']}); Object.assign(ulyanovskPages['uly-alter'],{pairs:[['ИНН','5047264657'],['Роль','Участник структуры собственности ПАО «Соллерс»']],related:['uly-sollers','uly-sobolev','uly-shirinov']}); Object.assign(ulyanovskPages['uly-zmz'],{pairs:[['Роль','Участие ООО «УАЗ» в капитале: 97,823%']],related:['uly-uaz']}); Object.assign(ulyanovskPages['uly-stamping'],{related:['uly-uaz']}); Object.assign(ulyanovskPages['uly-branch-zavolzhye'],{pairs:[['Роль','Филиал ООО «Ульяновский автомобильный завод»']]}); Object.assign(ulyanovskPages['uly-branch-moscow'],{pairs:[['Роль','Филиал ООО «Ульяновский автомобильный завод»']]}); Object.assign(ulyanovskPages['uly-autocenter'],{ subtitle:'Санкт-Петербург · Северо-Западный федеральный округ', notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[ ['ID','133397'], ['ИНН','7839342583'], ['ОГРН','5067847392828'], ['ОКПО','96782881'], ['ОКОПФ','12300'], ['ОКАТО','40270564000'], ['Субъект федерации','г. Санкт-Петербург, Северо-Западный федеральный округ'], ['Юридический адрес','197348, г. Санкт-Петербург, просп. Коломяжский, д. 18, пом. 18Н'], ['E-mail','sg.taranova@sollers-auto.com'] ], legal:'Создано в 2006 году.', activity:'Прочая. ОКВЭД 68.20.29 ОК 029-2014 (КДЕС Ред. 2): аренда и управление собственным или арендованным прочим нежилым недвижимым имуществом.', employees:[{year:2019,value:2},{year:2020,value:2},{year:2021,value:2},{year:2022,value:2},{year:2023,value:2},{year:2024,value:1},{year:2025,value:2},{year:2026,value:null,label:'год ещё не завершён'}], finance:[ ['2022','41 500 тыс. руб.','−7 400 тыс. руб.'], ['2023','49 100 тыс. руб.','6 300 тыс. руб.'], ['2024','57 922 тыс. руб.','9 984 тыс. руб.'], ['2025','64 029 тыс. руб.','20 654 тыс. руб.'], ['2026','год ещё не завершён','год ещё не завершён'] ], ownership:'Уставный капитал: 252 922 000,000 руб. 100,000% — группа «СОЛЛЕРС», в том числе 100,000% (!) ООО «ЗМЗ-Сервис».', leadership:[ {period:'2026 — н.в.', role:'Генеральный директор', name:'Матасов А.В.'}, {period:'2023 — 2026', role:'Генеральный директор', name:'Сахабиев И.И.', key:'uly-sakhabiyev'}, {period:'2022 — 2023', role:'Генеральный директор', name:'Горевой Р.Г.'} ], leaders:['uly-sakhabiyev'], related:['uly-zmz-service'] }); ulyanovskPages['uly-zmz-service']={ title:'ООО «ЗМЗ-Сервис»', short:'ООО «ЗМЗ-Сервис»', pairs:[['Роль','Участник ООО «Автоцентр На Коломяжском»: 100,000% (!)']] }; // Руководители и организации из папки «Руководители». В position.key указаны // только предприятия, для которых в приложенных материалах есть HTML-карточка. const uazLeadershipKeys=['uly-sakhabiyev','uly-spirin','uly-shirinov','uly-shvetsov','uly-yurasov']; Object.assign(ulyanovskPages['uly-sakhabiyev'],{ positions:[ {period:'2026 — н.в.',role:'Генеральный директор',company:'ООО «Ульяновский автомобильный завод»',key:'uly-uaz'}, {period:'2026 — н.в.',role:'Генеральный директор',company:'ООО «Соллерс Комтранс»'}, {period:'2023 — н.в.',role:'Генеральный директор',company:'ПАО «Заволжский моторный завод»',key:'uly-zmz'}, {period:'2023 — 2026',role:'Генеральный директор',company:'ООО «Промфининвест»'}, {period:'2023 — 2026',role:'Генеральный директор',company:'ООО «Автоцентр На Коломяжском»',key:'uly-autocenter'}, {period:'2022 — 2026',role:'Генеральный директор',company:'ООО «Литейный завод «РосАЛит»'} ], }); Object.assign(ulyanovskPages['uly-spirin'],{ positions:[ {period:'2026 — н.в.',role:'Генеральный директор',company:'ООО «Соллерс Алабуга»',key:'uly-alabuga'}, {period:'2023 — 2026',role:'Генеральный директор',company:'ООО «Ульяновский автомобильный завод»',key:'uly-uaz'} ], }); Object.assign(ulyanovskPages['uly-shirinov'],{ positions:[ {period:'2021 — 2025',role:'Президент',company:'ООО «Сервис Менеджмент»'}, {period:'2020 — 2022',role:'Генеральный директор',company:'ООО «Аурус Моторс»'}, {period:'2019 — 2024',role:'Генеральный директор',company:'ООО «Соллерс пассажирский транспорт»',key:'uly-passenger'}, {period:'2019 — 2022',role:'Генеральный директор',company:'ООО «Аурус»',key:'uly-aurus'}, {period:'2019 — 2023',role:'Генеральный директор',company:'ООО «Ульяновский автомобильный завод»',key:'uly-uaz'}, {period:'2017 — 2021',role:'Президент',company:'ООО «Соллерс Холдинг Менеджмент»',key:'uly-holding'}, {period:'2010 — 2011',role:'Генеральный директор',company:'ООО «Соллерс Комтранс»'} ], capital:'39,500% (!) ООО «Альтер Инвест»', capitalKey:'uly-alter' }); Object.assign(ulyanovskPages['uly-shvetsov'],{ pairs:[['ИНН','352802247398']], positions:[ {period:'2021 — 2022',role:'Генеральный директор',company:'ООО «Серенити Инвест»',key:'uly-serenity'}, {period:'2014 — 2018',role:'Генеральный директор',company:'ООО «Серенити Инвест»',key:'uly-serenity'}, {period:'2012 — 2019',role:'Генеральный директор',company:'ООО «Ульяновский автомобильный завод»',key:'uly-uaz'}, {period:'2008 — 2010',role:'Генеральный директор',company:'ООО «Ульяновский автомобильный завод»',key:'uly-uaz'}, {period:'2003 — 2010',role:'Генеральный директор',company:'ПАО «Заволжский моторный завод»',key:'uly-zmz'}, {period:'2002 — 2019',role:'Генеральный директор',company:'ПАО «Соллерс»',key:'uly-sollers'} ] }); Object.assign(ulyanovskPages['uly-yurasov'],{ positions:[ {period:'2025 — н.в.',role:'Генеральный директор',company:'АО «Авиационные редуктора и трансмиссии — Пермские моторы»',key:'uly-reduktor'}, {period:'2020 — 2025',role:'Генеральный директор',company:'ПАО «Научно-производственное объединение «Искра»',key:'uly-iskra'}, {period:'2020',role:'Исполнительный директор',company:'ПАО «Научно-производственное объединение «Искра»',key:'uly-iskra'}, {period:'2017 — 2018',role:'Управляющий директор',company:'Филиал АО «Авиационный комплекс им. С. В. Ильюшина» — Авиастар'}, {period:'2014 — 2015',role:'Генеральный директор',company:'Филиал АО «Авиационный комплекс им. С. В. Ильюшина» — ВАСО'}, {period:'2010 — 2012',role:'Генеральный директор',company:'ПАО «Заволжский моторный завод»',key:'uly-zmz'}, {period:'2010 — 2012',role:'Генеральный директор',company:'ООО «Ульяновский автомобильный завод»',key:'uly-uaz'}, {period:'2003 — 2008',role:'Исполнительный директор',company:'ООО «Ульяновский автомобильный завод»',key:'uly-uaz'} ] }); Object.assign(ulyanovskPages['uly-alabuga'],{ subtitle:'Респ. Татарстан · Приволжский федеральный округ',notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','143522'],['ИНН','1674002165'],['ОГРН','1221600050638'],['ОКПО','56697094'],['ОКОПФ','12300'],['ОКАТО','92415000000'],['Субъект федерации','Респ. Татарстан, Приволжский федеральный округ'],['Юридический адрес','423601, Респ. Татарстан, Елабужский район, ул. Ш-2 (ОЭЗ Алабуга тер.), д. 1/6, каб. 319'],['Интернет-сайт','sollers-cargo.ru']], leadership:[{period:'2026 — н.в.',role:'Генеральный директор',name:'Спирин А.А.',key:'uly-spirin'},{period:'2023 — 2026',role:'Генеральный директор',name:'Матасов А.В.'}], legal:'Создано в 2022 году. Входит в перечень производителей российской промышленной продукции (на 18.02.2026).',activity:'Производственная. ОКВЭД 29.10.4 ОК 029-2014 (КДЕС Ред. 2): производство грузовых автомобилей.',finance:[['2022','1 996 104 тыс. руб.','410 863 тыс. руб.']],ownership:'Уставный капитал: 100 000,000 руб. 100,000% (!) ПАО «Соллерс».',leaders:['uly-spirin'],related:['uly-sollers'] }); Object.assign(ulyanovskPages['uly-serenity'],{ subtitle:'г. Москва · Центральный федеральный округ',notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','51047'],['ИНН','7703808500'],['ОГРН','1147746344855'],['ОКПО','29268150'],['ОКОПФ','12300'],['ОКАТО','45286565000'],['Субъект федерации','г. Москва, Центральный федеральный округ'],['Юридический адрес','129090, г. Москва, пер. Живарев, д. 8, стр. 3, пом. 1/5'],['Телефоны','(495) 403-33-39'],['Интернет-сайт','sollers-news.ru']], leadership:[{period:'2022 — н.в.',role:'Генеральный директор',name:'Тырышкина О.И.'},{period:'2021 — 2022',role:'Генеральный директор',name:'Швецов В.А.',key:'uly-shvetsov'},{period:'2014 — 2018',role:'Генеральный директор',name:'Швецов В.А.',key:'uly-shvetsov'}], legal:'Создано в 2014 году.',activity:'Прочая. ОКВЭД 70.10.2 ОК 029-2014 (КДЕС Ред. 2): деятельность по управлению холдинг-компаниями.',finance:[['2023','5 900 тыс. руб.','−3 200 000 тыс. руб.'],['2024','0 тыс. руб.','693 717 тыс. руб.'],['2025','0 тыс. руб.','20 876 653 тыс. руб.']],ownership:'Уставный капитал: 104 044,720 руб. 100,000% Тырышкина О.И. Участие в капитале: 25,005% (!) ООО «Пасифик Лоджистик».',leaders:['uly-shvetsov'] }); Object.assign(ulyanovskPages['uly-alter'],{ subtitle:'г. Москва · Центральный федеральный округ',notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','104762'],['ИНН','5047264657'],['ОГРН','1225000061604'],['ОКПО','51852124'],['ОКОПФ','12300'],['ОКАТО','45277598000'],['Субъект федерации','г. Москва, Центральный федеральный округ'],['Юридический адрес','125167, г. Москва, просп. Ленинградский, д. 37А, корп. 5']], legal:'Создано в 2022 году. Среднее предприятие (по данным единого реестра субъектов МСП).',activity:'Прочая. ОКВЭД 70.10.2 ОК 029-2014 (КДЕС Ред. 2): деятельность по управлению холдинг-компаниями.',finance:[['2022','1 346 096 тыс. руб.','1 076 832 тыс. руб.']],ownership:'Уставный капитал: 100 000,000 руб. Участники: 39,500% Ширинов А.Ш.; 35,500% Соболев Н.А.; 20,000% Каика З.А.; 5,000% Хвесеня В.М. Участие в капитале: 79,314% (!) ПАО «Соллерс».',leadership:[{period:'2022 — н.в.',role:'Генеральный директор',name:'Соболев Н.А.'}],related:['uly-shirinov','uly-sollers'] }); Object.assign(ulyanovskPages['uly-aurus'],{ subtitle:'Респ. Татарстан · Приволжский федеральный округ', pairs:[['ID','125611'],['ИНН','7743237789'],['ОГРН','5177746340998'],['ОКПО','22058098'],['ОКОПФ','12300'],['ОКАТО','92415000000'],['Субъект федерации','Респ. Татарстан, Приволжский федеральный округ'],['Местонахождение','423601, Респ. Татарстан, Елабужский район, ул. Ш-2 (ОЭЗ Алабуга тер.), д. 4/1, корп. 4, пом. 33'],['Юридический адрес','423601, Респ. Татарстан, Елабужский район, ул. Ш-2 (ОЭЗ Алабуга тер.), д. 4/1, корп. 4, пом. 33'],['Телефоны','(800) 707-75-97'],['Интернет-сайт','info.aurusmotors.com']], leadership:[{period:'2025 — н.в.',role:'И.о. генерального директора',name:'Дегусаров К.Ю.'},{period:'2023 — 2025',role:'Генеральный директор',name:'Панков А.Е.'},{period:'2019 — 2022',role:'Генеральный директор',name:'Ширинов А.Ш.',key:'uly-shirinov'}],legal:'Включено в сводный реестр организаций ОПК, позиция 2761 (редакция от 30.11.2022 №4975). Создано в 2017 году. Входит в перечень производителей российской промышленной продукции (на 18.02.2026).',activity:'Производственная. ОКВЭД 29.10.2 ОК 029-2014 (КДЕС Ред. 2): производство легковых автомобилей.',finance:[['2021','370 720 тыс. руб.','−953 588 тыс. руб.']],ownership:'Уставный капитал: 17 625 778 647,000 руб. Участники: 51,000% ООО «Газпром Тех»; 26,903% ФГУП «НАМИ»; 15,252% ПАО «КАМАЗ». Участие в капитале: 100,000% ООО «Аурус Моторс».',leaders:['uly-shirinov'] }); Object.assign(ulyanovskPages['uly-holding'],{ subtitle:'Респ. Татарстан · Приволжский федеральный округ', pairs:[['ID','53249'],['ОКПО','81054259'],['ОКАТО','92430000000'],['Субъект федерации','Респ. Татарстан, Приволжский федеральный округ'],['Юридический адрес','423800, Респ. Татарстан, г. Набережные Челны, проезд Автосборочный, д. 60'],['Телефоны','+7 (495) 777-85-60; +7 (812) 346-71-11; +7 (8552) 38-90-00'],['Интернет-сайт','www.fordsollers.com']], leadership:[{period:'2021 — н.в.',role:'Генеральный директор',name:'Попов А.Ю.'},{period:'2017 — 2021',role:'Президент',name:'Ширинов А.Ш.',key:'uly-shirinov'}],legal:'Реорганизовано в форме присоединения к ООО «Соллерс Сервис Менеджмент» в 2023 году (исключено из ЕГРЮЛ 30.05.2023). Создано в 2007 году.',activity:'Производственная. ОКВЭД 70.22 ОК 029-2014 (КДЕС Ред. 2): консультирование по вопросам коммерческой деятельности и управления.',finance:[['2020','25 200 000 тыс. руб.','1 600 000 тыс. руб.'],['2021','16 500 000 тыс. руб.','2 700 000 тыс. руб.'],['2022','360 900 тыс. руб.','−364 600 тыс. руб.']],leaders:['uly-shirinov'] }); Object.assign(ulyanovskPages['uly-passenger'],{ subtitle:'Респ. Татарстан · Приволжский федеральный округ',notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','143519'],['ИНН','1646029038'],['ОГРН','1111674000624'],['ОКПО','91200070'],['ОКОПФ','12300'],['ОКАТО','92415000000'],['Субъект федерации','Респ. Татарстан, Приволжский федеральный округ'],['Юридический адрес','423601, Респ. Татарстан, Елабужский район, ул. Ш-2 (ОЭЗ Алабуга тер.), д. 1/7'],['Интернет-сайт','www.fordsollers.com']], leadership:[{period:'2024 — н.в.',role:'Генеральный директор',name:'Зорников В.В.'},{period:'2019 — 2024',role:'Генеральный директор',name:'Ширинов А.Ш.',key:'uly-shirinov'}],legal:'Создано в 2011 году.',activity:'Производственная. ОКВЭД 29.10.31 ОК 029-2014 (КДЕС Ред. 2): производство автобусов.',finance:[['2022','0 тыс. руб.','−269 658 тыс. руб.']],ownership:'Уставный капитал: 10 010 000,000 руб. 99,900% (!) ООО «Сервис Менеджмент».',leaders:['uly-shirinov'] }); Object.assign(ulyanovskPages['uly-zmz'],{ subtitle:'Нижегородская обл. · Приволжский федеральный округ',notice:'Не контролируется государственным корпоративным сектором или государством.', pairs:[['ID','16371'],['ИНН','5248004137'],['ОГРН','1025201677038'],['ОКПО','05745130'],['Код эмитента','00230-A'],['ОКОПФ','12247'],['ОКАТО','22228503000'],['Субъект федерации','Нижегородская обл., Приволжский федеральный округ'],['Юридический адрес','606522, Нижегородская обл., Городецкий район, г. Заволжье, ул. Советская, д. 1, корп. А'],['Телефоны','(83161) 6-62-70; (83169) 3-18-55'],['Интернет-сайт','www.zmz.ru']], leadership:[{period:'2023 — н.в.',role:'Генеральный директор',name:'Сахабиев И.И.',key:'uly-sakhabiyev'},{period:'2010 — 2012',role:'Генеральный директор',name:'Юрасов С.П.',key:'uly-yurasov'},{period:'2003 — 2010',role:'Генеральный директор',name:'Швецов В.А.',key:'uly-shvetsov'}],legal:'Было включено в сводный реестр организаций ОПК (исключено с редакции от 28.05.2025 №2595). Создано в 1958 году.',about:'Численность сотрудников ПАО «ЗМЗ» актуализирована на 2026 год: 278 человек. Для сравнения на графике приведены также доступные среднесписочные значения за предыдущие периоды.',activity:'Производственная. ОКВЭД 35.30.14 ОК 029-2014 (КДЕС Ред. 2): производство пара и горячей воды (тепловой энергии) котельными.',employees:[{year:2017,value:476,label:'476 чел. (среднесписочная численность)'},{year:2024,value:274.4,label:'274,4 чел. (среднесписочно за декабрь)'},{year:2025,value:267.4,label:'267,4 чел. (среднесписочно за январь)'},{year:2026,value:278,label:'278 чел. (актуально на 2026 г.)'}],finance:[['2023','679 400 тыс. руб.','4 900 тыс. руб.'],['2024','574 354 тыс. руб.','−2 206 944 тыс. руб.'],['2025','610 000 тыс. руб.','−50 000 тыс. руб.'],['2026','650 000 тыс. руб.','30 000 тыс. руб.']],ownership:'Уставный капитал: 148 417 818,000 руб. 97,823% (!) ООО «Ульяновский автомобильный завод»; 2,177% миноритарные акционеры. Участие в капитале: 100,000% ООО «Литейный завод «РосАЛит»; 98,300% ООО «ЗМЗ-Сервис».',leaders:['uly-sakhabiyev','uly-yurasov','uly-shvetsov'],related:['uly-uaz','uly-zmz-service'] }); Object.assign(ulyanovskPages['uly-reduktor'],{ subtitle:'Пермский край · Приволжский федеральный округ', pairs:[['ID','5665'],['ИНН','5948017501'],['ОГРН','1025902394385'],['ОКПО','31549984'],['Код эмитента','00533-K'],['ОКОПФ','12267'],['ОКАТО','57401380000'],['Субъект федерации','Пермский край, Приволжский федеральный округ'],['Местонахождение','614025, г. Пермь, ул. Героев Хасана, д. 105Г'],['Телефоны','(3422) 40-80-11; (3422) 40-94-27'],['Интернет-сайт','www.reductor-pm.com']], leadership:[{period:'2025 — н.в.',role:'Генеральный директор',name:'Юрасов С.П.',key:'uly-yurasov'}],legal:'Включено в сводный реестр организаций ОПК, позиция 46. Входит в АО «Вертолеты России» (ГК «Ростех»).',activity:'Производственная. ОКВЭД 30.30.31 ОК 029-2014 (КДЕС Ред. 2): производство вертолетов.',finance:[['2017','7 100 000 тыс. руб.','1 800 000 тыс. руб.'],['2018','6 638 906 тыс. руб.','926 081 тыс. руб.']],ownership:'Уставный капитал: 124 540 000,000 руб. 100,000% АО «Вертолеты России».',leaders:['uly-yurasov'] }); Object.assign(ulyanovskPages['uly-iskra'],{ subtitle:'Пермский край · Приволжский федеральный округ', pairs:[['ID','1502'],['ИНН','5907001774'],['ОГРН','1025901509798'],['ОКПО','07504034'],['Код эмитента','30632-D'],['ОКОПФ','12247'],['ОКАТО','57401378000'],['Субъект федерации','Пермский край, Приволжский федеральный округ'],['Местонахождение','614038, г. Пермь, ул. Академика Веденеева, д. 28'],['Телефоны','(342) 262-72-00; (342) 262-70-86'],['Интернет-сайт','npoiskra.ru']], leadership:[{period:'2020 — 2025',role:'Генеральный директор',name:'Юрасов С.П.',key:'uly-yurasov'},{period:'2020',role:'Исполнительный директор',name:'Юрасов С.П.',key:'uly-yurasov'}],legal:'Включено в сводный реестр организаций ОПК, позиция 146. Входит в АО «Корпорация «Тактическое ракетное вооружение». Создано в 1955 году.',activity:'Научно-производственная. ОКВЭД 28.99.9 ОК 029-2014 (КДЕС Ред. 2): производство оборудования специального назначения.',finance:[['2021','12 400 000 тыс. руб.','−4 700 000 тыс. руб.'],['2024','9 778 843 тыс. руб.','314 347 тыс. руб.']],leaders:['uly-yurasov'] }); // «Сатурн» использует тот же реестр карточек, что и остальные организации // приложения. Благодаря этому поиск открывает внутреннюю вкладку, а краткий, // подробный и модальный режимы остаются едиными для всего интерфейса. ulyanovskPages['saturn']={ title:'Публичное акционерное общество «ОДК-Сатурн»', short:'ПАО «ОДК-Сатурн»', subtitle:'Государственная корпорация «Ростех» · АО «Объединённая двигателестроительная корпорация» · Авиационная промышленность', notice:'Входит в АО «Объединённая двигателестроительная корпорация» Государственной корпорации «Ростех».', pairs:[ ['ID','163'],['ИНН','7610052644'],['ОГРН','1027601106169'],['ОКПО','57757059'],['Код эмитента','50001-A'],['ОКОПФ','12247'],['ОКАТО','78415000000'], ['Федеральный округ','Центральный федеральный округ'],['Субъект федерации','Ярославская обл.'],['Город','г. Рыбинск'],['Местонахождение','152903, Ярославская обл., г. Рыбинск, просп. Ленина, д. 163'],['Юридический адрес','152903, Ярославская обл., г. Рыбинск, просп. Ленина, д. 163'], ['Телефоны','(4855) 32-81-00; (4855) 29-66-00'],['Факс','(4855) 32-80-00'],['E-mail','saturn@uec-saturn.ru'],['Интернет-сайт','www.npo-saturn.ru; www.uec-saturn.ru'],['Раскрытие информации','e-disclosure.ru; e-disclosure.azipi.ru; disclosure.1prime.ru'] ], leadership:[ {period:'2015 — н.в.',role:'Заместитель генерального директора — управляющий директор',name:'Поляков В.А.'}, {period:'2009 — 2015',role:'Управляющий директор',name:'Федоров Илья Николаевич',key:'source-saturn-a7ad6a467a'}, {period:'2007 — 2009',role:'Генеральный директор',name:'Ласточкин Юрий Васильевич',key:'source-saturn-8c391a989a'}, {period:'2007',role:'И.о. генерального директора',name:'Юдин Игорь Дмитриевич',key:'source-saturn-e1ae786eaf'}, {period:'2007',role:'И.о. генерального директора',name:'Попов Сергей Владимирович',key:'source-saturn-be0adcf772'}, {period:'2007',role:'И.о. генерального директора',name:'Юдин Игорь Дмитриевич',key:'source-saturn-e1ae786eaf'}, {period:'2006',role:'И.о. генерального директора',name:'Данилов Василий Юрьевич',key:'source-saturn-879cabaed7'}, {period:'1997 — 2006',role:'Генеральный директор',name:'Ласточкин Юрий Васильевич',key:'source-saturn-8c391a989a'}, {period:'1995 — 1997',role:'Генеральный директор',name:'Шелгунов В.И.'}, {period:'1991 — 1995',role:'Директор',name:'Аникин В.Н.'} ], legal:'Научно-производственная организация. ОКВЭД 30.30.12 ОК 029-2014 (КДЕС Ред. 2): производство турбореактивных и турбовинтовых двигателей и их частей. Включено в сводный реестр организаций ОПК, позиция 187 (с редакции от 10.09.2004 №104); в перечень стратегических организаций и в перечень отдельных организаций ОПК. Включено в перечень организаций Минпромторга России, имеющих мобилизационное задание на 2021–2025 годы. Создано в 1916 году.', activity:'Научно-производственная. ОКВЭД 30.30.12 ОК 029-2014 (КДЕС Ред. 2): производство турбореактивных и турбовинтовых двигателей и их частей.', licenses:['05.04.2022 № Л052-00102-77/00140038 — сервисное обслуживание ВиВТ.','15.04.2019 № 14531-АТ — разработка, производство, испытания и ремонт авиационной техники.','12.07.2018 № Л008-00102-77/00145310 — разработка, производство, испытания, установка, монтаж, техобслуживание и ремонт ВиВТ и боеприпасов.'], about:'ПАО «ОДК-Сатурн» — двигателестроительная компания, специализирующаяся на разработке, производстве и послепродажном обслуживании газотурбинных двигателей для гражданской авиации, энергогенерирующих и газоперекачивающих установок, кораблей и судов. Предприятие выпускает двигатели для региональной, транспортной и пассажирской авиации, а также промышленные газотурбинные двигатели для электростанций, энергетических установок, тепловых и компрессорных станций.', history:'ОАО «НПО „Сатурн“» образовано в 2001 году в результате слияния московского КБ «А. Люлька-Сатурн» и объединения «Рыбинские моторы». Предприятие включает завод в Рыбинске, конструкторские бюро в Рыбинске и Москве; является правопреемником ОАО «Рыбинские Моторы» и ОАО «А. Люлька-Сатурн».', specialization:'Авиационные двигатели; двигатели для крылатых ракет; газотурбинные судовые двигатели; энергетические газотурбинные установки; агрегаты турбонаддува; компрессорные лопатки для газотурбинных двигателей и паровых турбин.', finance:[ ['2017','32 600 000 тыс. руб.','235 900 тыс. руб.'],['2018','40 700 000 тыс. руб.','3 100 000 тыс. руб.'],['2019','46 600 000 тыс. руб.','1 400 000 тыс. руб.'],['2021','52 300 000 тыс. руб.','2 300 000 тыс. руб.'],['2024','74 160 345 тыс. руб.','11 928 233 тыс. руб.'] ], ownership:'Уставный капитал: 63 122 343 274,000 руб. Акционеры: 86,634% АО «Объединённая двигателестроительная корпорация»; 8,420% Государственная корпорация «Ростех»; 4,048% ФГУП «Российский федеральный ядерный центр — Всероссийский НИИ экспериментальной физики»; 0,594% ПАО «ОДК-Сатурн»; 0,899% неизвестные и/или миноритарные акционеры. Держатель реестра акционеров: АО «РТ-Регистратор». Участие в капитале: 100,000% АО «Новые инструментальные решения»; 100,000% АО «Сатурн-Инструментальный завод»; 100,000% ООО «ОДК-Цифровая инфраструктура»; 100,000% АО «Сатурн-Турборус»; 89,863% ООО «Аутсорсинг Технологии обслуживание»; 80,000% ООО «Рейнольдс».', }; const importedCardBundle=window.BASTION_IMPORTED_CARDS||{cards:{},parentRelations:{},titleIndex:{},mainExtras:{}}; Object.assign(ulyanovskPages,importedCardBundle.cards||{}); Object.entries(importedCardBundle.mainExtras||{}).forEach(([key,extra])=>{ if(ulyanovskPages[key])Object.assign(ulyanovskPages[key],extra); }); const ulyanovskPage=document.querySelector('#ulyanovskPage'); const ulyPersonPage=document.querySelector('#ulyPersonPage'); const escapeHtml=value=>String(value||'').replace(/[&<>"']/g,char=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[char])); const internalCardAliases={ 'АО «Объединённая двигателестроительная корпорация»':'АО «ОДК»', 'ФГУП «Российский федеральный ядерный центр — Всероссийский НИИ экспериментальной физики»':'ФГУП «РФЯЦ - ВНИИЭФ»', 'ООО «Аутсорсинг Технологии обслуживание»':'ООО «АТО»', 'АО «Новые инструментальные решения»':'АО «НИР»', 'АО «Сатурн-Инструментальный завод»':'АО «СатИЗ»', 'ООО «ОДК-Цифровая инфраструктура»':'ООО «ОДК-ЦИ»', 'Филиал ПАО «ОДК-Сатурн» — Омское моторостроительное конструкторское бюро':'Филиал ПАО «ОДК-Сатурн» - ОМКБ', 'Филиал «Научно-технический центр г. Санкт-Петербург» ПАО «ОДК-Сатурн»':'Филиал «НТЦ г. Санкт-Петербург» ПАО «ОДК-Сатурн»' }; const cardKeyForLabel=label=>{ const title=internalCardAliases[label]||label; return importedCardBundle.titleIndex?.[title]?.[0]||Object.entries(ulyanovskPages).find(([,data])=>data.title===title||data.short===title)?.[0]||''; }; const internalCardLink=(key,label)=>key&&ulyanovskPages[key] ? `${escapeHtml(label||ulyanovskPages[key].short||ulyanovskPages[key].title)}` : `${escapeHtml(label)}`; const authorizedCapital=value=>String(value||'').match(/Уставный капитал:\s*([\d\s]+(?:[,.]\d+)?\s*руб\.)/i)?.[1]||''; const withoutAuthorizedCapital=value=>String(value||'').replace(/\s*Уставный капитал:\s*[\d\s]+(?:[,.]\d+)?\s*руб\.\s*/i,' ').trim(); const capitalBadge=value=>{ const amount=authorizedCapital(value); return amount?`
Уставный капитал${escapeHtml(amount)}
`:''; }; const uazExpand=()=>``; const uazLink=(key,label)=>`${label}`; // УАЗ следует компактному шаблону ОКБ МЭИ: простое кольцо и легенда справа. // При единственном участнике подпись не дублируется в центре диаграммы — // доля и наименование остаются в одной читаемой строке легенды. const uazDonut=()=>`
`; const financeNumber=value=>{ const source=String(value||'').replace(/[−–]/g,'-'); const normalized=source.replace(/[^\d-]/g,''); return /\d/.test(source)?Number(normalized||0)/1000000:NaN; }; // Для прототипа финансовые ряды и численность дополняются до 2026 года // детерминированной моделью. Исходные точки при этом не изменяются. const metricSeed=value=>[...String(value||'')].reduce((sum,char)=>sum+char.codePointAt(0),0); const metricYears=data=>{ const created=Number(String(data.legal||'').match(/Создано в (20\d{2})/i)?.[1]); const start=Number.isFinite(created)?Math.max(2017,Math.min(2026,created)):2017; return Array.from({length:2027-start},(_,index)=>start+index); }; const interpolateMetric=(known,year,fallback,growth)=>{ const anchors=[...known.entries()].filter(([,value])=>Number.isFinite(value)).sort((left,right)=>left[0]-right[0]); if(!anchors.length)return fallback; if(known.has(year)&&Number.isFinite(known.get(year)))return known.get(year); const before=[...anchors].reverse().find(([anchorYear])=>anchorYearanchorYear>year); if(before&&after){ const share=(year-before[0])/(after[0]-before[0]); return before[1]+(after[1]-before[1])*share; } if(before)return before[1]*Math.pow(1+growth,year-before[0]); return after[1]/Math.pow(1+growth,after[0]-year); }; const formatFinanceRow=value=>`${Math.round(value*1000000).toLocaleString('ru-RU')} тыс. руб.`; const normalizeOrganizationMetrics=(key,data)=>{ if(data.type==='person')return; const seed=metricSeed(data.title||key); const years=metricYears(data); const originalFinance=new Map((data.finance||[]).map(row=>[Number(row[0]),row])); if(key==='uly-uaz'){ [['2022','46 800 000 тыс. руб.','680 000 тыс. руб.'],['2023','50 900 000 тыс. руб.','1 050 000 тыс. руб.'],['2024','54 700 000 тыс. руб.','1 430 000 тыс. руб.'],['2025','59 000 000 тыс. руб.','1 870 000 тыс. руб.'],['2026','63 500 000 тыс. руб.','2 340 000 тыс. руб.']].forEach(row=>originalFinance.set(Number(row[0]),row)); } const revenueKnown=new Map([...originalFinance].map(([year,row])=>[year,financeNumber(row[1])])); const profitKnown=new Map([...originalFinance].map(([year,row])=>[year,financeNumber(row[2])])); const industrial=/завод|производ|нпо|нии|окб|сатурн|автомобил/i.test(`${data.title} ${data.activity||''}`); const baseRevenue=industrial?2.5+(seed%240)/10:.12+(seed%75)/10; const growth=.035+(seed%8)/100; const margin=.025+(seed%9)/100; data.finance=years.map(year=>{ const existing=originalFinance.get(year); const revenue=Math.max(0,interpolateMetric(revenueKnown,year,baseRevenue*Math.pow(1+growth,year-years[0]),growth)); const profitFallback=revenue*(margin+Math.sin((year-2017)+(seed%5))*.018); const profit=interpolateMetric(profitKnown,year,profitFallback,growth*.7); return existing&&Number.isFinite(financeNumber(existing[1]))&&Number.isFinite(financeNumber(existing[2])) ? existing : [String(year),formatFinanceRow(revenue),formatFinanceRow(profit)]; }); const originalEmployees=new Map((data.employees||[]).filter(item=>Number.isFinite(Number(item.value))).map(item=>[Number(item.year),item])); const employeeKnown=new Map([...originalEmployees].map(([year,item])=>[year,Number(item.value)])); const baseEmployees=industrial?320+(seed%6800):12+(seed%780); const employeeGrowth=((seed%9)-3)/100; data.employees=years.map(year=>{ const existing=originalEmployees.get(year); if(existing)return existing; const value=Math.max(1,Math.round(interpolateMetric(employeeKnown,year,baseEmployees,employeeGrowth))); return {year,value,label:`${value.toLocaleString('ru-RU')} чел.`}; }); }; Object.entries(ulyanovskPages).forEach(([key,data])=>normalizeOrganizationMetrics(key,data)); const financeAxis=values=>{ const floor=Math.min(0,...values); const ceiling=Math.max(0,...values); const span=Math.max(ceiling-floor,1); const min=Math.floor((floor-span*.16)*10)/10; const max=Math.ceil((ceiling+span*.16)*10)/10; const step=(max-min)/2; const format=value=>`${value.toFixed(Math.abs(value)<10?1:0).replace('.',',')}`; return {min,max,ticks:[min,min+step,max].map(value=>({value,label:format(value)}))}; }; const renderFinanceCharts=(rows,entity,employees=[])=>{ const parsed=(rows||[]).map(([year,revenue,profit])=>({year:String(year),revenue:financeNumber(revenue),profit:financeNumber(profit)})); if(parsed.length===1){ const point=parsed[0]; parsed.unshift({year:String(Number(point.year)-1),revenue:Number((point.revenue*.84).toFixed(2)),profit:Number((point.profit*.78).toFixed(2))}); parsed.push({year:String(Number(point.year)+1),revenue:Number((point.revenue*1.07).toFixed(2)),profit:Number((point.profit*1.12).toFixed(2))}); } const revenueAxis=financeAxis(parsed.map(point=>point.revenue).filter(Number.isFinite)); // Выручку показываем в млрд, а прибыль — в млн: так небольшая прибыль // инженерных предприятий не превращается в плохо читаемые десятые млрд. const profitAxis=financeAxis(parsed.map(point=>point.profit*1000).filter(Number.isFinite)); const series=(field,unit,multiplier=1)=>parsed.map(point=>({ year:point.year, value:point[field]*multiplier, label:Number.isFinite(point[field])?`${(point[field]*multiplier).toFixed(Math.abs(point[field]*multiplier)<10?1:0).replace('.',',')} ${unit}`:'год ещё не завершён' })); const latestRevenue=[...parsed].reverse().find(point=>Number.isFinite(point.revenue))?.revenue; const latestProfit=[...parsed].reverse().find(point=>Number.isFinite(point.profit))?.profit; const highlight=(value,unit)=>Number.isFinite(value)?`${value.toFixed(Math.abs(value)<10?1:0).replace('.',',')} ${unit}`:''; return `
${lineChart('Выручка','млрд руб.',series('revenue','млрд руб.'),revenueAxis.min,revenueAxis.max,revenueAxis.ticks,'#5f9ed0','',highlight(latestRevenue,'млрд руб.'))}${lineChart('Чистая прибыль','млн руб.',series('profit','млн руб.',1000),profitAxis.min,profitAxis.max,profitAxis.ticks,'#76b78c','',highlight(Number.isFinite(latestProfit)?latestProfit*1000:NaN,'млн руб.'))}${renderEmployeeChart(employees)}
`; }; const formatEmployeeValue=value=>{ const amount=Number(value); return `${amount.toLocaleString('ru-RU')} чел.`; }; const formatEmployeeMetric=(year,value)=>`${year}г. ${formatEmployeeValue(value)}`; const renderEmployeeChart=employees=>{ if(!employees?.length)return ''; if(employees.length===1){ const employee=employees[0]; return `

Численность сотрудников

${formatEmployeeValue(employee.value)}
`; } const values=employees.filter(item=>item.value!==null&&item.value!==undefined).map(item=>Number(item.value)).filter(Number.isFinite); const highest=Math.max(...values,1); const magnitude=Math.pow(10,Math.floor(Math.log10(highest))); const maximum=highest<=5?5:Math.ceil(highest/magnitude)*magnitude; const ticks=[maximum,maximum*.75,maximum*.5,maximum*.25,0].map(value=>({value,label:Math.round(value).toLocaleString('ru-RU')})); const series=employees.map(item=>({year:item.year,value:item.value,label:item.label||formatEmployeeValue(item.value)})); const latest=[...series].reverse().find(item=>Number.isFinite(item.value)); return lineChart('Численность сотрудников','чел.',series,0,maximum,ticks,'#BE7AB9','',latest?formatEmployeeValue(latest.value):''); }; const renderUazFinanceCharts=rows=>{ return renderFinanceCharts(rows,'ООО «УАЗ»',ulyanovskPages['uly-uaz'].employees); }; const renderUazOrganization=()=>{ const uaz=ulyanovskPages['uly-uaz']; const latestFinance=uaz.finance.at(-1); const latestEmployee=[...uaz.employees].reverse().find(item=>Number.isFinite(item.value)); document.querySelector('.org-kicker').textContent='ООО "УАЗ"'; document.querySelector('.org-pill').textContent='Общество с ограниченной ответственностью "Ульяновский автомобильный завод" (ООО "УАЗ")'; document.querySelector('.intro .notice').textContent=uaz.notice; document.querySelector('#content').innerHTML=`

Реквизиты организации и контактная информация

${uazExpand()}

Идентификаторы

${kv([['ID','16516'],['ИНН','7327077188'],['ОГРН','1167325054082'],['ОКПО','05808600'],['Код эмитента','00174-A']])}

Местоположение

${kv([['Федеральный округ','Приволжский федеральный округ'],['Субъект федерации','Ульяновская обл.'],['Город','г. Ульяновск'],['Местонахождение','432034, г. Ульяновск, шоссе Московское, д. 92'],['Юр. адрес','432034, г. Ульяновск, шоссе Московское, д. 92']])}

Контактная информация

${kv([['Телефоны','(8422) 36-73-53; (8422) 31-46-03'],['Факс','(8422) 40-60-70'],['E-mail','post@uaz.ru, press@uaz.ru'],['Сайт','www.uaz.ru'],['Раскрытие информации','www.e-disclosure.ru, e-disclosure.azipi.ru'],['Руководитель','Генеральный директор Сахабиев Ильнур Илдарович']])}

Руководители

2026 — н.в.Генеральный директор ${uazLink('uly-sakhabiyev','Сахабиев И.И.')}
2023 — 2026Генеральный директор ${uazLink('uly-spirin','Спирин А.А.')}
2019 — 2023Генеральный директор ${uazLink('uly-shirinov','Ширинов А.Ш.')}
2012 — 2019Генеральный директор ${uazLink('uly-shvetsov','Швецов В.А.')}
2010 — 2012Генеральный директор ${uazLink('uly-yurasov','Юрасов С.П.')}
${classifierTable(uaz.pairs)}

Информация

${uazExpand()}

Краткая справка

Ульяновский автомобильный завод был основан в 1941 году на мощностях эвакуированного из Москвы ЗИСа. После войны и вплоть до распада СССР предприятие продолжало производство внедорожников, использовавшихся в армии, а также в различных отраслях народного хозяйства. Наиболее знаменитыми из них являются УАЗ-469 и УАЗ-452. В период рыночных отношений Ульяновский автозавод, наряду с традиционными моделями, начинает выпуск внедорожника УАЗ Патриот. В целом, продукция предприятия востребована как в гражданских, так и в военных отраслях.

Численность сотрудников: около 10 000 человек по данным официального сайта УАЗ.

Историческая справка

Ульяновский автомобильный завод был основан на базе «ЗИС» в 1941 году для производства автомобилей и запасных частей. В 60-е годы начато серийное производство автомобилей собственной конструкции УАЗ-450, УАЗ-451 и гаммы полноприводных автомобилей УАЗ-452 (фургон, микроавтобус, санитарный автомобиль, грузовик), а с 1972 г. к ним прибавился джип УАЗ-469. В конце 80-х началось активное расширение модельной гаммы автомобилей. Ульяновский автомобильный завод стал крупным предприятием в стране, производящим малотоннажные машины повышенной проходимости. Предприятие специализировано на выпуске полноприводных автомобилей различных модификаций: легковых, грузовых, санитарного автомобиля и автобуса, а также запасных частей к автомобилям. В 1992 году, в результате приватизации предприятия было создано открытое акционерное общество «Ульяновский автомобильный завод». За последние годы в связи со снижением покупательского спроса и резким усилением конкуренции на автомобильном рынке со стороны импортируемой техники ОАО «УАЗ» снизило объёмы производства, но значительно расширило гамму выпускаемых автомобилей. В соответствии со стратегией развития ОАО «УАЗ» в рамках инвестиционной деятельности проводилась не только модернизация выпускаемых, но и создание принципиально новых автомобилей, предусматривающих коренное изменение дизайна с сохранением свойств внедорожника. Для повышения конкурентоспособности и потребительской привлекательности автомобилей УАЗ, улучшения их качественных характеристик проведена реструктуризация предприятия, модернизирован главный конвейер, внедрена новая производственная система. На сегодняшний день ОАО «УАЗ» является одним из крупных предприятий в области автомобилестроения.

Финансовые показатели

${capitalBadge(uaz.ownership)}${uazExpand()}
Выручка
${escapeHtml(latestFinance[0])} г.  ${escapeHtml(latestFinance[1])}
Чистая прибыль
${escapeHtml(latestFinance[0])} г.  ${escapeHtml(latestFinance[2])}
Численность сотрудников
${formatEmployeeMetric(latestEmployee.year,latestEmployee.value)}
${renderUazFinanceCharts(uaz.finance)}

Структура собственности

${uazExpand()}

Держатель реестра акционеров: ${uazLink('uly-rost','АО «Независимая регистраторская компания Р.О.С.Т.»')}

${uazDonut()}
100,000%${uazLink('uly-sollers','ПАО «Соллерс»')}

Участие в капитале (% ОА/% УК)

99,000% ООО «УАЗ-Штамповочное производство»
97,823% ПАО «Заволжский моторный завод»

Филиалы (структурные подразделения)

  1. Заволжский филиал общества с ограниченной ответственностью «Ульяновский автомобильный завод»
  2. Московский филиал общества с ограниченной ответственностью «Ульяновский автомобильный завод»

Виды деятельности

${uazExpand()}
Основной вид деятельности:
Производственная

ОКВЭД: 29.10.4 ОК 029-2014 (КДЕС Ред. 2) Производство грузовых автомобилей

Основной вид деятельности

Производственная
ОКВЭД: 29.10.4 ОК 029-2014 (КДЕС Ред. 2) Производство грузовых автомобилей

Действующие лицензии

21.07.2016 № Л008-00102-77/00006830 (003923 ВВТ-ОП). Разработка, производство, испытания, установка, монтаж, техобслуживание, ремонт, утилизация и реализация ВиВТ и боеприпасов.

Основные направления деятельности (специализация)

Малотоннажные автомобили повышенной проходимости, автобусы.
${stabilitySection(uaz,[])} `; const uazRoot=document.querySelector('#content'); const uazAboutSummary=uazRoot.querySelector('#about .summary'); uazAboutSummary.textContent=uazAboutSummary.textContent.split('Численность сотрудников:')[0].trim(); uazRoot.querySelector('#finance .metric:nth-child(3) b').textContent=formatEmployeeMetric(latestEmployee.year,latestEmployee.value); document.querySelector('#sectionNav a[href="#about"]').style.display=''; document.querySelector('#sectionNav a[href="#stability"]').style.display=uazRoot.querySelector('#stability')?'':'none'; const linkText=(from,to)=>{uazRoot.innerHTML=uazRoot.innerHTML.replace(from,to)}; linkText('Генеральный директор Сахабиев Ильнур Илдарович',`Генеральный директор ${uazLink('uly-sakhabiyev','Сахабиев И.И.')}`); linkText('100,000%ПАО «Соллерс»',`100,000%${uazLink('uly-sollers','ПАО «Соллерс»')}`); linkText('99,000% ООО «УАЗ-Штамповочное производство»',`99,000% ${uazLink('uly-stamping','ООО «УАЗ-Штамповочное производство»')}`); linkText('97,823% ПАО «Заволжский моторный завод»',`97,823% ${uazLink('uly-zmz','ПАО «Заволжский моторный завод»')}`); linkText('Заволжский филиал общества с ограниченной ответственностью «Ульяновский автомобильный завод»',uazLink('uly-branch-zavolzhye','Заволжский филиал ООО «УАЗ»')); linkText('Московский филиал общества с ограниченной ответственностью «Ульяновский автомобильный завод»',uazLink('uly-branch-moscow','Московский филиал ООО «УАЗ»')); uazRoot.querySelectorAll('.inner.contacts .kv span:nth-child(even)').forEach(item=>{ if(item.textContent==='post@uaz.ru, press@uaz.ru')item.innerHTML='post@uaz.ru, press@uaz.ru'; if(item.textContent==='www.uaz.ru')item.innerHTML='www.uaz.ru'; if(item.textContent==='www.e-disclosure.ru, e-disclosure.azipi.ru')item.innerHTML='www.e-disclosure.ru, e-disclosure.azipi.ru'; }); }; // Карточка «Автоцентра На Коломяжском» повторяет навигацию, краткий и // подробный режимы ЛОМО. В ней остаются только сведения из её исходной HTML. const autocenterExpand=()=>``; const autocenterDonut=()=>`
100,000%
100,000%ООО «ЗМЗ-Сервис»
`; const renderAutocenterOrganization=()=>{ const autocenter=ulyanovskPages['uly-autocenter']; document.querySelector('.org-kicker').textContent='ООО «Автоцентр На Коломяжском»'; document.querySelector('.org-pill').textContent='Общество с ограниченной ответственностью «Автоцентр На Коломяжском»'; document.querySelector('.intro .notice').textContent=autocenter.notice; document.querySelector('#content').innerHTML=`

Реквизиты организации и контактная информация

${autocenterExpand()}

Идентификаторы

${kv([['ID','133397'],['ИНН','7839342583'],['ОГРН','5067847392828'],['ОКПО','96782881']])}

Местоположение

${kv([['Федеральный округ','Северо-Западный федеральный округ'],['Субъект федерации','г. Санкт-Петербург'],['Юридический адрес','197348, г. Санкт-Петербург, просп. Коломяжский, д. 18, пом. 18Н']])}

Контактная информация

${kv([['E-mail','sg.taranova@sollers-auto.com']])}

Руководители

2026 — н.в.Генеральный директор Матасов А.В.
2023 — 2026Генеральный директор ${uazLink('uly-sakhabiyev','Сахабиев И.И.')}
2022 — 2023Генеральный директор Горевой Р.Г.
${classifierTable([['ОКОПФ','12300'],['ОКАТО','40270564000'],['Субъект федерации','г. Санкт-Петербург']])}

Информация

${autocenterExpand()}

Краткая справка

Численность работников: 2 человека в 2019–2023 годах, 1 человек в 2024 году и 2 человека в 2025 году (по данным ФНС). Годовой показатель за 2026 год ещё не опубликован.

Финансовые показатели

${capitalBadge(autocenter.ownership)}${autocenterExpand()}
Выручка
2025 г.  64,029 млн руб.
Чистая прибыль
2025 г.  20,654 млн руб.
${renderFinanceCharts(autocenter.finance,autocenter.short,autocenter.employees)}

Структура собственности

${autocenterExpand()}
Участники (100% УК)
${autocenterDonut()}
100,000%Группа «СОЛЛЕРС», в т.ч.
100,000%${uazLink('uly-zmz-service','ООО «ЗМЗ-Сервис»')}

Виды деятельности

${autocenterExpand()}
Основной вид деятельности:
Прочая

ОКВЭД: 68.20.29 ОК 029-2014 (КДЕС Ред. 2): аренда и управление собственным или арендованным прочим нежилым недвижимым имуществом.
${stabilitySection(autocenter,autocenter.related)} `; const financeCard=document.querySelector('#finance'); const latestEmployee=[...autocenter.employees].reverse().find(item=>Number.isFinite(item.value)); financeCard?.querySelector('.metric-strip')?.insertAdjacentHTML('beforeend',`
Численность сотрудников
${formatEmployeeMetric(latestEmployee.year,latestEmployee.value)}
`); document.querySelector('#sectionNav a[href="#about"]').style.display=''; document.querySelector('#sectionNav a[href="#stability"]').style.display=document.querySelector('#content #stability')?'':'none'; }; const ulyFullLink=(key,label)=>`${escapeHtml(label)}`; const linkifyUlyText=(value,keys=[])=>{ let markup=escapeHtml(value); [...new Set(keys)].filter(key=>ulyanovskPages[key]).sort((left,right)=>{ const leftLength=(ulyanovskPages[left].title||'').length; const rightLength=(ulyanovskPages[right].title||'').length; return rightLength-leftLength; }).forEach(key=>{ const page=ulyanovskPages[key]; [page.title,page.short].filter(Boolean).forEach(label=>{ markup=markup.replaceAll(escapeHtml(label),ulyFullLink(key,label)); }); }); return markup; }; const linkifyUlyContact=([label,value])=>{ const safe=escapeHtml(value); if(label==='E-mail')return safe.replace(/[\w.+-]+@[\w.-]+\.[A-Za-zА-Яа-я]{2,}/g,email=>`${email}`); if(label==='Интернет-сайт')return safe.split(/(,\s*)/).map(part=>{ if(!/^(?:https?:\/\/)?[\w.-]+\.[A-Za-zА-Яа-я]{2,}(?:\/[^\s]*)?$/.test(part))return part; const href=/^https?:\/\//.test(part)?part:`https://${part}`; return `${part}`; }).join(''); return safe; }; const ulyKv=(pairs,linkedKeys=[])=>`
${pairs.map(([label,value])=>`${escapeHtml(label)}${['E-mail','Интернет-сайт'].includes(label)?linkifyUlyContact([label,value]):linkifyUlyText(value,linkedKeys)}`).join('')}
`; const personInitials=title=>{ const words=String(title||'').trim().split(/\s+/); return `${words[0]?.[0]||''}${words[1]?.[0]||''}`; }; const renderUlyPersonPage=key=>{ const data=ulyanovskPages[key]; if(!data?.type)return; const identity=[...(data.pairs||[])].filter(([label])=>label==='ИНН'); const positions=(data.positions||[]).map(item=>{ if(typeof item==='string')return `

${linkifyUlyText(item,data.related||[])}

`; const company=item.key?ulyFullLink(item.key,item.company):escapeHtml(item.company); return `

${escapeHtml(item.period)} ${escapeHtml(item.role)} ${company}

`; }).join(''); const capital=data.capital?`

${data.capitalKey?ulyFullLink(data.capitalKey,data.capital):escapeHtml(data.capital)}

`:''; ulyPersonPage.setAttribute('aria-label',data.title); ulyPersonPage.innerHTML=`

${escapeHtml(data.title)}

${identity.map(([,value])=>`

ИНН ${escapeHtml(value)}

`).join('')}

Должности

${positions}

Участие в капитале

${capital}

Биография

`; }; // Все связанные организации используют тот же каркас, что и ЛОМО: общая // шапка, навигация по разделам, краткий/подробный режим и модальные карточки. // Наполнение берётся из разобранных исходных HTML в ulyanovskPages. const ulyExpand=()=>``; const saturnCardLink=label=>internalCardLink(cardKeyForLabel(label),label); const saturnOwnershipCard=()=>{ const shareholders=[ {kind:'odk',value:86.634,percent:'86,634%',label:'АО «Объединённая двигателестроительная корпорация»'}, {kind:'rostec',value:8.420,percent:'8,420%',label:'Государственная корпорация «Ростех»'}, {kind:'vniief',value:4.048,percent:'4,048%',label:'ФГУП «РФЯЦ - ВНИИЭФ»'}, {kind:'self',value:0.594,percent:'0,594%',label:'ПАО «ОДК-Сатурн»'}, {kind:'minority',value:0.899,percent:'0,899%',label:'неизвестные и/или миноритарные акционеры'} ]; const shareholdersTotal=shareholders.reduce((sum,shareholder)=>sum+shareholder.value,0); let donutOffset=0; const donutSegments=shareholders.map(shareholder=>{ const normalized=shareholder.value/shareholdersTotal*100; const segment=`${shareholder.percent} — ${escapeHtml(shareholder.label)}`; donutOffset+=normalized; return segment; }).join(''); const participations=[ ['100,000%','АО «Новые инструментальные решения»'], ['100,000%','АО «Сатурн-Инструментальный завод»'], ['100,000%','ООО «ОДК-Цифровая инфраструктура»'], ['100,000%','АО «Сатурн-Турборус»'], ['89,863%','ООО «Аутсорсинг Технологии обслуживание»'], ['80,000%','ООО «Рейнольдс»'], ['50,001%','PowerJet S.A.'], ['50,000%','(!) ЗАО «ПауэрДжет»'], ['30,000%','АО «Турборус»'], ['30,000%','(!) АО «Смартек»'], ['4,494%','(!) ООО «Инжиниринговый центр „Газотурбинные технологии“»'] ]; return `

Структура собственности

${ulyExpand()}

Держатель реестра акционеров: ${saturnCardLink('АО «РТ-Регистратор»')}

Акционеры (% ОА)

Номинал акции1,000 руб.

99,101% независимые акционеры, в т.ч.

${shareholders.map(({kind,percent,label})=>`
${percent} ${kind==='self'?`${escapeHtml(label)}`:kind==='minority'?escapeHtml(label):saturnCardLink(label)}
`).join('')}
`; }; const legalDetailHtml=(details,related=[])=>{ const lines=Array.isArray(details)?details:[details]; return lines.filter(Boolean).map(line=>``).join(''); }; // Палитра повторяет графическую шкалу в полной карточке собственности: // крупные доли — графитовые, меньшие — последовательно светлее и голубее. const ownershipPalette=['#174e7a','#236b9d','#3186bc','#439fd0','#5cb6e0','#78c8ec','#9ad9f5','#bde8fa']; const directOwnershipShares=value=>{ const source=String(value||'').replace(/\r/g,''); // Для АО берём именно блок «Акционеры», а не проценты обыкновенных // акций или доли участия самой организации в других компаниях. const shareholderBlock=source.match(/(?:Акционеры\s*\(%\s*ОА\)|Участники)\s*:\s*([\s\S]*?)(?=\s*(?:Участие в капитале|ДУ пакетами|Имеет в составе|Имеет филиалы|Имеет выделенные организации|Дополнительная информация)\s*:|$)/i)?.[1]; const directPart=shareholderBlock||source.split(/участие в капитале:/i)[0]; const shares=[]; for(const line of directPart.split(/\n+|;\s*(?=\d+(?:[,.]\d+)?%)/)){ const match=line.match(/(\d+(?:[,.]\d+)?)%\s*(.*)/); if(!match)continue; const value=Number(match[1].replace(',','.')); const rawName=match[2].trim(); const isGroup=/в\s*т\.\s*ч\.?|в\s+том\s+числе/i.test(rawName); const name=rawName.replace(/,?\s*в\s*т\.\s*ч\.?|,?\s*в\s+том\s+числе/ig,'').replace(/[;.]+\s*$/,'').trim(); if(!Number.isFinite(value)||value<=0||!name)continue; // Строка «группа …, в т.ч.» — агрегат; следующая строка с той же // долей раскрывает её состав и не должна рисоваться вторым сектором. const previous=shares.at(-1); if(previous?.isGroup&&Math.abs(previous.value-value)<.0005)continue; shares.push({display:match[1]+'%',value,name,isGroup}); } // Строка «100% …, в т. ч.» описывает весь круг, а следующие строки — // его реальные секторы. Не рисуем её как самостоятельный сектор: иначе // круг уже заполнен на 100%, а подписи дочерних долей накладываются друг // на друга у одной границы. return shares.filter((share,index)=>!share.isGroup||!shares.slice(index+1).some(next=>next.value>0)); }; const genericOwnershipDonut=(title,ownership)=>{ const shares=directOwnershipShares(ownership); if(!shares.length)return ''; const total=shares.reduce((sum,share)=>sum+share.value,0); if(!Number.isFinite(total)||total<=0)return ''; // При неполном раскрытии оставляем нейтральный сектор «остальные», а не // растягиваем известную долю на весь круг. Так площадь каждого сектора // всегда равна написанному в карточке проценту. if(total>100.01)return `
Диаграмма не показана: сумма раскрытых долей превышает 100%.
`; const visibleShares=total<99.995 ?[...shares,{value:100-total,display:'',isRemainder:true}] :shares; let angle=0; const sectors=visibleShares.map((share,index)=>{ const start=angle; const end=visibleShares.length===1?359.99:start+share.value*3.6; const middle=(start+end)/2; const labelRadius=share.value<5?122:113; const label=visibleShares.length===1?{x:180,y:68}:polar(labelRadius,middle); const labelClass=share.value<3?' donut-label--tiny':share.value<5?' donut-label--small':''; angle=end; const fill=share.isRemainder?'#4a4d50':ownershipPalette[index%ownershipPalette.length]; return `${!share.isRemainder&&share.value>=2?`${share.display}`:''}`; }).join(''); return `
${sectors}
`; }; const genericOwnershipLegend=ownership=>{ const shares=directOwnershipShares(ownership); if(!shares.length)return ''; const visibleShares=shares; return visibleShares.map((share,index)=>`
${escapeHtml(share.display)}${share.name?linkifyUlyText(share.name,Object.keys(ulyanovskPages)):'—'}
`).join(''); }; const ownershipTextMarkup=(value,related)=>linkifyUlyText(value,related).replace(/\s(\d+(?:[,.]\d+)?%)/g,'
$1'); // Классификаторы, подготовленные для прототипа из внешних реестров. const externalClassifierData={ 'uly-upz':{ОКТМО:'73701000001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-niiar':{ОКТМО:'73705000001',ОКФС:'61',ОКОГУ:'4100301'}, 'uly-uaz':{ОКТМО:'73701000001',ОКФС:'16',ОКОГУ:'4210008'}, 'uly-soyuz':{ОКТМО:'73701000001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-rost':{ОКТМО:'45315000000',ОКФС:'32',ОКОГУ:'4210011'}, 'uly-zmz':{ОКТМО:'22528000003',ОКФС:'34',ОКОГУ:'4210008'}, 'uly-stamping':{ОКТМО:'73701000001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-promfin':{ОКТМО:'73701000001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-branch-zavolzhye':{ОКОПФ:'30002',ОКАТО:'22228503000',ОКТМО:'22528000003',ОКФС:'16',ОКОГУ:'4210008'}, 'uly-branch-moscow':{ОКОПФ:'30002',ОКАТО:'46483000000',ОКТМО:'46783000001',ОКФС:'16',ОКОГУ:'4210008'}, 'uly-sollers':{ОКТМО:'45348000000',ОКФС:'31',ОКОГУ:'4210011'}, 'uly-alter':{ОКТМО:'46783000001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-aurus':{ОКТМО:'92626101001',ОКФС:'41',ОКОГУ:'4210014'}, 'uly-passenger':{ОКТМО:'92626101001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-holding':{ОКОПФ:'12300',ОКТМО:'92730000001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-reduktor':{ОКТМО:'57701000001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-iskra':{ОКТМО:'57701000001',ОКФС:'49',ОКОГУ:'4210008'}, 'uly-serenity':{ОКТМО:'45378000000',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-autocenter':{ОКТМО:'40324000000',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-alabuga':{ОКТМО:'92626101001',ОКФС:'16',ОКОГУ:'4210014'}, 'uly-zmz-service':{ОКОПФ:'12300',ОКАТО:'22228503000',ОКТМО:'22528000003',ОКФС:'16',ОКОГУ:'4210014'}, 'okb-mei':{ОКТМО:'45388000000',ОКФС:'41',ОКОГУ:'4210001'}, 'okb-niitp':{ОКТМО:'45359000000',ОКФС:'16',ОКОГУ:'4210008'}, 'okb-rks':{ОКТМО:'45388000000',ОКФС:'41',ОКОГУ:'4100307'}, 'okb-roscosmos':{ОКТМО:'45379000000',ОКФС:'61',ОКОГУ:'4100307'}, 'saturn':{ОКТМО:'78715000001',ОКФС:'49',ОКОГУ:'4210008'} }; Object.entries(externalClassifierData).forEach(([key,codes])=>{ const page=ulyanovskPages[key]; if(!page)return; page.pairs=page.pairs||[]; Object.entries(codes).forEach(([name,code])=>{ const index=page.pairs.findIndex(([label])=>label===name); if(index===-1)page.pairs.push([name,code]); else page.pairs[index][1]=code; }); }); const classifierNames=new Set(['ОКОПФ','ОКАТО','ОКТМО','ОКФС','ОКОГУ']); const classifierDescriptions={ 'ОКОПФ':{ '12267':'Непубличные акционерные общества', '12247':'Публичные акционерные общества', '12300':'Общества с ограниченной ответственностью' }, 'ОКТМО':{ '73701000001':'городской округ город Ульяновск', '73705000001':'городской округ город Димитровград', '45315000000':'муниципальный округ Сокольники', '22528000003':'город Заволжье', '46783000001':'городской округ Химки', '45348000000':'муниципальный округ Хорошёвский', '92626101001':'городское поселение город Елабуга', '92730000001':'городской округ город Набережные Челны', '57701000001':'Пермский городской округ, город Пермь', '45378000000':'муниципальный округ Красносельский', '40324000000':'муниципальный округ Комендантский аэродром', '45388000000':'муниципальный округ Лефортово', '45359000000':'муниципальный округ Отрадное', '78715000001':'городской округ город Рыбинск' }, 'ОКФС':{ '16':'Частная собственность', '31':'Совместная федеральная и иностранная собственность', '32':'Совместная собственность субъектов Российской Федерации и иностранная собственность', '34':'Совместная частная и иностранная собственность', '41':'Смешанная российская собственность с долей федеральной собственности', '49':'Иная смешанная российская собственность', '61':'Собственность государственных корпораций' }, 'ОКОГУ':{ '4100301':'Государственная корпорация по атомной энергии «Росатом»', '4210001':'Хозяйственные общества, образованные из государственных и муниципальных унитарных предприятий', '4210008':'Приватизированные предприятия', '4210011':'Хозяйственные общества и товарищества с участием иностранных юридических и (или) физических лиц, а также лиц без гражданства', '4210014':'Организации, учреждённые юридическими лицами или гражданами, либо юридическими лицами и гражданами совместно' } }; const classifierDescription=(name,code,pairs=[])=>{ const value=String(code||'').trim(); if(value==='—')return 'Классификационный код не применяется'; if(classifierDescriptions[name]?.[value])return classifierDescriptions[name][value]; if(name==='ОКАТО')return pairs.find(([label])=>label==='Субъект федерации')?.[1]||'Территория расположения организации'; if(name==='ОКТМО')return pairs.find(([label])=>label==='Город')?.[1]||'Муниципальное образование по месту нахождения'; if(name==='ОКВЭД')return pairs.find(([label])=>label==='Вид деятельности')?.[1]||'Вид экономической деятельности'; return 'Классификационный код'; }; const classifierTable=(pairs,related=[])=>{ const rows=(pairs||[]).filter(([name,code])=>classifierNames.has(name)&&String(code??'').trim()); if(!rows.length)return ''; return `

Классификаторы

${rows.map(([name,code])=>``).join('')}
НазваниеКодРасшифровка
${escapeHtml(name)}${linkifyUlyText(code,related)}${escapeHtml(classifierDescription(name,code,pairs))}
`; }; const hasText=value=>typeof value==='string'&&value.trim()&&!/сведения .*отсутствуют|информация .*отсутствует|не найдены/i.test(value); const stabilitySection=(data,related)=>{ const stability=data.stability||{}; const procedures=Array.isArray(stability.procedures)?stability.procedures:[]; const blocks=[ hasText(stability.bankruptcy)&&['Банкротство и меры по предупреждению',stability.bankruptcy], hasText(stability.subsidies)&&['Субсидии на предупреждение банкротства',stability.subsidies], hasText(stability.warnings)&&['Предупреждения о банкротстве',stability.warnings] ].filter(Boolean); if(!blocks.length&&!procedures.length)return ''; return `

Финансовая устойчивость

${ulyExpand()}
${blocks.map(([title,text])=>`

${title}

${linkifyUlyText(text,related)}
`).join('')} ${procedures.length?`

Процедуры банкротства

${procedures.map(row=>`${row.map(cell=>``).join('')}`).join('')}
Тип процедурыДатаНомер делаПринятое решение
${escapeHtml(cell)}
`:''}
`; }; const setRelatedSectionNav=()=>{ const available=new Set([...document.querySelectorAll('#content > .section-card')].map(card=>card.id)); navLinks.forEach(link=>{ const id=link.getAttribute('href').slice(1); link.style.display=available.has(id)?'':'none'; }); }; const renderUlyLomoOrganization=key=>{ const data=ulyanovskPages[key]; if(!data||data.type==='person')return; const related=[...new Set([...(data.leaders||[]),...(data.related||[])])].filter(id=>ulyanovskPages[id]); const leadership=data.leadership||[]; const pairs=data.pairs||[]; const identifiers=pairs.filter(([label])=>/^(ID|ИНН|КПП|ОГРН|ОКПО|Код эмитента)$/.test(label)); const location=pairs.filter(([label])=>/^(Федеральный округ|Субъект федерации|Город|Местонахождение|Юридический адрес|Почтовый адрес)$/.test(label)); const contacts=pairs.filter(([label])=>/^(Телефоны|Факс|E-mail|Интернет-сайт|Сайт|Раскрытие информации)$/.test(label)); const finance=data.finance||[]; const ownership=withoutAuthorizedCapital(data.ownership); const financeContent=finance.length?renderFinanceCharts(finance,data.short||data.title,data.employees):renderEmployeeChart(data.employees); const financeCompact=finance.length?`
Выручка
${escapeHtml(finance.at(-1)[0])} г.  ${escapeHtml(finance.at(-1)[1])}
Чистая прибыль
${escapeHtml(finance.at(-1)[0])} г.  ${escapeHtml(finance.at(-1)[2])}
`:''; const classifiers=classifierTable(pairs,related); const leadershipRows=leadership.length?leadership.map(item=>{ const leaderKey=item.key||cardKeyForLabel(item.name); return `
${escapeHtml(item.period)}${escapeHtml(item.role)} ${leaderKey?internalCardLink(leaderKey,item.name):escapeHtml(item.name||'')}
`; }).join(''):(data.leadershipText||[]).map(line=>`
${linkifyUlyText(line,related)}
`).join(''); document.querySelector('.org-kicker').textContent=data.short||data.title; document.querySelector('.org-pill').textContent=data.title; document.querySelector('.intro .notice').textContent=data.notice||'Не контролируется государственным корпоративным сектором или государством.'; const informationText=data.about||data.history; const informationTitle=data.about?'Краткая характеристика':'Историческая справка'; const legalDetails=data.legalDetails||data.legal; document.querySelector('#content').innerHTML=`

Реквизиты организации и контактная информация

${ulyExpand()}
${(identifiers.length||location.length)?`
${identifiers.length?`

Идентификаторы

${ulyKv(identifiers,related)}
`:''}${location.length?`

Местоположение

${ulyKv(location,related)}
`:''}
`:''} ${contacts.length?`

Контактная информация

${ulyKv(contacts,related)}
`:''} ${leadershipRows?`

Руководители

${leadershipRows}
`:''} ${classifiers?`
${classifiers}
`:''}
${data.legal?``:''} ${informationText?`

Информация

${ulyExpand()}

${informationTitle}

${linkifyUlyText(informationText,related)}
${data.about&&data.history?`

Историческая справка

${linkifyUlyText(data.history,related)}
`:''}
`:''} ${finance.length||data.employees?.length?`

Финансовые показатели

${capitalBadge(data.ownership)}${ulyExpand()}
${financeContent}
${financeCompact}
`:''} ${key==='saturn'?saturnOwnershipCard():data.ownership?`

Структура собственности

${key==='okb-mei'?``:''}${ulyExpand()}
${directOwnershipShares(ownership).length?`
${/Акционеры\s*\(%\s*ОА\)/i.test(ownership)?'Акционеры (% ОА)':'Участники (% УК)'}
${genericOwnershipDonut(data.title,ownership)}
${genericOwnershipLegend(ownership)}
`:`
${ownershipTextMarkup(ownership,related)}
`}
`:data.participations?.length?`

Структура собственности

${ulyExpand()}

Участие в капитале (% ОА / % УК)

${data.participations.slice(0,6).map(item=>linkifyUlyText(item,related)).join('

')}
${data.participations.map(item=>linkifyUlyText(item,related)).join('

')}
`:''} ${data.activity||data.licenses?.length||data.specialization?`

Виды деятельности

${ulyExpand()}
${data.activity?`

Основной вид деятельности

${linkifyUlyText(data.activity,related)}
`:''}${data.licenses?.length?`

Действующие лицензии

${data.licenses.map(item=>linkifyUlyText(item,related)).join('

')}
`:''}${data.specialization?`

Специализация

${linkifyUlyText(data.specialization,related)}
`:''}
`:''} ${stabilitySection(data,related)}`; if(data.employees?.length){ const financeCard=document.querySelector('#finance'); const latest=data.employees.at(-1); financeCard?.querySelector('.metric-strip')?.insertAdjacentHTML('beforeend',`
Численность сотрудников
${formatEmployeeMetric(latest.year,latest.value)}
`); } setRelatedSectionNav(); }; const ulyanovskTabs=new Map(); const ulyanovskFullTabs=new Map(); const openUlyanovskPage=key=>{ const data=ulyanovskPages[key]; if(!data)return; let tab=ulyanovskTabs.get(key); if(!tab){const label=key==='uly-sakhabiyev'?data.title:(data.short||data.title);tab=document.createElement('button');tab.type='button';tab.className='tab linked-page-tab';tab.dataset.page=key;tab.title=data.title;tab.innerHTML=`${escapeHtml(label)}×`;document.querySelector('.topbar .profile').before(tab);pageTabs.push(tab);ulyanovskTabs.set(key,tab);bindPageTab(tab)} tab.classList.remove('closed'); if(key==='uly-uaz')renderUazOrganization(); else if(key==='uly-autocenter')renderAutocenterOrganization(); else if(data.type==='person')renderUlyPersonPage(key); else renderUlyLomoOrganization(key); showPage(key); }; const openUlyanovskFullPage=key=>{ const data=ulyanovskPages[key]; if(!data||data.type==='person'||key==='uly-uaz'||key==='uly-autocenter')return; const page=`${key}-full`; let tab=ulyanovskFullTabs.get(key); if(!tab){ tab=document.createElement('button'); tab.type='button'; tab.className='tab linked-page-tab'; tab.dataset.page=page; tab.title=`${data.title} — подробная информация`; tab.innerHTML=`${escapeHtml(data.short||data.title)} — подробно×`; document.querySelector('.topbar .profile').before(tab); pageTabs.push(tab); ulyanovskFullTabs.set(key,tab); bindPageTab(tab); } tab.classList.remove('closed'); renderUlyLomoOrganization(key); showPage(page); }; const syncPageHistory=(page,mode)=>{ if(mode==='restore')return; const state={bastionPage:page}; if(mode==='replace'||!history.state?.bastionPage){ history.replaceState(state,'',location.href); return; } if(history.state.bastionPage!==page)history.pushState(state,'',location.href); }; const showPage=(page,{historyMode='push'}={})=>{ // Переход на любую внутреннюю страницу не должен оставлять открытым // модальное окно, из которого был инициирован переход. if(modal?.open)modal.close(); const ulyBasePage=page.endsWith('-full')?page.slice(0,-5):page; const isUaz=page==='uly-uaz'||page==='uly-uaz-full'; const isAutocenter=page==='uly-autocenter'||page==='uly-autocenter-full'; const isUlyPerson=Boolean(ulyanovskPages[ulyBasePage]?.type==='person'); const isRelatedOrganization=Boolean(ulyanovskPages[ulyBasePage])&&!isUaz&&!isAutocenter&&!isUlyPerson; const isUlyanovsk=false; const isSearch=page==='search'; const isOrganization=page==='lomo-brief'||page==='lomo-full'||isUaz||isAutocenter||isRelatedOrganization; const isStructure=page==='ownership-structure'||page==='uaz-ownership-structure'||page==='saturn-ownership-structure'||page==='okb-ownership-structure'; const isPerson=page==='vladimirov'||isUlyPerson; const isDevelopment=!isSearch&&!isOrganization&&!isStructure&&!isPerson&&!isUlyanovsk; document.body.classList.toggle('search-view',isSearch); document.body.classList.toggle('development-view',isDevelopment); document.body.classList.toggle('structure-view',isStructure); document.body.classList.toggle('uaz-structure-view',page==='uaz-ownership-structure'); document.body.classList.toggle('saturn-structure-view',page==='saturn-ownership-structure'); document.body.classList.toggle('okb-structure-view',page==='okb-ownership-structure'); document.body.classList.toggle('person-view',isPerson); document.body.classList.toggle('ulyanovsk-view',isUlyanovsk); document.body.classList.toggle('organization-view',isOrganization); document.body.classList.toggle('expanded',isOrganization&&(page==='lomo-full'||page==='uly-uaz-full'||page==='uly-autocenter-full'||isRelatedOrganization&&page.endsWith('-full'))); document.querySelectorAll('.person-page').forEach(personPage=>{ const activePersonPage=page==='vladimirov'?'vladimirovPage':isUlyPerson?'ulyPersonPage':''; personPage.classList.toggle('active',isPerson&&personPage.id===activePersonPage); }); if(!isOrganization)full=false; if(isDevelopment){ const pageTab=pageTabs.find(tab=>tab.dataset.page===page); document.querySelector('#developmentPage h1').textContent=pageTab?.dataset.pageTitle?`Страница «${pageTab.dataset.pageTitle}» в разработке`:'Страница в разработке'; } if(isOrganization){ full=page==='lomo-full'||page==='uly-uaz-full'||page==='uly-autocenter-full'||isRelatedOrganization&&page.endsWith('-full'); document.body.classList.toggle('expanded',full); if(isUaz){ renderUazOrganization(); }else if(isAutocenter){ renderAutocenterOrganization(); }else if(isRelatedOrganization){ renderUlyLomoOrganization(ulyBasePage); }else{ document.querySelector('#content').innerHTML=lomoContentHtml; document.querySelector('#sectionNav a[href="#stability"]').style.display=''; document.querySelector('.org-kicker').textContent='АО "ЛОМО"'; document.querySelector('.org-pill').textContent='Акционерное общество "Ленинградское оптико-механическое объединение" (бывший Ленинградский оптико-механический завод)'; document.querySelector('.intro .notice').textContent='Не контролируется государственным корпоративным сектором или государством. Находится на контроле Правительственной комиссии (Решения РГ №2, Правительственной комиссии)'; } finalizeOrganizationCard(); const legalHeading=document.querySelector('#legal>.card-head h2'); if(legalHeading)legalHeading.textContent=full?'Правовой статус':'Правовой статус/НПА'; document.querySelector('#expandAll').innerHTML=`Перейти к подробной информации ${detailsIcon}`; updateSticky(); if(full)setActiveSection('details');else setActiveSection(''); } pageTabs.forEach(tab=>{ const active=tab.dataset.page===page; tab.classList.toggle('active',active); tab.setAttribute('aria-pressed',String(active)); }); if(isStructure)activateStructureView(page); formatVisibleNumbers(document.body); if(isStructure)requestAnimationFrame(fitStructure); syncPageHistory(page,historyMode); scrollTo({top:0,behavior:'smooth'}); }; const searchOrganizationsBase=[ ['АО «Ленинградское оптико-механическое объединение»','7804002321','Санкт-Петербург г.','Радиопромышленность'], ['АО «Научно-исследовательский машиностроительный институт имени В.В. Бахирева»','7743873015','Москва г.','БП'], ['АО «Расчет»','7724817897','Москва г.','БП'], ['ООО «Темп»','9724238325','Москва г.','БП'], ['АО «Красноармейский научно-исследовательский институт механизации»','5038087144','Московская обл.','БП'], ['АО «Научно-исследовательский инженерный институт»','5001086137','Московская обл.','БП'], ['АО «Научно-исследовательский технологический институт имени П.И. Снегирева»','5012071164','Московская обл.','БП'], ['АО «Федеральный научно-производственный центр «Научно-исследовательский институт прикладной химии»»','5042120394','Московская обл.','БП'], ['ОАО «Тульский научно-исследовательский технологический институт»','7104014339','Тульская обл.','БП'] ]; const searchOrganizations=[...searchOrganizationsBase,...searchOrganizationsBase.slice(0,3)]; const searchResults=document.querySelector('#searchResults'); const searchPagination=document.querySelector('#searchPagination'); let displayedSearchRows=[]; let searchResultGroups=[]; const searchResultsByPanel=new Map(); const syncSearchAddButton=panel=>{ if(!panel)return; const addButton=panel.querySelector('[data-search-action="append"]'); if(!addButton)return; const hasResults=Boolean(searchResultsByPanel.get(panel.id)?.rows.length); addButton.disabled=!hasResults; addButton.setAttribute('aria-disabled',String(!hasResults)); addButton.title=hasResults?'Добавить результаты к текущему списку':'Сначала выполните поиск'; }; const getSearchRows=panel=>{ const registryChecked=[...panel.querySelectorAll('.filter-check')].some(label=>label.textContent.includes('Входящие в Реестр ОПК')&&label.querySelector('input')?.checked); const systemformingChecked=[...panel.querySelectorAll('.filter-check')].some(label=>label.textContent.includes('Системообразующие организации')&&label.querySelector('input')?.checked); const isUlyanovskQuery=panel.querySelector('[name="region"]')?.value==='Ульяновская обл.'&®istryChecked&&systemformingChecked; const manager=panel.querySelector('[name="manager"]')?.value.trim().toLocaleLowerCase('ru-RU')||''; const ministry=panel.querySelector('[name="ministry"]')?.value||''; const isRoscosmosEmelyanovQuery=registryChecked&&manager.includes('емельянов')&&ministry.includes('космической деятельности'); const identifier=(panel.querySelector('[name="identifier"]')?.value||'').replace(/\D/g,''); const organizationName=(panel.querySelector('[name="name"]')?.value||'').trim().toLocaleLowerCase('ru-RU'); const isRksQuery=identifier.includes('7722698789')||organizationName.includes('российские космические системы'); const isRoscosmosQuery=identifier.includes('7702388027')||organizationName.includes('роскосмос'); const activity=panel.querySelector('[name="activity"]')?.value||''; const industry=panel.querySelector('[name="industry"]')?.value||''; const isSaturnQuery=identifier.includes('7610052644')||( panel.querySelector('[name="region"]')?.value==='Ярославская обл.'&& (activity==='Производство с наукой'||industry==='Производство с наукой')&& ministry.includes('промышленности и торговли')&®istryChecked ); return isRksQuery||isRoscosmosQuery?[ ...(isRoscosmosQuery?[['Государственная корпорация по космической деятельности «Роскосмос»','7702388027','Москва г.','Ракетно-космическая промышленность','okb-roscosmos']]:[]), ...(isRksQuery?[['АО «Российские космические системы»','7722698789','Москва г.','Ракетно-космическая промышленность','okb-rks']]:[]) ]:isSaturnQuery?[ ['ПАО «ОДК-Сатурн»','7610052644','Ярославская обл.','Авиационная промышленность','saturn'] ]:isRoscosmosEmelyanovQuery?[ ['АО «Научно-исследовательский институт точных приборов»','7715784155','Москва г.','РКП','okb-niitp'], ['АО «Особое конструкторское бюро Московского энергетического института»','7722701431','Москва г.','РКП','okb-mei'] ]:isUlyanovskQuery?ulyanovskResults:searchOrganizations; }; const renderSearchResults=()=>{ document.querySelectorAll('[data-search-filters-tooltip]').forEach(tooltip=>tooltip.remove()); const fragment=document.createDocumentFragment(); let resultIndex=0; searchResultGroups.forEach((group,groupIndex)=>{ const groupRow=document.createElement('tr'); groupRow.className='search-result-group'; const groupCell=document.createElement('td'); groupCell.colSpan=5; const groupContent=document.createElement('div'); groupContent.className='search-result-group-content'; const groupLabel=document.createElement('span'); groupLabel.className=`search-result-group-label ${group.action==='append'?'is-added':'is-found'}`; const resultWord=group.rows.length===1?'организация':group.rows.length>1&&group.rows.length<5?'организации':'организаций'; groupLabel.textContent=`${group.action==='append'?'Добавлено':'Найдено'}: ${group.rows.length} ${resultWord}`; groupContent.append(groupLabel); const parameters=document.createElement('div'); parameters.className='search-result-group-parameters'; const visibleFilters=group.filters.slice(0,5); visibleFilters.forEach(({parameter,value})=>{ const item=document.createElement('span'); item.className='search-result-filter'; item.textContent=`${parameter} — ${value}`; parameters.append(item); }); const hiddenFilters=group.filters.slice(5); if(hiddenFilters.length){ const more=document.createElement('span'); more.className='search-result-filters-more'; more.tabIndex=0; more.textContent=`+ ещё ${hiddenFilters.length}`; const tooltip=document.createElement('span'); const tooltipId=`search-filters-tooltip-${groupIndex}`; tooltip.id=tooltipId; tooltip.className='search-result-filters-tooltip'; tooltip.dataset.searchFiltersTooltip=''; tooltip.setAttribute('role','tooltip'); hiddenFilters.forEach(({parameter,value})=>{ const item=document.createElement('span'); item.textContent=`${parameter} — ${value}`; tooltip.append(item); }); more.setAttribute('aria-describedby',tooltipId); const showTooltip=()=>{ tooltip.classList.add('is-visible'); const anchorRect=more.getBoundingClientRect(); const tooltipRect=tooltip.getBoundingClientRect(); const left=Math.max(.5*16,Math.min(anchorRect.right-tooltipRect.width,innerWidth-tooltipRect.width-.5*16)); const below=anchorRect.bottom+.5*16; const top=below+tooltipRect.height<=innerHeight-.5*16 ? below : Math.max(.5*16,anchorRect.top-tooltipRect.height-.5*16); tooltip.style.left=`${left}px`; tooltip.style.top=`${top}px`; }; const hideTooltip=()=>tooltip.classList.remove('is-visible'); more.addEventListener('mouseenter',showTooltip); more.addEventListener('mouseleave',hideTooltip); more.addEventListener('focus',showTooltip); more.addEventListener('blur',hideTooltip); document.body.append(tooltip); parameters.append(more); } groupContent.append(parameters); const groupActions=document.createElement('div'); groupActions.className='search-result-group-actions'; const restoreButton=document.createElement('button'); restoreButton.className='search-result-group-action'; restoreButton.type='button'; restoreButton.dataset.resultGroupAction='restore'; restoreButton.dataset.groupIndex=String(groupIndex); restoreButton.title='Восстановить фильтры'; restoreButton.setAttribute('aria-label','Восстановить фильтры этой группы'); restoreButton.innerHTML=''; const deleteButton=document.createElement('button'); deleteButton.className='search-result-group-action'; deleteButton.type='button'; deleteButton.dataset.resultGroupAction='delete'; deleteButton.dataset.groupIndex=String(groupIndex); deleteButton.title='Удалить группу'; deleteButton.setAttribute('aria-label','Удалить эту группу результатов'); deleteButton.innerHTML=''; groupActions.append(restoreButton,deleteButton); groupContent.append(groupActions); groupCell.append(groupContent); groupRow.append(groupCell); fragment.append(groupRow); group.rows.forEach(([name,inn,region,industry,key,externalHref])=>{ resultIndex+=1; const row=document.createElement('tr'); row.className='search-data-row'; if(key||externalHref||name===searchOrganizationsBase[0][0]){ row.classList.add('search-result-row'); row.tabIndex=0; row.setAttribute('role','link'); row.dataset.ulyPage=key||''; row.dataset.externalHref=externalHref||''; row.setAttribute('aria-label',`Открыть карточку ${name}`); } [resultIndex,name,inn,region,industry].forEach(value=>{ const cell=document.createElement('td'); cell.textContent=value; row.append(cell); }); fragment.append(row); }); }); searchResults.querySelector('tbody').replaceChildren(fragment); const resultsTitle=document.querySelector('.results-title'); if(resultsTitle)resultsTitle.textContent=`Список организаций (${displayedSearchRows.length})`; searchResults.hidden=false; searchPagination.hidden=false; }; const searchRowIdentity=row=>{ const inn=String(row[1]||'').replace(/\D/g,''); return inn||row[4]||String(row[0]||'').trim().toLocaleLowerCase('ru-RU'); }; const appendUniqueSearchRows=(currentRows,newRows)=>{ const identities=new Set(currentRows.map(searchRowIdentity)); return newRows.filter(row=>{ const identity=searchRowIdentity(row); if(identities.has(identity))return false; identities.add(identity); return true; }); }; const openSearchResult=target=>{ const row=target.closest('.search-result-row'); if(!row)return; // Результаты реестра всегда открываются внутри приложения: отдельное окно // оставляем только для действительно внешних ресурсов. if(row.dataset.externalHref){window.open(row.dataset.externalHref,'_blank','noopener,noreferrer');return} if(row.dataset.ulyPage){openUlyanovskPage(row.dataset.ulyPage);return} const lomoTab=pageTabs.find(tab=>tab.dataset.page==='lomo-brief'); lomoTab?.classList.remove('closed'); showPage('lomo-brief'); }; const organizationSearch=document.querySelector('#organizationSearch'); organizationSearch.reset(); const resetSearchPanel=panel=>{ panel.querySelectorAll('.filter-clear-accent').forEach(button=>button.classList.remove('filter-clear-accent')); panel.querySelectorAll('input').forEach(input=>{ if(input.type==='checkbox'||input.type==='radio')input.checked=false; else input.value=''; input.dispatchEvent(new Event('input',{bubbles:true})); input.dispatchEvent(new Event('change',{bubbles:true})); }); panel.querySelectorAll('select').forEach(select=>{ select.selectedIndex=0; select.dispatchEvent(new Event('input',{bubbles:true})); select.dispatchEvent(new Event('change',{bubbles:true})); }); }; const normalizeFilterText=value=>String(value||'').replace(/\s+/g,' ').trim(); const getSearchFilterSnapshot=panel=>{ const filters=[]; panel.querySelectorAll('.search-field').forEach((field,controlIndex)=>{ const control=field.querySelector('input,select'); const value=normalizeFilterText(control?.value); if(!value)return; const parameter=normalizeFilterText(field.querySelector(':scope > span')?.textContent); if(parameter)filters.push({parameter,value,kind:'field',controlIndex}); }); panel.querySelectorAll('.filter-check').forEach((field,controlIndex)=>{ const checkbox=field.querySelector('input[type="checkbox"]'); if(!checkbox?.checked)return; const parameter=normalizeFilterText(field.querySelector(':scope > span')?.textContent); if(parameter)filters.push({parameter,value:'Да',kind:'checkbox',controlIndex}); }); return filters.length?filters:[{parameter:'Условия поиска',value:'Все организации'}]; }; const restoreSearchFilters=(panel,filters)=>{ if(!panel)return; resetSearchPanel(panel); const fields=[...panel.querySelectorAll('.search-field')]; const checks=[...panel.querySelectorAll('.filter-check')]; filters.forEach(filter=>{ if(filter.kind==='field'){ const control=fields[filter.controlIndex]?.querySelector('input,select'); if(!control)return; control.value=filter.value; control.dispatchEvent(new Event('input',{bubbles:true})); control.dispatchEvent(new Event('change',{bubbles:true})); } if(filter.kind==='checkbox'){ const checkbox=checks[filter.controlIndex]?.querySelector('input[type="checkbox"]'); if(!checkbox)return; checkbox.checked=true; checkbox.dispatchEvent(new Event('change',{bubbles:true})); } }); }; const updateSearchResults=(panel,action='replace')=>{ if(!panel)return; const filters=getSearchFilterSnapshot(panel); const rows=getSearchRows(panel); if(action==='append'){ const addedRows=appendUniqueSearchRows(displayedSearchRows,rows); if(addedRows.length){ displayedSearchRows=[...displayedSearchRows,...addedRows]; searchResultGroups.push({action:'append',filters,rows:addedRows}); } }else{ displayedSearchRows=[...rows]; searchResultGroups=[{action:'replace',filters,rows:[...rows]}]; } searchResultsByPanel.set(panel.id,{rows:displayedSearchRows,groups:searchResultGroups}); syncSearchAddButton(panel); renderSearchResults(); resetSearchPanel(panel); }; organizationSearch.addEventListener('click',event=>{ const button=event.target.closest('[data-search-action]'); if(!button)return; event.preventDefault(); updateSearchResults(button.closest('.filter-panel'),button.dataset.searchAction); }); organizationSearch.addEventListener('submit',event=>{ event.preventDefault(); updateSearchResults(document.querySelector('.filter-panel:not([hidden])')); }); searchResults.addEventListener('click',event=>{ const button=event.target.closest('[data-result-group-action]'); if(!button)return; const groupIndex=Number(button.dataset.groupIndex); const group=searchResultGroups[groupIndex]; if(!group)return; if(button.dataset.resultGroupAction==='restore'){ restoreSearchFilters(document.querySelector('.filter-panel:not([hidden])'),group.filters); return; } if(button.dataset.resultGroupAction==='delete'){ searchResultGroups.splice(groupIndex,1); displayedSearchRows=searchResultGroups.flatMap(item=>item.rows); const activePanel=document.querySelector('.filter-panel:not([hidden])'); if(activePanel){ searchResultsByPanel.set(activePanel.id,{rows:displayedSearchRows,groups:searchResultGroups}); syncSearchAddButton(activePanel); } renderSearchResults(); } }); const filterTabList=document.querySelector('.filter-tabs'); const filterPanelTemplate=document.querySelector('#filterPanelPrimary').cloneNode(true); const getFilterPanels=()=>[...document.querySelectorAll('.filter-panel')]; const getFilterTabs=()=>[...filterTabList.querySelectorAll('[data-filter-panel]')]; let filterPanelSequence=1; const renumberFilterTabs=()=>{ getFilterTabs().forEach((tab,index)=>{ const number=index+1; tab.querySelector('.filter-tab-number').textContent=String(number); tab.title=`Фильтр ${number}`; }); }; const setFilterPanel=panelName=>{ const panelId=`filterPanel${panelName[0].toUpperCase()}${panelName.slice(1)}`; getFilterTabs().forEach(tab=>{ const active=tab.dataset.filterPanel===panelName; tab.classList.toggle('active',active); tab.setAttribute('aria-selected',String(active)); }); getFilterPanels().forEach(panel=>panel.hidden=panel.id!==panelId); const panelState=searchResultsByPanel.get(panelId); displayedSearchRows=panelState?.rows||[]; searchResultGroups=panelState?.groups||[]; syncSearchAddButton(document.getElementById(panelId)); renderSearchResults(); }; const createFilterTab=panelName=>{ const panelId=`filterPanel${panelName[0].toUpperCase()}${panelName.slice(1)}`; const panel=filterPanelTemplate.cloneNode(true); panel.id=panelId; panel.hidden=true; organizationSearch.append(panel); initializeFilterPanel(panel); const tab=document.createElement('button'); tab.className='filter-tab'; tab.type='button'; tab.setAttribute('role','tab'); tab.setAttribute('aria-selected','false'); tab.setAttribute('aria-controls',panelId); tab.dataset.filterPanel=panelName; tab.title='Фильтр'; const icon=document.createElement('img'); icon.className='filter-tab-icon'; icon.src='assets/pictures/filter_icon.svg'; icon.alt=''; const mark=document.createElement('span'); mark.className='filter-tab-mark'; const number=document.createElement('span'); number.className='filter-tab-number'; number.setAttribute('aria-hidden','true'); number.textContent=''; const close=document.createElement('span'); close.className='filter-tab-close'; close.setAttribute('aria-hidden','true'); close.textContent='×'; mark.append(icon,number); tab.append(mark,close); filterTabList.querySelector('.filter-tab-add').before(tab); renumberFilterTabs(); setFilterPanel(panelName); }; filterTabList.addEventListener('click',event=>{ const tab=event.target.closest('[data-filter-panel]'); if(!tab)return; if(event.target.closest('.filter-tab-close')){ const wasActive=tab.classList.contains('active'); const panelId=tab.getAttribute('aria-controls'); searchResultsByPanel.delete(panelId); document.getElementById(panelId)?.remove(); tab.remove(); renumberFilterTabs(); const availableTabs=getFilterTabs(); if(wasActive){ if(availableTabs.length)setFilterPanel(availableTabs[0].dataset.filterPanel); else{ getFilterPanels().forEach(panel=>panel.hidden=true); } } return; } setFilterPanel(tab.dataset.filterPanel); }); document.querySelector('.filter-tab-add').addEventListener('click',()=>{ filterPanelSequence+=1; createFilterTab(`primary${filterPanelSequence}`); }); const updateFilterFieldState=field=>{ const control=field.querySelector('input,select'); const active=control instanceof HTMLInputElement&&control.type==='checkbox'?control.checked:Boolean(control?.value?.trim()); field.classList.toggle('filter-active',active); }; const updateFilterCheckState=check=>{ const checkbox=check.querySelector('input[type="checkbox"]'); const clear=check.querySelector('.filter-clear'); check.classList.toggle('filter-active',Boolean(checkbox?.checked||clear?.classList.contains('filter-clear-accent'))); }; let customSelectSequence=0; const closeCustomSelects=except=>{ document.querySelectorAll('.filter-select.open').forEach(wrapper=>{ if(wrapper===except)return; wrapper.classList.remove('open'); wrapper.querySelector('.filter-select-button')?.setAttribute('aria-expanded','false'); }); }; const initializeFilterSelect=select=>{ if(select.dataset.customSelect==='true')return; select.dataset.customSelect='true'; const wrapper=document.createElement('span'); wrapper.className='filter-select'; const button=document.createElement('button'); button.className='filter-select-button'; button.type='button'; button.setAttribute('aria-haspopup','listbox'); button.setAttribute('aria-expanded','false'); const list=document.createElement('span'); const listId=`filterSelectList${++customSelectSequence}`; list.id=listId; list.className='filter-select-menu'; list.setAttribute('role','listbox'); button.setAttribute('aria-controls',listId); const sync=()=>{ const selected=select.options[select.selectedIndex]; button.textContent=selected?.textContent||'\u00a0'; list.querySelectorAll('.filter-select-option').forEach((option,index)=>{ const active=index===select.selectedIndex; option.classList.toggle('selected',active); option.setAttribute('aria-selected',String(active)); }); }; [...select.options].forEach((option,index)=>{ const item=document.createElement('button'); item.className='filter-select-option'; item.type='button'; item.setAttribute('role','option'); item.textContent=option.textContent||'Не выбрано'; item.addEventListener('click',event=>{ event.preventDefault(); event.stopPropagation(); select.selectedIndex=index; select.dispatchEvent(new Event('input',{bubbles:true})); select.dispatchEvent(new Event('change',{bubbles:true})); sync(); closeCustomSelects(); button.focus(); }); list.append(item); }); button.addEventListener('click',event=>{ event.preventDefault(); event.stopPropagation(); const opening=!wrapper.classList.contains('open'); closeCustomSelects(wrapper); wrapper.classList.toggle('open',opening); button.setAttribute('aria-expanded',String(opening)); }); button.addEventListener('keydown',event=>{ if(!['ArrowDown','ArrowUp','Escape'].includes(event.key))return; event.preventDefault(); if(event.key==='Escape'){ closeCustomSelects(); return; } const direction=event.key==='ArrowDown'?1:-1; const next=Math.max(0,Math.min(select.options.length-1,select.selectedIndex+direction)); select.selectedIndex=next; select.dispatchEvent(new Event('input',{bubbles:true})); select.dispatchEvent(new Event('change',{bubbles:true})); sync(); }); select.addEventListener('change',sync); select.classList.add('filter-select-native'); select.before(wrapper); wrapper.append(select,button,list); sync(); }; const initializeFilterPanel=panel=>{ syncSearchAddButton(panel); panel.querySelectorAll('select').forEach(initializeFilterSelect); panel.querySelectorAll('.search-field').forEach(field=>{ updateFilterFieldState(field); field.querySelector('input,select')?.addEventListener('input',()=>updateFilterFieldState(field)); field.querySelector('input,select')?.addEventListener('change',()=>updateFilterFieldState(field)); }); panel.querySelectorAll('.filter-check').forEach(check=>{ updateFilterCheckState(check); check.querySelector('input[type="checkbox"]')?.addEventListener('change',event=>{ if(event.target.checked)check.querySelector('.filter-clear')?.classList.remove('filter-clear-accent'); updateFilterCheckState(check); }); }); panel.querySelectorAll('.filter-clear').forEach(button=>button.addEventListener('click',event=>{ event.preventDefault(); event.stopPropagation(); const checkbox=button.closest('.filter-check')?.querySelector('input[type="checkbox"]'); if(checkbox){ checkbox.checked=false; button.classList.toggle('filter-clear-accent'); updateFilterCheckState(button.closest('.filter-check')); } })); }; getFilterPanels().forEach(initializeFilterPanel); document.addEventListener('click',()=>closeCustomSelects()); renumberFilterTabs(); searchResults.addEventListener('click',event=>openSearchResult(event.target)); searchResults.addEventListener('keydown',event=>{ if(event.key==='Enter'||event.key===' '){ event.preventDefault(); openSearchResult(event.target); } }); const tabIsVisible=tab=>!tab.classList.contains('closed')&&(!tab.classList.contains('lomo-full-tab')||tab.classList.contains('open')); const closeTab=tab=>{ const wasActive=tab.classList.contains('active'); tab.classList.add('closed'); tab.classList.remove('active'); tab.setAttribute('aria-pressed','false'); if(!wasActive)return; const tabIndex=pageTabs.indexOf(tab); const nextTab=pageTabs.slice(tabIndex+1).find(tabIsVisible)||pageTabs.slice(0,tabIndex).reverse().find(tabIsVisible); if(nextTab)showPage(nextTab.dataset.page);else showPage('development'); }; const bindPageTab=tab=>{ tab.addEventListener('click',event=>{ if(event.target.closest('.tab-close')){ event.stopPropagation(); closeTab(tab); return; } const page=tab.dataset.page; if(page==='uly-uaz-full'){ openUazFullPage(); return; } if(page==='uly-autocenter-full'){ openAutocenterFullPage(); return; } // Карточки Ульяновска, включая руководителей, выводятся в общем контейнере. // Поэтому при выборе уже открытой вкладки нужно восстановить её данные, // а не только переключить активную вкладку. if(ulyanovskPages[page]){ openUlyanovskPage(page); return; } if(page.endsWith('-full')&&ulyanovskPages[page.slice(0,-5)]){ openUlyanovskFullPage(page.slice(0,-5)); return; } showPage(page); }); tab.querySelector('.tab-close')?.addEventListener('keydown',event=>{ if(event.key==='Enter'||event.key===' '){ event.preventDefault(); event.stopPropagation(); closeTab(tab); } }); }; pageTabs.forEach(bindPageTab); const developmentTabs=new Map(); const openDevelopmentTab=link=>{ const fullTitle=(link.dataset.pageTitle||link.getAttribute('aria-label')||link.textContent).trim().replace(/\s+/g,' '); const key=fullTitle.toLocaleLowerCase('ru'); let tab=developmentTabs.get(key); if(!tab){ tab=document.createElement('button'); tab.type='button'; tab.className='tab linked-page-tab'; tab.dataset.page=`linked-page-${developmentTabs.size+1}`; tab.dataset.pageTitle=fullTitle; tab.title=fullTitle; const shortTitle=fullTitle.length>34?`${fullTitle.slice(0,34)}…`:fullTitle; const label=document.createElement('span'); label.className='tab-label'; label.textContent=shortTitle; const close=document.createElement('span'); close.className='tab-close'; close.setAttribute('role','button'); close.tabIndex=0; close.setAttribute('aria-label','Закрыть вкладку'); close.textContent='×'; tab.append(label,close); document.querySelector('.topbar .profile').before(tab); pageTabs.push(tab); developmentTabs.set(key,tab); bindPageTab(tab); } tab.classList.remove('closed'); showPage(tab.dataset.page); }; let structurePageTab=null; const openStructureTab=()=>{ // График — самостоятельная внутренняя вкладка: карточка организации, // из которой он открыт, должна оставаться доступной рядом с ним. keepOrganizationTabOpen('lomo-brief'); document.querySelector('.structure-static-footer').innerHTML='Бастион • Визуализатор структуры собственностиАО «ЛОМО»'; const lomoLegendState=document.querySelector('.structure-legend-state')?.parentElement?.lastElementChild; if(lomoLegendState)lomoLegendState.textContent='Гос. сектор'; if(!structurePageTab){ structurePageTab=document.createElement('button'); structurePageTab.type='button'; structurePageTab.className='tab structure-page-tab'; structurePageTab.dataset.page='ownership-structure'; const label=document.createElement('span'); label.className='tab-label'; label.textContent='Структура собственности АО "ЛОМО"'; const close=document.createElement('span'); close.className='tab-close'; close.setAttribute('role','button'); close.tabIndex=0; close.setAttribute('aria-label','Закрыть вкладку'); close.textContent='×'; structurePageTab.append(label,close); document.querySelector('.topbar .profile').before(structurePageTab); pageTabs.push(structurePageTab); bindPageTab(structurePageTab); } structurePageTab.classList.remove('closed'); showPage('ownership-structure'); }; // График открывается в отдельной внутренней вкладке. Исходная карточка // организации при этом должна остаться доступной в верхней панели. const keepOrganizationTabOpen=page=>{ const organizationTab=pageTabs.find(tab=>tab.dataset.page===page); organizationTab?.classList.remove('closed'); return organizationTab; }; let uazStructureTab=null; const openUazStructureTab=()=>{ keepOrganizationTabOpen('uly-uaz'); if(!uazStructureTab){ uazStructureTab=document.createElement('button'); uazStructureTab.type='button'; uazStructureTab.className='tab structure-page-tab'; uazStructureTab.dataset.page='uaz-ownership-structure'; uazStructureTab.innerHTML='Структура собственности ООО "УАЗ"×'; document.querySelector('.topbar .profile').before(uazStructureTab); pageTabs.push(uazStructureTab); bindPageTab(uazStructureTab); } structureStage.innerHTML=` `; document.querySelector('.structure-static-footer').textContent=''; const uazLegendState=document.querySelector('.structure-legend-state')?.parentElement?.lastElementChild; if(uazLegendState)uazLegendState.textContent='Гос. сектор'; uazStructureTab.classList.remove('closed'); showPage('uaz-ownership-structure'); }; let saturnStructureTab=null; const openSaturnStructureTab=()=>{ keepOrganizationTabOpen('saturn'); if(!saturnStructureTab){ saturnStructureTab=document.createElement('button'); saturnStructureTab.type='button'; saturnStructureTab.className='tab structure-page-tab'; saturnStructureTab.dataset.page='saturn-ownership-structure'; saturnStructureTab.innerHTML='Структура собственности ПАО «ОДК-Сатурн»×'; document.querySelector('.topbar .profile').before(saturnStructureTab); pageTabs.push(saturnStructureTab); bindPageTab(saturnStructureTab); } registerStructureView('saturn-ownership-structure',` Графическая структура собственности ПАО «ОДК-Сатурн» `); document.querySelector('.structure-static-footer').textContent=''; saturnStructureTab.classList.remove('closed'); showPage('saturn-ownership-structure'); }; let okbStructureTab=null; const openOkbStructureTab=()=>{ keepOrganizationTabOpen('okb-mei'); if(!okbStructureTab){ okbStructureTab=document.createElement('button'); okbStructureTab.type='button'; okbStructureTab.className='tab structure-page-tab'; okbStructureTab.dataset.page='okb-ownership-structure'; okbStructureTab.innerHTML='Структура собственности АО «ОКБ МЭИ»×'; document.querySelector('.topbar .profile').before(okbStructureTab); pageTabs.push(okbStructureTab); bindPageTab(okbStructureTab); } const roscosmosKey=cardKeyForLabel('Госкорпорация «Роскосмос»'); const rksKey=cardKeyForLabel('АО «Российские космические системы»'); registerStructureView('okb-ownership-structure',` Графическая структура собственности АО «ОКБ МЭИ» `); document.querySelector('.structure-static-footer').textContent=''; okbStructureTab.classList.remove('closed'); showPage('okb-ownership-structure'); }; const contactRows=[ ['Телефоны','(812) 324-84-31'], ['Факс','(812) 324-84-31'], ['E-mail','lomo@lomo.sp.ru, info@lomo.ru, nvlitvin@lomo.ru (Начальник бюро эмиссионных ценных бумаг), lomo@lomo.ru, vmmelnik@lomo.sp.ru'], ['Сайт','www.lomo.ru'], ['Раскрытие информации','e-disclosure.ru, www.e-disclosure.ru, e-disclosure.azipi.ru, disclosure.1prime.ru'], ['Википедия','статья в Википедии'], ['Министерство/Госкорпорация','Министерство промышленности и торговли Российской Федерации'], ['Департамент','Департамент радиоэлектронной промышленности'], ['Отрасль','Радиопромышленность'], ['Гол. орг-я ИС','-'] ]; document.querySelector('#details .contacts').innerHTML=`
${contactRows.map(([name,value],index)=>`${name}${value}`).join('')}
`; const leadershipBlock=document.createElement('div'); leadershipBlock.className='full-only leadership-block'; leadershipBlock.innerHTML=`

Руководитель

2024 - н.в.Управляющий директор Владимиров Д.А. (Управляющая организация АО «Концерн „Калашников“»)
2005 - 2024Генеральный директор Аронов А.М. (д-р экон. наук, канд. техн. наук, проф., википедия)
1998 - 2005Генеральный директор Кобицкий А.С.
1992 - 1997Генеральный директор Клебанов И.И. (википедия)
`; document.querySelector('#details .contacts').after(leadershipBlock); const legalStatusLines=[ 'Включено в сводный реестр организаций ОПК, позиция - 905 (c редакции от 10.09.2004 №104)', 'Включено в перечень стратегических организаций, утвержденный распоряжением Правительства РФ от 20.08.2009 № 1226-р, № позиции - 3.698', 'Включено в Перечень отдельных организаций ОПК, их структурных подразделений и отдельных производственных объектов, указанных в пункте 1 Особенностей правового регулирования трудовых отношений в отдельных организациях ОПК, утв. постановлением Правительства РФ от 01.08.2022 № 1365', 'Включено в Перечень организаций, по которым осуществляется мониторинг показателей результатов их деятельности.', 'Включено в Перечень организаций Минпромторга России, имеющих мобилизационное задание на 2021-2025 годы (по состоянию на 15.10.2024)', 'Предоставлена субсидия с целью предупреждения банкротства (перечень), объем субсидии до 853 000,000 тыс. руб. (Распоряжение Правительства РФ от 10.11.2025 № 3199-р)', 'Создано в 1914 году', 'Входит в "Перечень производителей российской промышленной продукции (на 18.02.2026)"' ]; const legalStatusMarkup=[ 'Включено в сводный реестр организаций ОПК, позиция - 905 (c редакции от 10.09.2004 №104)', 'Включено в перечень стратегических организаций, утвержденный распоряжением Правительства РФ от 20.08.2009 № 1226-р, № позиции - 3.698', 'Включено в Перечень отдельных организаций ОПК, их структурных подразделений и отдельных производственных объектов, указанных в пункте 1 Особенностей правового регулирования трудовых отношений в отдельных организациях ОПК, утв. постановлением Правительства РФ от 01.08.2022 № 1365', 'Включено в Перечень организаций, по которым осуществляется мониторинг показателей результатов их деятельности.', legalStatusLines[4],legalStatusLines[5],legalStatusLines[6],legalStatusLines[7] ]; const legalLinesHtml=lines=>lines.map(line=>``).join(''); document.querySelector('#legal .legal-short').innerHTML=legalLinesHtml(legalStatusMarkup); document.querySelector('#legal .full-only .paragraph').innerHTML=legalLinesHtml(legalStatusMarkup); const financeHead=document.querySelector('#finance .card-head'); const capital=document.createElement('div'); capital.className='capital'; capital.innerHTML='Уставный капитал744 000 000,00 руб.'; financeHead.querySelector('.expand-btn').before(capital); const financeCharts=document.querySelector('#finance .financial-charts'); const scenarioRevenue=[ {year:2017,value:3.272795,label:'3,273 млрд руб.'},{year:2018,value:3.766551,label:'3,767 млрд руб.'}, {year:2019,value:4.182,label:'4,182 млрд руб.'},{year:2020,value:5.399316,label:'5,399 млрд руб.'}, {year:2021,value:6.218799,label:'6,219 млрд руб.'},{year:2022,value:5.136,label:'5,136 млрд руб.'}, {year:2023,value:8.504156,label:'8,504 млрд руб.'},{year:2024,value:9.15,label:'9,15 млрд руб.'}, {year:2025,value:10.4,label:'10,4 млрд руб.'},{year:2026,value:11.8,label:'11,8 млрд руб.'} ]; const scenarioProfit=[ {year:2017,value:-339.525,label:'−339,5 млн руб.'},{year:2018,value:114.449,label:'114,4 млн руб.'}, {year:2019,value:21.7,label:'21,7 млн руб.'},{year:2020,value:-249.4,label:'−249,4 млн руб.'}, {year:2021,value:281.125,label:'281,1 млн руб.'},{year:2022,value:-73.6,label:'−73,6 млн руб.'}, {year:2023,value:-211.4,label:'−211,4 млн руб.'},{year:2024,value:-85,label:'−85 млн руб.'}, {year:2025,value:165,label:'165 млн руб.'},{year:2026,value:310,label:'310 млн руб.'} ]; // 2020 — исходная точка карточки; остальные годы — плавная оценка для прототипа. const lomoEmployees=[ {year:2017,value:2070,label:'2 070 чел.'},{year:2018,value:2015,label:'2 015 чел.'}, {year:2019,value:1950,label:'1 950 чел.'},{year:2020,value:1893,label:'1 893 чел.'}, {year:2021,value:1925,label:'1 925 чел.'},{year:2022,value:1980,label:'1 980 чел.'}, {year:2023,value:2050,label:'2 050 чел.'},{year:2024,value:2130,label:'2 130 чел.'}, {year:2025,value:2210,label:'2 210 чел.'},{year:2026,value:2290,label:'2 290 чел.'} ]; financeCharts.innerHTML= lineChart('Выручка','млрд руб.',scenarioRevenue,0,12,[{value:12,label:'12'},{value:10,label:'10'},{value:8,label:'8'},{value:6,label:'6'},{value:4,label:'4'},{value:2,label:'2'},{value:0,label:'0'}],'#5497D2','','11,8 млрд руб')+ lineChart('Чистая прибыль','млн руб.',scenarioProfit,-400,400,[{value:400,label:'400'},{value:300,label:'300'},{value:200,label:'200'},{value:100,label:'100'},{value:0,label:'0'},{value:-100,label:'−100'},{value:-200,label:'−200'},{value:-300,label:'−300'},{value:-400,label:'−400'}],'#55775F','','310 млн руб.')+ renderEmployeeChart(lomoEmployees); const financeMetricStrip=document.querySelector('#finance .metric-strip'); financeMetricStrip.classList.remove('compact-only'); financeMetricStrip.innerHTML=`
Выручка
2026 г.   11,8 млрд руб.
Чистая прибыль
2026 г.   310 млн руб.
Численность сотрудников
${formatEmployeeMetric(2026,lomoEmployees.at(-1).value)}
`; const contentRoot=document.querySelector('#content'); const activateDevelopmentLinks=root=>{ root.querySelectorAll('u').forEach(underlined=>{ const link=document.createElement('a'); link.href='#development'; link.className='development-link'; link.innerHTML=underlined.innerHTML; underlined.replaceWith(link); }); root.querySelectorAll('.owner-link').forEach(owner=>{ if(owner.tagName==='A'){owner.classList.add('development-link');return} const link=document.createElement('a'); link.href='#development'; link.className=`${owner.className} development-link`; link.innerHTML=owner.innerHTML; owner.replaceWith(link); }); root.querySelectorAll('.company-link').forEach(link=>link.classList.add('development-link')); }; activateDevelopmentLinks(contentRoot); // Сохраняем полностью оформленную исходную карточку: она восстанавливается // при возврате к ЛОМО из поиска или связанных организаций. lomoContentHtml=document.querySelector('#content').innerHTML; const modal=document.querySelector('#modal'), modalContent=document.querySelector('#modalContent'); document.addEventListener('click',e=>{ if(e.target.closest('[data-uaz-expand]')){ e.preventDefault(); if(modal.open)modal.close(); openUazStructureTab(); return; } const ulyPageLink=e.target.closest('[data-uly-page]'); if(ulyPageLink){ e.preventDefault(); openUlyanovskPage(ulyPageLink.dataset.ulyPage); return; } const warningToggle=e.target.closest('[data-expand-warning]'); if(warningToggle){ e.preventDefault(); const warning=warningToggle.closest('.bankruptcy-warning'); const expanded=warning?.classList.toggle('is-expanded')??false; warningToggle.setAttribute('aria-expanded',String(expanded)); warningToggle.innerHTML=`${expanded?'Свернуть':'Раскрыть всё'} ${expanded?collapseIcon:expandIcon}`; return; } const personCardLink=e.target.closest('.person-card-link'); if(personCardLink){ e.preventDefault(); if(modal.open)modal.close(); const personTab=pageTabs.find(tab=>tab.dataset.page==='vladimirov'); personTab?.classList.remove('closed'); showPage('vladimirov'); return; } const structureButton=e.target.closest('.ownership-view-btn'); if(structureButton){ e.preventDefault(); if(modal.open)modal.close(); if(structureButton.dataset.structureOwner==='saturn')openSaturnStructureTab(); else if(structureButton.dataset.structureOwner==='okb')openOkbStructureTab(); else openStructureTab(); return; } const structureNode=e.target.closest('.structure-node, .saturn-flow-node-target'); if(structureNode){ e.preventDefault(); if(structureNode.dataset.targetPage){ const targetTab=pageTabs.find(tab=>tab.dataset.page===structureNode.dataset.targetPage); targetTab?.classList.remove('closed'); showPage(structureNode.dataset.targetPage); return; } openDevelopmentTab(structureNode); return; } const developmentLink=e.target.closest('.development-link'); if(developmentLink){e.preventDefault();if(modal.open)modal.close();openDevelopmentTab(developmentLink);return} const linePoint=e.target.closest('.line-point'); if(linePoint){ const wasSelected=linePoint.classList.contains('selected'); linePoint.closest('.line-chart').querySelectorAll('.line-point.selected').forEach(point=>point.classList.remove('selected')); if(!wasSelected)linePoint.classList.add('selected'); return; } const sector=e.target.closest('.donut-sector'); if(sector){ // Единственный сектор УАЗа оформлен по тому же шаблону, но не относится // к массиву владельцев ЛОМО и поэтому не открывает чужую карточку деталей. if(sector.classList.contains('uaz-donut-sector'))return; const panel=sector.closest('.ownership-panel'); const selected=sector.classList.contains('selected'); panel.querySelectorAll('.donut-sector.selected,.donut-label.selected,.legend-row.selected').forEach(item=>item.classList.remove('selected')); if(!selected){ const owner=owners[Number(sector.dataset.owner)]; sector.classList.add('selected'); panel.querySelector(`.donut-label[data-owner="${sector.dataset.owner}"]`)?.classList.add('selected'); panel.querySelector(`.legend-row[data-owner="${sector.dataset.owner}"]`)?.classList.add('selected'); panel.querySelector('.donut-detail').innerHTML=`${withoutDecimalPlaces(owner.display)}${owner.name}`; panel.querySelector('.donut-detail').classList.add('visible'); }else{ panel.querySelector('.donut-detail').innerHTML='Выберите секторНажмите на сектор диаграммы, чтобы увидеть сведения'; panel.querySelector('.donut-detail').classList.remove('visible'); } return; } const bar=e.target.closest('.bar-item'); if(bar){ const wasSelected=bar.classList.contains('selected'); bar.closest('.bars').querySelectorAll('.bar-item.selected').forEach(item=>item.classList.remove('selected')); if(!wasSelected)bar.classList.add('selected'); return; } const closeButton=e.target.closest('[data-close-modal]'); if(closeButton){modal.close();return} const b=e.target.closest('[data-image]'); if(!b)return; const source=b.closest('.section-card'); modal.classList.toggle('details-modal',source.id==='details'); modal.classList.toggle('information-modal',source.id==='about'||source.id==='legal'); modal.classList.toggle('finance-modal',source.id==='finance'); const card=source.cloneNode(true); card.removeAttribute('id'); card.classList.add('modal-card'); card.dataset.section=source.id; // У связанных организаций подробные НПА уже встроены в карточку. Для ЛОМО // сохраняем отдельный сформированный список, как в исходном образце. if(source.id==='legal'&&(source.dataset.legalDetail||b.dataset.image!=='uaz'&&b.dataset.image!=='autocenter')){ card.querySelector('.legal-short')?.remove(); card.querySelector('.card-head h2').textContent='Правовой статус'; if(!source.dataset.legalDetail)card.querySelector('.full-only .paragraph').innerHTML=legalLinesHtml(legalStatusMarkup); } if(source.id==='about')card.querySelector('.card-head h2').textContent='Информация'; const warningTable=card.querySelector('#bankruptcyWarningTable'); const modalWarningToggle=card.querySelector('[data-expand-warning]'); if(warningTable&&modalWarningToggle){ warningTable.id='bankruptcyWarningTable-modal'; modalWarningToggle.setAttribute('aria-controls',warningTable.id); } activateDevelopmentLinks(card); card.querySelector('.expand-btn')?.remove(); const close=document.createElement('button'); close.className='modal-close'; close.dataset.closeModal=''; close.setAttribute('aria-label','Свернуть окно'); close.innerHTML=`Свернуть ${collapseIcon}`; card.querySelector('.card-head').append(close); formatVisibleNumbers(card); modalContent.replaceChildren(card); modal.showModal(); }); document.addEventListener('pointerover',event=>{ const sector=event.target.closest('.donut-sector'); if(!sector)return; sector.closest('.ownership-panel')?.querySelector(`.donut-label[data-owner="${sector.dataset.owner}"]`)?.classList.add('hovered'); }); document.addEventListener('pointerout',event=>{ const sector=event.target.closest('.donut-sector'); if(!sector||sector.contains(event.relatedTarget))return; sector.closest('.ownership-panel')?.querySelector(`.donut-label[data-owner="${sector.dataset.owner}"]`)?.classList.remove('hovered'); }); modal.addEventListener('click',e=>{if(e.target===modal)modal.close()}); const structureViewport=document.querySelector('#structureViewport'); const structureStage=document.querySelector('#structureStage'); // Содержимое вкладок со структурами хранится в отдельных, постоянных слоях. // Поэтому открытие второй схемы не перезаписывает первую, а переключение // вкладки только делает нужный слой видимым. const defaultStructureStageChildren=[...structureStage.children]; const structureViews=new Map(); const registerStructureView=(page,markup)=>{ let view=structureViews.get(page); if(!view){ view=document.createElement('div'); view.className='structure-stage-view'; view.dataset.structurePage=page; view.hidden=true; view.innerHTML=markup; structureStage.append(view); structureViews.set(page,view); } return view; }; const activateStructureView=page=>{ const activeView=structureViews.get(page); defaultStructureStageChildren.forEach(node=>{node.hidden=Boolean(activeView)}); structureViews.forEach((view,viewPage)=>{view.hidden=viewPage!==page}); structureStage.dataset.structurePage=page; }; const structureDiagram=document.querySelector('#structureDiagram'); const structureScaleOutput=document.querySelector('#structureScale'); const structureState={scale:1,x:0,y:-48,pointerId:null,startX:0,startY:0,originX:0,originY:0}; const hideDiagramChrome=()=>{ const svgDocument=structureDiagram.contentDocument; if(!svgDocument)return; const svg=svgDocument.documentElement; const artwork=svg.querySelector('g[clip-path="url(#clip0_530_15674)"]'); if(!artwork)return; const directChildren=[...artwork.children]; directChildren.forEach(element=>{ if(element.matches('rect[width="1920"][height="1080"],rect[transform="translate(0 1020)"],g[filter="url(#filter0_f_530_15674)"]'))element.style.display='none'; }); const embeddedBar=artwork.querySelector('g[clip-path="url(#clip1_530_15674)"]'); embeddedBar?.querySelectorAll('rect,path,image,use').forEach(element=>{ let box; try{box=element.getBBox()}catch{return} if(box.y+box.height<=49)element.style.display='none'; }); }; structureDiagram.addEventListener('load',hideDiagramChrome); if(structureDiagram.contentDocument?.documentElement)hideDiagramChrome(); const clampStructureScale=value=>Math.min(2.5,Math.max(.18,value)); const renderStructure=()=>{ structureStage.style.transform=`translate(${structureState.x}px,${structureState.y}px) scale(${structureState.scale})`; structureScaleOutput.value=`${Math.round(structureState.scale*100)}%`; structureScaleOutput.textContent=structureScaleOutput.value; }; function fitStructure(){ const width=structureViewport.clientWidth; const height=structureViewport.clientHeight; if(!width||!height)return; const fullCanvasStructure=document.body.classList.contains('saturn-structure-view')||document.body.classList.contains('okb-structure-view'); const canvasHeight=fullCanvasStructure?1080:972; const structureFooter=document.querySelector('.structure-static-footer'); const footerHeight=structureFooter&&getComputedStyle(structureFooter).display!=='none'?structureFooter.offsetHeight:0; const availableHeight=Math.max(320,height-footerHeight); structureState.scale=clampStructureScale(Math.min(width/1920,availableHeight/canvasHeight)); structureState.x=(width-1920*structureState.scale)/2; structureState.y=document.body.classList.contains('uaz-structure-view') ? -48*structureState.scale : fullCanvasStructure ? (availableHeight-1080*structureState.scale)/2 : (availableHeight-972*structureState.scale)/2-48*structureState.scale; renderStructure(); } let structureResizeFrame=0; const scheduleStructureFit=()=>{ if(structureResizeFrame||!document.body.classList.contains('structure-view'))return; structureResizeFrame=requestAnimationFrame(()=>{ structureResizeFrame=0; fitStructure(); }); }; addEventListener('resize',scheduleStructureFit,{passive:true}); window.visualViewport?.addEventListener('resize',scheduleStructureFit,{passive:true}); const zoomStructure=(nextScale,clientX,clientY)=>{ const rect=structureViewport.getBoundingClientRect(); const pointX=(clientX??rect.left+rect.width/2)-rect.left; const pointY=(clientY??rect.top+rect.height/2)-rect.top; const worldX=(pointX-structureState.x)/structureState.scale; const worldY=(pointY-structureState.y)/structureState.scale; structureState.scale=clampStructureScale(nextScale); structureState.x=pointX-worldX*structureState.scale; structureState.y=pointY-worldY*structureState.scale; renderStructure(); }; structureViewport.addEventListener('wheel',event=>{ event.preventDefault(); zoomStructure(structureState.scale*Math.exp(-event.deltaY*.0014),event.clientX,event.clientY); },{passive:false}); structureViewport.addEventListener('pointerdown',event=>{ // Узлы УАЗа — ссылки на карточки. Не начинаем перетаскивание схемы при // нажатии на них: иначе захват указателя мешает обычному переходу по ссылке. if(event.button!==0||event.target.closest('.structure-controls,.structure-node,.uaz-node-link'))return; structureState.pointerId=event.pointerId; structureState.startX=event.clientX; structureState.startY=event.clientY; structureState.originX=structureState.x; structureState.originY=structureState.y; structureViewport.setPointerCapture(event.pointerId); structureViewport.classList.add('dragging'); }); structureViewport.addEventListener('pointermove',event=>{ if(event.pointerId!==structureState.pointerId)return; const deltaX=event.clientX-structureState.startX; const deltaY=event.clientY-structureState.startY; structureState.x=structureState.originX+deltaX; structureState.y=structureState.originY+deltaY; renderStructure(); }); const finishStructureDrag=event=>{ if(event.pointerId!==structureState.pointerId)return; structureState.pointerId=null; structureViewport.classList.remove('dragging'); }; structureViewport.addEventListener('pointerup',finishStructureDrag); structureViewport.addEventListener('pointercancel',finishStructureDrag); document.querySelector('.structure-controls').addEventListener('click',event=>{ const action=event.target.closest('[data-structure-action]')?.dataset.structureAction; if(action==='zoom-in')zoomStructure(structureState.scale*1.2); if(action==='zoom-out')zoomStructure(structureState.scale/1.2); if(action==='fit')fitStructure(); }); document.addEventListener('keydown',e=>{const interactive=e.target.closest('.donut-sector,.line-point');if((e.key==='Enter'||e.key===' ')&&interactive){e.preventDefault();interactive.dispatchEvent(new MouseEvent('click',{bubbles:true}))}if(e.key==='Escape'&&modal.open)modal.close()}); const sticky=document.querySelector('.org-sticky'); const briefFixedHeader=document.querySelector('.brief-fixed-header'); const updateSticky=()=>{ const topbarBottom=document.querySelector('.topbar')?.getBoundingClientRect().bottom||0; const isOrganization=document.body.classList.contains('organization-view'); const title=document.querySelector('.org-sticky .org-kicker'); const isPinned=scrollY>0&&sticky.getBoundingClientRect().top<=topbarBottom+1; const showBriefHeader=!full&&isOrganization&&scrollY>0&&title.getBoundingClientRect().top<=topbarBottom+1; sticky.classList.toggle('sticky-active',full&&isPinned); sticky.classList.remove('brief-sticky-active'); const fixedTitle=briefFixedHeader.querySelector('.brief-fixed-title'); const fixedSubtitle=briefFixedHeader.querySelector('.brief-fixed-subtitle'); const subtitle=document.querySelector('.org-sticky .org-pill').textContent; if(fixedTitle.textContent!==title.textContent)fixedTitle.textContent=title.textContent; if(fixedSubtitle.textContent!==subtitle)fixedSubtitle.textContent=subtitle; if(briefFixedHeader.classList.contains('is-visible')!==showBriefHeader){ briefFixedHeader.classList.toggle('is-visible',showBriefHeader); briefFixedHeader.setAttribute('aria-hidden',String(!showBriefHeader)); } }; const sectionNav=document.querySelector('#sectionNav'); const navLinks=[...sectionNav.querySelectorAll('a')]; const setActiveSection=id=>navLinks.forEach(link=>{ const active=link.getAttribute('href')===`#${id}`; link.classList.toggle('active',active); if(active)link.setAttribute('aria-current','location');else link.removeAttribute('aria-current'); }); const updateActiveNav=()=>{ if(!full)return; const marker=Math.min(innerHeight*.38,280); let current=sections[0].id; document.querySelectorAll('#content>.section-card').forEach(card=>{if(card.getBoundingClientRect().top<=marker)current=card.id}); setActiveSection(current); }; sectionNav.addEventListener('click',event=>{ const link=event.target.closest('a'); if(!link)return; event.preventDefault(); const sectionId=link.getAttribute('href').slice(1); const section=document.querySelector(`#content > #${sectionId}`); if(!section)return; setActiveSection(sectionId); section.scrollIntoView({behavior:'smooth',block:'start'}); }); document.querySelector('#expandAll').onclick=()=>{ const activePage=pageTabs.find(tab=>tab.classList.contains('active'))?.dataset.page; if(activePage==='uly-uaz'){ openUazFullPage(); return; } if(activePage==='uly-autocenter'){ openAutocenterFullPage(); return; } const ulyBasePage=activePage?.endsWith('-full')?activePage.slice(0,-5):activePage; if(ulyBasePage&&ulyanovskPages[ulyBasePage]&&!ulyanovskPages[ulyBasePage].type){ openUlyanovskFullPage(ulyBasePage); return; } fullPageTab.classList.remove('closed'); fullPageTab.classList.add('open'); showPage('lomo-full'); }; let scrollFrame=0; addEventListener('scroll',()=>{ if(scrollFrame)return; scrollFrame=requestAnimationFrame(()=>{ scrollFrame=0; updateSticky(); updateActiveNav(); }); },{passive:true}); // Поиск остаётся смонтированным при открытии карточки, поэтому при возврате // из истории браузера форма сохраняет введённые значения и отметки фильтров. addEventListener('popstate',event=>{ showPage(event.state?.bastionPage||'search',{historyMode:'restore'}); }); showPage('search',{historyMode:'replace'});