Массовый импорт адресов контрагентов и сотрудников в 1С 8.3 из Excel

· 9 мин

Содержание

Загрузить адреса в 1С массово можно двумя путями: обработкой загрузки из табличного документа (Excel, CSV) или небольшой внешней обработкой на функциях БСП. Первый путь подходит для простых реквизитов, второй — когда адрес должен лечь в контактную информацию контрагента или физлица и распознаться по ФИАС. До загрузки подключите адресный классификатор , иначе адреса сохранятся только как текст.

Типичная боль — 500 строк в Excel, а в карточках контрагентов пустые поля «Юридический адрес» и «Фактический адрес». Вручную это день работы, а с подготовленным файлом и обработкой — около часа вместе с проверкой.

Подготовка файла с адресами к загрузке

Адрес в типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) — не обычная строка. Он хранится в табличной части «Контактная информация»: вид адреса, представление (то, что видно на экране) и служебное значение с разбором по частям. Поэтому качество исходного файла решает почти всё.

Что сделать с таблицей до импорта:

  • 🔑 Ключ поиска. Для контрагентов — ИНН, для обособленных подразделений — ИНН + КПП, для сотрудников — табельный номер или СНИЛС. Наименование как ключ ненадёжно: «ООО Ромашка» и «Ромашка ООО» — разные строки.
  • 🔢 ИНН как текст. Excel съедает ведущие нули: ИНН 0274123456 превращается в 274123456. Задайте столбцу текстовый формат до вставки данных.
  • 🏠 Одна колонка — один адрес. Если в файле есть отдельные колонки «индекс», «регион», «город», «улица», «дом», соберите их в одну строку формулой =СЦЕПИТЬ() или через &. Порядок: индекс, регион, район, город, улица, дом, корпус, квартира.
  • ✂️ Чистка. Уберите переносы строк внутри ячеек (=ПЕЧСИМВ()), двойные пробелы (=СЖПРОБЕЛЫ()), кавычки-ёлочки в названиях улиц.
  • 📌 Сокращения единообразно. «г.», «ул.», «д.», «кв.» — распознаватель понимает их лучше, чем смесь «гор», «улица», «д-м».

Пример строки, которая разбирается без проблем:

420021, Республика Татарстан, г. Казань, ул. Габдуллы Тукая, д. 52, кв. 14

Перед сохранением проверьте файл тремя быстрыми фильтрами:

  • пустые ячейки в колонке ключа — такие строки загрузка пропустит;
  • повторяющиеся ИНН — один контрагент получит адрес последней строки;
  • адреса короче 15–20 символов — обычно это «Москва» или «см. договор», а не адрес.

С CSV следите за кодировкой. Excel по умолчанию сохраняет CSV в Windows-1251, а при выборе «CSV UTF-8» — в UTF-8. Если после открытия в 1С вместо букв видны «кракозябры», пересохраните файл в другой кодировке.

Сохраните итоговый файл в .xlsx и отдельно — в .csv с разделителем «;». Если xlsx не откроется обработкой из-за формул или объединённых ячеек, CSV почти всегда читается.

Загрузка адресов через обработку из табличного документа

Универсальная внешняя обработка «Загрузка данных из табличного документа» есть на диске ИТС и в разделе загрузок портала 1С. Она открывается через Файл → Открыть (меню-«гамбургер» в левом верхнем углу) и работает с любым справочником, табличной частью или регистром сведений.

Порядок работы:

  1. Сделайте резервную копию базы — выгрузку .dt или копию каталога файловой базы.
  2. Откройте обработку, режим загрузки — «Загрузка в табличную часть», если адрес хранится в контактной информации, или «Загрузка в справочник», если нужен простой строковый реквизит.
  3. Выберите справочник, например Контрагенты, и табличную часть КонтактнаяИнформация.
  4. Вставьте данные из Excel в табличный документ обработки через буфер обмена или командой открытия файла.
  5. Настройте колонки (подробно — в следующем разделе) и нажмите «Контроль заполнения».
  6. Запускайте загрузку только после того, как контроль не показал красных строк.

Плюс обработки — ничего не надо программировать. Минус — она пишет в табличную часть ровно то, что вы дали. Если загрузить только представление адреса, программа увидит текст, но служебное значение останется пустым. Такой адрес отображается, но в отчётности и печатных формах может выводиться не так, как ожидаете, а при открытии карточки программа предложит разобрать его заново.

Сначала прогоните загрузку на копии базы и проверьте 5–10 карточек вручную. Откатить тысячу записанных контактов в рабочей базе без резервной копии нечем.

Сопоставление колонок Excel с реквизитами 1С

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

Сопоставление полей
ИНН контрагента→Ссылка на элемент справочника (режим поиска по ИНН)
Строка адреса→Представление
Константа «Адрес»→Тип (перечисление «Адрес»)
Константа «Юридический адрес»→Вид контактной информации
Пусто→Значение (служебное поле, заполняет программа)

Нюансы настройки:

  • 🔍 Поиск владельца. Для колонки с ИНН укажите поиск по реквизиту ИНН, а не по наименованию. Если у вас головная организация и филиалы с одним ИНН, используйте второй ключ — КПП, или подготовьте в файле готовый код элемента.
  • 🧷 Вид адреса — константой. Юридический, фактический и почтовый адреса — разные виды. Грузите их разными проходами, а вид задайте фиксированным значением, а не колонкой.
  • ♻️ Повторная загрузка. Обработка добавляет строки в табличную часть. Запустите её дважды — получите два юридических адреса. Перед повтором очистите старые строки этого вида или используйте способ с кодом ниже, где есть режим замещения.

Если в списке видов нет нужного (например, «Адрес доставки»), сначала создайте его в справочнике «Виды контактной информации». Обработка не создаёт виды на лету.

Адресный классификатор ФИАС: что загрузить до импорта

Чтобы 1С разобрала строку на регион, город и улицу, нужен адресный классификатор. Его основа — ФИАС, федеральная адресная система, которую ведёт ФНС. Старый КЛАДР больше не развивается, актуальные типовые конфигурации работают с ФИАС.

Есть два варианта работы классификатора:

ВариантКак работаетКогда выбрать
Веб-сервис 1САдреса проверяются онлайн через интернет-поддержкуЕсть стабильный интернет и подключена интернет-поддержка
Загрузка в базуДанные нужных регионов лежат в самой базеНет интернета на сервере, большие объёмы, работа офлайн

Настройки классификатора находятся в разделе Администрирование: в Бухгалтерии 3.0 — в группе «Адресный классификатор» в Общих настройках или в Интернет-поддержке и сервисах, в зависимости от релиза. Там же команда загрузки данных.

Загрузка по шагам:

  1. Подключите интернет-поддержку (логин и пароль портала 1С) или заранее скачайте файлы классификатора с портала.
  2. Запустите загрузку и отметьте только те регионы, которые реально встречаются в вашем файле. Все субъекты сразу грузятся долго и раздувают базу.
  3. Укажите источник: сайт 1С или каталог с файлами на диске.
  4. Дождитесь окончания. Пользователи могут работать, но загрузка нагружает сервер — лучше вечером.

Быстро понять, какие регионы нужны: отсортируйте файл по колонке с регионом или вытащите первые две цифры индекса. Обычно хватает 3–5 субъектов.

Когда классификатор подключён, строка вида «г. Казань, ул. Габдуллы Тукая, д. 52» разбирается автоматически, а при открытии адреса программа подсвечивает, если какая-то часть не найдена.

Массовая загрузка адресов кодом через БСП

Если адресов сотни и важно, чтобы они сразу легли с разбором по ФИАС, надёжнее маленькая внешняя обработка. Программный интерфейс подсистемы «Контактная информация» есть в типовых конфигурациях на БСП 3.x. Он сам превращает строку в полноценный адрес и умеет замещать старое значение.

Пример серверной процедуры: файл Excel, в колонке A — ИНН, в колонке B — адрес, первая строка — шапка.

&НаСервере
Процедура ЗагрузитьАдресаНаСервере(АдресФайлаВХранилище)

    ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
    ПолучитьИзВременногоХранилища(АдресФайлаВХранилище).Записать(ИмяФайла);

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

    ВидАдреса = УправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("ЮрАдресКонтрагента");

    Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл

        ИНН = СокрЛП(ТабДок.Область(НомерСтроки, 1).Текст);
        Представление = СокрЛП(ТабДок.Область(НомерСтроки, 2).Текст);
        Если ПустаяСтрока(ИНН) Или ПустаяСтрока(Представление) Тогда
            Продолжить;
        КонецЕсли;

        Ссылка = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", ИНН);
        Если Ссылка.Пустая() Тогда
            ОбщегоНазначения.СообщитьПользователю(СтрШаблон("Строка %1: контрагент с ИНН %2 не найден",
                Формат(НомерСтроки, "ЧГ=0"), ИНН));
            Продолжить;
        КонецЕсли;

        Значение = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(Представление, ВидАдреса);

        Попытка
            Объект = Ссылка.ПолучитьОбъект();
            УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(Объект, Значение, ВидАдреса, , Истина);
            Объект.Записать();
        Исключение
            ОбщегоНазначения.СообщитьПользователю(СтрШаблон("Строка %1: %2",
                Формат(НомерСтроки, "ЧГ=0"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке())));
        КонецПопытки;

    КонецЦикла;

    УдалитьФайлы(ИмяФайла);

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

Что важно в этом коде:

  • 📥 Файл читается на сервере, поэтому его сначала помещают во временное хранилище на клиенте (НачатьПомещениеФайлаНаСервер или ПоместитьФайл), а сюда передают адрес хранилища.
  • 🔁 Последний параметр Истина в ДобавитьКонтактнуюИнформацию — замещение. Повторный запуск не плодит дубли, а перезаписывает адрес этого вида.
  • 🏷️ Имя вида ЮрАдресКонтрагента — предопределённый элемент Бухгалтерии 3.0. Для фактического адреса, адресов физлиц в ЗУП и других конфигураций точные имена посмотрите в Конфигураторе: справочник ВидыКонтактнойИнформации, кнопка «Предопределённые».
  • 🧾 Ошибка одной строки не останавливает загрузку: она попадает в сообщения с номером строки.

Внешняя обработка в рабочей базе с включённой защитой от опасных действий запросит подтверждение. Это нормально. Но запускайте её сначала на копии: запись объекта контрагента вызывает все обработчики записи, включая регистрацию изменений для обменов.

Если строк много (десятки тысяч), оберните цикл в транзакции пакетами по 500–1000 объектов. Одна транзакция на всё держит блокировки, и пользователи будут ждать.

Ошибки при загрузке адресов и как их найти

Разбор результата начинайте с сообщений обработки: и универсальная, и самописная выводят номер строки. Скопируйте сообщения в Excel и отфильтруйте — так видно, какие ошибки повторяются.

Диагностика: выберите симптом

После загрузки сделайте выборочную проверку. Откройте список контрагентов, добавьте колонку с юридическим адресом через настройку формы списка и отсортируйте по ней. Пустые значения соберутся сверху или снизу — это и есть необработанные строки.

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

Если адреса приходят из другой базы 1С

Когда адреса нужно перенести не из Excel, а из старой базы 1С — например, при переходе на новую конфигурацию, — таблица не нужна вовсе. Правильный путь — перенос справочников целиком вместе с контактной информацией:

  • 🔄 штатный переход или обмен между типовыми конфигурациями, если он есть для вашей пары программ;
  • 📦 обработка «Универсальный обмен данными в формате XML» с правилами конвертации, когда штатного обмена нет;
  • 📋 выгрузка в Excel и загрузка по схеме выше — только если структуры баз сильно различаются.

Перенос с правилами сохраняет служебное значение адреса, и повторный разбор не требуется. Экспорт в таблицу и обратная загрузка теряют разбор и добавляют шанс опечаток.

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

Можно ли загрузить адреса без адресного классификатора?
Да. Адрес сохранится как текст в свободной форме и будет печататься в документах. Но проверить его на соответствие ФИАС и разложить на части программа не сможет.
Сколько места занимает адресный классификатор в базе?
Зависит от числа регионов: один крупный субъект — заметные сотни мегабайт, вся страна — несколько гигабайт. Поэтому грузите только нужные регионы.
Как загрузить адреса сотрудников в ЗУП?
Адреса хранятся в контактной информации физического лица, а не сотрудника. Ключ поиска — СНИЛС или ИНН физлица, вид — адрес по прописке или адрес проживания. Схема та же, что для контрагентов.
Обновится ли загруженный адрес, если в ФИАС переименуют улицу?
Сохранённое представление само не меняется. При открытии адреса программа сверится с классификатором и подскажет, если данные устарели.
Подойдёт ли эта схема для адресов доставки в УТ 11?
Да, если адрес доставки ведётся как вид контактной информации партнёра или контрагента. Укажите нужный вид и справочник-владелец в обработке.

Источники

  • Федеральный закон от 28.12.2013 № 443-ФЗ «О федеральной информационной адресной системе и о внесении изменений в Федеральный закон «Об общих принципах организации местного самоуправления в Российской Федерации»