При работе в 1С:Бухгалтерия предприятия 3.0 часто возникает необходимость массово загрузить или обновить данные контрагентов. Если с названиями и ИНН проблем обычно не возникает, то загрузка адресов (юридического, фактического или адреса регистрации физлица) часто ставит пользователей и начинающих разработчиков в тупик. В этой статье мы подробно разберем, как правильно перенести адресные данные из файла xls или mxl, почему обычная вставка текста не всегда работает и какие программные инструменты для этого предназначены.
Прежде чем приступать к программированию или использованию сложных универсальных обработок, рассмотрим самый простой штатный механизм, который появился в современных версиях БП 3.0. Этот способ идеально подходит для пользователей, не владеющих навыками программирования. Если справочники импортируются в рамках перехода из другой конфигурации 1С, ручной работы с таблицами можно избежать — для этого удобно выполнить подбор решений для переноса данных в 1С:Бухгалтерию, которые автоматически переносят нормативно-справочную информацию и остатки.
Для начала работы перейдем в раздел Справочники, выберем пункт Контрагенты и нажмем кнопку Загрузить. Проанализируем возможности этого помощника:
Excel.Важный нюанс: если в вашем файле адреса записаны одной строкой, 1С попытается распознать их и разложить по полям (город, улица, дом) самостоятельно. Однако для корректной работы адресного классификатора (ФИАС/ГАР) рекомендуется, чтобы формат записи был максимально приближен к стандартному.
Если штатный помощник по каким-то причинам не подходит (например, нужно обновить данные уже существующих контрагентов по сложному условию), воспользуемся универсальной обработкой. Рассмотрим по шагам, как работать с контактной информацией, так как именно здесь совершается большинство ошибок.
Выясним причину, почему многие не могут найти поля адреса при настройке загрузки. В 1С Контактная информация (адреса, телефоны, email) для справочника Контрагенты хранится в скрытой табличной части или в Регистре сведений «Контактная информация». Поэтому в настройках обработки нам нужно не просто искать реквизит «Адрес», а развернуть группу полей Контактная информация.
Проанализируем алгоритм настройки:
Адрес регистрации (для физ. лица) или Юридический адрес.xls-файла.Если вы выступаете в роли разработчика и вам нужно программно обработать строку адреса из файла, разберем более сложный, но правильный подход. В 1С 8.3 адрес — это не просто строка, а структура. Для того чтобы адрес корректно отображался и проходил проверки в отчетности, его нужно преобразовать в формат XML (XDTO).
Посмотрим на пример кода, который позволяет преобразовать строковое представление (например, "г. Москва, ул. Ленина, д. 1") в структуру, понятную системе:
// Определяем типы и виды контактной информации
Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
Вид = Справочники.ВидыКонтактнойИнформации.ЮридическийАдресКонтрагента;
Представление = "г. Москва, ул. Новая, д. 10"; // Данные из Excel
// Используем служебные функции для формирования структуры XDTO
ОбъектXDTOКИ = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOПоПредставлению(Представление, Тип);
// Преобразуем объект XDTO в строку XML для записи в базу
ЗначенияПолей = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);
// Записываем данные в объект (например, в созданного контрагента)
УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(НовыйКонтрагент, ЗначенияПолей, Вид, Тип);
Разберем подробнее, что происходит в этом фрагменте кода. Функция КонтактнаяИнформацияXDTOПоПредставлению обращается к адресному классификатору и пытается «распарсить» строку. Если адрес распознан, он будет разложен по соответствующим полям структуры (регион, город и т.д.). После этого метод ЗаписатьКонтактнуюИнформацию корректно помещает эти данные в базу данных, заполняя и текстовое представление, и внутренние поля.
Ситуация с физическими лицами (не ИП) в 1С:Бухгалтерии имеет свои особенности. В справочнике Контрагенты для физлиц используются свои виды контактной информации. Проанализируем ситуацию: если мы загружаем данные именно в справочник Контрагенты, то ищем вид КИ — «Адрес регистрации» или «Адрес проживания».
Важно помнить, что если адрес загружен просто как строка (без использования XDTO или штатного помощника), он может отображаться в карточке, но при попытке сформировать отчетность (например, для налоговой), программа выдаст ошибку, так как индекс или код региона не выделены в отдельные поля.
Для успешной загрузки проанализируем структуру вашего файла. Чтобы минимизировать ошибки, придерживайтесь следующих правил:
Таким образом, мы рассмотрели три варианта решения задачи. Для разовой загрузки силами бухгалтера идеально подходит встроенная кнопка «Загрузить». Для массового обновления существующих записей лучше использовать универсальную обработку с правильной настройкой полей контактной информации. А для автоматизации процесса в рамках кастомной обработки следует применять программный метод с использованием механизмов УправлениеКонтактнойИнформацией.