gifts2017

Названия контрагентов. Код контроля буковок "ООО","ОАО" в названии контрагента или партнера

Опубликовал Николай Переляев (nickperel) в раздел Программирование - Работа с интерфейсом

Проблема наименований контрагентов с времен начала платформы 1С ходит по кругу. Новый виток - управляемые формы 8.3 . Давайте избавимся от старой, как окаменелость мамонта, проблемы. Поциэнт и лечение на картинках.

Чтобы не ходить по кругу с разного рода обработками чистки справочников, не встречать проблем при обменах (например, насторону - с сайтом), можно приделать приведенный ниже контроль интерактивного ввода. А если вставить это во все типовые учетные конфигурации 1С, то через полгода будет экономия управленческих трудозатрат на тысячи денег.

ФормаЭлемента Справочника Контрагенты

Поле Наименование

Событие ПриИзмененииТекстаРедактирования

 

&НаКлиенте
Процедура НаименованиеИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
	
	МассивБуковок = Новый Массив;
	
	МассивБуковок.Добавить("ИП "); //ru
	МассивБуковок.Добавить("ОАО ");//ru
	МассивБуковок.Добавить("ЗАО ");//ru
	МассивБуковок.Добавить("ООО ");//ru
	МассивБуковок.Добавить("OAO ");//en
	МассивБуковок.Добавить("OOO ");//en
	
	МассивБуковок.Добавить("ИП""");//ru
	МассивБуковок.Добавить("ОАО""");//ru
	МассивБуковок.Добавить("ЗАО""");//ru
	МассивБуковок.Добавить("ООО""");//ru
	МассивБуковок.Добавить("OAO""");//en
	МассивБуковок.Добавить("OOO""");//en
	
	Оповестить = Ложь;
	Если МассивБуковок.Найти(ВРег(Лев(Текст,3))) <> Неопределено или
		 МассивБуковок.Найти(ВРег(Лев(Текст,4))) <> Неопределено Тогда
		 
		Параметр = Новый Структура;
		Параметр.Вставить("Элемент", Элемент); 
		Параметр.Вставить("Действие", "УбратьБуквы"); 
		Оповещение = Новый ОписаниеОповещения("ПредупреждениеЗакрыть", ЭтаФорма, Параметр);
		ПредупреждениеТекст = "Не надо начинать с ""ООО"", ""ИП"" и т.д.
		|Как вы потом контрагента искать, если все названия будут начинаться с ""ООО""?
		|Вводите так: Призма ООО, Иванова ИП, и т.д.";
		Оповестить = Истина;
		
	КонецЕсли;
	
	Если СтрНайти(Текст, """") > 0 или
		 СтрНайти(Текст, "'") > 0 Тогда
		Параметр = Новый Структура;
		Параметр.Вставить("Элемент", Элемент); 
		Параметр.Вставить("Действие","УбратьКавычки");
		
		Оповещение = Новый ОписаниеОповещения("ПредупреждениеЗакрыть", ЭтаФорма, Параметр);
		ПредупреждениеТекст = "Не надо кавычек. 
		|Потом вам искать контрагента будет затруднительно.";
		Оповестить = Истина;
		
	КонецЕсли; 
	
	Если Оповестить Тогда
		ПоказатьПредупреждение(Оповещение, ПредупреждениеТекст, 1000);
	КонецЕсли; 
	
КонецПроцедуры

&НаКлиенте
Процедура ПредупреждениеЗакрыть(Параметр) Экспорт
	
	Если Параметр.Действие = "УбратьКавычки" Тогда
		
		//Текст не доступен программно. Жаль
		//Объект.Наименование = СтрЗаменить(Объект.Наименование, """", "");
		//Параметр.Элемент.ТекстРедактирования = СтрЗаменить(Параметр.Элемент.ТекстРедактирования,"""","");
		
	ИначеЕсли Параметр.Действие = "УбратьБуквы" Тогда
	    Объект.Наименование = "";
		//Параметр.Элемент.ТекстРедактирования = "";
	КонецЕсли;
	
КонецПроцедуры

 

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа