1С: нарушена целостность структуры конфигурации — что делать

Дата: 06.10.2026 16:54:16
Ошибки 1С
Конфигуратор
Администрирование 1С
Обновление конфигурации
Восстановление базы
Пакетный режим
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Любые

Ошибка «Нарушена целостность структуры конфигурации» в 1С 8.3 значит, что платформа не может прочитать конфигурацию: ту, что хранится в базе, или её копию в кэше на компьютере пользователя. Документы и справочники лежат в других таблицах, поэтому данные почти всегда целы — главное не испортить их лечением. Ниже: как понять, что повреждено, порядок восстановления от безопасных шагов к радикальным, пакетный скрипт и код 1С для диагностики и страховки.

Когда возникает ошибка

Конфигурация лежит в базе в двух экземплярах. Основную редактирует и сохраняет конфигуратор. С конфигурацией базы данных работают пользователи, а основная попадает в неё командой «Конфигурация → Обновить конфигурацию базы данных» (F7) вместе с реструктуризацией таблиц. Третья копия — кэш на каждом компьютере. Оборвалась запись любой из них (сбой питания, снятый процесс, обрыв сети) — получаем эту ошибку. В клиент-серверной базе конфигурация хранится в служебных таблицах Config, ConfigSave и родственных; править их запросами SQL не нужно.

Когда появиласьЧто поврежденоС чего начать
У одного-двух пользователей, у остальных база открываетсякэш на их компьютерахшаг 1
Пользователи работают, а конфигуратор не открывает конфигурациюосновная конфигурацияшаг 4
У всех после прерванного обновления: F7, установка обновления, обновление из программы на БСПконфигурация БД и структура таблицшаг 3
Файловая база после сбоя питания или обрыва сетифайл 1Cv8.1CDшаг 5
Только при загрузке конкретного cf-файласам файл: недокачан или обрезанвзять файл заново

С той же причиной бывают и другие сообщения. «Обнаружена ошибка целостности структуры конфигурации. Исправить?» — шаг 2. «Обнаружена незавершенная операция сохранения конфигурации» (или «…обновления конфигурации БД»), «Обнаружена незавершенная операция конвертации структуры конфигурации» и «При обновлении данных после последней реструктуризации произошла критическая ошибка» — шаг 3.

Если база перестала открываться после динамического обновления конфигурации, порядок действий другой — см. ошибка динамического обновления 1С.

Нарушена целостность структуры конфигурации 1С: порядок восстановления

Идите сверху вниз и останавливайтесь, как только база заработала: каждый следующий шаг рискованнее предыдущего.

Шаг 0. Копия того, что есть

До любых исправлений сделайте копию: у файловой базы — весь каталог с 1Cv8.1CD, когда в ней никого нет, у клиент-серверной — резервную копию средствами СУБД. На выгрузку в dt не рассчитывайте: она читает конфигурацию и на повреждённой базе может не пройти. А тестирование с исправлением, по справке платформы, необратимо.

Шаг 1. Кэш на компьютере пользователя

Если ошибка не у всех, закройте 1С у пострадавшего и запустите базу с ключом /ClearCache: окно запуска → «Изменить…» → «Дополнительные параметры запуска». Не помогло — удалите целиком папку %LOCALAPPDATA%\1C\1cv8\<ID базы>, в ней лежит и кэш конфигурации. Подробности, в том числе для терминального сервера, — в статье «Кэш сервера 1С». Если ошибка у всех сразу, кэш обычно ни при чём.

Шаг 2. Платформа предлагает исправить сама

Вместо ошибки конфигуратор может спросить «Обнаружена ошибка целостности структуры конфигурации. Исправить?». Отвечайте «Да» только после шага 0, а затем проверьте результат: сравните конфигурацию с последним сохранённым cf («Конфигурация → Сравнить конфигурации») и выполните тестирование из шага 5.

Шаг 3. Прерванное обновление: ключ /IBRestoreIntegrity

Если нарушена целостность структуры конфигурации при обновлении, которое не дошло до конца, запустите конфигуратор в пакетном режиме с ключом /IBRestoreIntegrity (скрипт ниже). Ключ есть с 8.3.9 и предназначен ровно для этого — обновления, оборванного падением конфигуратора или выключением компьютера: структура восстанавливается, конфигуратор закрывается, остальные команды игнорируются. Код возврата 0 — структура цела или восстановлена, 1 — восстановление не удалось, подробности в файле /Out. Пользователей на это время уберите из базы — см. «Блокировка базы 1С». В 8.3.27 похожая команда есть и у ibcmd: infobase config repair завершает или отменяет незавершённую операцию с конфигурацией.

Шаг 4. Основная конфигурация испорчена, конфигурация БД цела

Признак — пользователи работают, а конфигуратор нет. Сначала сохраните то, с чем работают пользователи: «Конфигурация → Конфигурация базы данных → Сохранить конфигурацию БД в файл». Затем «Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД» — основная станет её копией. Правки, которые успели сохранить, но не применили к базе, пропадут: ищите их в хранилище или у разработчика. В пакетном режиме это ключи /DumpDBCfg и /RollbackCfg.

Шаг 5. Тестирование и исправление

Файловую базу сначала проверьте утилитой chdbfl.exe из каталога bin платформы: укажите «Имя файла БД», включите «Исправлять обнаруженные ошибки» и нажмите «Выполнить», база в это время не должна быть открыта. Затем в конфигураторе «Администрирование → Тестирование и исправление» в монопольном режиме: «Только тестирование», флажок «Проверка логической целостности информационной базы», при установленных расширениях — «Проверка логической целостности расширений конфигурации». Прочитайте отчёт и только потом запускайте исправление. Подробно о галочках — в статье «Тестирование и исправление базы 1С».

Шаг 6. Загрузка cf из хранилища или резервной копии

Если конфигурация БД не читается, её заменяют исправной копией, а данные остаются текущими. Откуда взять cf:

  • Хранилище конфигурации. В истории хранилища любую версию можно сохранить в файл, в пакетном режиме — /ConfigurationRepositoryDumpCfg (без -v — последняя версия). Подключённую к хранилищу базу перед загрузкой отключите (/ConfigurationRepositoryUnbindCfg -force без авторизации в хранилище отключает только локально), а после подключите снова. Подробнее — «Хранилище конфигурации 1С 8.3».
  • Снимок перед обновлением — cf, сохранённый кодом ниже.
  • Резервная копия. Разверните её в новую пустую базу, а не поверх рабочей, сохраните оттуда конфигурацию в файл и загрузите в повреждённую.
  • Шаблон поставщика — только для типовой без доработок: %APPDATA%\1C\1cv8\tmplts\1c\<конфигурация>\<версия>\1Cv8.cf той же версии, что в базе.

Загрузка — «Конфигурация → Загрузить конфигурацию из файла», затем F7. В окне «Реорганизация информации» прочитайте список до кнопки «Принять»: удалённый объект или реквизит — это данные, которые реструктуризация сотрёт. Так типовой cf, загруженный в доработанную базу, уничтожает данные доработок. Видите лишнее — «Отказ».

Шаг 7. Полное восстановление из бэкапа

Крайний случай: повреждены и конфигурация, и данные, а тестирование не помогло. Всё, что ввели после копии, придётся вводить заново.

Скрипт диагностики в пакетном режиме

Скрипт проходит шаги 3–6 без окон и складывает журналы в один каталог. Платформа на компьютере нужна той же версии, что и сервер:

@echo off
rem repair-cfg.cmd - диагностика после ошибки "Нарушена целостность структуры конфигурации".
rem Перед запуском: копия базы (бэкап СУБД или каталог файловой базы), вход в базу закрыт.
rem Имя и пароль администратора базы не храните в файле, задайте их перед запуском:
rem   set V8USER=...
rem   set V8PWD=...
rem Если в базе нет пользователей, уберите из RUN ключи /N и /P.
rem Файл сохраните в ANSI или UTF-8 без BOM.
setlocal
set V8="C:\Program Files\1cv8\8.3.27.1786\bin\1cv8.exe"
set IB=/S "srv01\trade"
rem Файловая база: set IB=/F "D:\Bases\Trade"
set OUT=D:\1c-repair\trade
set RUN=start "" /wait %V8% DESIGNER %IB% /N "%V8USER%" /P "%V8PWD%" /DisableStartupDialogs /DisableStartupMessages
if not exist "%OUT%" mkdir "%OUT%"

rem 1. Восстановление структуры после прерванного обновления конфигурации БД.
rem    Другие команды в этом запуске игнорируются. 0 - структура цела или восстановлена.
%RUN% /IBRestoreIntegrity /Out "%OUT%\1-restore.log"
echo 1. IBRestoreIntegrity: %ERRORLEVEL%

rem 2. Какой экземпляр конфигурации читается: конфигурация БД и основная.
%RUN% /DumpDBCfg "%OUT%\db.cf" /Out "%OUT%\2-dbcfg.log"
echo 2. DumpDBCfg: %ERRORLEVEL%
%RUN% /DumpCfg "%OUT%\main.cf" /Out "%OUT%\3-cfg.log"
echo 3. DumpCfg: %ERRORLEVEL%

rem 3. Только тестирование логической целостности базы и расширений: ничего не исправляет.
%RUN% /IBCheckAndRepair -LogIntegrity -ConfigurationExtensionsLogIntegrity -TestOnly /Out "%OUT%\4-test.log"
echo 4. IBCheckAndRepair: %ERRORLEVEL%

rem 4. По результатам раскомментируйте нужное.
rem    Основная конфигурация повреждена, конфигурация БД цела - вернуться к конфигурации БД:
rem %RUN% /RollbackCfg /Out "%OUT%\5-rollback.log"
rem    Конфигурация БД не читается - загрузить проверенный cf и обновить конфигурацию БД:
rem %RUN% /LoadCfg "%OUT%\good.cf" /UpdateDBCfg /Out "%OUT%\5-load.log"
endlocal

Как читать результат: /DumpDBCfg прошёл, а /DumpCfg упал — повреждена основная конфигурация, раскомментируйте /RollbackCfg. Упал /DumpDBCfg — повреждена конфигурация БД, нужен исправный cf из шага 6. Оба прошли, а у пользователей ошибка осталась — возвращайтесь к кэшу.

Код 1С: диагностика и страховка

Состояние конфигурации

Команда обработки показывает, отличается ли основная конфигурация от конфигурации БД, у кого открыт конфигуратор и подключаются ли расширения. Запускайте до и после обновления: отчёт попадёт и в журнал регистрации.

// Модуль формы обработки «Состояние конфигурации», команда ПроверитьКонфигурацию.
// Запускайте под администратором: без права «Активные пользователи» список сеансов недоступен.
// Отчёт пишется и в журнал регистрации, чтобы сравнить состояние до и после обновления.

&НаКлиенте
Процедура ПроверитьКонфигурацию(Команда)

	Отчет = Новый ТекстовыйДокумент;
	Отчет.УстановитьТекст(СостояниеКонфигурации());
	Отчет.Показать("Состояние конфигурации");

КонецПроцедуры

&НаСервереБезКонтекста
Функция СостояниеКонфигурации()

	Строки = Новый Массив;
	Система = Новый СистемнаяИнформация;
	Строки.Добавить(СтрШаблон("Конфигурация: %1, версия %2", Метаданные.Синоним, Метаданные.Версия));
	Строки.Добавить(СтрШаблон("Платформа: %1, режим совместимости: %2",
		Система.ВерсияПриложения, Метаданные.РежимСовместимости));

	// Изменения сохранены в основную конфигурацию, но не перенесены в конфигурацию БД:
	// обновление не запускали или оно оборвалось
	Если КонфигурацияИзменена() Тогда
		Строки.Добавить("! Основная конфигурация отличается от конфигурации БД");
	КонецЕсли;
	Если КонфигурацияБазыДанныхИзмененаДинамически() Тогда
		Строки.Добавить("! Конфигурация БД обновлена динамически, сеансы нужно перезапустить");
	КонецЕсли;

	// Открытый конфигуратор - первый подозреваемый, если сохранение или обновление оборвётся
	Для Каждого Сеанс Из ПолучитьСеансыИнформационнойБазы() Цикл
		Если Сеанс.ИмяПриложения = "Designer" Тогда
			Строки.Добавить(СтрШаблон("! Открыт конфигуратор: компьютер %1, с %2",
				Сеанс.ИмяКомпьютера, Формат(Сеанс.НачалоСеанса, "ДЛФ=DT")));
		КонецЕсли;
	КонецЦикла;

	// Расширения и проблемы их применения к текущей конфигурации
	Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
		Строки.Добавить(СтрШаблон("Расширение %1, версия %2, активно: %3",
			Расширение.Имя, Расширение.Версия, Формат(Расширение.Активно, "БЛ=нет; БИ=да")));
	КонецЦикла;
	Для Каждого Проблема Из РасширенияКонфигурации.ПроверитьВозможностьПримененияВсех() Цикл
		Строки.Добавить(СтрШаблон("! %1 (%2): %3",
			Проблема.Расширение.Имя, Проблема.Важность, Проблема.Описание));
	КонецЦикла;

	Текст = СтрСоединить(Строки, Символы.ПС);
	ЗаписьЖурналаРегистрации("Обслуживание.СостояниеКонфигурации",
		УровеньЖурналаРегистрации.Информация, , , Текст);
	Возврат Текст;

КонецФункции

Снимок конфигурации перед обновлением

Обработка сохраняет основную конфигурацию и конфигурацию БД в cf, не выгоняя пользователей. Функцию ВыполнитьКонфигуратор можно вызывать и с командами из скрипта: например, /IBRestoreIntegrity для повреждённой базы из любой рабочей. Для поля «Пароль» включите режим пароля.

// Модуль формы внешней обработки «Снимок конфигурации». Тонкий клиент, платформа 8.3.18+.
// Сохраняет основную конфигурацию и конфигурацию БД в cf; монопольный режим не нужен.
// Реквизиты обработки: База - строка вида /S "srv01\trade" или /F "D:\Bases\Trade";
// Пользователь и Пароль (пусто - вход по учётной записи Windows); Каталог для снимков.
// Конфигуратор запускается на этом компьютере: нужна полная установка платформы версии сервера.

&НаКлиенте
Асинх Процедура СнимокКонфигурации(Команда)

	Если ПустаяСтрока(Объект.База) Или ПустаяСтрока(Объект.Каталог) Тогда
		ПоказатьПредупреждение(, "Заполните реквизиты «База» и «Каталог»");
		Возврат;
	КонецЕсли;
	Каталог = Объект.Каталог + "\" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd_HHmm") + "\";
	Ждать СоздатьКаталогАсинх(Каталог);

	Результат = Ждать ВыполнитьКонфигуратор("/DumpCfg """ + Каталог + "main.cf""", Каталог + "main.log");
	Если Результат.КодВозврата = 0 Тогда
		Результат = Ждать ВыполнитьКонфигуратор("/DumpDBCfg """ + Каталог + "db.cf""", Каталог + "db.log");
	КонецЕсли;

	Если Результат.КодВозврата = 0 Тогда
		ПоказатьОповещениеПользователя("Снимок конфигурации сохранён", , Каталог);
	Иначе
		Журнал = Новый ТекстовыйДокумент;
		Журнал.УстановитьТекст(Результат.Журнал);
		Журнал.Показать(СтрШаблон("Конфигуратор завершился с кодом %1", Результат.КодВозврата));
	КонецЕсли;

КонецПроцедуры

// Запускает конфигуратор в пакетном режиме, ждёт завершения, возвращает код и журнал /Out.
&НаКлиенте
Асинх Функция ВыполнитьКонфигуратор(Знач КомандаКонфигуратора, Знач ИмяФайлаЖурнала)

	КаталогПлатформы = КаталогПрограммы();
	Если Не СтрЗаканчиваетсяНа(КаталогПлатформы, "\") Тогда
		КаталогПлатформы = КаталогПлатформы + "\";
	КонецЕсли;
	Конфигуратор = Новый Файл(КаталогПлатформы + "1cv8.exe");
	ЕстьКонфигуратор = Ждать Конфигуратор.СуществуетАсинх();
	Если Не ЕстьКонфигуратор Тогда
		ВызватьИсключение "Не найден " + Конфигуратор.ПолноеИмя + ": установлен только тонкий клиент";
	КонецЕсли;

	Части = Новый Массив;
	Части.Добавить("""" + Конфигуратор.ПолноеИмя + """ DESIGNER " + Объект.База);
	Если ЗначениеЗаполнено(Объект.Пользователь) Тогда
		Части.Добавить(СтрШаблон("/N ""%1"" /P ""%2""", Объект.Пользователь, Объект.Пароль));
	КонецЕсли;
	// Без этих ключей запуск может остановиться на стартовом диалоге или вопросе
	Части.Добавить("/DisableStartupDialogs /DisableStartupMessages");
	Части.Добавить(КомандаКонфигуратора);
	Части.Добавить("/Out """ + ИмяФайлаЖурнала + """");

	КодВозврата = Ждать ЗапуститьПриложениеАсинх(СтрСоединить(Части, " "), , Истина);

	// Журнал /Out конфигуратор пишет в UTF-8
	Журнал = Новый ТекстовыйДокумент;
	ФайлЖурнала = Новый Файл(ИмяФайлаЖурнала);
	ЕстьЖурнал = Ждать ФайлЖурнала.СуществуетАсинх();
	Если ЕстьЖурнал Тогда
		Ждать Журнал.ПрочитатьАсинх(ИмяФайлаЖурнала, КодировкаТекста.UTF8);
	КонецЕсли;

	Возврат Новый Структура("КодВозврата, Журнал", КодВозврата, Журнал.ПолучитьТекст());

КонецФункции

Копия расширений

Загрузка cf расширения не трогает, а развёрнутый бэкап откатывает и их. Перед восстановлением сохраните расширения в файлы, после — проверьте, что они встают на восстановленную конфигурацию. Об устройстве расширений — «Расширение конфигурации 1С».

// Общий модуль ОбслуживаниеКонфигурацииСервер (флажок «Сервер») или модуль объекта обработки.
// Код выполняется на сервере: в клиент-серверной базе каталог должен быть на сервере 1С,
// а у учётной записи службы - права на запись в него.

// Сохраняет все расширения в cfe-файлы и опись extensions.txt. Возвращает их количество.
Функция СохранитьРасширения(Знач Каталог) Экспорт

	Разделитель = ПолучитьРазделительПути();
	Если Не СтрЗаканчиваетсяНа(Каталог, Разделитель) Тогда
		Каталог = Каталог + Разделитель;
	КонецЕсли;
	СоздатьКаталог(Каталог);

	Опись = Новый Массив;
	Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
		Расширение.ПолучитьДанные().Записать(Каталог + Расширение.Имя + ".cfe");
		// Опись пригодится при восстановлении: что было активно и в каком безопасном режиме
		Опись.Добавить(СтрШаблон("%1; версия %2; активно %3; безопасный режим %4",
			Расширение.Имя, Расширение.Версия, Расширение.Активно, Расширение.БезопасныйРежим));
	КонецЦикла;

	Текст = Новый ТекстовыйДокумент;
	Текст.УстановитьТекст(СтрСоединить(Опись, Символы.ПС));
	Текст.Записать(Каталог + "extensions.txt", КодировкаТекста.UTF8);

	Возврат Опись.Количество();

КонецФункции

// Загружает расширение из cfe: обновляет одноимённое или добавляет новое.
// Возвращает проблемы применения к текущей конфигурации, пустой массив - всё в порядке.
// Запись расширений в безопасном режиме запрещена: запускайте под администратором.
Функция ЗагрузитьРасширение(Знач ИмяФайла, Знач ВБезопасномРежиме = Истина) Экспорт

	Данные = Новый ДвоичныеДанные(ИмяФайла);
	Новое = РасширенияКонфигурации.Создать(Данные); // имя и версия берутся из файла
	Найденные = РасширенияКонфигурации.Получить(Новый Структура("Имя", Новое.Имя));
	Если Найденные.Количество() = 0 Тогда
		Расширение = Новое;
		Расширение.БезопасныйРежим = ВБезопасномРежиме;
	Иначе
		Расширение = Найденные[0]; // у существующего безопасный режим не меняем
	КонецЕсли;
	Расширение.Записать(Данные);

	Проблемы = Новый Массив;
	Для Каждого Проблема Из РасширенияКонфигурации.ПроверитьВозможностьПримененияВсех() Цикл
		Если Проблема.Расширение.Имя = Расширение.Имя Тогда
			Проблемы.Добавить(СтрШаблон("%1: %2", Проблема.Важность, Проблема.Описание));
		КонецЕсли;
	КонецЦикла;

	Возврат Проблемы;

КонецФункции

Разбор ключевых строк

  • /IBRestoreIntegrity безопасно запускать всегда: если восстанавливать нечего, конфигуратор просто завершится.
  • Пара /DumpDBCfg и /DumpCfg — дешёвый способ понять, какой экземпляр конфигурации не читается.
  • start "" /wait дожидается конфигуратора и кладёт его код возврата в %ERRORLEVEL%.
  • /DisableStartupMessages гасит стартовый вопрос «Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?»: после прерванного обновления основная конфигурация как раз не совпадает с конфигурацией БД.
  • КонфигурацияИзменена() доступна на сервере и в толстом клиенте, поэтому вызов вынесен в &НаСервереБезКонтекста.
  • ЗапуститьПриложениеАсинх(…, Истина) ждёт завершения и возвращает код. На сервере ЗапуститьПриложение вызывает исключение, поэтому конфигуратор запускаем с клиента.
  • РасширенияКонфигурации.Создать(Данные) ничего не записывает, но даёт имя расширения из файла: по нему решаем, обновлять существующее или добавлять новое.
  • Важность «Критичная» из ПроверитьВозможностьПримененияВсех() значит, что расширение не подключится: после загрузки старого cf оно может ссылаться на объекты, которых там нет.

Типичные ошибки

  • Развернули вчерашний бэкап поверх рабочей базы. Конфигурацию вылечили, день работы потеряли, хотя данные были целы. Бэкап разворачивают в отдельную базу и берут из неё только cf.
  • Загрузили типовой cf в доработанную базу и нажали «Принять», не читая. Реструктуризация удалила таблицы и поля доработок вместе с данными — вернуть их можно только из копии шага 0.
  • Сняли «зависший» конфигуратор во время обновления. Реструктуризация больших таблиц может идти часами, а её прерывание — прямой путь к этой ошибке.
  • «При выполнении конвертации структуры информационной базы другой версией платформы произошла критическая ошибка». Конвертацию начали одной версией платформы, продолжили другой — завершать нужно той, которой начали.
  • Тестирование и исправление при работающих пользователях. Конфигуратор не получит монопольный режим: закройте вход и завершите сеансы, включая фоновые задания.
  • Файловая база в сетевой папке. Каждый обрыв сети во время записи может повредить 1Cv8.1CD, и ошибка будет возвращаться.

Частые вопросы

Пропадут ли данные?

Обычно нет: повреждена конфигурация, а документы и справочники хранятся отдельно. Данные теряют при лечении, когда разворачивают старый бэкап поверх рабочей базы или загружают cf без своих объектов.

Можно ли работать, пока конфигуратор показывает ошибку?

Если в режиме 1С:Предприятие всё открывается, пользователи работают с конфигурацией БД, и она читается. Но ничего не сохраняйте и не обновляйте, пока не пройдёте шаг 4.

Поможет ли выгрузка и загрузка dt?

Загрузка dt создаёт таблицы базы заново и иногда снимает физические повреждения. Но выгрузке нужно прочитать конфигурацию и все данные: на повреждённой базе она может не пройти, а на большой идёт часами. Это вариант после шагов 3–5, а не вместо них.

Как не допустить повторения?

ИБП на сервере и у разработчика; файловую базу, с которой работают по сети, — в клиент-серверный вариант или за веб-сервер; снимок конфигурации и резервная копия базы перед каждым обновлением; доработки — в хранилище или в расширениях. И не прерывайте обновление, даже если кажется, что оно зависло.

Когда проще заказать

Если база не открывается ни в одном режиме, свежей копии нет или после загрузки cf пропали данные доработок, не экспериментируйте на единственном экземпляре базы. Опишите, что делали перед ошибкой, приложите журналы /Out и разместите задачу на площадке: оценка бесплатная, ответ в течение рабочего дня.

По теме

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.