Имя: Пароль:
1C
1С v8
Как установить отбор в журнале по текущему элементу справочника
0 Hotep
 
23.11.12
22:05
Подскажите как в Управляемом приложении вызвать из формы списка справочника журнал документов с установленным отбором только по тем документам, у которых в реквизитах используется текущий элемент справочника?
1 Ork
 
23.11.12
22:09
(0) Я бы заюзал динамический список с произвольным запросом. Или не динамический. Или вообще - отчет. Смотря какая задача всей затеи.
2 Hotep
 
23.11.12
22:14
Задача затеи - быстро посмотреть документы прихода/расхода по текущей кассе и при необходимости изменить/добавить документ.
3 mistеr
 
23.11.12
22:37
Критерии отбора?
4 Hotep
 
24.11.12
10:58
В самом простом варианте, с использованием формы Критерия отбора - слишком убогий функционал этой формы. Нельзя даже добавить документ копированием текущего.
5 mistеr
 
24.11.12
11:07
(4) В форме журнала нельзя копировать? Не верю.
6 Hotep
 
24.11.12
11:14
(5) В форме журнала - легко, в форме критерия отбора - нет.
7 Hotep
 
24.11.12
13:44
В итоге решил так:

В форме Журнала устанавливаю - произвольный запрос, в котором устанавливаю параметр отбора &ТекущийСчет.

В модуле формы Справочника создаю команду на открытие формы:

<code>
Процедура ОткрытьЖурналПоСчету(Команда)
   
   ПараметрОтбора = Новый Структура;
   ПараметрОтбора.Вставить("ТекущийСчет", ТекущийЭлемент.ТекущаяСтрока);
   ОткрытьФорму("ЖурналДокументов.ВсеДокументы.ФормаСписка", ПараметрОтбора,,Ложь,  );
   
КонецПроцедуры
</code>

Далее в открытой форме Журнала проверю, передан ли параметр (для того, чтобы при обычном открытии открывался журнал без отбора):

<code>
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

   Если Параметры.ТекущийСчет.Пустая() Тогда
       Список.ПроизвольныйЗапрос = Ложь;        
   Иначе
       Список.Параметры.УстановитьЗначениеПараметра("ТекущийСчет", Параметры.ТекущийСчет);
   КонецЕсли;
   
КонецПроцедуры
</code>

И, о чудо, работает!
Независимо от того, куда вы едете — это в гору и против ветра!