Создание элемента справочника

1. user1713496 06.05.23 17:10 Сейчас в теме
Добрый день. Подскажите, пожалуйста, можно ли вместо стандартной кнопки Создать вызвать свою процедуру на форме списка справочника без редактирования стандартной командной панели?
По теме из базы знаний
Найденные решения
7. spacecraft 06.05.23 22:01 Сейчас в теме
(1) основной реквизит формы списка это ДинамическийСписок.
У элемента формы, в котором выводятся данные это динамического списка есть обработчик ПередНачаломДобавления.
Делаете в нем Отказ = Истина и вызываете свою процедуру.
Он будет срабатывать не только на кнопку Создать, но и на любые возможные действия по созданию.
user1713496; +1 Ответить
8. user1713496 06.05.23 22:04 Сейчас в теме
(7) спасибо. Я так сделал
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	КоманднаяПанель.ПодчиненныеЭлементы.ФормаСоздать.Видимость = Ложь;
	
	КомандаСоздать = ЭтаФорма.Команды.Добавить("СоздатьНовыйЭлемент");
	КомандаСоздать.Действие = "СоздатьНовыйЭлемент";
	КомандаСоздать.Заголовок = "Создать";
	
	КомандаЭлемент = Элементы.Вставить("СоздатьНовыйЭлемент", Тип("КнопкаФормы"), ЭтаФорма.КоманднаяПанель, ЭтаФорма.КоманднаяПанель.ПодчиненныеЭлементы.ФормаСкопировать); 
	КомандаЭлемент.ИмяКоманды = "СоздатьНовыйЭлемент";
	КомандаЭлемент.Заголовок = "Создать";
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 06.05.23 22:01 Сейчас в теме
(1) основной реквизит формы списка это ДинамическийСписок.
У элемента формы, в котором выводятся данные это динамического списка есть обработчик ПередНачаломДобавления.
Делаете в нем Отказ = Истина и вызываете свою процедуру.
Он будет срабатывать не только на кнопку Создать, но и на любые возможные действия по созданию.
user1713496; +1 Ответить
8. user1713496 06.05.23 22:04 Сейчас в теме
(7) спасибо. Я так сделал
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	КоманднаяПанель.ПодчиненныеЭлементы.ФормаСоздать.Видимость = Ложь;
	
	КомандаСоздать = ЭтаФорма.Команды.Добавить("СоздатьНовыйЭлемент");
	КомандаСоздать.Действие = "СоздатьНовыйЭлемент";
	КомандаСоздать.Заголовок = "Создать";
	
	КомандаЭлемент = Элементы.Вставить("СоздатьНовыйЭлемент", Тип("КнопкаФормы"), ЭтаФорма.КоманднаяПанель, ЭтаФорма.КоманднаяПанель.ПодчиненныеЭлементы.ФормаСкопировать); 
	КомандаЭлемент.ИмяКоманды = "СоздатьНовыйЭлемент";
	КомандаЭлемент.Заголовок = "Создать";
КонецПроцедуры
Показать
10. spacecraft 06.05.23 22:07 Сейчас в теме
(8) никто не запрещает пользователю нажать клавишу Insert, или вызвать контекстное меню
user1713496; +1 Ответить
11. user1713496 06.05.23 22:08 Сейчас в теме
(10) точно, этот момент я упустил, Ваш метод тоже добавлю. Спасибо
2. karamazoff 96 06.05.23 18:21 Сейчас в теме
6. Arabo_xv 5 06.05.23 19:18 Сейчас в теме
(2)
Не будте так категоричны :)
Просто посмотрите на ИТС статью с заголовком "Переопределение открываемой формы"
https://its.1c.ru/db/pubv8devui/content/187/hdoc
user1713496; +1 Ответить
3. starjevschik 06.05.23 18:40 Сейчас в теме
Ну отчего ж. В модуле справочника можно отказаться от создания элемента и вызвать требуемую процедуру.
4. karamazoff 96 06.05.23 18:51 Сейчас в теме
(3)ну-ну... лепите код в студию
5. Arabo_xv 5 06.05.23 19:15 Сейчас в теме
Я думаю вы решите свою задачу использовав обработчик в модуле менеджера справочника ОбработкаПолученияФормы()

В этом обработчике вы можете переопределять открываемую форму а также изменить параметры передаваемые в форму при открытии.
user1713496; +1 Ответить
9. user1713496 06.05.23 22:06 Сейчас в теме
(5) спасибо, но этот метод не подошел, так как нужно было вызывать процедуру с параметрами, передать которые в процедуру, которую вы указали, нет возможности. Сделал по другому.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот