Здравствуйте, такой вопрос. Помогите правильно сформулировать код
В обработке хочу сделать отбор документов по организации, в самой обработке реквизита организации нет, есть только реквизит отбор, в котором выбирается организация
&НаКлиенте
Процедура ОтборНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Настройки = Новый НастройкиКомпоновкиДанных;
Элемент = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Элемент.Использование = Истина;
Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");
Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Элемент.ПравоеЗначение = "Тест";
Элемент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", Настройки);
ОткрытьФорму("Справочник.Организации.ФормаВыбора", ПараметрыФормы, Элементы.);
КонецПроцедуры
ПоказатьВ обработке хочу сделать отбор документов по организации, в самой обработке реквизита организации нет, есть только реквизит отбор, в котором выбирается организация
По теме из базы знаний
- Выгрузка - загрузка данных в XML с отбором по организации
- Выгрузка данных в XML из ЛЮБЫХ / в ЛЮБЫЕ Конфигурации с отбором по организации на основании любых правил обмена данными
- Перенос документов контрагента с отбором по организации
- Настройка обмена с любой устаревшей конфигурацией на базе 8.2 через обработку "Универсальный обмен данными в формате XML" и "Конвертацию данных 2.0"
- [Расширение] Отбор по организации в форме Безналичные платежи. УТ 11
Найденные решения
(43) в эту клиентскую процедуру ОтборНачалоВыбора добавить прописать данный код
/// после выбора организация, выполнится эта процедура и если массив был не пустой, тогда заполнятся данные по процедуре ЗаполнитьДанныеНаСервере
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
Если Значение = Неопределено Тогда выбрать - вернется
Возврат;
КонецЕсли;
ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации");
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
Показать/// после выбора организация, выполнится эта процедура и если массив был не пустой, тогда заполнятся данные по процедуре ЗаполнитьДанныеНаСервере
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
Если Значение = Неопределено Тогда выбрать - вернется
Возврат;
КонецЕсли;
ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(14) при условии что список документов - это динамический список
в запросе сделать не обязательным значение параметр организации (если отбор не будет задан)
&НаКлиенте
Процедура ОтборПриИзменении(Элемент)
Список.Параметры.УстановитьЗначениеПараметра("Организация", Организация);
Элементы.Список.Обновить();
КонецПроцедуры
в запросе сделать не обязательным значение параметр организации (если отбор не будет задан)
{ГДЕ
Организация = &Организация
}
(17)
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
| СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
| СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
| РеализацияТоваровУслугУслуги.Ссылка КАК Реализация
|ПОМЕСТИТЬ Вр_ТЧ
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Вр_ТЧ.ДокументСчета КАК ДокументСчета,
| Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
| Вр_ТЧ.Контрагент КАК Контрагент,
| Вр_ТЧ.Реализация КАК Реализация,
| Вр_ТЧ.ИИН КАК ИИН,
| АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
| ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
| ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
| ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР
|ИЗ
| Вр_ТЧ КАК Вр_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
| ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
| ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
ДанныеСЧ.Загрузить(Запрос.Выполнить().Выгрузить());
Показать
(19)
В параметрах указала реквизит обработки
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
Запрос.Параметры.Вставить("Организация", ОбработкаОбъект.Отбор);
В параметрах указала реквизит обработки
(22) Пробовала, не получается, сейчас делаю через второй запрос, не хочет никак видеть этот параметр, сделала сейчас через массив, в массив все падает, но запрос не выполняется
&НаСервере
Процедура ОтборПриИзмененииНаСервере()
ДанныеСЧ.Очистить();
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТекстЗапроса1 = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
| СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
| СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
| РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
| Организации.Ссылка КАК Организация
|ПОМЕСТИТЬ Вр_ТЧ
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация В(&Организация)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Вр_ТЧ.ДокументСчета КАК ДокументСчета,
| Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
| Вр_ТЧ.Контрагент КАК Контрагент,
| Вр_ТЧ.Реализация КАК Реализация,
| Вр_ТЧ.ИИН КАК ИИН,
| АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
| ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
| ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
| ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
| Вр_ТЧ.Организация КАК Организация
|ИЗ
| Вр_ТЧ КАК Вр_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
| ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
| ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование
|ГДЕ
| ЭлектронныйАктВыполненныхРабот.Организация В(&Организация)";
Запрос1 = Новый Запрос;
Запрос1.Текст = ТекстЗапроса1;
Запрос1.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос1.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
МассивОрганизаций = Новый Массив;
МассивОрганизаций.Добавить("Простое садовоческое товарищество Заря Капшагай");
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоНаименованию("Тест"));
Запрос1.Параметры.Вставить("Организация", МассивОрганизаций);
ДанныеСЧ.Загрузить(Запрос1.Выполнить().Выгрузить());
КонецПроцедуры
Показать
(23)
это что? тут вы просто текст в массив передаете
у вас есть организация с наименованием "Тест" ?
МассивОрганизаций.Добавить("Простое садовоческое товарищество Заря Капшагай");
это что? тут вы просто текст в массив передаете
у вас есть организация с наименованием "Тест" ?
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоНаименованию("Тест"));
(26)
Сделала так, но почему то все равно не ищет по организациям, все равно все показывает
МассивОрганизаций = Новый Массив;
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000001"));
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("100000001"));
Запрос1.Параметры.Вставить("Организация", МассивОрганизаций);
ДанныеСЧ.Загрузить(Запрос1.Выполнить().Выгрузить());
КонецПроцедуры
ПоказатьСделала так, но почему то все равно не ищет по организациям, все равно все показывает
(32) первый код сделала так
А потом второй при изменении
&НаСервере
Процедура ЗаполнитьДанныеНаСервере()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
| СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
| СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
| РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
| Организации.Ссылка КАК Организация
|ПОМЕСТИТЬ Вр_ТЧ
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация = &Организация
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Вр_ТЧ.ДокументСчета КАК ДокументСчета,
| Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
| Вр_ТЧ.Контрагент КАК Контрагент,
| Вр_ТЧ.Реализация КАК Реализация,
| Вр_ТЧ.ИИН КАК ИИН,
| АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
| ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
| ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
| ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
| Вр_ТЧ.Организация КАК Организация
|ИЗ
| Вр_ТЧ КАК Вр_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
| ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
| ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
ДанныеСЧ.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
ПоказатьА потом второй при изменении
&НаСервере
Процедура ОтборПриИзмененииНаСервере()
ДанныеСЧ.Очистить();
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТекстЗапроса1 = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
| СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
| СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
| РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
| Организации.Ссылка КАК Организация
|ПОМЕСТИТЬ Вр_ТЧ
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация В(&Организация)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Вр_ТЧ.ДокументСчета КАК ДокументСчета,
| Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
| Вр_ТЧ.Контрагент КАК Контрагент,
| Вр_ТЧ.Реализация КАК Реализация,
| Вр_ТЧ.ИИН КАК ИИН,
| АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
| ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
| ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
| ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
| Вр_ТЧ.Организация КАК Организация
|ИЗ
| Вр_ТЧ КАК Вр_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
| ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
| ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
Запрос1 = Новый Запрос;
Запрос1.Текст = ТекстЗапроса1;
Запрос1.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос1.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
МассивОрганизаций = Новый Массив;
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000001"));
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("100000001"));
Запрос1.Параметры.Вставить("Организация", МассивОрганизаций);
ДанныеСЧ.Загрузить(Запрос1.Выполнить().Выгрузить());
КонецПроцедуры
Показать
(33) в первом коде у вас есть отбор по организации, а саму организацию в параметр никакой не передаете.
а вообще дублирование кода не очень хорошая вещь, если различия не значительны, в первый код можно передавать например массив с организациями, а во втором коде просто выполнять первый код с передачей массива организаций (или по отбору как нужно)
а вообще дублирование кода не очень хорошая вещь, если различия не значительны, в первый код можно передавать например массив с организациями, а во втором коде просто выполнять первый код с передачей массива организаций (или по отбору как нужно)
(35) в этой процедуре ЗаполнитьДанныеНаСервере() выполняется сам запрос, к процедуре добавляете параметр ЗаполнитьДанныеНаСервере(массивОрганизаций)
в запрос передаете параметр массива
а в этой процедуре вызываете первую
в запрос передаете параметр массива
Запрос1.Параметры.Вставить("Организация", массивОрганизаций);
а в этой процедуре вызываете первую
Процедура ОтборПриИзмененииНаСервере()
МассивОрганизаций = Новый Массив;
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000001"));
МассивОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("100000001"));
ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
(37) как вариант на клиенте передавать значение Неопределено вместо массива, а в запросе сделать не обязательным
а при установки параметра добавить условие
{ГДЕ
Организация в (&Организация)}
а при установки параметра добавить условие
Если массивОрганизаций <> Неопределено Тогда
Запрос1.УстановитьПараметр("Организация", массивОрганизаций);
КонецЕсли;
(38) &НаСервере
Процедура ЗаполнитьДанныеНаСервере(МассивОрганизаций)
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
| СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
| СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
| РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
| Организации.Ссылка КАК Организация
|ПОМЕСТИТЬ Вр_ТЧ
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация В (&Организация)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Вр_ТЧ.ДокументСчета КАК ДокументСчета,
| Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
| Вр_ТЧ.Контрагент КАК Контрагент,
| Вр_ТЧ.Реализация КАК Реализация,
| Вр_ТЧ.ИИН КАК ИИН,
| АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
| ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
| ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
| ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
| Вр_ТЧ.Организация КАК Организация
|ИЗ
| Вр_ТЧ КАК Вр_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
| ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
| ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
Если МассивОрганизаций <> Неопределено Тогда
Запрос.УстановитьПараметр("Организация", МассивОрганизаций);
КонецЕсли;
ДанныеСЧ.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДанные(Команда)
ЗаполнитьДанныеНаСервере(Неопределено);
ПроверитьИИНКонтрагентов(Неопределено);
КонецПроцедуры
Увы не помогло,, ругается что параметр на задан
Процедура ЗаполнитьДанныеНаСервере(МассивОрганизаций)
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетНаОплатуПокупателю.Дата КАК ДатаОборотаПоСчетам,
| СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
| СчетНаОплатуПокупателю.Контрагент КАК Контрагент,
| СчетНаОплатуПокупателю.Контрагент.ИдентификационныйКодЛичности КАК ИИН,
| РеализацияТоваровУслугУслуги.Ссылка КАК Реализация,
| Организации.Ссылка КАК Организация
|ПОМЕСТИТЬ Вр_ТЧ
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацияТоваровУслугУслуги.Ссылка.ДокументОснование
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО СчетНаОплатуПокупателю.Организация = Организации.Ссылка
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация В (&Организация)
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Вр_ТЧ.ДокументСчета КАК ДокументСчета,
| Вр_ТЧ.ДатаОборотаПоСчетам КАК ДатаОборотаПоСчетам,
| Вр_ТЧ.Контрагент КАК Контрагент,
| Вр_ТЧ.Реализация КАК Реализация,
| Вр_ТЧ.ИИН КАК ИИН,
| АктуальныеЭАВР.СостоянияЭАВР КАК СостоянияЭАВР,
| ЭлектронныйАктВыполненныхРабот.Дата КАК ДатаАВР,
| ЭлектронныйАктВыполненныхРабот.Ссылка КАК АВР,
| ЭлектронныйАктВыполненныхРабот.Состояние КАК СостояниеАВР,
| Вр_ТЧ.Организация КАК Организация
|ИЗ
| Вр_ТЧ КАК Вр_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АктуальныеЭАВР КАК АктуальныеЭАВР
| ПО Вр_ТЧ.Реализация = АктуальныеЭАВР.ПервичныеДокументыЭАВР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйАктВыполненныхРабот КАК ЭлектронныйАктВыполненныхРабот
| ПО Вр_ТЧ.Реализация = ЭлектронныйАктВыполненныхРабот.ДокументОснование";
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
Если МассивОрганизаций <> Неопределено Тогда
Запрос.УстановитьПараметр("Организация", МассивОрганизаций);
КонецЕсли;
ДанныеСЧ.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДанные(Команда)
ЗаполнитьДанныеНаСервере(Неопределено);
ПроверитьИИНКонтрагентов(Неопределено);
КонецПроцедуры
Увы не помогло,, ругается что параметр на задан
(39) вместо
сделать так, в данном случае параметр Организация будет не обязательным
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И СчетНаОплатуПокупателю.Организация В (&Организация)
сделать так, в данном случае параметр Организация будет не обязательным
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| {ГДЕ СчетНаОплатуПокупателю.Организация В (&Организация)}
(43) в эту клиентскую процедуру ОтборНачалоВыбора добавить прописать данный код
/// после выбора организация, выполнится эта процедура и если массив был не пустой, тогда заполнятся данные по процедуре ЗаполнитьДанныеНаСервере
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
Если Значение = Неопределено Тогда выбрать - вернется
Возврат;
КонецЕсли;
ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации");
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
Показать/// после выбора организация, выполнится эта процедура и если массив был не пустой, тогда заполнятся данные по процедуре ЗаполнитьДанныеНаСервере
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
Если Значение = Неопределено Тогда выбрать - вернется
Возврат;
КонецЕсли;
ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
(44) [IS-QUOTE]&НаКлиенте
&НаСервере
Процедура ОтборПриИзмененииНаСервере()
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации");
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
КонецПроцедуры
&НаКлиенте
Процедура ОтборПриИзменении(Элемент)
ОтборПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
Если Значение = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
Имеете в виду так? А что вот подразумевается под закрытием формы выбора и ругается на описаниеоповещания что неизвестная переменная
&НаСервере
Процедура ОтборПриИзмененииНаСервере()
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации");
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
КонецПроцедуры
&НаКлиенте
Процедура ОтборПриИзменении(Элемент)
ОтборПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
Если Значение = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьДанныеНаСервере(МассивОрганизаций);
КонецПроцедуры
Имеете в виду так? А что вот подразумевается под закрытием формы выбора и ругается на описаниеоповещания что неизвестная переменная
(45) не совсем, то что вы поместили в ОтборПриИзмененииНаСервере, нужно выполнять на клиенте, перенесите этот код в ОтборНачалоВыбора на клиенте. (на сервере вы не сможете открыть форму подбора)
а ОтборПриИзмененииНаСервере не нужно тогда
все будет выполняться
ОтборНачалоВыбора (открытие формы)
ПриЗакрытииФормыВыбора(обработка завершения выбора организаций)
ЗаполнитьДанныеНаСервере( заполнение данных)
а ОтборПриИзмененииНаСервере не нужно тогда
все будет выполняться
ОтборНачалоВыбора (открытие формы)
ПриЗакрытииФормыВыбора(обработка завершения выбора организаций)
ЗаполнитьДанныеНаСервере( заполнение данных)
(55) а наверно в этом дело, в этой строке справочник открываете? тут вместо реализации должен быть справочник - организации-форма выбора
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
ОткрытьФорму("Справочник.Организации.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
(56)
У меня вот так сейчас
&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
Если Значение = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьДанныеНаСервере(Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ОтборНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РежимВыбора",Истина);
ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ///Если хотим несколько значений
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборОрганизации");
ОткрытьФорму("Справочник.Организации.ФормаВыбора",ПараметрыФормы,
ЭтаФорма, , , , ОбработкаВыбора);
КонецПроцедуры
ПоказатьУ меня вот так сейчас
(101) ну можно ее оставить конечно, только проблема в том, что если не передать массив организаций, отбор не выполнится. Также не сработает отбор, если массив организаций не будет заполнено... Поэтому вроде как и нужно было использовать не обязательный параметр, но у вас почему то он не отрабатывает
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот