Поле адреса в своем справочнике на примере 1С:Бухгалтерия 3

Публикация № 1060970

Программирование - Практика программирования

ввод адреса фиас кладр поле классификатор адресов форма ввода конфигурация управляемые формы

0
В публикации описано, как добавить поле адреса в свой справочник, чтобы вводить адрес через адресный классификатор.

Публикация является продолжением темы https://forum.infostart.ru/forum9/topic111014/.

Рассмотрим на практике что необходимо сделать, чтобы на форме нашего справочника появилось поле адреса, ввод которого будет осуществляться из адресного классификатора. В качестве примера возьмем Бухгалтерию 3.0.70.50 (платформа 8.3.14.1694) с добавленным нами справочником Справочник1. Эталоном для нас будет справочник ТорговыеТочки, в котором ввод адреса уже реализован.

1. Из справочника-эталона скопируем в наш справочник табличную часть КонтактнаяИнформация, именно в ней будет храниться адрес.
2. В форме элемента нашего справочника добавим элемент формы Обычная группа и назовем ее "ГруппаКонтактнаяИнформация", оставим ее пустой.
3. Из модуля формы элемента справочника-эталона скопируем в модуль формы элемента нашего справочника блок кода СтандартныеПодсистемы.КонтактнаяИнформация, а также содержимое обработчиков событий формы с комментарием СтандартныеПодсистемы.КонтактнаяИнформация.
4. Добавим в справочник ВидыКонтактнойИнформации предопределенные группу СправочникСправочник1 (название группы должно быть именно таким) и элемент АдресСправочникСправочник1.
5. Добавленные группу и элемент справочника ВидыКонтактнойИнформации необходимо отредактировать: реквизит Используется = ИСТИНА, реквизит элемента Тип = Перечисления.ТипыКонтактнойИнформации.Адрес. Сделаем это программно в обработчике ПриСозданииНаСервере.

Вот что должно получиться в модуле формы элемента:

// СтандартныеПодсистемы.КонтактнаяИнформация

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
	УправлениеКонтактнойИнформациейКлиент.ПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачалоВыбора(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачалоВыбора(ЭтотОбъект, Элемент,, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.Очистка(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда)
	УправлениеКонтактнойИнформациейКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда.Имя);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ОбновитьКонтактнуюИнформацию(Результат)
	
	УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	УправлениеКонтактнойИнформациейКлиент.АвтоПодбор(Текст, ДанныеВыбора, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	УправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка);
	
КонецПроцедуры

// Конец СтандартныеПодсистемы.КонтактнаяИнформация

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	// СтандартныеПодсистемы.КонтактнаяИнформация
	УправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	// СтандартныеПодсистемы.КонтактнаяИнформация
	УправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, Отказ);
	// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	// СтандартныеПодсистемы.КонтактнаяИнформация
	УправлениеКонтактнойИнформацией.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	// СтандартныеПодсистемы.КонтактнаяИнформация
	УправлениеКонтактнойИнформацией.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, Объект, Отказ);
	// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	// Нужно выполнить только 1 раз
	ГруппаВидовКонтактнойИнформации = Справочники.ВидыКонтактнойИнформации["СправочникСправочник1"];
	ГруппаВидовКонтактнойИнформацииОбъект = ГруппаВидовКонтактнойИнформации.ПолучитьОбъект();
	ГруппаВидовКонтактнойИнформацииОбъект.Используется = Истина;
	ГруппаВидовКонтактнойИнформацииОбъект.Записать();
	
	ЭлементВидовКонтактнойИнформации = Справочники.ВидыКонтактнойИнформации["АдресСправочникСправочник1"];
	ЭлементВидовКонтактнойИнформацииОбъект = ЭлементВидовКонтактнойИнформации.ПолучитьОбъект();
	ЭлементВидовКонтактнойИнформацииОбъект.Используется = Истина;
	ЭлементВидовКонтактнойИнформацииОбъект.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
	ЭлементВидовКонтактнойИнформацииОбъект.Записать();
	// Конец
	
	
	// СтандартныеПодсистемы.КонтактнаяИнформация
	УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, "ГруппаКонтактнаяИнформация");
	// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры

Запускаем, можно вводить адрес!
Файл .cfu с указанными изменениями приложен.

0

Скачать файлы

Наименование Файл Версия Размер
Поле адреса в своем справочнике на примере 1С:Бухгалтерия 3:
.cfu 1,64Mb
16.05.19
0
.cfu 1,64Mb Скачать

См. также

Специальные предложения

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение