---
title: Добавление команд создания на основании
slug: примеры-сниппеты-бсп-и-типовые-интеграция-собственных-объектов/добавление-команд-создания-на-основании
---
# В модуле менеджера
## Добавление команд создания на основании
Если необходимо создавать какие-то объекты на основании собственного, в первую очередь нужно вывести команды создания на основании на форму документа.
Для этого:

1. Форма должна быть подключена к механизму «Подключаемые команды»
2. В модуле менеджера собственного документа нужно реализовать экспортную процедуру `ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры)`

```bsl
// Определяет список команд создания на основании.
//
// Параметры:
//  КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//  Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
 
	Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказДавальца) Тогда
		КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
		КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЗаказДавальца.ПолноеИмя();
		КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЗаказДавальца);
		КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
	КонецЕсли;
	
КонецПроцедуры
```
В этой процедуре определяется, какие документы будут создаваться на основании. Для многих типовых документов реализована экспортная процедура для добавления такой команды. Например, если нужно создавать только документы `ЗаказКлиента` и `ЗаказПоставщику` (для которых реализованы такие экспортные команды), то код может выглядеть так

```bsl
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
	Документы.ЗаказКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	Документы.ЗаказПоставщику.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	
КонецПроцедуры
```

## Интерфейс для создания команд для создания нашего объекта
Если мы хотим дать возможность так же просто создавать команды создания на основании для своего документа, то нужно так же реализовать экспортную процедуру:
```bsl

// Добавляет команду создания документа
//
// Параметры:
//   КомандыСозданияНаОсновании - ТаблицаЗначений - Таблица с командами создания на основании. Для изменения.
//       См. описание 1 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
//
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
 
    Если ПравоДоступа("Добавление", Метаданные.Документы.<МойДокумент>) Тогда
        
        КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
        КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.<МойДокумент>.ПолноеИмя();
        КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.<МойДокумент>);
        КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
		
        Возврат КомандаСоздатьНаОсновании;
		
    КонецЕсли;
	
    Возврат Неопределено;
	
КонецФункции
```
# Подключение к подсистеме "Подключаемые команды"
См. `Подключение к подсистемам - Подключение к подсистеме "Подключаемые команды"`