Обращение к реквизитам Юридического и Фактического адреса контрагента

1. Lllypuk 27.04.21 10:22 Сейчас в теме
Всем привет! Подскажите, обращаюсь НаСервере к ревизитам контрагента к Фактическому и Юридическому адресу вот так:
КонтактнаяИнформация = Объект.Контрагент.КонтактнаяИнформация;
		Для Каждого Элемент Из КонтактнаяИнформация Цикл
			  Вид = Элемент.Вид.Наименование;
			  Пред = Элемент.Представление;
			   Сообщить(Вид);
		   		Сообщить(Пред);
	         КонецЦикла; 
Показать

Адреса выводятся успешно + еще почта и телефоны и так далее. Мне необходимо обработать если адреса фактического или юридического нету. Проверил данную переменную "Вид" он строковый. Пробовал сделать так:
Факт = Найти(СтрокаНомер1, "Фактический");
				Сообщить(Факт);

и так
СтрокаНомер1 =  СтрПолучитьСтроку(Вид, 1); 
			 Сообщить("1" + СтрокаНомер1); 

и так
Если НЕ СтрНайти(Вид, "Фактический") Тогда
				Сообщить("Фактический адрес не заполнен");
			КонецЕсли;

И еще куча разных способов, но не один не срабатывает. Если по словам ищу то возвращается значение 0, что его там нету. Помогите пожалуйста как решить данную проблему. За ранее всем спасибо!
По теме из базы знаний
Найденные решения
8. burgomister 59 27.04.21 16:36 Сейчас в теме
(7) надо сравнивать так:

справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") = Неопределено

А вообще лучше запросом всё это делать.

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КонтрагентыКонтактнаяИнформация.Ссылка КАК Ссылка,
		|	КонтрагентыКонтактнаяИнформация.Представление КАК Представление,
		|	КонтрагентыКонтактнаяИнформация.Вид КАК Вид
		|ИЗ
		|	Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
		|ГДЕ
		|	КонтрагентыКонтактнаяИнформация.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", Объект.Контрагент);
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		Если Выборка.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") Тогда
			
		ИначеЕсли Выборка.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Юридический адрес") Тогда
			
		КонецЕсли;
	КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. burgomister 59 27.04.21 10:55 Сейчас в теме
Пишите, пожалуйста, конфигурацию.
В Бухгалтерии "Вид" - это "СправочникСсылка.ВидыКонтактнойИнформации"
3. Lllypuk 27.04.21 10:57 Сейчас в теме
(2) 1С:Комплексная автоматизация 2 (2.4.13.136)
Я обращаюсь из документа "заказ клиента"
4. burgomister 59 27.04.21 11:25 Сейчас в теме
И в комплексной то же самое.
Это не строковый вид.
Вид = Элемент.Вид;
Если Вид = Справочники.Контрагенты.ФактАдресКонтрагента Тогда
5. Lllypuk 27.04.21 11:43 Сейчас в теме
(4) А как узнать где у меня этот реквизит "ФактАдресКонтрагента" в контрагентах такого нету. При выполнении кода пишет "Поле объекта не обнаружено ФактАдресКонтрагента"
6. burgomister 59 27.04.21 11:59 Сейчас в теме
Первый раз ошибся, извините.

спр = Справочники.Контрагенты.НайтиПоНаименованию("аа");

Для каждого Контрагент из спр.КонтактнаяИнформация цикл
	
	Если Контрагент.Вид = справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента Тогда
		// ляляля
	КонецЕсли;
	
конеццикла;
Показать


Если конфигурация у вас не изменённая. "ВидыКонтактнойИнформации" - это предопределённый элемент.
Либо ищете по наименованию:
Если Контрагент.Вид = справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") Тогда
7. Lllypuk 27.04.21 16:19 Сейчас в теме
(6)
Если Контрагент.Вид = справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") Тогда

Работает. Выводит просто строку "Фактический адрес" если он есть у контрагента, если его нету то ничего не выводит. Не пойму только делаю
Если НЕ Контрагент.Вид = справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") Тогда
и
 Если Контрагент.Вид <> справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") Тогда
тогда все ломается и не понятно как отрабатывает
8. burgomister 59 27.04.21 16:36 Сейчас в теме
(7) надо сравнивать так:

справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") = Неопределено

А вообще лучше запросом всё это делать.

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КонтрагентыКонтактнаяИнформация.Ссылка КАК Ссылка,
		|	КонтрагентыКонтактнаяИнформация.Представление КАК Представление,
		|	КонтрагентыКонтактнаяИнформация.Вид КАК Вид
		|ИЗ
		|	Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
		|ГДЕ
		|	КонтрагентыКонтактнаяИнформация.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", Объект.Контрагент);
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		Если Выборка.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") Тогда
			
		ИначеЕсли Выборка.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Юридический адрес") Тогда
			
		КонецЕсли;
	КонецЦикла;
Показать
9. Lllypuk 28.04.21 13:34 Сейчас в теме
(8)Спасибо за помощь, все получилось, но так сравнение с "Неопределено", "0", " ", не сработало почему-то( Всегда никакого результата не выдавало. Обработал только так :
Если Выборка.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес") Тогда
			Отказ = Истина;
			Возврат;
		Иначе
			 Сообщить("тест");
			 Отказ = Истина;
			Возврат;
		КонецЕсли;

Показать
10. burgomister 59 28.04.21 13:42 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот