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

17.05.19

Разработка - Механизмы типовых конфигураций

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

Скачать исходный код

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

Публикация является продолжением темы 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 с указанными изменениями приложен.

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

См. также

Связь настроек спецификации и настроек структуры заказа в ЕРП 2.5

Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Проблемы при создании ресурсной спецификации. Связь настроек спецификации и настроек структуры заказа в ЕРП 2.5.

06.05.2024    392    It-digit    1    

2

Ценовая власть. Выносим из цикла схему СКД

Механизмы типовых конфигураций Ценообразование, анализ цен Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    607    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    482    tango    5    

4

Ценовая власть. Второй сезон

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

В первом сезоне мы рассмотрели (с точки зрения программиста) внутренний механизм, помещающий цены в регистр "Цены". Из этого регистра цена попадает в исходящие УПД (в продажи). Но эта цена (в прайс-листе) дифференцирована (ценообразована) в разрезах свойств самой номенклатуры. Но стратегия ценообразования, ценовая власть - это в первую очередь о работе с ценами для клиента. И тут вступает в дело второй акт марлезонского, Скидки (наценки) и кешбек.

08.04.2024    842    tango    0    

2

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    688    tango    12    

2

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2851    YA_418728146    11    

48

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1359    8    2ncom    6    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    5225    mrXoxot    11    

104
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1002251 08.11.19 12:21 Сейчас в теме
При закрытии формы адрес не сохраняется
alexeyvs77; user1669605; +2 Ответить
2. Greek26rusa 2 03.12.19 23:52 Сейчас в теме
Как можно в форму добавить свое поле( точней как добавить я нашел) как из него сохранить также динамически

допустим у справочника есть 10 адресов и у каждого должен быть свой склад. Подскажите?
3. user1129453 31.01.21 10:02 Сейчас в теме
А как то же самое сделать в расширении? Если в расширении нельзя добавлять предопределенные элементы в справочник "Виды контактной информации"?
alexeyvs77; +1 Ответить
8. bilex 12.11.22 19:04 Сейчас в теме
(3) Нужно программно создать группу справочника ВидыКонтактнойИнформации, и заполнить реквизит ИмяПредопределенногоВида как СправочникСправочник1, далее уже в режиме предприятия можно создать элемент справочника.
user1804494; +1 Ответить
4. iCortezik 8 11.02.21 13:02 Сейчас в теме

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


желательно добавить "Экспорт"


&НаСервере
Процедура Подключаемый_ОбновитьКонтактнуюИнформацию(Результат) Экспорт
	
	УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
	
КонецПроцедуры
Показать
bprogs; Wersia; +2 Ответить
5. user1669605 25.09.21 18:53 Сейчас в теме
При закрытии формы и у меня данные не сохраняются.

Экспорт не помог
6. supermoonstar 14.02.22 10:29 Сейчас в теме
(5) т.к. надо процедуры ПриСозданииНаСервере, ПередЗаписьюНаСервере и д.р. создавать в модуле а не копированием. P.S. может кому пригодиться...
7. verniypro 6 23.02.22 17:53 Сейчас в теме
(6) можно и скопировать, но потом нужно привязать.
9. FilippovRI 73 30.03.23 18:32 Сейчас в теме
Пример для обработки
Два реквизита формы
Адрес и ПредставлениеАдреса с типом строка
На самой форме выведен Адрес - надпись с флагом гиперссылка

&НаКлиенте
Процедура АдресНажатие(Элемент)
	
	ВидАдреса = ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица");
	РедактироватьАдрес(Элемент, ВидАдреса);
	
КонецПроцедуры

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


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

	Сохранить();
	
КонецПроцедуры


&НаСервере
Процедура Сохранить() 
	КлючОбъекта  = "ОбработкаВводаАдреса";
	КлючНастроек = "ВводАдреса";
	Настройки  = Новый Структура("Адрес,Представление", Адрес,Представление);
	ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки,,ИмяПользователя());
	
КонецПроцедуры  



&НаСервере
Процедура Восстановить() 
	СтруктураОбщихПараметров = Неопределено;
	СтруктураОбщихПараметров = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ОбработкаВводаАдреса", "ВводАдреса", , , ИмяПользователя());
	Если ТипЗнч(СтруктураОбщихПараметров) = Тип("Структура") Тогда
		Если СтруктураОбщихПараметров.Свойство("Адрес") Тогда 
			Адрес =  СтруктураОбщихПараметров.Адрес;
			
			Если СтруктураОбщихПараметров.Свойство("Представление") Тогда 
				Представление = СтруктураОбщихПараметров.Представление; 
				Элементы.Адрес.Заголовок = Представление;	
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Восстановить();
КонецПроцедуры
Показать
AlexsVola; Infected; +2 Ответить
Оставьте свое сообщение