Действия в рамках программы 1С могут выполняться по нажатию на кнопку или нажатием горячей комбинации клавиш на клавиатуре.
Будут рассказывать на примере расширения Поддержка пользователей [Alt+S] (подключаемое расширение)
Создаем "Своё" расширение
По сути, расширение конфигурации – это надстройка над конфигурацией, т.е. дополнение, которое использует объекты основной конфигурации, но самостоятельно работать не может. Зато позволяет доработать типовое решение, не снимая его с поддержки. Как создавать расширение 1С - отдельная тема, и информацию по ней можно поискать в интернете.
Комбинация клавиш
- Для этого добавляем в расширение глобальную команду в группу Сервис, и назначаем команде произвольную комбинацию клавиш (здесь Alt+S у вас любая своя комбинация, важно - не занятая ранее в 1С, например: Нажми на кнопку - получишь результат (горячие клавиши) (infostart.ru))

- В коде модуля команды работаем с методом АктивноеОкно(), где в зависимости от формы получаем координаты объекта: Ссылка или НавигационнаяСсылка. Далее уже работаем с этим полученным материалом (в данном примере Поддержка пользователей [Alt+S] (подключаемое расширение) (infostart.ru) открывается форма журнала обращений, привязанная к объекту, из которого произошел вызов, а например в публикации Доп. панель Alt+Z (infostart.ru) открывает панель с обработками объекта).
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
пАктивноеОкно = АктивноеОкно();
Если пАктивноеОкно = Неопределено Тогда
Возврат;
КонецЕсли;
флЕстьОшибки = Ложь;
Форма = Неопределено;
Источник = Неопределено;
НавигационнаяСсылка = Неопределено;
Попытка
Форма = пАктивноеОкно.Содержимое[0];
Исключение
флЕстьОшибки = Истина;
КонецПопытки;
Попытка
пИмяФормы = пАктивноеОкно.Содержимое[0].ИмяФормы;
Если Найти(пИмяФормы, "Форма.ФормаДокумента") > 0 Тогда
Источник = Форма.Объект.Ссылка;
ИначеЕсли Найти(пИмяФормы, "Форма.ФормаЭлемента") > 0 Тогда
Если Найти(пИмяФормы, "Справочник.ФизическиеЛица") > 0 Тогда
Источник = Форма.ФизическоеЛицо.Ссылка;
ИначеЕсли Найти(пИмяФормы, "Справочник.Сотрудники") > 0 Тогда
Источник = Форма.Сотрудник.Ссылка;
Иначе
Источник = Форма.Объект.Ссылка;
КонецЕсли;
ИначеЕсли Найти(пИмяФормы, "Форма.ФормаОтчета") > 0 Тогда
НавигационнаяСсылка = Форма.НавигационнаяСсылка;
Иначе
Попытка
Если ТипЗнч(Форма.ТекущийЭлемент) = Тип("ТаблицаФормы") Тогда
Источник = Форма.ТекущийЭлемент;
КонецЕсли;
Исключение
КонецПопытки;
КонецЕсли;
Исключение
КонецПопытки;
Если флЕстьОшибки Тогда
ПоказатьПредупреждение(Неопределено, "Не удается открыть Поддержку пользователей (Alt+S) для текущего объекта", 5, "ВНИМАНИЕ");
Иначе
suplite_Клиент.ОткрытьЖурналОбращений(Форма, Источник, НавигационнаяСсылка);
КонецЕсли;
КонецПроцедуры
Примечание: В формах объектов ссылка указана в основном объекте формы, в динамических списках объектов ссылка равна значению ТекущегоЭлемента. Отчеты, обработки, регистры это не ссылочные типы, поэтому чтобы как-то их поймать работаем с их навигационной ссылкой, методами: ПолучитьНавигационнуюСсылку(), ПолучитьПредставленияНавигационныхСсылок().
Динамическая кнопка
- Перехватываем в расширение события ПриСозданииНаСервере() из общих модулей, входящих во все типовые решения 1С: здесь перехвачены УправлениеСвойствами, ВерсионированиеОбъектов - добавляем туда вызов своего метода, который будет создавать кнопку на форме. Перехватывать можно любые модули: ПодключаемыеКоманды.ПриСозданииНаСервере(), ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере(), СобытияФорм.ПриСозданииНаСервере(), ВерсионированиеОбъектов.ПриСозданииНаСервере(), УправлениеСвойствами.ПриСозданииНаСервере() и т.д. Конкретно в расширении на котором строю пример были перехвачены те модули, т.к. они встречались в формах (когда я его делал, а это было давно, например, вызова ПодключаемыеКоманды.ПриСозданииНаСервере() в типовых формах еще не было)

Код вывода кнопки в командную панель формы suplite_Сервер.ПриСозданииНаСервере(Форма)
Процедура ПриСозданииНаСервере(Форма) Экспорт
Попытка
Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда
Если РольДоступна("ПолныеПрава")
ИЛИ РольДоступна("suplite_Чтение")
ИЛИ РольДоступна("suplite_ДобавлениеИзменение")
ИЛИ РольДоступна("suplite_Администрирование") Тогда
Если Форма.Элементы.Найти("suplite_Открыть") = Неопределено Тогда
ЭлементРодитель = Форма.Элементы.ФормаКоманднаяПанель;
Если СтрЧислоВхождений(Форма.ИмяФормы, "ФормаСписка") <> 0 И //Для Списков
Форма.Элементы.Найти("ГруппаГлобальныеКоманды") <> Неопределено Тогда
ЭлементРодитель = Форма.Элементы.ГруппаГлобальныеКоманды;
ИначеЕсли СтрЧислоВхождений(Форма.ИмяФормы, "ФормаОтчета") <> 0 И //Для отчетов
Форма.Элементы.Найти("ОсновнаяКоманднаяПанель") <> Неопределено Тогда
ЭлементРодитель = Форма.Элементы.ОсновнаяКоманднаяПанель;
КонецЕсли;
// Создадим команду
Команда = Форма.Команды.Добавить("suplite_Открыть");
Команда.Действие = "Подключаемый_ВыполнитьКоманду";
// Создадим кнопку и привяжем к ней команду
Кнопка = Форма.Элементы.Добавить("suplite_Открыть", Тип("КнопкаФормы"), ЭлементРодитель);
Кнопка.Заголовок = "Поддержка пользователей [Alt+S]";
Кнопка.ИмяКоманды = "suplite_Открыть";
Кнопка.Картинка = БиблиотекаКартинок.suplite_Картинка;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецПроцедуры
- Чтобы кнопка работала, в модуле формы должна быть процедура Подключаемый_ВыполнитьКоманду(), её вставляют почти во все типовые формы объектов и списков. Её также нужно перехватить в расширение из ОбщийМодуль.ПодключаемыеКомандыКлиент и по имени динамической кнопки (тут "suplite_Открыть") назначить своё действие.

Что в результате имеем
И нажатием комбинации клавиш Alt+S на клавиатуре, и нажатием на кнопку командной панели формы выполняется одно и то же действие. Здесь Поддержка пользователей [Alt+S] (подключаемое расширение) (infostart.ru) создается обращение в поддержку, а здесь Доп. панель Alt+Z (infostart.ru) открывается панелька с дополнительными командами.




Плюсы и минусы
| Свойство | Динамическая кнопка | Комбинация клавиш |
| Возможность вызова | Вызов доступен в формах документов и справочников, где прописаны глобальные обработчики при создании формы и подключаемые процедуры, которые можно переопределить. | Вызов доступен во всех формах без исключения (документы, справочники, регистры, отчеты, обработки, формы списков и т.д.) |
| Удобство вызова | Привычный вид для пользователей - Кнопка в командной панели формы | Не видна, необходимо помнить комбинацию |
| Реализация вызова | Требуется перехват событий и переопределение обработчиков | Просто, минимум кода, отслеживать уникальность комбинации клавиш |
P.S. Мне как-то больше легли на душу комбинации, но бухгалтерия - всё больше голосует за кнопки.
Есть, кстати, такая песенка «Бухгалтер» у группы "Комбинация", рассказывающая злободневную историю о маленьком человеке — простом бухгалтере.
Почему-то вспомнилось. Всем добра.
| Расширение: Быстрые отборы через буфер [Alt+C] Копировать, [Alt+V] Вставить | Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации клавиш [Alt+C] Копировать, [Alt+V] Вставить. |
| Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика | В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных. |
| Гарантированное проведение документов (подключаемое расширение) | Гарантированное проведение указанного в регистре сведений списка документов. Регистрируем документы к проведению с помощью произвольных отборов СКД в регистре сведений, далее запускаем фоновое проведение в нескольких потоках. Проведенные документы удаляются из регистра, по непроведенным регистрируются ошибки. |
| Ускорим проведение в 1С:Управление холдингом | В 1С:Управление холдингом есть "нехороший" запрос, который съедает значительную часть времени проведения документов. Если его подправить, то проведение заметно ускорится. |
| Динамическая кнопка VS Комбинация клавиш | Часто требуется ко всем формам или к списку форм привязать новые действия. Но как это сделать не меняя каждую форму и в идеале не меняя конфигурацию? Ниже будет описано, как запрограммировать новые действия через расширение (т.е. не меняя конфигурации) и сделать это универсально (не меняя каждую форму). |
| Параметризация печатных форм под контрагентов (подключаемое расширение) | Расширение добавляет возможности параметризации печати для контрагентов. Подробнее описано здесь //infostart.ru/1c/articles/1510459/ |
| Просмотр объектов очереди сообщений в 1С:Документооборот | В базах с бесшовной интеграцией с 1С:Документооборот есть Регистр сведений "Очередь сообщений в 1С:Документооборот". Для пользователя он мало информативен. Расширение позволяет просматривать сообщение в человеческом виде. И понимать проблему до объекта. |
| Поддержка пользователей [Alt+S] (подключаемое расширение) | Расширение, подключаемое к базе 1С для решения задач поддержки пользователей. Позволяет быстро (по кнопке или комбинации клавиш Alt+S), не выходя из программы 1С из любой формы, создать обращение к консультантам и программистам со скринами, файлами, в привязке к проблемному объекту (документу, справочнику, отчету, обработке и т.п.). Вести переписку по обращениям, отслеживать их выполнение с трудозатратами и уведомлять участников через механизмы: Telegram, Обсуждения 1С и Электронную почту. Код открыт и расширение может развиваться и быть доработано под индивидуальные потребности. |
| Интерактивная справка [Alt+I] (подключаемое расширение) | Дополнительная справка, подключаемая к базе 1С. Содержит дерево разделов и статьи. Позволяет создавать статьи с картинками, прикреплять к ним файлы и видео, а также связывать статьи с объектами 1С (документам, справочникам, отчетам). Вызывается на динамически создаваемую кнопку панели либо быстрой комбинацией клавиш Alt+I. |
| Защита объектов от изменения обменом | Расширение позволяет пользователю заблокировать объект 1С (документ, справочник) от изменения последующими загрузками данных или обменами. |
|
Вступайте в нашу телеграмм-группу Инфостарт Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
См. такжеРабота с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб) Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"! 31720 руб. 27.03.2025 89422 67 44 Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб) Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени. 6088 руб. 17.10.2025 2878 3 0 Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб) Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект. 36600 руб. 28.08.2025 9356 2 2 Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free) Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна 20.08.2024 54360 mrXoxot 44 Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free) Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса. 27.05.2024 28747 smielka 39 Инструментарий разработчика Работа с интерфейсом Программист 1С 8.3 Абонемент ($m) Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов. 1 стартмани 10.04.2023 18364 186 acces969 31 Инструментарий разработчика Универсальные функции 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 1С:Документооборот Абонемент ($m) Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований) 1 стартмани 13.10.2022 27603 254 sapervodichka 118 Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free) Питничная фантазия на возможности в разработке интерфейсов формы с помощью Платформы 1С - делаем свою подсказку. Публикация содержит готовую библиотеку программного формирования данной подсказки. 12.08.2022 15601 top_1c 39 Комментарии
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Добрый день! Идея хорошая.
На мой взгляд, правда, направление более правильное - голосовое управление. На инфостарте уже было решение 1С+python. Один минус - потоковый стрим на клиентсерверной части не поддерживался при терминальном доступе. Вот это бы конкретно развить )))
3.
sapervodichka
7623
09.08.22 09:10
Сейчас в теме
8.
sapervodichka
7623
09.08.22 12:19
Сейчас в теме
(5) В разных конфах в модулях форм внутри события ПриСозданииНаСервере полно разных вызовов [ОбщийМодуль].ПриСозданииНаСервере(...) которые можно перехватить, тут УправлениеСвойствами.ПриСозданииНаСервере перехвачем с расчетом на конфу ЗУП был.
ПодключаемыеКоманды.ПриСозданииНаСервере() ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере() СобытияФорм.ПриСозданииНаСервере() ВерсионированиеОбъектов.ПриСозданииНаСервере() УправлениеСвойствами.ПриСозданииНаСервере() и т.д. где-то есть где-то нет того или иного вызова, поэтому можно перехватить несколько модулей, в самом выводе кнопки проверяется ее наличие на форме, если уже выведена, то повторно не выводится
(8) Омагад... А подключить нужные объекты к подсистеме подключаемых команд никак было? И тогда бы завязался на неё только. Всё равно у тебя есть расширение и внести нужные модификации было несложно. А так наколхозил в типовых подсистемах БСП. Ну как бы да, задачу решил, но какой ценой? У программиста должны быть принципы.
18.
sapervodichka
7623
09.08.22 18:15
Сейчас в теме
(16) у меня большое количество баз, а решение должно быть универсальным, автономным, простым, не требующим доработок под любое типовое решение 1С. Сами подключаемые обработки о которых ты пишешь, можно использовать для заполнения по остаткам на складе, например, документа Перемещения. Я и их часто делаю, но тут не про них.
9.
sapervodichka
7623
09.08.22 12:22
Сейчас в теме
(6) ПодключаемыеКоманды подразумевают создание внешней обработки заполнения, а тут как бы в расширении не одна обработка а заложены целые подсистемы (наборы обработок, какие-то документы, справочники регистры и т.д.) цеплять их на внешнюю обработку мне было не удобно
(9) Велкам, делай любую архитектуру в расширении, но подключить к формам объектов ты мог это и нормальным образом, предусмотренным подсистемой. И в пользу внешней обработки говорит в т.ч. и модифицируемость кода на бою, что недостижимо даже с расширением (динамить базу всё равно придётся).
17.
sapervodichka
7623
09.08.22 18:12
Сейчас в теме
(15) тут как бы публикация про сравнение кнопки и комбинации, а не про конкретное расширение.
Но если интересен ответ про расширение, то оно - во-первых отлажено и не требует модификации, - во-вторых если потребует модификации, то внешняя обработка, о которой ты пишешь не особо поможет поправить код самого расширения без обновления базы. В чем профит твоего напора на решение не понимаю. У меня у самого десятки разных баз (а реально сотни), и то решение скачали десятки людей. Всем зашло - это нормально один раз поставить расширение. Внешняя обработка в довесок к расширению - не пришей собаке хвост.
21.
dhurricane
10.08.22 12:49
Сейчас в теме
(17) На всякий случай переформулирую исходный вопрос, как я его понял. Почему Вы не добавили свой вид подключаемых команд? "Целые подсистемы" же здесь не преграда.
23.
sapervodichka
7623
10.08.22 13:25
Сейчас в теме
(21) Ден, пожалуйста, напиши в чем профит от этого варианта по сравнению с текущим (это быстрее, это удобнее, это морально правильнее, зачем мне это переделать)?
Сразу поблагодарю (читал твои комменты ранее) ты по крайней мере примеры скидываешь, может твой вариант и лучше будет. Просто обдумывать за кого-то его идею я не стану, нет времени, работа сам понимаешь. Если напишут пример и он будет лучше, то я только за.
24.
dhurricane
10.08.22 14:07
Сейчас в теме
(23) Это морально правильнее. :-) Ну на мой вкус. Не могу объяснить, нет объективных аргументов.
(24) У меня есть. Это ТСО, включающее в себя лёгкость модификации и обслуживания. Приходит новый человек, который знает БСП. Он знает про подсистему подключаемых команд и мог бы легко выполнить задачу по модификации этой добавленной функциональности, но лезет разбираться в код и видит, что нет такой подключаемой команды, но есть какое-то уникальное решение с 10ю вызовами при открытии формы, из которых отрабатывает только первый, а остальные проверяют наличие результата.
Это выливается в кучу времени на изучение уникальных механизмов вместо известных большинству БСПшных. Это вопросы "а зачем было сделано так?" и т.п. В результате работодателю это обойдётся дороже, чем если бы было реализовано с использованием типовых методов.
(24) И добавлю в финале мой любимый вопрос: что ты положишь в копилку своего опыта?
В данном случае автор пилит какой-то свой механизм и благодаря тому, что ему разрешают это делать, он это делает. Но вот пришла смена конторы и в новой ему говорят "не, коллега, мы тут колхоз не приветствуем, садись и делай по-нормальному". А у него нет опыта в копилке, нет знаний механизмов БСП, нет в принципе привычки грызть вопрос "а как можно было бы правильнее сделать". зыЖ Допускаю, что опыт/знания есть, но видимо нет принципов, о которых я писал ранее. Отсутствие принципов допускает написание кода любого уровня корректности.
28.
sapervodichka
7623
10.08.22 23:49
Сейчас в теме
(27) можно с легкостью переделать на 1 перехват
ПодключаемыеКоманды.ПриСозданииНаСервере() Вместо 2 перехватов ВерсионированиеОбъектов.ПриСозданииНаСервере() УправлениеСвойствами.ПриСозданииНаСервере() - когда я то расширение делал, вызова ПодключаемыеКоманды.ПриСозданииНаСервере() не было в формах, а в разных формах было то ВерсионированиеОбъектов то УправлениеСвойствами. Вообщем, Леонид, проблемы тут нет, и надумывать её не нужно. Там лишь 1 процедура вызывается. А у программистов есть мозг. Давай расходиться, либо присылай свой код и обработку, я посмотрю. Если он лучше и удобнее, то я возьму на вооружение и буду тебе благодарен. В любом случае спасибо за критику. Прикрепленные файлы:
(27) Да я и не сходился. Если есть такой монстр и он работает, то тут речь можно вести только об оптимизации, чтобы прям красиво было. Это как 5 и 5+ в школе. У меня нет каких-то интеллектуальных доработок на эту тему. Недавно сделал вызов клиентского метода (открытие формы) через подключаемые команды, но и там всё по инструкции, ничего интересного.
Вангую, скоро ты увидишь массу моего кода, но это в личку. :)
14.
sapervodichka
7623
09.08.22 14:59
Сейчас в теме
(10) Я не могу всё предупредить по разным формам в 1С (они далеко не все стандартные), где-то есть вероятность ошибки. Чтобы в рабочей базе ошибка не помешала пользователю дальше продолжить работать на некоторых моментах поставил попытка исключение. На практике исключения не возникали, но сам оператор оставил (я перестраховщик).
13.
sapervodichka
7623
09.08.22 14:54
Сейчас в теме
(11) я не курю (>_<) напиши какой параметр передать туда?
19.
sapervodichka
7623
09.08.22 18:19
Сейчас в теме
(13) всем кто лайкает предложение использовать Метаданные.Содержит() для начала напишите, что туда передать )))
20.
dhurricane
10.08.22 12:45
Сейчас в теме
(19) Может речь была впринципе об использовании метаданных?
МетаданныеФормы = Метаданные.НайтиПоПолномуИмени(пИмяФормы);
ЭтоСправочникСотрудников = (МетаданныеФормы.Родитель() = Метеданные.Справочники.Сотрудники);
22.
sapervodichka
7623
10.08.22 13:18
Сейчас в теме
(20) пусть использую, что хотят, дальше все равно проверять имя формы и основной объект в форме сотрудника (он там в отличие от стандартного называется Сотрудник, вместо Объект) (тебе в любом случае спасибо)
(22)Согласен с Дмитрием, тоже нахлебался с этими именами форм (особенно форм списков) - каких только вариантов названий не встретишь, программисты в типовых конфигурациях сами пренебрегают своими же стандартами.
Еще одна боль - отсутствие удобной штатной возможности программно определить "основной реквизит" на форме, встречал в типовых реализацию даже с применением спец. реквизита что-то типа "ИмяОсновногоРеквизита" строкового типа, который и хранил имя "основного реквизита" формы.
(20) В БСП есть масса методов для работы с метаданными (ОМ ОбщегоНазначения) и в т.ч. для многих случаев можно использовать не сами метаданные, а ИдентификаторыОбъектовМетаданных - это удобнее и кодом они тоже сильно обвязаны.
31.
sapervodichka
7623
11.08.22 10:34
Сейчас в теме
(30) Леонид, если они тут применимы =))) напиши пример, что вместо Найти(пИмяФормы, "Справочник.Сотрудники") > 0 использовать из БСП, чтобы понять что основной объект формы не Форма.Объект, а Форма.Сотрудник?
(31) Ну, в конкретном случае я бы поставил 5 за целеустремлённость и 2 за грамотность реализации.
В механизме подключаемых команд тебе передаётся множество параметров, которые помогут ответить, откуда идёт вызов и к кому его хотели применить. Например, во внешнюю обработку заполнения с типом ОткрытиеФормы передаётся как сама исходная форма, так и объект(ы). Поэтому тут ничего выдумывать не надо, делаем по инструкции. Ты сам признал, что есть вариант подключить нужные объекты к подсистеме "Подключаемые команды". Сделай это и у тебя откроется возможность реализовать этот механизм без колхоза.
На всякий случай .
33.
sapervodichka
7623
11.08.22 13:55
Сейчас в теме
(32) спасибо, я ранее читал, но кому-нибудь обязательно пригодятся эти ссылки
Автор:
(sapervodichka)
Рейтинг: 7623 Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора. Публикация:
№ 1707418 Создание 08.08.22 22:00 Обновление 14.10.22 21:17 Статистика:
Просмотры 13181 Загрузки 0
Рейтинг
81 Комментарии 33 Характеристики:
Код открыт Да Рубрики Работа с интерфейсом Кому Программист Тип файла Нет файла Платформа 1С:Предприятие 8 Конфигурация 1C:Бухгалтерия Операционная система Не имеет значения Страна Не имеет значения Отрасль Не имеет значения Налоги Не имеет значения Вид учета Не имеет значения Доступ к файлу Бесплатно (free) |