# БСП



# Обновление справочника ИдентификаторыОбъектовМетаданных

Для обновления справочника можно запустить 1С с параметром командной строки:

**/С ЗапуститьОбновлениеИнформационнойБазы**

# Подключение функционала "Присоединенные файлы" для нового объекта

Источник: [3.39. Присоединенные файлы](https://its.1c.ru/db/bsp23doc#content:452:1)(БСП 2.3.6), [3.49. Работа с файлами](https://its.1c.ru/db/bsp312doc#content:64:hdoc) (БСП 3.1.12)

1\. Создать справочник для хранения присоединенных файлов. Для этого в качестве заготовки скопировать в конфигурацию справочник **\_ДемоПроектыПрисоединенныеФайлы** из демонстрационной конфигурации и задать ему имя по шаблону:

&lt;Префикс&gt;ПрисоединенныеФайлы,

где &lt;Префикс&gt; – имя объекта метаданных, для которого настраиваются присоединенные файлы. Например, для справочника Номенклатура справочник с файлами должен называться НоменклатураПрисоединенныеФайлы. Задать синоним, например: Присоединенные файлы (Номенклатура).

2\. У реквизита **ВладелецФайла** установить тип – «объект с файлами». Например, СправочникСсылка.Номенклатура.

3\. Включить в состав определяемых типов **ПрисоединенныйФайл** (ссылки) и **ПрисоединенныйФайлОбъект** (объекты) справочник, созданный на шаге 1. Например, СправочникСсылка.НоменклатураПрисоединенныеФайлы.

4\. Расширить состав определяемых типов **ВладелецПрисоединенныхФайлов** (ссылки) и **ВладелецПрисоединенныхФайловОбъект** (объекты, кроме документов), добавив в него тип «объект с файлами». Например СправочникСсылка.Номенклатура.

5\. Расширить состав типов свойства Источник у подписки **ПереопределитьПолучаемуюФормуПрисоединенногоФайла**, включив в него тип – справочник с файлами, созданный на шаге 1. Например, СправочникМенеджер.НоменклатураПрисоединенныеФайлы.

6\. Расширить состав типов свойства Источник подписки **УстановитьПометкуУдаленияПрисоединенныхФайловДокументов**, включив в него тип – «объект с файлами» (только документы). Например, ДокументОбъект.СчетНаОплатуПокупателю.

7\. Если при интерактивном копировании объекта, содержащего присоединенные файлы, требуется их автоматическое копирование в новый объект, то в форме объекта необходимо:

● в параметры формы добавить ключевой параметр **ЗначениеКопирования** такого же типа, как и сам объект;

● в модуле формы в процедуру **ПриЗаписиНаСервере** вставить следующий код:

```
ПрисоединенныеФайлы.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, Параметры);
```

# Содержимое таблицы "Команды" при проектировании внешних отчетов и обработок

Источник: статья "[Разбираемся с механизмом Дополнительные отчеты и обработки в БСП](https://infostart.ru/public/558559/)"

<figure class="wp-block-table" id="bkmrk-%D0%A2%D0%B8%D0%BF-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-%C2%A0-%C2%A0-%D0%97%D0%BD%D0%B0%D1%87"><table><thead><tr><th>Тип команды </th><th> Значение поля “Вид” </th><th> Вызываемая экспортная процедура </th></tr></thead><tbody><tr><td> ВызовСерверногоМетода </td><td> ПечатнаяФорма </td><td> Печать(  
 МассивОбъектов,  
 КоллекцияПечатныхФорм,  
 ОбъектыПечати,  
 ПараметрыВывода) </td></tr><tr><td> </td><td> ДополнительнаяОбработка  
 ДополнительныйОтчет  
 Отчет </td><td> ВыполнитьКоманду(  
 ИдентификаторКоманды,  
 ПараметрыВыполнения) </td></tr><tr><td> </td><td> СозданиеСвязанныхОбъектов </td><td> ВыполнитьКоманду(  
 ИдентификаторКоманды,  
 ОбъектыНазначения,  
 СозданныеОбъекты,  
 ПараметрыВыполнения) </td></tr><tr><td> </td><td> ЗаполнениеОбъекта </td><td> ВыполнитьКоманду(  
 ИдентификаторКоманды,  
 ОбъектыНазначения,  
 ПараметрыВыполнения) </td></tr><tr><td> ВызовКлиентскогоМетода </td><td> ПечатнаяФорма </td><td> &amp;НаКлиенте  
 Печать(  
 ИдентификаторКоманды,  
 ОбъектыНазначенияМассив) </td></tr><tr><td> </td><td> ДополнительнаяОбработка  
 ДополнительныйОтчет </td><td> &amp;НаКлиенте  
 ВыполнитьКоманду(  
 ИдентификаторКоманды) </td></tr><tr><td> </td><td> СозданиеСвязанныхОбъектов </td><td> &amp;НаКлиенте  
 ВыполнитьКоманду(  
 ИдентификаторКоманды,  
 ОбъектыНазначенияМассив,  
 СозданныеОбъекты) </td></tr><tr><td> </td><td> ЗаполнениеОбъекта Отчет </td><td> &amp;НаКлиенте  
 ВыполнитьКоманду(  
 ИдентификаторКоманды,  
 ОбъектыНазначенияМассив) </td></tr><tr><td> </td><td> Для всех видов </td><td> в форму передается параметр  
 ДополнительнаяОбработкаСсылка </td></tr><tr><td> ОткрытиеФормы </td><td> СозданиеСвязанныхОбъектов  
 ЗаполнениеОбъекта  
 Отчет </td><td> в форму передается дополнительный параметр  
 ОбъектыНазначения </td></tr><tr><td> </td><td> Для всех видов </td><td> в форму передаются параметры  
 ИдентификаторКоманды  
 ДополнительнаяОбработкаСсылка  
 ИмяФормы </td></tr><tr><td> </td><td> Отчет </td><td> Отчет с макетом СКД может не иметь форму, тогда будет  
 использована общая форма для отчетов по умолчанию </td></tr><tr><td> ЗаполнениеФормы </td><td> ЗаполнениеОбъекта </td><td> ВыполнитьКоманду(  
 ИдентификаторКоманды,  
 ОбъектыНазначения,  
 ПараметрыВыполнения) </td></tr><tr><td> СценарийВБезопасномРежиме </td><td> Для всех видов </td><td> см. описание в комментарии к функции  
 ДополнительныеОтчетыИОбработкиКлиентСервер  
 .ТипКомандыСценарийВБезопасномРежиме() </td></tr><tr><td> ЗагрузкаДанныхИзФайла </td><td> ДополнительнаяОбработка </td><td> см. описание в комментарии к функции  
 ДополнительныеОтчетыИОбработкиКлиентСервер  
 .ТипКомандыЗагрузкаДанныхИзФайла() </td></tr></tbody></table>

</figure>

# УНФ. Добавление нового варианта в предопределенный отчет, Подсистема “Варианты отчетов”. Используете ли Вы ее правильно?

1. Добавление варианта отчета в процедуру `ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов(Настройки)` следующего кода:  
    `ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.<em>%ИмяОтчета%</em>);`
2. В режиме предприятия выполнить следующий код “`ВариантыОтчетов.Обновить();`“

# Регистрация отчета в БП 3.0

```
Функция СведенияОВнешнейОбработке() Экспорт

РегистрационныеДанные = Новый Структура();
РегистрационныеДанные.Вставить(“Наименование”, “Отчет ‘xxx'”);
РегистрационныеДанные.Вставить(“БезопасныйРежим”, Ложь);
РегистрационныеДанные.Вставить(“Версия”, “x.xx”);
РегистрационныеДанные.Вставить(“Информация”, “Отчет ‘xxx”);
РегистрационныеДанные.Вставить(“Вид”, “ДополнительныйОтчет”);

тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить(“Идентификатор”);
тз.Колонки.Добавить(“Использование”);
тз.Колонки.Добавить(“Представление”);

НоваяСтрока = тз.Добавить();
НоваяСтрока.Идентификатор = “ОткрытьОбработку”;
НоваяСтрока.Использование = “ОткрытиеФормы”;
НоваяСтрока.Представление = “Отчет ‘XXX'”;

РегистрационныеДанные.Вставить(“Команды”, тз);

Возврат РегистрационныеДанные;

КонецФункции
```