Расскажу, как это можно сделать, если у вас конфигурация на БСП. Если что не так или можно проще, пишите комментарии - буду рад.
1. В расширение добавляем процедуру общего модуля СозданиеНаОснованииПереопределяемый и добавляем свой документ.
&Перед("ПриОпределенииОбъектовСКомандамиСозданияНаОсновании")
Процедура Моя_ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты)
//- Комментарий 28.02.2024
Объекты.Добавить(Метаданные.Документы.Мой_НовыйДокумент);
//
КонецПроцедуры
2. В формах в командную панель добавляем подменю как на картинке (копируем из другого документа).
3. В модуле менеджера своего документа добавляем в процедуру все документы, которые вводятся на основании. Первым пунктом мы видим как раз добавление своей команды. Команда вызывает Общий модуль с галкой Клиент, а в нем процедуру "СоздатьЗаявкинаРасходДС".
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
//+ Комментарий 28.02.2024 13:07:11
// добавляем возможность распределить заявку на конкретную партию номенклатуры
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаявкаНаРасходованиеДенежныхСредств) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.ОбщиеМодули.МойКлиентскийМодуль.ПолноеИмя();
КомандаСоздатьНаОсновании.Обработчик = "СоздатьЗаявкиНаРасходДС";
КомандаСоздатьНаОсновании.Представление = "Заявка на расходование ДС (с распределением)";
КонецЕсли;
//для документов из конфигурации этот код сработает
Документы.ЗаказПоставщику.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
// чтобы отработал код для своего документа нужно еще добавить в их модуль менеджера код из п.4
Документы.МойДокумент.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КонецПроцедуры
4. В модуле менеджера своих документов добавляем
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСоздатьНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.МойДокумент) Тогда
КомандаСоздатьНаОсновании = КомандыСоздатьНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.МойДокумент.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.МойДокумент);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
4. Если до этого вы использовали обычный подход для указания того, что документ является основание для других документов, то у вас возможно появится два подменю "Создать на основании"
Что интересно, в форме документа у меня такой проблемы не было, а вот в форме списка проблема нарисовалась. Решить сумел только отключением галок в конфигураторе.
5. По умолчанию подменю отображается как картинка, но это неудобно для пользователей - метиться надо. Внизу как включить текст.
Тестировалось на платформе 8.3.23.2040. На конфигурации ERP.
Добавляем в избранное и читаем другие мои публикации.
Из той же серии:
1. Условное оформление строк и полей Таблицы значений и Дерева значений (готовый код)
2. Создание нового элемента из поля формы с заполнением реквизитов
3. Выполнение любой дополнительной обработки в фоне
4. Расшифровка отчета. Код, который я использую
5. Прикрепляем файл к новому документу (БСП). Простенькая шпаргалка.