Выбор контрагента программно

1. sportsmenru 30.07.21 12:08 Сейчас в теме
подскажите пожалуйста, как правильно написать код 1С:Предприятие 8.3 (8.3.18.1289):
мне надо отобрать не конкретного контрагента, а всех в группе "реконструкция"

Если 
                   Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ") 

тогда	   СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
КонецЕсли;
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
10. user5300 1063 30.07.21 12:50 Сейчас в теме +0.05 $m
(1) Можно еще проще

Если
Контрагент.ПринадлежитЭлементу(Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ"))

тогда СтатьяЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
КонецЕсли;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user995537 38 30.07.21 12:19 Сейчас в теме +0.05 $m
(1)Проще через запрос
Родитель = Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
		|	Контрагенты.Ссылка
		|ИЗ
		|	Справочник.Контрагенты КАК Контрагенты
		|ГДЕ
		|	Контрагенты.Ссылка В ИЕРАРХИИ(&Ссылка)";
	
	Запрос.УстановитьПараметр("Ссылка", Родитель);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		// Вставить обработку выборки ВыборкаДетальныеЗаписи
	КонецЦикла;
Показать
3. sportsmenru 30.07.21 12:26 Сейчас в теме
(2)
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Ссылка В ИЕРАРХИИ(&Ссылка)


Я не программист, как этот запрос в код вставить?


Если 
			  Контрагент = Справочники.Контрагенты.НайтиПоНаименованию ("РЕКОНСТРУКЦИЯ") 
тогда
			   СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию ("РЕКОНСТРУКЦИЯ");

КонецЕсли;
4. Kolesonik 14 30.07.21 12:29 Сейчас в теме
(3) этот код вам вернет только контрагентов из папки реконструкция
5. user995537 38 30.07.21 12:31 Сейчас в теме
(3)Тогда опишите задачу точнее - что Вы делаете: обработку?
6. sportsmenru 30.07.21 12:36 Сейчас в теме
(5)
тку?


Хотим, чтобы в документе ПЛАТЕЖНОЕ ПОРУЧЕНИЕ при изменении ВидОперации на "ПрочийРасход" для контрагентов которые в группе "реконструкция" подставлялась СтатьяЗатрат "реконструкция", а для остальных "прочий расход".

Увеличенный кусок кода:

Если ВидОперации = Перечисления.ВидыОперацийПлатежноеПоручение.ПеречислениеНалога Тогда
			СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.ПеречислениеНалога;
		ИначеЕсли ВидОперации = Перечисления.ВидыОперацийПлатежноеПоручение.ПрочийРасход Тогда
			СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.ПрочиеРасходыДенежныхСредств;
			///+++реконструкция
			 	Если 
			   Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ") тогда
			   СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
			   иначе 
				 СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("ПРОЧИЙ РАСХОД");
   
			   КонецЕсли;
   		 	///---реконструкция
			
		Иначе
			СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.ОплатаПоставщику;
		КонецЕсли;
Показать
8. user995537 38 30.07.21 12:42 Сейчас в теме
(6)
Родитель = Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
Если Контрагент.Родитель = Родитель Тогда
	СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
Иначе
	СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("ПРОЧИЙ РАСХОД");
КонецЕсли;


Это если по быстрому и без проверок. Единственное посмотрите в переменной с каким именем доступен Ваш контрагент.
10. user5300 1063 30.07.21 12:50 Сейчас в теме +0.05 $m
(1) Можно еще проще

Если
Контрагент.ПринадлежитЭлементу(Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ"))

тогда СтатьяЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
КонецЕсли;
7. Kolesonik 14 30.07.21 12:42 Сейчас в теме
ПапкаКонтрагент =  Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
	Если Контрагент.Родитель = ПапкаКонтрагент Тогда
			 
			   СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
	 иначе 
				 СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("ПРОЧИЙ РАСХОД");
   
        КонецЕсли;
Показать
9. Kolesonik 14 30.07.21 12:49 Сейчас в теме
А лучше так ,это на случай если справочник многоуровневый
ПапкаКонтрагент =  Справочники.Контрагенты.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
    Если Контрагент.ПринадлежитЭлементу ( ПапкаКонтрагент) Тогда
             
               СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("РЕКОНСТРУКЦИЯ");
     иначе 
                 СтатьяЗатрат  = Справочники.СтатьиЗатрат.НайтиПоНаименованию("ПРОЧИЙ РАСХОД");
   
        КонецЕсли;

Показать
11. user2102418 22.08.24 14:33 Сейчас в теме
КОД проверки, является ли выбранный контрагент поставщиком. дополнительно создаем функцию и процедуру полного цикла проверки, чтобы появлялся вопрос "Выбранный контрагент не является поставщиком". Очистить поле "Контрагент?"
Оставьте свое сообщение

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