Здравствуйте, Уважаемое сообщество! Есть для меня такая задача (учебная): Конфигурация 1С Розница 8, редакция 2.2 (базовая), нужно из стандартной формы справочник Номенклатура создать внешнюю обработку добавив (Поле: Остаток), в динамическом списке в конструкторе произвольного запроса, создала произвольный запрос и привязала к полю, прикладываю скриншот, надо теперь ее запустить в конфигурации, что-то не получается, пишет ошибку:

Помогите пожалуйста, как запустить ее в режиме пользователя, какой код нужно прописать?

```1c
    {ОбщийМодуль.ПодключаемыеКоманды.Модуль(66)}: В формах внешних отчетов и обработок
    при вызове процедуры "ПодключаемыеКоманды.ПриСозданииНаСервере"
    требуется явно указывать параметр "ПараметрыРазмещения.Источники"
    ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
```

Скриншот;
---
ПриСозданииНаСервере должен быть блок примерно такого содержания:
```1c
    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
    ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;

    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
```
 Замените его на:
```1c
    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
    ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;

    Массив = Новый Массив;
    Массив.Добавить(Метаданные.Справочники.Номенклатура);
    ПараметрыРазмещения.Источники = Массив;

    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
```
---
Вместо "СписокСтандартныйПоискНоменклатураКоманднаяПанель" используйте имя командной панели списка на вашей форме.
---
```1c
    Функция СведенияОВнешнейОбработке() Экспорт

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

    Возврат ПараметрыРегистрации;

    КонецФункции
```
---
а именно колонка нужна? я бы по хорошему сделал еще один ДинСписок Остатки и в него по выделенной номенклатуре уже с остатками по складам
---
ПриСозданииНаСервере должен быть блок примерно такого содержания:
```1c
    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
    ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;

    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
```
 Замените его на:
```1c
    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
    ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;

    Массив = Новый Массив;
    Массив.Добавить(Метаданные.Справочники.Номенклатура);
    ПараметрыРазмещения.Источники = Массив;

    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
```
---
Программный код модуля формы:

```1c
    #Область ПрограммныйИнтерфейс

    #Область ОбработчикиСобытийПодключаемогоОборудования

    &НаКлиенте
    Процедура ОповещениеПоискаПоШтрихкоду(Штрихкод, ДополнительныеПараметры) Экспорт

    Если НЕ ПустаяСтрока(Штрихкод) Тогда
    СтруктураПараметровКлиента = ПолученШтрихкодИзСШК(Штрихкод);
    ОбработатьДанныеПоКодуКлиент(СтруктураПараметровКлиента);
    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Процедура ОповещениеПоискаПоМагнитномуКоду(ТекКод, ДополнительныеПараметры) Экспорт

    Если Не ПустаяСтрока(ТекКод) Тогда
    СтруктураПараметровКлиента = ПолученМагнитныйКод(ТекКод);
    ОбработатьДанныеПоКодуКлиент(СтруктураПараметровКлиента);
    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Процедура ОповещениеОткрытьФормуВыбораДанныхПоиска(Результат, ДополнительныеПараметры) Экспорт

    Если Результат <> Неопределено Тогда
    ОбработатьДанныеПоКодуСервер(Результат);
    ОбработатьДанныеПоКодуКлиент(Результат)
    КонецЕсли;

    КонецПроцедуры

    &НаСервере
    Функция ПолученМагнитныйКод(МагнитныйКод) Экспорт

    СтруктураРезультат = ПодключаемоеОборудованиеРТВызовСервера.ПолученМагнитныйКод(МагнитныйКод, ЭтотОбъект);
    Возврат СтруктураРезультат;

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

    &НаСервере
    Функция ПолученШтрихкодИзСШК(Штрихкод) Экспорт

    СтруктураРезультат = ПодключаемоеОборудованиеРТВызовСервера.ПолученШтрихкодИзСШК(Штрихкод, ЭтотОбъект);
    Возврат СтруктураРезультат;

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

    &НаСервере
    Процедура ОбработатьДанныеПоКодуСервер(СтруктураРезультат) Экспорт

    СтрокаРезультата = СтруктураРезультат.ЗначенияПоиска[0];

    Если СтрокаРезультата.Свойство("Карта") Тогда

    ПодключаемоеОборудованиеРТВызовСервера.ВставитьПредупреждениеОНевозможностиОбработкиКарт(СтруктураРезультат, СтрокаРезультата);

    Иначе

    ЭтотОбъект.ТекущийЭлемент = Элементы.Список;
    Элементы.Список.ТекущаяСтрока = СтрокаРезультата.Номенклатура;

    КонецЕсли;

    Если СтрокаРезультата.Свойство("ТекстПредупреждения") Тогда
    СтруктураРезультат.Вставить("ТекстПредупреждения", СтрокаРезультата.ТекстПредупреждения);
    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Процедура ОбработатьДанныеПоКодуКлиент(СтруктураПараметровКлиента) Экспорт

    ОткрытаБлокирующаяФорма = Ложь;

    ПодключаемоеОборудованиеРТКлиент.ОбработатьДанныеПоКоду(ЭтотОбъект, СтруктураПараметровКлиента, ОткрытаБлокирующаяФорма);

    КонецПроцедуры

    #КонецОбласти

    #КонецОбласти

    #Область ОбработчикиСобытийФормы

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
    Если Параметры.Свойство("АвтоТест") Тогда
    Возврат;
    КонецЕсли;

    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);

    ИспользоватьПолнотекстовыйПоиск = ПолучитьФункциональнуюОпцию("ИспользоватьПолнотекстовыйПоиск");

    ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая();

    ДополнительныеКолонкиНоменклатуры = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ДополнительнаяКолонкаПриОтображенииНоменклатуры");

    УстановитьДополнительныеКолонкиНоменклатуры();

    Если ИспользоватьПолнотекстовыйПоиск Тогда

    Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда

    ИндексПолнотекстовогоПоискаАктуален = ПолнотекстовыйПоиск.ИндексАктуален();

    Иначе

    Элементы.СтрокаПоиска.Видимость = Ложь;

    КонецЕсли;

    КонецЕсли;

    // ПодключаемоеОборудование
    ПараметрыСобытийПО = Новый Структура;
    ПараметрыСобытийПО.Вставить("РегистрацияНовойНоменклатуры", Истина);
    ПодключаемоеОборудованиеРТВызовСервера.НастроитьПодключаемоеОборудование(ЭтотОбъект);
    // Конец ПодключаемоеОборудование

    КонецПроцедуры

    &НаКлиенте
    Процедура ПриОткрытии(Отказ)

    ЭтотОбъект = РеквизитФормыВЗначение("Список");
    ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка3.Форма.ФормаСписка");

    // ПодключаемоеОборудование
    МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода, СчитывательМагнитныхКарт");
    // Конец ПодключаемоеОборудование

    КонецПроцедуры

    &НаКлиенте
    Процедура ПриЗакрытии(ЗавершениеРаботы)

    // ПодключаемоеОборудование
    МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект);
    // Конец ПодключаемоеОборудование

    КонецПроцедуры

    &НаКлиенте
    Процедура ВнешнееСобытие(Источник, Событие, Данные)

    Если ВводДоступен() Тогда
    ПодключаемоеОборудованиеРТКлиент.ВнешнееСобытиеОборудования(ЭтотОбъект, Источник, Событие, Данные);
    КонецЕсли;

    КонецПроцедуры

    #КонецОбласти

    #Область ОбработчикиСобытийЭлементовШапкиФормы

    // Процедура - обработчик события "Очистка" поля формы "СтрокаПоиска".
    //
    &НаКлиенте
    Процедура СтрокаПоискаОчистка(Элемент, СтандартнаяОбработка)

    ПрименитьПоиск();

    КонецПроцедуры

    // Процедура - обработчик события "ПриИзменении" поля формы "СтрокаПоиска".
    //
    &НаКлиенте
    Процедура СтрокаПоискаПриИзменении(Элемент)

    ПрименитьПоиск();

    КонецПроцедуры

    // Процедура - обработчик события "АвтоПодбор" поля формы "СтрокаПоиска".
    //
    &НаКлиенте
    Процедура СтрокаПоискаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)

    СпискиВыбораКлиент.АвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка);

    КонецПроцедуры

    #КонецОбласти

    #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок

    &НаКлиенте
    Процедура СписокПриАктивизацииСтроки(Элемент)

    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды

    КонецПроцедуры

    #КонецОбласти

    #Область ОбработчикиКомандФормы

    #Область ОбработчикиКомандПодключаемогоОборудования

    &НаКлиенте
    Процедура ПоискПоМагнитномуКоду(Команда)

    ОбработкаТабличнойЧастиТоварыКлиент.ВвестиМагнитныйКод(ЭтотОбъект);

    КонецПроцедуры

    &НаКлиенте
    Процедура ПоискПоШтрихкоду(Команда)

    ОбработкаТабличнойЧастиТоварыКлиент.ВвестиШтрихкод(ЭтотОбъект);

    КонецПроцедуры

    #КонецОбласти

    // Процедура - обработчик команды "ИзменитьВыделенные".
    //
    &НаКлиенте
    Процедура ИзменитьВыделенные(Команда)

    ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список);

    КонецПроцедуры

    #КонецОбласти

    #Область СлужебныеПроцедурыИФункции

    &НаСервереБезКонтекста
    Функция ПолнотекстовыйПоискНаСервереБезКонтекста(СтрокаПоиска, РезультатПоиска)

    ОписаниеОшибки = ";
    РезультатПоиска = Обработки.ПодборТоваров.ПоискТоваров(СтрокаПоиска, ОписаниеОшибки);

    Если НЕ ЗначениеЗаполнено(ОписаниеОшибки) Тогда

    Возврат Ложь;

    Иначе

    Возврат Истина;

    КонецЕсли;

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

    &НаКлиенте
    Процедура ПоискПоПодстрокеНаКлиенте()

    Использование = ЗначениеЗаполнено(СтрокаПоиска);

    ГруппаОтбора = ОтборыСписковКлиентСервер.СоздатьГруппуЭлементовОтбора(
    Список.Отбор.Элементы,
    "ПоискПоПодстроке",
    ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли);

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
    ГруппаОтбора,
    "Наименование",
    СтрокаПоиска,
    Использование, ВидСравненияКомпоновкиДанных.Содержит);

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
    ГруппаОтбора,
    "Код",
    СтрокаПоиска,
    Использование, ВидСравненияКомпоновкиДанных.Содержит);

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
    ГруппаОтбора,
    "НаименованиеПолное",
    СтрокаПоиска,
    Использование, ВидСравненияКомпоновкиДанных.Содержит);

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
    ГруппаОтбора,
    "Артикул",
    СтрокаПоиска,
    Использование, ВидСравненияКомпоновкиДанных.Содержит);

    СпискиВыбораКлиент.ОбновитьСписокВыбора(Элементы.СтрокаПоиска.СписокВыбора, СтрокаПоиска);

    КонецПроцедуры

    &НаСервереБезКонтекста
    Процедура ОбновитьИндексПолнотекстовогоПоиска()

    УстановитьПривилегированныйРежим(Истина);
    ПолнотекстовыйПоиск.ОбновитьИндекс();

    КонецПроцедуры

    &НаКлиенте
    Процедура ОбновлениеИндексаПолнотекстовогоПоискаДанных()

    Состояние(НСтр("ru = 'Идет обновление индекса полнотекстового поиска ...'"));
    ОбновитьИндексПолнотекстовогоПоиска();
    Состояние(НСтр("ru = 'Обновление индекса полнотекстового поиска завершено...'"));

    ИндексПолнотекстовогоПоискаАктуален = Истина;
    ПолнотекстовыйПоискНаКлиенте();

    КонецПроцедуры

    &НаКлиенте
    Процедура ВыполнитьПолнотекстовыйПоискНаКлиенте()

    Если Не ИндексПолнотекстовогоПоискаАктуален
    И ИнформационнаяБазаФайловая Тогда

    ОписаниеОповещения = Новый ОписаниеОповещения("ВопросВыполнитьПолнотекстовыйПоискНаКлиенте", ЭтотОбъект);
    ПоказатьВопрос(ОписаниеОповещения,
    НСтр("ru='Индекс полнотекстового поиска неактуален. Обновить индекс?'"),
    РежимДиалогаВопрос.ДаНет);

    Иначе

    ПолнотекстовыйПоискНаКлиенте();

    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Процедура ВопросВыполнитьПолнотекстовыйПоискНаКлиенте(Результат, ДополнительныеПараметры) Экспорт

    Если Результат = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли;

    ПодключитьОбработчикОжидания("ОбновлениеИндексаПолнотекстовогоПоискаДанных",0.2,Истина);

    КонецПроцедуры

    &НаКлиенте
    Процедура ВопросОбработатьДанныеПоКодуКлиент(Результат, СозданиеНовогоШтрихКода) Экспорт

    Если Результат = КодВозвратаДиалога.Да Тогда
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("СозданиеНовогоШтрихКода", СозданиеНовогоШтрихКода);
    Если ЗначениеЗаполнено(Элементы.Список.ТекущийРодитель) Тогда
    ПараметрыФормы.Вставить("ЗначенияЗаполнения", Новый Структура("Родитель", Элементы.Список.ТекущийРодитель));
    КонецЕсли;
    ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаЭлемента", ПараметрыФормы);
    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Процедура ПолнотекстовыйПоискНаКлиенте()

    ГруппаОтбора = ОтборыСписковКлиентСервер.СоздатьГруппуЭлементовОтбора(
    Список.Отбор.Элементы,
    "ПоискПоПодстроке",
    ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ);

    Если НЕ ЗначениеЗаполнено(СокрЛП(СтрокаПоиска)) Тогда

    ПоискНеУдачный = Ложь;

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
    ГруппаОтбора,
    "Ссылка",
    Неопределено,
    Ложь, ВидСравненияКомпоновкиДанных.ВСписке);

    Иначе

    РезультатПоиска = Неопределено;
    ПоискНеУдачный = ПолнотекстовыйПоискНаСервереБезКонтекста(СтрокаПоиска, РезультатПоиска);

    Если Не ПоискНеУдачный Тогда

    Использование = РезультатПоиска.Номенклатура.Количество() > 0;

    ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
    ГруппаОтбора,
    "Ссылка",
    ?(Использование, РезультатПоиска.Номенклатура, Неопределено),
    Использование, ВидСравненияКомпоновкиДанных.ВСписке);

    СпискиВыбораКлиент.ОбновитьСписокВыбора(Элементы.СтрокаПоиска.СписокВыбора, СтрокаПоиска);

    КонецЕсли;

    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Процедура ПрименитьПоиск()

    Если ИспользоватьПолнотекстовыйПоиск Тогда

    ВыполнитьПолнотекстовыйПоискНаКлиенте();

    Иначе

    ПоискПоПодстрокеНаКлиенте();

    КонецЕсли;

    КонецПроцедуры

    // Конец МеханизмВнешнегоОборудования

    &НаСервере
    Процедура УстановитьДополнительныеКолонкиНоменклатуры()

    Элементы.Код.Видимость = ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код
    ИЛИ ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.КодАртикул;
    Элементы.Артикул.Видимость = ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул
    ИЛИ ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.КодАртикул;

    КонецПроцедуры

    // СтандартныеПодсистемы.ПодключаемыеКоманды
    &НаКлиенте
    Процедура Подключаемый_ВыполнитьКоманду(Команда)

    ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);

    КонецПроцедуры

    &НаСервере
    Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)

    ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);

    КонецПроцедуры

    &НаКлиенте
    Процедура Подключаемый_ОбновитьКоманды()

    ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);

    КонецПроцедуры
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды

    #КонецОбласти
```
---
Я так понимаю, здесь что-то нужно поменять:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
    Если Параметры.Свойство("АвтоТест") Тогда
    Возврат;
    КонецЕсли;

    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);

    ИспользоватьПолнотекстовыйПоиск = ПолучитьФункциональнуюОпцию("ИспользоватьПолнотекстовыйПоиск");

    ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая();

    ДополнительныеКолонкиНоменклатуры = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ДополнительнаяКолонкаПриОтображенииНоменклатуры");

    УстановитьДополнительныеКолонкиНоменклатуры();

    Если ИспользоватьПолнотекстовыйПоиск Тогда

    Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда

    ИндексПолнотекстовогоПоискаАктуален = ПолнотекстовыйПоиск.ИндексАктуален();

    Иначе

    Элементы.СтрокаПоиска.Видимость = Ложь;

    КонецЕсли;

    КонецЕсли;

    // ПодключаемоеОборудование
    ПараметрыСобытийПО = Новый Структура;
    ПараметрыСобытийПО.Вставить("РегистрацияНовойНоменклатуры", Истина);
    ПодключаемоеОборудованиеРТВызовСервера.НастроитьПодключаемоеОборудование(ЭтотОбъект);
    // Конец ПодключаемоеОборудование

    КонецПроцедуры

    &НаКлиенте
    Процедура ПриОткрытии(Отказ)

    ЭтотОбъект = РеквизитФормыВЗначение("Список");
    ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка3.Форма.ФормаСписка");

    // ПодключаемоеОборудование
    МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода, СчитывательМагнитныхКарт");
    // Конец ПодключаемоеОборудование

    КонецПроцедуры

    &НаКлиенте
    Процедура ПриЗакрытии(ЗавершениеРаботы)

    // ПодключаемоеОборудование
    МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект);
    // Конец ПодключаемоеОборудование

    КонецПроцедуры

    &НаКлиенте
    Процедура ВнешнееСобытие(Источник, Событие, Данные)

    Если ВводДоступен() Тогда
    ПодключаемоеОборудованиеРТКлиент.ВнешнееСобытиеОборудования(ЭтотОбъект, Источник, Событие, Данные);
    КонецЕсли;

    КонецПроцедуры

    #КонецОбласти
```
---
Ваш программный код:

```1c
    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
    ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;

    Массив = Новый Массив;
    Массив.Добавить(Метаданные.Справочники.Номенклатура);
    ПараметрыРазмещения.Источники = Массив;

    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
```

Выдает ошибку:

```1c
    {ВнешняяОбработка.ВнешняяОбработка3.Форма.ФормаСписка.Форма(105)}: Поле объекта не обнаружено (СписокСтандартныйПоискНоменклатураКоманднаяПанель)
    ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
```
---
Вместо "СписокСтандартныйПоискНоменклатураКоманднаяПанель" используйте имя командной панели списка на вашей форме.
---
Гуд, обработка запустилась, все как врач прописал, извините за юмор, Врачом на данный момент оказались Вы, и очень грамотным специалистом, за что Вам огромная благодарность, есть еще заминка, пните пожалуйста для ускорения!!!

В Функция СведенияОВнешнейОбработке() Экспорт
 Что прописать для регистрации внешней обработки!?
---
```1c
    Функция СведенияОВнешнейОбработке() Экспорт

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

    Возврат ПараметрыРегистрации;

    КонецФункции
```
---
Зачетный Ты человечище, Slava Kron!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Огромный респект!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
---
Удачи ТЕБЕ и всех благ в Новом году!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
---
Удачи!
---
SlavaKron, Вы на Форуме, можно еще один маленький вопросик!?
---
Да, конечно.
---
Куда прописать данный код, чтобы данная обработка открывалась только на одной организации с привязкой ИИН Организации!?

```1c
    Если НЕ МассивОбъектов[0].Организация.ИНН = "ХХХХХХХХХХХХ" Тогда Сообщить("Несанкционированное использование внешней обработки, оплатите пожалуйста лицензию!");

    Возврат;

    КонецЕсли;
```
---
В ПриСозданииНаСервере установите параметр Отказ = Истина.
---
Так это в модуле Формы, а в модуле Объекта можно прописать и под пароль!?
---
Хм, нетривиальная задача. Попробуйте создать отдельную тему, возможно другие участники форма подскажут подходящее решение.
---
Как вариант. Модуль объекта:
```1c
    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();

    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | NULL
    |ИЗ
    | Справочник.Организации
    |ГДЕ
    | ИНН В(&МассивИНН)");

    МассивИНН = Новый Массив;
    МассивИНН.Добавить("12345678");

    Запрос.УстановитьПараметр("МассивИНН", МассивИНН);

    Если Не Запрос.Выполнить().Пустой() Тогда

    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    НоваяКоманда.Идентификатор = Метаданные().Имя;
    НоваяКоманда.Представление = Метаданные().Синоним;

    КонецЕсли;

    Возврат ПараметрыРегистрации;

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

    Если Найти(ИспользуемоеИмяФайла, "e1cib\tempstorage\") <> 1 Тогда
    ВызватьИсключение "Обработку "" + Метаданные().Синоним + "" запрещено открывать интерактивно!";
    КонецЕсли;
```

Это однако не помешает скопировать форму внешней обработки в новую обработку, поэтому код модуля формы, претендующий на защиту авторских прав, лучше также выносить модуль объекта.