Имя: Пароль:
1C
1С v8
УТ11: Получить открытую форму списка документов
,
0 sanja26
 
30.08.12
10:53
Открыт документ, надо по команде показать его в списке документов. Если список документов в программе сейчас открыт, например в закладке, то надо спозиционироваться на данном документе в этом списке.

Проблема:
Список документов открывается в окне документа. Т.е. если используются закладки, то получаются две закладки с формами списка, только во второй есть переход по ссылке в документ, то же самое как движения открываются

Окно получаю, передаю в команду, но это не то.

текст команды:

   Окна = ПолучитьОкна();
   Для каждого Окно из Окна цикл
       Если Окно.Заголовок = "Заказы клиентов" тогда
           Окно.Активизировать();
           Прервать;
       Иначе
           Сообщить("Окно не найдено");// ла-ла
       КонецЕсли;
   КонецЦикла;    
   
   ФормаСписка = ПолучитьФорму("Документ.ЗаказКлиента.Форма.ФормаСпискаДокументов",
   //ПараметрыФормы
   ,
   //ПараметрыВыполненияКоманды.Источник
   ,
   //ПараметрыВыполненияКоманды.Уникальность
   ,
   Окно);
   Если ФормаСписка.Открыта() тогда
       Сообщить("открыта");
   Иначе
       Сообщить("херня какая-то");
   КонецЕсли;
1 vmv
 
30.08.12
10:56
затрудняюсь ответить, меня первые строки кода выбесели, полагаю тебя в будущем казнят
2 andrewks
 
30.08.12
10:57
у тебя форма находится нормально?
3 sanja26
 
30.08.12
10:59
(1) наследие 7.7, наверно, куле
4 sanja26
 
30.08.12
10:59
(2) форма не находится
5 sanja26
 
30.08.12
11:00
(4) + открытая
6 andrewks
 
30.08.12
11:01
если просто оставить ПолучитьФорму() и првоерить её открытость - находит?
7 vmv
 
30.08.12
11:02
тебе нужен Ключ и списке и Ссылка в форме документа

начни с СП и не кати бочку на 7.7, так такого бреда не было
8 sanja26
 
30.08.12
11:04
(6) с первым парметром тоже "херня какая-то")
9 sanja26
 
30.08.12
11:05
(7) и как получить ключ открытой формы списка?
10 vmv
 
30.08.12
11:07
(9) ТекущаяСтрока, если основная таблица указана или если не указазана, то тоже просто - да ты лентяй как я погляжу
11 sanja26
 
30.08.12
11:10
(10) мне надо связать полученное окно и открытую в нем форму списка
ТекущаяСтрока я сделаю, когда у меня будет форма
Например 6 закладок. в одной открыта форма списка документов, в другой документ
Жму в документе команду - должен перескочить в закладку со списком документов, а он открывается в закладке документа
12 MrStomak
 
30.08.12
11:10
(10) Так тут речь не о том, чтобы спозиционироваться на строку, тут речь о том, чтобы найти открытую форму
13 sanja26
 
30.08.12
11:11
(12) и вы тут мистер. работайте епт)
14 sanja26
 
30.08.12
11:14
У окна всего два параметра заголовок и основное
15 sanja26
 
30.08.12
13:58
Вообщем кому интересно

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


для режима закладок. Для режима в отдельных окнах надо основное окно программы отлавливать и как-то определять, что в данный момент там открыто...