Отбор по организации в обработке

1. user1809279 27.08.24 09:59 Сейчас в теме
Здравствуйте, такой вопрос. Помогите правильно сформулировать код

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

Показать

В обработке хочу сделать отбор документов по организации, в самой обработке реквизита организации нет, есть только реквизит отбор, в котором выбирается организация
По теме из базы знаний
Найденные решения
44. yispepotri 27.08.24 15:09 Сейчас в теме
(43) в эту клиентскую процедуру ОтборНачалоВыбора добавить прописать данный код

СтандартнаяОбработка = Ложь;	
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
	ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений

ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации");

	ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
	        ЭтаФорма, , , , ОбработкаВыбора);
Показать



/// после выбора организация, выполнится эта процедура и если массив был не пустой, тогда заполнятся данные по процедуре ЗаполнитьДанныеНаСервере
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт

Если Значение = Неопределено Тогда выбрать - вернется
Возврат;
КонецЕсли;


ЗаполнитьДанныеНаСервере(МассивОрганизаций);

КонецПроцедуры
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. yispepotri 27.08.24 10:10 Сейчас в теме
(1) эта форма списка документов?
4. user1809279 27.08.24 10:18 Сейчас в теме
(2) Нет, это форма обработки
6. yispepotri 27.08.24 10:19 Сейчас в теме
(4)
я просто пытаюсь понять отбор документов это в каком виде будет?
отбор документов по организации
7. user1809279 27.08.24 10:21 Сейчас в теме
(6) В списке среди этих документов чтоб когда с реквизита из списка выбираешь какая организация, он отфильтровал документы, которые относятся к той организации, что выбрана в реквизите
Прикрепленные файлы:
9. yispepotri 27.08.24 10:24 Сейчас в теме
(7) при изменении отбора по организации перестраивать список с документами. Список документов вы каким образом формируете?
10. user1809279 27.08.24 10:24 Сейчас в теме
(9) Список документов по периоду формируется
11. yispepotri 27.08.24 10:26 Сейчас в теме
(10) При изменении отбора очистить список и выполнять заполнение список уже с текущем отбором с передачей параметра организации
12. user1809279 27.08.24 10:28 Сейчас в теме
13. yispepotri 27.08.24 10:57 Сейчас в теме
(12) это не вопрос был) или необходим код примера?
14. user1809279 27.08.24 11:00 Сейчас в теме
(13) Да, хотелось бы попросить примерный код как это можно реализовать
15. yispepotri 27.08.24 11:01 Сейчас в теме
(14) при условии что список документов - это динамический список
  	
&НаКлиенте
Процедура ОтборПриИзменении(Элемент)
  	Список.Параметры.УстановитьЗначениеПараметра("Организация", Организация);
	Элементы.Список.Обновить();  
КонецПроцедуры
 



в запросе сделать не обязательным значение параметр организации (если отбор не будет задан)

{ГДЕ
	Организация = &Организация
}	
16. user1809279 27.08.24 11:07 Сейчас в теме
(15)
Список.Параметры.УстановитьЗначениеПараметра("Организация", Организация);
Элементы.Список.Обновить();


Хорошо, но скорее всего не подойдет вариант, у меня таблица значений, как с ней можно это реализовать?
17. yispepotri 27.08.24 11:07 Сейчас в теме
(16) пришлите код, как она заполняется
18. user1809279 27.08.24 11:09 Сейчас в теме
(17)
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	               |	СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
	               |	СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
	               |	СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
	               |	СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
	               |	РеализацияТоваровУслугУслуги.Ссылка КАК Реализация
	               |ПОМЕСТИТЬ Вр_ТЧ
	               |ИЗ
	               |	Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
	               |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
	               |		ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
	               |ГДЕ
	               |	СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	               |	Вр_ТЧ.ДокументСчета КАК ДокументСчета,
	               |	Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
	               |	Вр_ТЧ.Контрагент КАК Контрагент,
	               |	Вр_ТЧ.Реализация КАК Реализация,
	               |	Вр_ТЧ.ИИН КАК ИИН,
	               |	АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
	               |	ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
	               |	ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
	               |	ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР
	               |ИЗ
	               |	Вр_ТЧ КАК Вр_ТЧ
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
	               |		ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
	               |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
	               |		ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
    
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
    Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
    
    ДанныеСЧ.Загрузить(Запрос.Выполнить().Выгрузить());
Показать
19. yispepotri 27.08.24 11:18 Сейчас в теме
(18)
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода


тут после периода задать параметр на организацию
{ГДЕ
    Организация = &Организация}


и при изменении отбор перестраивать таблицу значений по этом запросу, очищая предыдущие данные
20. user1809279 27.08.24 11:58 Сейчас в теме
(19) Суть поняла, но вопрос теперь как указать чтоб он с отбора брал значение(на реквизит отбора поставила путь к справочнику)
21. user1809279 27.08.24 11:59 Сейчас в теме
(19)
 Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
    Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
	Запрос.Параметры.Вставить("Организация", ОбработкаОбъект.Отбор);

В параметрах указала реквизит обработки
22. yispepotri 27.08.24 12:41 Сейчас в теме
(21) так по идее и нужно если он в объекте обработки расположен и так называется, не пробовали выполнить?
23. user1809279 27.08.24 13:02 Сейчас в теме
(22) Пробовала, не получается, сейчас делаю через второй запрос, не хочет никак видеть этот параметр, сделала сейчас через массив, в массив все падает, но запрос не выполняется

&НаСервере
Процедура ОтборПриИзмененииНаСервере()
		
	ДанныеСЧ.Очистить();     
			
	
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ТекстЗапроса1 = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	                |	СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
	                |	СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
	                |	СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
	                |	СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
	                |	РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
	                |	Организации.Ссылка КАК Организация
	                |ПОМЕСТИТЬ Вр_ТЧ
	                |ИЗ
	                |	Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
	                |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
	                |		ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
	                |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
	                |		ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
	                |ГДЕ
	                |	СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	                |	И СчетНаОплатуПокупателю.Организация В(&Организация)
	                |;
	                |
	                |////////////////////////////////////////////////////////////­////////////////////
	                |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	                |	Вр_ТЧ.ДокументСчета КАК ДокументСчета,
	                |	Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
	                |	Вр_ТЧ.Контрагент КАК Контрагент,
	                |	Вр_ТЧ.Реализация КАК Реализация,
	                |	Вр_ТЧ.ИИН КАК ИИН,
	                |	АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
	                |	ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
	                |	ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
	                |	ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
	                |	Вр_ТЧ.Организация КАК Организация
	                |ИЗ
	                |	Вр_ТЧ КАК Вр_ТЧ
	                |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
	                |		ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
	                |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
	                |		ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование
	                |ГДЕ
	                |	ЭлектронныйАктВыполненныхРабот.Организация В(&Организация)";
    
    Запрос1 = Новый Запрос;
    Запрос1.Текст = ТекстЗапроса1; 
	


    Запрос1.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
    Запрос1.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
	
	
	МассивОрганизаций = Новый  Массив;
	МассивОрганизаций.Добавить("Простое садовоческое товарищество Заря Капшагай");
	МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоНаименованию("Тест"));
	
	
	Запрос1.Параметры.Вставить("Организация", МассивОрганизаций);

	ДанныеСЧ.Загрузить(Запрос1.Выполнить().Выгрузить());
    

	
КонецПроцедуры
Показать
24. yispepotri 27.08.24 13:06 Сейчас в теме
(23)
МассивОрганизаций.Добавить("Простое садовоческое товарищество Заря Капшагай");

это что? тут вы просто текст в массив передаете


у вас есть организация с наименованием "Тест" ?
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоНаименованию("Тест"));
25. user1809279 27.08.24 13:13 Сейчас в теме
(24) Да в первом текст, но он находить его должен, а во втором организация вторая
26. yispepotri 27.08.24 13:15 Сейчас в теме
(25) почему вы думаете, что в первом он найдет? вы просто в массив добавляете текст. Не усложняйте, попробуйте просто например найти по коду и добавить в массив, а эти две строки закомментировать
27. user2033930 27.08.24 13:19 Сейчас в теме
(26)
Не усложняйте, попробуйте просто например найти по коду
А чем отличается поиск по коду от поиска по наименованию? Ну, с точки зрения "не усложнять".
29. yispepotri 27.08.24 13:22 Сейчас в теме
(27) я про то что в массив добавлялся текст обычный
28. user1809279 27.08.24 13:21 Сейчас в теме
(26)
МассивОрганизаций = Новый  Массив;
	МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000001"));
	МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("100000001"));
	
	
	Запрос1.Параметры.Вставить("Организация", МассивОрганизаций);

	ДанныеСЧ.Загрузить(Запрос1.Выполнить().Выгрузить());
    

	
КонецПроцедуры
Показать


Сделала так, но почему то все равно не ищет по организациям, все равно все показывает
30. yispepotri 27.08.24 13:24 Сейчас в теме
(28) в отладке где добавляется в массив, такие организации, ссылки на них?
31. user1809279 27.08.24 13:27 Сейчас в теме
(30) Да все верно, в массиве все правильно отоброжается
32. yispepotri 27.08.24 13:36 Сейчас в теме
(31) ну вообще интересно... отбор же по периоду срабатывает, значит и по организациям должен, если говорите массив не пустой и там есть ссылки на организации
33. user1809279 27.08.24 13:47 Сейчас в теме
(32) первый код сделала так

&НаСервере
Процедура ЗаполнитьДанныеНаСервере()
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	               |	СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
	               |	СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
	               |	СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
	               |	СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
	               |	РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
	               |	Организации.Ссылка КАК Организация
	               |ПОМЕСТИТЬ Вр_ТЧ
	               |ИЗ
	               |	Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
	               |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
	               |		ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
	               |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
	               |		ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
	               |ГДЕ
	               |	СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	               |	И СчетНаОплатуПокупателю.Организация = &Организация
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	               |	Вр_ТЧ.ДокументСчета КАК ДокументСчета,
	               |	Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
	               |	Вр_ТЧ.Контрагент КАК Контрагент,
	               |	Вр_ТЧ.Реализация КАК Реализация,
	               |	Вр_ТЧ.ИИН КАК ИИН,
	               |	АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
	               |	ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
	               |	ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
	               |	ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
	               |	Вр_ТЧ.Организация КАК Организация
	               |ИЗ
	               |	Вр_ТЧ КАК Вр_ТЧ
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
	               |		ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
	               |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
	               |		ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
    
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
    Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
	
    ДанныеСЧ.Загрузить(Запрос.Выполнить().Выгрузить());
    
КонецПроцедуры
Показать

А потом второй при изменении


&НаСервере
Процедура ОтборПриИзмененииНаСервере()
		
	ДанныеСЧ.Очистить();     
			
	
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ТекстЗапроса1 = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	                |	СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
	                |	СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
	                |	СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
	                |	СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
	                |	РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
	                |	Организации.Ссылка КАК Организация
	                |ПОМЕСТИТЬ Вр_ТЧ
	                |ИЗ
	                |	Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
	                |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
	                |		ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
	                |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
	                |		ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
	                |ГДЕ
	                |	СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	                |	И СчетНаОплатуПокупателю.Организация В(&Организация)
	                |;
	                |
	                |////////////////////////////////////////////////////////////­////////////////////
	                |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	                |	Вр_ТЧ.ДокументСчета КАК ДокументСчета,
	                |	Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
	                |	Вр_ТЧ.Контрагент КАК Контрагент,
	                |	Вр_ТЧ.Реализация КАК Реализация,
	                |	Вр_ТЧ.ИИН КАК ИИН,
	                |	АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
	                |	ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
	                |	ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
	                |	ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
	                |	Вр_ТЧ.Организация КАК Организация
	                |ИЗ
	                |	Вр_ТЧ КАК Вр_ТЧ
	                |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
	                |		ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
	                |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
	                |		ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
    
    Запрос1 = Новый Запрос;
    Запрос1.Текст = ТекстЗапроса1; 
	


    Запрос1.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
    Запрос1.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
	
	
	МассивОрганизаций = Новый  Массив;
	МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000001"));
	МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("100000001"));
	
	
	Запрос1.Параметры.Вставить("Организация", МассивОрганизаций);

	ДанныеСЧ.Загрузить(Запрос1.Выполнить().Выгрузить());
    

	
КонецПроцедуры
Показать
34. yispepotri 27.08.24 13:56 Сейчас в теме
(33) в первом коде у вас есть отбор по организации, а саму организацию в параметр никакой не передаете.

а вообще дублирование кода не очень хорошая вещь, если различия не значительны, в первый код можно передавать например массив с организациями, а во втором коде просто выполнять первый код с передачей массива организаций (или по отбору как нужно)
35. user1809279 27.08.24 14:04 Сейчас в теме
36. yispepotri 27.08.24 14:07 Сейчас в теме
(35) в этой процедуре ЗаполнитьДанныеНаСервере() выполняется сам запрос, к процедуре добавляете параметр ЗаполнитьДанныеНаСервере(массивОрганизаций)
в запрос передаете параметр массива
Запрос1.Параметры.Вставить("Организация", массивОрганизаций);



а в этой процедуре вызываете первую
Процедура ОтборПриИзмененииНаСервере()
МассивОрганизаций = Новый Массив;
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000001"));
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("100000001"));

ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
37. user1809279 27.08.24 14:17 Сейчас в теме
(36)
Запрос1.Параметры.Вставить("Организация", массивОрганизаций);

Поняла, но это немного усложняет, потому что не знаю как обратиться на клиенте к этому массиву)
38. yispepotri 27.08.24 14:23 Сейчас в теме
(37) как вариант на клиенте передавать значение Неопределено вместо массива, а в запросе сделать не обязательным

{ГДЕ
    Организация в (&Организация)}



а при установки параметра добавить условие

Если массивОрганизаций <> Неопределено Тогда
Запрос1.УстановитьПараметр("Организация", массивОрганизаций);
КонецЕсли;
39. user1809279 27.08.24 14:34 Сейчас в теме
(38) &НаСервере
Процедура ЗаполнитьДанныеНаСервере(МассивОрганизаций)
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
| СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
| СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
| РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
| Организации.Ссылка КАК Организация
|ПОМЕСТИТЬ Вр_ТЧ
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация В (&Организация)
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Вр_ТЧ.ДокументСчета КАК ДокументСчета,
| Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
| Вр_ТЧ.Контрагент КАК Контрагент,
| Вр_ТЧ.Реализация КАК Реализация,
| Вр_ТЧ.ИИН КАК ИИН,
| АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
| ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
| ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
| ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
| Вр_ТЧ.Организация КАК Организация
|ИЗ
| Вр_ТЧ КАК Вр_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
| ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
| ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";

Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));

Если МассивОрганизаций <> Неопределено Тогда
Запрос.УстановитьПараметр("Организация", МассивОрганизаций);
КонецЕсли;

ДанныеСЧ.Загрузить(Запрос.Выполнить().Выгрузить());

КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДанные(Команда)
ЗаполнитьДанныеНаСервере(Неопределено);
ПроверитьИИНКонтрагентов(Неопределено);
КонецПроцедуры

Увы не помогло,, ругается что параметр на задан
40. yispepotri 27.08.24 14:40 Сейчас в теме
(39) вместо
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация В (&Организация)


сделать так, в данном случае параметр Организация будет не обязательным

|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| {ГДЕ СчетНаОплатуПокупателю.Организация В (&Организация)}
41. user1809279 27.08.24 14:45 Сейчас в теме
(40)
{ГДЕ СчетНаОплатуПокупателю.Организация В (&Организация)}
а да получилось но все равно по двум сразу показывает, видимо нужно через условие сделать
42. yispepotri 27.08.24 14:47 Сейчас в теме
(41) так все правильно, вы же в массив два значения добавляете, поэтому по ним и выводит
43. user1809279 27.08.24 14:57 Сейчас в теме
(42) Хотела сделать через условие к значению реквизита "Отбор", но что то не идет
44. yispepotri 27.08.24 15:09 Сейчас в теме
(43) в эту клиентскую процедуру ОтборНачалоВыбора добавить прописать данный код

СтандартнаяОбработка = Ложь;	
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
	ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений

ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации");

	ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
	        ЭтаФорма, , , , ОбработкаВыбора);
Показать



/// после выбора организация, выполнится эта процедура и если массив был не пустой, тогда заполнятся данные по процедуре ЗаполнитьДанныеНаСервере
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт

Если Значение = Неопределено Тогда выбрать - вернется
Возврат;
КонецЕсли;


ЗаполнитьДанныеНаСервере(МассивОрганизаций);

КонецПроцедуры
45. user1809279 27.08.24 15:18 Сейчас в теме
(44) [IS-QUOTE]&НаКлиенте
&НаСервере
Процедура ОтборПриИзмененииНаСервере()

СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений

ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации");

ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
КонецПроцедуры

&НаКлиенте
Процедура ОтборПриИзменении(Элемент)
ОтборПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт

Если Значение = Неопределено Тогда
Возврат;
КонецЕсли;


ЗаполнитьДанныеНаСервере(МассивОрганизаций);

КонецПроцедуры
Имеете в виду так? А что вот подразумевается под закрытием формы выбора и ругается на описаниеоповещания что неизвестная переменная
46. yispepotri 27.08.24 15:23 Сейчас в теме
(45) не совсем, то что вы поместили в ОтборПриИзмененииНаСервере, нужно выполнять на клиенте, перенесите этот код в ОтборНачалоВыбора на клиенте. (на сервере вы не сможете открыть форму подбора)

а ОтборПриИзмененииНаСервере не нужно тогда

все будет выполняться
ОтборНачалоВыбора (открытие формы)
ПриЗакрытииФормыВыбора(обработка завершения выбора организаций)
ЗаполнитьДанныеНаСервере( заполнение данных)
47. user1809279 27.08.24 15:30 Сейчас в теме
(46) &НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт

Если Значение = Неопределено Тогда
Возврат ;
КонецЕсли;


ЗаполнитьДанныеНаСервере(Неопределено);

КонецПроцедуры
А что можете подсказать сюда в возврат написать?
48. yispepotri 27.08.24 16:04 Сейчас в теме
(47) ничего не надо писать, в данном случай пустой возврат означает что процедура дальше не будет выполнятся
49. user1809279 28.08.24 06:26 Сейчас в теме
(48) Поняла, но так же два значения возвращается, возможно что нужно где то еще условие добавить?
50. yispepotri 28.08.24 08:39 Сейчас в теме
(49) какие значение возвращает? по идее массив ПриЗакрытииФормыВыбора тут после выбора тот, который вы выбираете в форме подбора. Там также 2 значения?
51. user1809279 28.08.24 08:53 Сейчас в теме
(50) Да все верно, так же два значения возвращает
52. yispepotri 28.08.24 08:54 Сейчас в теме
(51) ну а вы сколько выбираете в форме подбора?
53. user1809279 28.08.24 09:07 Сейчас в теме
54. yispepotri 28.08.24 09:12 Сейчас в теме
(53) ПриЗакрытииФормыВыбора тут, Значение массив из двух организаций?
55. user1809279 28.08.24 09:51 Сейчас в теме
(54) В этот массив ничего не вводила, но при открытии формы значения два
56. yispepotri 28.08.24 09:58 Сейчас в теме
(55) а наверно в этом дело, в этой строке справочник открываете? тут вместо реализации должен быть справочник - организации-форма выбора

ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);

ОткрытьФорму("Справочник.Организации.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
57. user1809279 28.08.24 10:10 Сейчас в теме
(56) нет так же пооменяла вместо реализации на справочник
58. yispepotri 28.08.24 10:11 Сейчас в теме
(57) а всего в вашей базе больше 2 организаций?
59. user1809279 28.08.24 10:15 Сейчас в теме
(56)
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
	
	Если Значение = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	
	ЗаполнитьДанныеНаСервере(Неопределено);
	
КонецПроцедуры


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

У меня вот так сейчас
60. yispepotri 28.08.24 10:17 Сейчас в теме
(59) вместо неопределено тут должно быть Значение с массивом организаций

ЗаполнитьДанныеНаСервере(Значение  );
61. user1809279 28.08.24 10:25 Сейчас в теме
(60)
ЗаполнитьДанныеНаСервере(Значение );

А как тогда правильно обратиться к значению Массива? или нужно что то отдельное заводить для этого
62. yispepotri 28.08.24 10:28 Сейчас в теме
(61) Значение по идее и будет массив с элементами, в отладке посмотрите какого типа
63. user1809279 28.08.24 11:39 Сейчас в теме
(62) Значение получает тип ссылки на справочник, но как на клиенте его обозначить не знаю
пробовала вот так
ЗаполнитьДанныеНаСервере(ПредопределенноеЗначение("Справочник.Организации.Ссылка"));
64. yispepotri 28.08.24 11:45 Сейчас в теме
(63) нет, ссылка и нужна, просто достаточно так передать

ЗаполнитьДанныеНаСервере(Значение );
65. user1809279 28.08.24 12:08 Сейчас в теме
(64) Он все равно не передает, если так оставить
66. yispepotri 28.08.24 12:54 Сейчас в теме
(65) в этой процедуре ЗаполнитьДанныеНаСервере, параметр МассивОрганизаций пустой? в отладке
67. user1809279 28.08.24 15:27 Сейчас в теме
68. yispepotri 28.08.24 15:33 Сейчас в теме
(67) не может такого быть, если в ЗаполнитьДанныеНаСервере передаете не пустой массив или ссылку, то и в самой процедуре должно быть не пустое значение
69. user1809279 28.08.24 15:44 Сейчас в теме
(68) Не могу ничего сказать... я заполняю данные, потом в отборе выбираю, в поцедуре выбора падает, а вот в процедуре заполнения массив неопределенно и пустой
70. user1809279 28.08.24 15:45 Сейчас в теме
(68) А нет простите ошиблась, передается в массив все верно
71. yispepotri 28.08.24 15:51 Сейчас в теме
(70) в итоге все правильно работает или как?
72. user1809279 28.08.24 15:53 Сейчас в теме
(71) Нет отбор не делается, в списке все так же все документы по двум организациям
73. yispepotri 28.08.24 16:08 Сейчас в теме
(72) попробуйте запрос в консоле запросов, все так же будет или нет
74. user1809279 29.08.24 08:30 Сейчас в теме
(73) В консоли запроса параметр организации не добавляется
75. yispepotri 29.08.24 08:34 Сейчас в теме
(74) вручную создайте параметр просто
76. user1809279 29.08.24 08:50 Сейчас в теме
(75) Так нет, не выходит, вручную добавила и список не вышел
77. yispepotri 29.08.24 08:54 Сейчас в теме
(76) добавили параметр, с типом организации, и выбрали новую организацию? А по этой организации есть данные?
78. user1809279 29.08.24 08:56 Сейчас в теме
(77) Нет, обе выбирала, не выводит ни по одной из них
79. yispepotri 29.08.24 08:58 Сейчас в теме
(78) пришлите скрин запроса в консоле
80. user1809279 29.08.24 09:02 Сейчас в теме
(79) Выбрала период, документы вышли, но только 1 организацию показывает, даже если менять в параметре на другую
Прикрепленные файлы:
81. yispepotri 29.08.24 09:06 Сейчас в теме
(80) во первых имя параметра должно быть к в запросе, то есть Организация, во вторых Тест это есть такая организация?
82. user1809279 29.08.24 09:11 Сейчас в теме
(81) Да это вторая организация
83. yispepotri 29.08.24 09:13 Сейчас в теме
(82) в параметрах, имя Параметр, поменяйте на Организация и период увеличьте , у вас там время одинаковое начало и окончания
84. user1809279 29.08.24 09:23 Сейчас в теме
(83) Исправила, даже на сегодня создала документ для второй организации, все равно не берет запрос
85. yispepotri 29.08.24 09:29 Сейчас в теме
(84) период начало и окончания какой стоит? дата документа точно в него попадает?
86. user1809279 29.08.24 09:42 Сейчас в теме
(85) 29.08.2024 0:00:00 - 29.08.2024 11:22:25
Да попадает - 29.08.2024 11:22:23 дата документа
87. yispepotri 29.08.24 09:52 Сейчас в теме
(86)лучше дату окончания поставить на конец дня, а то доли секунд тоже могут решать)
88. user1809279 29.08.24 09:58 Сейчас в теме
(87) Да исправила и выводит
89. yispepotri 29.08.24 10:00 Сейчас в теме
(88) возможно в коде тоже период не тот, который нужно указываете, поэтому что-то не выводило
90. user1809279 29.08.24 10:05 Сейчас в теме
(89) Но в самой обработке же все равно две выводит, что тогда с этим делать?
91. yispepotri 29.08.24 10:11 Сейчас в теме
(90)
Если массивОрганизаций <> Неопределено Тогда
Запрос1.УстановитьПараметр("Организация", массивОрганизаций);
КонецЕсли;


это условие выполняется, параметр устанавливается?
92. user1809279 29.08.24 10:12 Сейчас в теме
93. yispepotri 29.08.24 10:17 Сейчас в теме
(92) опять же период начало и окончания какой особенно время?
94. user1809279 29.08.24 10:20 Сейчас в теме
(93) На форме у меня только дату видит
Прикрепленные файлы:
95. yispepotri 29.08.24 10:23 Сейчас в теме
(94) разные дни, так что я думаю должно попадать, тогда странно...
96. yispepotri 29.08.24 10:53 Сейчас в теме
(94) еще раз в обработке что выводит, покажите скрин?
97. user1809279 29.08.24 11:07 Сейчас в теме
(96)
Прикрепленные файлы:
98. yispepotri 29.08.24 11:10 Сейчас в теме
(97) а сам период хотя бы работает или тоже нет?) если сократить по датам
99. user1809279 29.08.24 11:15 Сейчас в теме
100. yispepotri 29.08.24 11:18 Сейчас в теме
(99) блин тогда не понятно, ну попробуйте убрать фигурные скобки у параметра организации и ГДЕ заменить на И, чтобы организация тоже была обязательным
101. user1809279 29.08.24 11:24 Сейчас в теме
(100) да исправила теперь работает, а на форме у меня кнопка заполнить данные, что вот теперь с ней делать)
102. yispepotri 29.08.24 11:30 Сейчас в теме
(101) ну можно ее оставить конечно, только проблема в том, что если не передать массив организаций, отбор не выполнится. Также не сработает отбор, если массив организаций не будет заполнено... Поэтому вроде как и нужно было использовать не обязательный параметр, но у вас почему то он не отрабатывает
103. user1809279 29.08.24 11:46 Сейчас в теме
Оставьте свое сообщение

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