Итак, по пунктам:
- Создаем общую команду «НайтиВСписке»
- В свойствах команды указываем:
- Группа — Командная панель формы.Важное
- Тип параметра команды — ставим флажок «Составной тип» и отмечаем те справочники и документы, в которых мы хотим видеть нашу кнопку.
- Отображение — Картинка
- Картинка — выбираем подходящую картинку (в типовой БП 3.0 есть картинка «КнопкаНайтиВСписке»)
- Остальные свойства оставляем без изменений.
- В модуль команды помещаем следующий программный код:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
МетаИмя = ВернутьИмя(ПараметрКоманды);
НашлиОткрытую = Ложь;
Окна = ПолучитьОкна();
Для каждого Окно Из Окна Цикл
Форма = Окно.ПолучитьСодержимое();
Если Форма = Неопределено Тогда
Продолжить;
КонецЕсли;
Если Форма.ИмяФормы = МетаИмя + ".Форма.ФормаСписка" Тогда
Форма.Элементы.Список.ТекущаяСтрока = ПараметрКоманды;
Форма.Активизировать();
НашлиОткрытую = Истина;
КонецЕсли;
КонецЦикла;
Если Не НашлиОткрытую Тогда
ОткрытьФорму(МетаИмя + ".ФормаСписка", Новый Структура("ТекущаяСтрока", ПараметрКоманды));
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ВернутьИмя(ПараметрКоманды)
Возврат ПараметрКоманды.Метаданные().ПолноеИмя();
КонецФункции
Все, кнопка готова — сохраняем, запускаем, пользуемся.
Все очень просто и быстро, но есть один момент. Сейчас наша кнопка появилась и в форме элемента (документа) и в форме списка, что очевидно не имеет смысла. А вот чтобы ее убрать из форм списков, нужно зайти в каждую из форм и выключить соответствующий флажок в командном интерфейсе формы — раздел Командная панель — Важное. В принципе можно этого и не делать — нажатие на кнопку в форме списка не приведет к ошибке, зато не придется проделывать эту операцию при обновлениях. А можно и сделать …. — выбор остается за вами. Хорошего кода!
p.s.
В приведенном коде учтены замечания из комментариев, что позволило его улучшить.




+1, но перемудрили
&НаСервере
Функция ВернутьИмя(ПараметрКоманды)
Тип = ТипЗнч(ПараметрКоманды);
МетаТип = Метаданные.НайтиПоТипу(Тип);
Если Метаданные.Справочники.С
Еще замечание. Форму списка лучше открывать следующим образом:
ОткрытьФорму(ИмяФормыСписка, Новый Структура(«ТекущаяСтрока», ПараметрКоманды)),
то есть не использовать обращение к элементам формы, а использовать параметры. И в принципе, не стоит разделять случай, есть ли родительская форма или нет, существующий экземпляр формы списка должен быть найден и активирован, в противном случае открыт новый.
(1) mr zafod, (2) khaoos, Спасибо за ценные замечания! Учел их — доработал код.
много таких кнопок надо добавить:) что б работать можно было комфортно бухгвлтерии
Интересное решение. Спасибо
А комбинация Ctrl-F не подходит?
Автору спасибо. Простенько и со вкусом
раскажите как поиск по списку еще врубить! в последних версиях УТ 11, вырубили, остался тока гребанный полнотекстовый
Ведь 3.0 более продвинутая…И в ней , чтоб работать надо добавлять?..))
Да, 1с без работы программистов не оставит!
Возвращаемое значение:
Тип: ОкнаКлиентскогоПриложения.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
Примечание:
В режиме запуска ОбычноеПриложение возвращает Неопределено.
Для большей универсальности можно:
Показать
Кстати в файловой версии в режиме обычного приложения Активизировать() не отрабатывает.
По ошибке не падает, но и поверх остальных окон не отображает.
Автору однозначно +1 за идею.
Давно этого решения мне не хватало
(6) МимохожийОднако, а чем может помочь Ctrl+F в открытой форме документа? Автор описал способ как перейти к документу в списке через форму документа, а не как его найти непосредственно через открытый список.
(11) An-Aleksey, команды используются только в режиме управляемого приложения, так что заморачиваться над тем отрабатывает ли метод «Активизировать()» в режиме обычного приложения или нет в данном случае смысла не имеет.
(0), автору спасибо за приведенный пример, демонстрирующий как можно грамотно воспользоваться возможностями разработки управляемого приложения с внесением в конфигурацию минимум изменений.
(14) Не все конфигурации переведены полностью на управляемое приложение. Особенно касается самописных и сильно нетиповых конфигураций, которые писались изначально на 8.1. В таких случаях может использоваться поэтапный перевод функционала на управляемые формы.
Как правильно замечено, в таких формах не будет функционала команд, однако сами команды легко можно будет вытащить на командные панели.
Возможно и не стоит перегружать общий пример, приведенный автором. Поделился лишь тем, с чем столкнулся при адаптации данного алгоритма в свое приложение.
(16) An-Aleksey, вытащить команды на командные панели обычных форм? На сколько я знаю такое сделать при редактировании обычной формы нельзя, или я что-то не так понял?
(13) Я про режим поиска в списке. Там стандартная комбинация поиска подходит. Однако в управляемых формах предусмотрен режим поиска в Истории. Именно поэтому не нужен режим поиска в списке, который был. Для чего ищут объект в списке из формы объекта? приведи пример.
ИМХО.Нет смысла переносить функционал из предыдущего релиза платформы без нужды. Однако я ничуть не умаляю попытку добавить привычный функционал.
(17)Все верно, в обычных формах такой фокус не пройдет. Но если в конфигурации включить галку «Использовать управляемые формы в обычном приложении», то можно добавлять управляемые формы и работать с ними, в том числе, в режиме обычного приложения.
(18) МимохожийОднако, например открыли форму документа из формы обработки и нам захотелось посмотреть еще какие-либо документы этого вида, которые были оформлены до него (по каким-либо причинам, например просмотреть документы этого вида, оформленные на этого же сотрудника до этого), вместо того, чтобы искать в программе откуда можно открыть список этих документов и производить поиск уже в нем. А история в управляемом приложении, на сколько я помню, отображает историю недавно открытых форм, это немного не то, о чем идет речь.
взял работенку добавить печатную форму на управляемых формах подумав что раз в 8.1 делал то тут то что не сделать… прошло 2 вечера незаметно=) вот за это «Тип параметра команды — ставим флажок «Составной тип» и отмечаем те справочники и документы, в которых мы хотим видеть нашу кнопку.» огромное спасибо. =) пошагал дальше осваивать.
(21) Stepan_1c, а печатные формы вообще то можно делать и без вмешательства в конфигурацию =)
(22) Zigfridish, у меня нетиповая конфигурация на основе УНФ с управляемыми формами, в которой добавлены документы, для которых не включили эту команду для использования внешних печатных форм. т.е. при назначении внешней обработки не было возможности добавить этот документ в принципе. если в моем случае можно добавить как то еще печатную форму, буду рад услышать.=)
спасибо за решение