Имя: Пароль:
1C
1С v8
Кнопка внешней обработки заполнения табличной части
0 Блондинистая Ромашка
 
15.11.24
16:17
Управляемые формы.
Сделала обработку заполнения табличной части. Мне не нравится что эта кнопка висит в шапке документа. Хочу её по-человечески как было на обычных формах разместить на командной панели этой табличной части.
Такое возможно сделать? Как?

Обычный текст в модуле объекта внешней обработки

Функция СведенияОВнешнейОбработке() Экспорт
	
	Назначения = Новый Массив ;
	Назначения.Добавить("Документ.ИнвентаризацияТМЦВЭксплуатации") ;
	
	ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
	ПараметрыРегистрации.Вставить("Назначение",Назначения);
	ПараметрыРегистрации.Вставить("Наименование","Заполнить по названию партии");
	ПараметрыРегистрации.Вставить("Версия","1.0");
	ПараметрыРегистрации.Вставить("Информация","Дополнительная обработка табличной части Инвентаризация ТМЦ в экплуатации");
	ПараметрыРегистрации.Вставить("БезопасныйРежим",Истина);
	
	Команды = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(Команды, "Заполнить по партиям","ЗаполнитьДокумент","ОткрытиеФормы",Истина,) ;
	
	ПараметрыРегистрации.Вставить("Команды",Команды) ;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции


Функция ПолучитьТаблицуКоманд()
	Команды = Новый ТаблицаЗначений ;
	Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
	Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
	Возврат Команды ;
КонецФункции	

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = Представление;
	НоваяКоманда.Идентификатор = Идентификатор;
	НоваяКоманда.Использование = Использование;
	НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
	НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
1 Мультук
 
15.11.24
16:13
(0)

1) Ответ на вопрос "а почему оно там" (см рис)

2) А как сделать так, чтобы это подменю висело не там

Идём в модуль МодификацияКонфигурацииПереопределяемый

И там пишем код

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
   Если Форма.ИмяФормы = "Документ.ИнвентаризацияТМЦВЭксплуатации.Форма.ФормаДокумента" Тогда
        //Тут пишем код. Поменять родителя у элемента "ПодменюЗаполнить"
        //Мне лень -- гуглите
   КонецЕсли;
КонецПроцедуры


ну или "Расширение" и передвинуть руками
2 ZaЖизнь
 
15.11.24
16:16
3 Блондинистая Ромашка
 
15.11.24
16:22
(1) ну неее, общий модуль ради внешней обработки менять... неее...

расширение как вариант.
4 Блондинистая Ромашка
 
15.11.24
16:24
(2) я в конфигурацию ради такой ерунды паруразовой не лезу, документ не меняю. Для этого специально внешние обработки придуманы.
5 yopQua
 
16.11.24
18:00
поговорили
ТСу в кокетном ландо конечно виднее
6 osa1C
 
16.11.24
18:36
(3) сказано про общий модуль Переопределяемый! Переопределяемые модули и созданы в 1С чтобы вы их меняли, не задевая основную конфигурацию. Матчасть то надо знать. Не хочешь снимать конфигурацию с замка, то меняй этот переопределяемый модуль в расширении.
7 osa1C
 
16.11.24
18:42
В конце концов программно создайте кнопку и к ней прикрутите свою обработку. И это тоже можно сделать в расширении
8 yopQua
 
16.11.24
20:34
можно даже свою софтину сделать, которая будет делать тоже самое снаружи, тогда конфу вобще трогать не придется
еп-еп
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.