Заполнение дополнительных реквизитов по адресному классификатору

05.11.25

Задачи пользователя - Мастера заполнения

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Заполнение дополнительных реквизитов по адресному классификатору
.cfe 31,58Kb
4 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

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

1. Создание Дополнительных реквизитов.

Для примера буду использовать конфигурацию 1С ЗУП КОРП и справочник "Подразделения".

Создаем два дополнительных реквизита типа Строка c наименованиями "Адрес" и "АдресЗначение". Второй дополнительный реквизит "АдресЗначение" нам необходим чтобы хранить значение адреса в том формате в котором его распознает классификатор.

Для удобства сделаем этот реквизит скрытым, добавив любое невыполнимое условие видимости.

 

 

2. Добавляем дополнительному реквизиту кнопку выбора и назначаем на нее команду

В конфигураторе создаем расширение и добавляем в него процедуру нашей формы элемента справочника "Подразделения": "ПриСозданииНаСервереПосле" или "ПриОткрытииПосле".

В этой процедуре ищем название нашего дополнительного реквизита "Адрес" и ставим ему свойство КнопкаВыбора = ИСТИНА и назначаем этой кнопке команду. Основная трудность, с которой я здесь столкнулся была связана с тем, что  для дополнительных реквизитов генерируется неудобоваримое наименование, которое не меняется в рамках одной БД, и его даже можно прописать в коде, но уж очень безобразно это все будет выглядеть и расширение каждый раз придется править перенося на другую БД.

 

 

Спасение из данной ситуации нашел здесь:

 

 

Через "Свойства_ОписаниеДополнительныхРеквизитов" можно, по нашим названиям доп. реквизитов, найти их сгенерированные названия элементов форм  и обращаться к ним.

Пройдя циклом по ЭтотОбъект.Свойства_ОписаниеДополнительныхРеквизитов находим нужный нам элемент формы и назначаем ему нужные нам свойства

&НаСервере
Процедура Расш_ЗАДРПКПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Для Каждого Эл Из ЭтотОбъект.Свойства_ОписаниеДополнительныхРеквизитов Цикл
		Если Эл.Наименование = "Адрес" Тогда
			ИмяДопРек = Эл.ИмяРеквизитаЗначение;
			ЭтаФорма.Элементы[ИмяДопРек].КнопкаВыбора = Истина;
			ЭтаФорма.Элементы[ИмяДопРек].УстановитьДействие("НачалоВыбора","Расш_ЗАДРПК_ЗаполнитьАдресНаКлиенте");
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

3. Пишем процедуру для нашей кнопки выбора

Не забываем назначить параметры работы с элементом формы "Элемент, ДанныеВыбора, СтандартнаяОбработка". 

&НаКлиенте
Процедура Расш_ЗАДРПК_ЗаполнитьАдресНаКлиенте(Элемент, ДанныеВыбора, СтандартнаяОбработка)

Для начала нам необходимо получить значение нашего дополнительного реквизита "АдресЗначение"  для его передачи в адресный классификатор.

Для Каждого Эл Из ЭтотОбъект.Свойства_ОписаниеДополнительныхРеквизитов Цикл
	Если Эл.Наименование = "АдресЗначение" Тогда
		ИмяРеквизита = Эл.ИмяРеквизитаЗначение;
		Если ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизита]) Тогда
			ЗнАдреса = ЭтотОбъект[ИмяРеквизита ];
		Иначе
			ЗнАдреса = Элемент.ТекстРедактирования;
		КонецЕсли;
	КонецЕсли;
КонецЦикла;

Далее добавляем в наше расширение предопределенный объект справочника "ВидыКонтактнойИнформации" и заполняем параметры открытия формы адресного классификатора.

	ПараметрыКИ = Новый Структура;
	ПараметрыКИ.Вставить("ВидКонтактнойИнформации",ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ПочтовыйАдресОрганизации"));
	ПараметрыКИ.Вставить("Значение",ЗнАдреса);
	ПараметрыКИ.Вставить("Представление",Элемент.ТекстРедактирования);
	ПараметрыКИ.Вставить("Индекс",Неопределено);
	ПараметрыКИ.Вставить("Комментарий","Исходный адрес: " + Элемент.ТекстРедактирования);
	ПараметрыКИ.Вставить("ОткрытаПоСценарию",Истина);
	ПараметрыКИ.Вставить("ТолькоПросмотр",Ложь);
	ПараметрыКИ.Вставить("ТипПомещения","Квартира");

И завершаем нашу процедуру назначением обработчика и открытием формы Адресного классификатора:

Оповещение = Новый ОписаниеОповещения("Расш_ЗАДРПК_ЗаполнитьАдресЗавершениеНаКлиенте",ЭтаФорма);
УправлениеКонтактнойИнформациейКлиент.ОткрытьФормуКонтактнойИнформации(ПараметрыКИ,,Оповещение);

4. Пишем экспортную процедуру обработки результата, вызываемую после заполнения адреса:

&НаКлиенте
Процедура Расш_ЗАДРПК_ЗаполнитьАдресЗавершениеНаКлиенте(Результат, Чтото) Экспорт
	Если Результат <> Неопределено тогда
		Для Каждого Эл Из ЭтотОбъект.Свойства_ОписаниеДополнительныхРеквизитов Цикл
			Если Эл.Наименование = "Адрес" Тогда
				ИмяДопРек = Эл.ИмяРеквизитаЗначение;
				ЭтотОбъект[ИмяДопРек] = Результат.Представление;
			КонецЕсли;
			Если Эл.Наименование = "АдресЗначение" Тогда
				ИмяДопРек = Эл.ИмяРеквизитаЗначение;
				ЭтотОбъект[ИмяДопРек] = Результат.Значение;
			КонецЕсли;
		КонецЦикла;
		ЭтотОбъект.Модифицированность = Истина;
	КонецЕсли;
	
КонецПроцедуры

Готово!

Сейчас при открытии Подразделения у нас есть доп. реквизит с кнопкой выбора, при нажатии на нее открывается форма заполнения адреса. После заполнения, адрес переносится на наш доп. реквизит "Адрес", а благодаря доп. реквизиту "АдресЗначение" при следующем редактировании адреса, классификатор откроется в том же виде, что был при закрытии: 

 

 

Без доп. реквизита "АдресЗначение", при повторном редактировании, классификатор открывался бы с адресом в свободной форме, что неудобно. А с этим служебным реквизитом адрес открывается в "муниципальном" или "административно-территориальном" делении.

Проверено на следующих конфигурациях и релизах:

  • Зарплата и управление персоналом КОРП, редакция 3.1, релизы 3.1.35.48
  • Зарплата и управление персоналом, редакция 3.1, релизы 3.1.35.48

Вступайте в нашу телеграмм-группу Инфостарт

Расширения Дополнительные реквизиты Адресный классификатор

См. также

SALE! %

Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.

15250 руб.

20.12.2024    18503    92    29    

80

ЭДО и ОФД Мастера заполнения 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение добавляет возможность создавать ЭТрН и электронный заказ (заявку) на основании документа «Реализация товаров и услуг». При создании документа автоматически заполняются основные данные: участники перевозки, адреса, транспорт, водитель и сведения о грузе. Работает как расширение, не требует изменения типовой конфигурации и быстро подключается.

6000 руб.

13.05.2026    2859    29    7    

33

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    5640    18    1    

21

Внешние источники данных Мастера заполнения Бизнес-аналитик Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 1С:Документооборот Россия Платные (руб)

Решение позволяет по ИНН производить проверку контрагентов, получая сведения: видов деятельности, данных ЕГРЮЛ, связанных организаций, отчетности, налогов, финансовый анализ, а также в один клик заполнить карточки справочников контрагентов/партнеров по ИНН в программе 1С по данным ФНС. Попробуйте ДЕМО версию перед покупкой.

5000 руб.

12.08.2025    4098    12    20    

12

Логистика, склад и ТМЦ Мастера заполнения Ценообразование, анализ цен Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Управленческий учет Платные (руб)

Исправление пересчета товаров, пересчет всех колонок по виду цен. Исправлено поведение стандартной команды Заполнения по виду цен. Расширение не меняющее логику работы. Удовлетворит большинство розничных продавцов, не нужно ничего пересчитывать руками, сразу видна недостача или излишки по выбранному виду цены

5084 руб.

28.06.2023    5617    13    5    

13

Регламентированный учет и отчетность Мастера заполнения Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет ЕСН Платные (руб)

Обработка позволяет создавать документы "Сведения об уплате налогов на едином налоговом счете" по данным файла операций из личного кабинета ЕНС сайта ФНС в конфигурации 1С:Бухгалтерия предприятия 3.0.

10000 руб.

22.11.2024    5955    36    13    

36

Мастера заполнения 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение для типовых конфигураций 1С:БП 3.0, 1С:УНФ 3.0, 1С:УТ 11 добавляет в справочник "Контрагенты" поля "Код ОКВЭД" и "Наименование ОКВЭД" и заполняет их по ИНН контрагента через сервис "1С-Контрагент"

8540 руб.

28.10.2024    3358    11    0    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ketr 153 18.06.26 16:53 Сейчас в теме
На новых версиях вот так работает (добавляем сначала вызов отложенной инициализации):


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