Адреса в 1С:Предприятие — это критически важная информация, которая используется повсеместно: от формирования документов до логистики и бухгалтерской отчётности. Однако найти, где именно хранятся эти данные в базе, не всегда просто. В зависимости от конфигурации (1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и управление персоналом) и версии платформы структура хранения адресов может отличаться. В этой статье мы разберём все возможные варианты: от стандартных справочников до скрытых таблиц базы данных, а также покажем, как извлечь адреса с помощью SQL-запросов и встроенных инструментов.
Особое внимание уделим трём ключевым аспектам: адреса в 1С хранятся не только в справочниках, но и в регистрах сведений, а их структура зависит от настроек адресного классификатора (ФИАС или КЛАДР).
Это означает, что простого поиска по таблице Контрагенты может быть недостаточно. Мы рассмотрим все нюансы, включая работу с расширенными адресами, многострочными полями и историей изменений.
1. Стандартные места хранения адресов в 1С
В большинстве типовых конфигураций адреса хранятся в справочниках, связанных с контрагентами, физическими лицами или организациями. Рассмотрим основные объекты:
- 📌 Справочник "Контрагенты" — здесь хранятся адреса юридических лиц и ИП. Поле обычно называется
АдресилиЮридическийАдрес. - 👤 Справочник "ФизическиеЛица" — содержит адреса проживания или регистрации сотрудников (в 1С:ЗУП).
- 🏢 Справочник "Организации" — адреса собственных юридических лиц компании.
- 📦 Справочник "Склады" — адреса складских помещений (в 1С:УТ или 1С:ERP).
Важно понимать, что поле Адрес может быть как простым текстовым (в старых конфигурациях), так и составным — с разбивкой на индекс, регион, город, улицу и дом. В современных версиях (начиная с 1С:Предприятие 8.3.10) чаще используется второй вариант с привязкой к ФИАС (Федеральная информационная адресная система).
Чтобы увидеть структуру адреса в конкретной базе, откройте справочник (например, Контрагенты) в режиме 1С:Предприятие, выберите любой элемент и нажмите Ещё → Все действия → Изменить форму. В открывшемся окне вы увидите, как настроено поле Адрес:
Если поле адреса отображается как многострочное текстовое поле без структуры, значит в вашей конфигурации используется устаревший формат хранения. Это может усложнить анализ данных, особенно при миграции на новые версии.
2. Где физически хранятся адреса в базе данных 1С
На уровне SQL-сервера адреса хранятся в таблицах, соответствующих справочникам. Например, для справочника Контрагенты в базе Microsoft SQL Server или PostgreSQL будет таблица с именем вида:
_Reference{ГУИД_справочника}
Где {ГУИД_справочника} — это уникальный идентификатор объекта метаданных. Чтобы найти точную таблицу:
- Откройте конфигуратор 1С:Предприятие.
- Перейдите в
Администрирование → Поддержка и обслуживание → Тестирование и исправление. - Нажмите
Показать таблицы базы данных(в некоторых версиях опция называетсяПросмотр структуры базы данных). - Найдите таблицу, соответствующую нужному справочнику (например,
_Reference16дляКонтрагентов).
Внутри этой таблицы адрес может храниться в одном из полей:
- 🔹
Адрес— если это текстовое поле. - 🔹
Адрес_ПочтовыйИндекс,Адрес_Регион,Адрес_Городи т.д. — если адрес составной. - 🔹
АдресПолный— в некоторых конфигурациях (например, 1С:ERP).
Для составных адресов данные распределены по нескольким колонкам, а для текстовых — вся информация хранится в одной ячейке в формате:
123456, г. Москва, ул. Ленина, д. 1, офис 101
3. Адреса в регистрах сведений и других объектах
Помимо справочников, адреса могут дублироваться или храниться в:
- 📊 Регистры сведений — например,
АдресаКонтрагентовилиКонтактнаяИнформация. Эти регистры используются для хранения истории изменений адресов или дополнительных адресов (например, фактический и юридический). - 📄 Документы — в некоторых конфигурациях адрес может прописываться непосредственно в документах (например, в
ЗаказПокупателяилиРеализацияТоваровУслуг), если он отличается от адреса из справочника. - 🔄 Планы обмена — при распределённой базе адреса могут синхронизироваться между узлами через механизм обмена данными.
Чтобы найти регистры сведений, связанные с адресами:
- В конфигураторе откройте ветку
Общие → Регистры сведений. - Ищите регистры с названиями, содержащими
Адрес,КонтактилиМестонахождение. - Проверьте ресурсы и измерения регистра — часто там хранятся
Контрагент,ТипАдреса(Юридический/Фактический) и самАдрес.
Пример структуры регистра АдресаКонтрагентов:
| Поле | Тип данных | Описание |
|---|---|---|
Контрагент |
СправочникСсылка.Контрагенты | Ссылка на элемент справочника |
ТипАдреса |
ПеречислениеСсылка.ТипыАдресов | Юридический/Фактический/Почтовый |
Адрес |
Строка (500) | Полный адрес в текстовом формате |
Период |
Дата | Дата начала действия адреса |
ПочтовыйИндекс |
Строка (6) | Индекс отдельным полем |
⚠️ Внимание: В конфигурациях с поддержкой ФИАС (например, 1С:ERP 2.5+ или 1С:БП 3.0+) адреса могут храниться в виде ссылок на элементы справочника АдресныйКлассификатор. В этом случае в базе будет не текст, а идентификаторы объектов ФИАС, и для получения читаемого адреса потребуется дополнительная обработка.
4. Как извлечь адреса из 1С с помощью SQL-запросов
Если вам нужно массово экспортировать адреса (например, для анализа или миграции), проще всего использовать прямые SQL-запросы к базе данных. Ниже приведён универсальный запрос для извлечения адресов контрагентов из справочника:
SELECT
T1._Description AS Контрагент,
T1._IDRRef AS Ссылка,
T2._Val AS Адрес
FROM
_Reference{ГУИД_Контрагентов} AS T1
LEFT JOIN
_Reference{ГУИД_Контрагентов}_VT{ГУИД_Реквизита_Адрес} AS T2 ON T1._IDRRef = T2._ObjectIDRRef
WHERE
T2._Val IS NOT NULL
Где:
{ГУИД_Контрагентов}— идентификатор справочникаКонтрагенты(можно найти в конфигураторе).{ГУИД_Реквизита_Адрес}— идентификатор реквизитаАдрес(также доступен в метаданных).
Для составных адресов запрос будет сложнее. Например, в 1С:ERP может потребоваться объединить несколько полей:
SELECT
T1._Description AS Контрагент,
T2._Val AS ПочтовыйИндекс,
T3._Val AS Регион,
T4._Val AS Город,
T5._Val AS Улица,
T6._Val AS Дом
FROM
_Reference{ГУИД_Контрагентов} AS T1
LEFT JOIN
_Reference{ГУИД_Контрагентов}_VT{ГУИД_ПочтовыйИндекс} AS T2 ON T1._IDRRef = T2._ObjectIDRRef
LEFT JOIN
_Reference{ГУИД_Контрагентов}_VT{ГУИД_Регион} AS T3 ON T1._IDRRef = T3._ObjectIDRRef
-- и так далее для остальных полей
Узнать ГУИД справочника в конфигураторе|Проверить тип хранения адреса (текстовый или составной)|Сделать резервную копию базы|Тестировать запросы на тестовой копии данных-->
Если вы используете ФИАС, то для получения читаемого адреса потребуется присоединить таблицу адресного классификатора. Пример запроса для 1С:БП 3.0:
SELECT
Контрагенты._Description AS Контрагент,
АдресныйКлассификатор._Description AS Адрес
FROM
_Reference{ГУИД_Контрагентов} AS Контрагенты
JOIN
_Reference{ГУИД_АдресногоКлассификатора} AS АдресныйКлассификатор
ON Контрагенты._Адрес_Key = АдресныйКлассификатор._IDRRef
⚠️ Внимание: Прямые SQL-запросы к базе 1С могут нарушить целостность данных, если выполняются записывающие операции (INSERT, UPDATE, DELETE). Всегда работайте с резервной копией и используйте только SELECT-запросы для чтения.
5. Поиск адресов через встроенные инструменты 1С
Не всегда требуется обращаться к базе напрямую. В 1С:Предприятие есть встроенные механизмы для поиска и анализа адресов:
- 🔍 Поиск по справочникам — используйте стандартный поиск (
Ctrl+F) в справочникахКонтрагентыилиФизическиеЛицас фильтром по полюАдрес. - 📑 Отчёты — в разделе
Отчётыищите отчёты типаАнализ контрагентовилиКонтактная информация. Они часто содержат колонку с адресами. - 🛠 Обработки — в 1С:ИТС или на сайте Infostart можно найти готовые обработки для экспорта адресов в Excel.
- 📎 Механизм полнотекстового поиска — если в конфигурации включён полнотекстовый поиск, можно искать адреса по фрагментам (например,
ул. Ленина).
Пример использования отчёта для экспорта адресов:
- Откройте раздел
Отчёты. - Выберите
Анализ контрагентов(или аналогичный). - В настройках отчёта добавьте колонку
Адрес. - Установите фильтр по нужным контрагентам (например, по городу).
- Экспортируйте результат в Excel или PDF.
Если в вашей конфигурации нет готового отчёта, можно создать свой. Для этого:
- В конфигураторе откройте ветку
Отчёты. - Создайте новый отчёт с источником данных — справочник
Контрагенты. - Добавьте в структуру отчёта поле
Адрес. - Настройте группировки (например, по региону).
Как найти обработку для экспорта адресов?
На сайте Infostart.ru введите в поиск запрос "экспорт адресов 1С" и выберите обработку, совместимую с вашей конфигурацией. Обратите внимание на версию платформы (8.3.x) и типовые конфигурации (БП, УТ, ЗУП). Большинство обработок бесплатны или имеют демо-версию.
6. Особенности хранения адресов в разных конфигурациях 1С
Структура хранения адресов может сильно отличаться в зависимости от конфигурации. Рассмотрим ключевые различия:
| Конфигурация | Где хранятся адреса | Формат хранения | Особенности |
|---|---|---|---|
| 1С:Бухгалтерия 3.0 | Справочник Контрагенты, регистр КонтактнаяИнформация |
Текстовый или составной (с 8.3.10) | Поддержка ФИАС, возможность хранения нескольких адресов на контрагента |
| 1С:Управление торговлей 11 | Справочники Контрагенты, Склады, регистр АдресаКонтрагентов |
Составной (с привязкой к ФИАС) | Адреса складов хранятся отдельно, есть поле АдресДоставки в заказах |
| 1С:Зарплата и управление персоналом 3.1 | Справочник ФизическиеЛица, регистр АдресаФизическихЛиц |
Составной (регион, город, улица и т.д.) | Адреса используются для расчёта налогов и страховых взносов |
| 1С:ERP 2.5 | Справочники и регистр КонтактнаяИнформация с типом Адрес |
Сложная структура с поддержкой ФИАС и геокодирования | Есть возможность привязки адреса к координатам (широта/долгота) |
| 1С:Розница 2.3 | Справочник Контрагенты, справочник Магазины |
Текстовый или составной | Адреса магазинов хранятся в отдельном справочнике |
В 1С:ERP и 1С:УТ 11 адреса могут быть привязаны к географическим координатам (широта и долгота). Это используется для интеграции с картами (Яндекс.Карты, Google Maps) и логистическими сервисами. Координаты хранятся в регистре КонтактнаяИнформация в полях Долгота и Широта.
В 1С:ЗУП адреса физических лиц используются для:
- 📋 Формирования отчётности в ПФР и ФНС (например,
СЗВ-ТДили2-НДФЛ). - 💌 Рассылки почтовых уведомлений (например, о зарплате).
- 🏠 Оформления командировок (адрес проживания).
⚠️ Внимание: В конфигурациях до версии 8.3.10 адреса часто хранились в текстовом формате без структуры. При миграции на новые версии может потребоваться конвертация этих данных в формат ФИАС с помощью специальных обработок (например, ОбработкаМиграцииАдресовКФИАС из 1С:ИТС).
7. Как работать с адресами в коде 1С (для разработчиков)
Если вы разрабатываете или дорабатываете конфигурацию, вам может потребоваться программно получать или изменять адреса. Основные методы:
1. Получение адреса контрагента:
Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("ООО Ромашка");
Адрес = Контрагент.Адрес; // или Контрагент.ЮридическийАдрес
2. Разбор составного адреса (если используется ФИАС):
Если ТипЗнч(Контрагент.Адрес) = Тип("Структура") Тогда
Сообщить("Индекс: " + Контрагент.Адрес.ПочтовыйИндекс);
Сообщить("Город: " + Контрагент.Адрес.Город);
КонецЕсли;
3. Поиск контрагентов по адресу:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Контрагент,
| Контрагенты.Адрес КАК Адрес
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.Адрес ПОДОБНО ""%ул. Ленина%""
|";
Результат = Запрос.Выполнить();
4. Изменение адреса с проверкой на дубли:
Процедура ИзменитьАдрес(Контрагент, НовыйАдрес)
Если Не ЗначениеЗаполнено(НовыйАдрес) Тогда
Возврат Ложь;
КонецЕсли;
СтарыйАдрес = Контрагент.Адрес;
Контрагент.Адрес = НовыйАдрес;
Контрагент.Записать();
// Логирование изменения
Регистратор = РегистрыСведений.ИсторияИзмененийАдресов;
НоваяЗапись = Регистратор.СоздатьМенеджерЗаписи();
НоваяЗапись.Контрагент = Контрагент.Ссылка;
НоваяЗапись.СтарыйАдрес = СтарыйАдрес;
НоваяЗапись.НовыйАдрес = НовыйАдрес;
НоваяЗапись.ДатаИзменения = ТекущаяДата();
НоваяЗапись.Записать();
Возврат Истина;
КонецПроцедуры
Для работы с ФИАС в коде используются объекты АдресныйКлассификатор и АдресныйОбъект. Пример получения полного адреса по коду ФИАС:
КодФИАС = "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"; // Пример кода
АдресныйОбъект = Справочники.АдресныйКлассификатор.НайтиПоКодуФИАС(КодФИАС);
ПолныйАдрес = АдресныйОбъект.ПолноеНаименование;
При работе с адресами в коде 1С всегда проверяйте, включена ли поддержка ФИАС в конфигурации. Если нет, то составные адреса могут не работать, и потребуется использовать текстовый формат.
8. Типичные проблемы с адресами в 1С и их решения
При работе с адресами пользователи и администраторы часто сталкиваются со следующими проблемами:
- 🚫 Адреса не отображаются в документах — проверьте настройки печати шаблона документа. Часто поле
Адреспросто не добавлено в макет. - 🔄 Дублирование адресов — используйте обработку для поиска дублей (например,
ПоискДублейАдресовиз 1С:ИТС). - 📛 Ошибки при загрузке адресов из ФИАС — обновите классификатор через
Администрирование → Поддержка и обслуживание → Обновление адресного классификатора. - 🌍 Некорректное отображение адресов на картах — проверьте, что в конфигурации включена геокодировка и заполнены координаты.
- 📑 Адреса не экспортируются в отчёты — добавьте поле
Адресв настройки отчёта или используйте обработку для выгрузки.
Пример решения проблемы с дублями адресов:
- Скачайте обработку
ПоискДублейАдресовс Infostart. - Запустите её в режиме
1С:Предприятие. - Выберите справочник (
КонтрагентыилиФизическиеЛица). - Укажите поле для поиска дублей (
Адрес). - Запустите анализ и обработайте найденные дубли (объедините или исправьте).
Если адреса не обновляются при изменении в ФИАС:
- Проверьте, что в настройках конфигурации включено автоматическое обновление адресного классификатора.
- Вручную обновите классификатор через
Администрирование → Обновление адресного классификатора. - Если адреса всё равно не обновляются, выполните тестирование и исправление базы (
Тестирование и исправление ИБ).
⚠️ Внимание: Если в вашей базе используется устаревший КЛАДР вместо ФИАС, то для миграции на новый классификатор потребуется специальная обработка. В некоторых случаях это может занять несколько часов (зависит от объёма данных). Перед миграцией сделайте резервную копию базы!
FAQ: Частые вопросы по адресам в 1С
🔹 Как узнать ГУИД справочника или реквизита для SQL-запроса?
Откройте конфигуратор, найдите нужный справочник (например, Контрагенты) и посмотрите его свойства. Вкладка Прочее содержит поле Уникальный идентификатор (это и есть ГУИД). Для реквизита Адрес откройте структуру справочника и найдите нужное поле — его ГУИД будет в свойствах.
🔹 Можно ли массово изменить адреса в 1С?
Да, для этого можно:
- Использовать обработку
ГрупповоеИзменениеРеквизитов(доступна в 1С:ИТС). - Написать собственный скрипт на встроенном языке с циклом по справочнику.
- Выгрузить данные в Excel, изменить адреса и загрузить обратно (например, через 1С:Предприятие 8. Утилиты для работы с данными).
Важно: перед массовым изменением сделайте резервную копию базы!
🔹 Почему в некоторых документах адрес не подтягивается автоматически?
Это может происходить по нескольким причинам:
- В шаблоне документа не прописано автоматическое заполнение поля
Адрес. - В справочнике
Контрагентыне заполнен адрес. - В документе переопределён адрес (например, указан адрес доставки, отличный от юридического).
- Отключена настройка автозаполнения в параметрах учёта.
Проверьте настройки конкретного документа и справочника контрагента.
🔹 Как перенести адреса из одной базы 1С в другую?
Для переноса адресов между базами можно использовать:
- Выгрузку/загрузку через XML — стандартный механизм обмена данными в 1С.
- Обработку "Универсальный обмен данными" (доступна в 1С:ИТС).
- Прямой SQL-экспорт/импорт — если базы на одном сервере.
- Специализированные обработки (например,
ПереносАдресовМеждуБазамис Infostart).