Как создать внешнюю обработку из стандартной формы справочник Номенклатура 1С Розница

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

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

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


Скриншот;
Прикрепленные файлы:
Найденные решения
2. SlavaKron 13.01.21 10:43 Сейчас в теме
ПриСозданииНаСервере должен быть блок примерно такого содержания:
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
	ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
	
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Замените его на:
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
	ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
	
	Массив = Новый Массив;
	Массив.Добавить(Метаданные.Справочники.Номенклатура);
	ПараметрыРазмещения.Источники = Массив;
	
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Показать
7. SlavaKron 13.01.21 11:14 Сейчас в теме
(6) Вместо "СписокСтандартныйПоискНоменклатураКоманднаяПанель" используйте имя командной панели списка на вашей форме.
9. SlavaKron 13.01.21 11:36 Сейчас в теме
(8)
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.Идентификатор = Метаданные().Имя;
	НоваяКоманда.Представление = Метаданные().Синоним;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции
Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. PhoenixAOD 60 13.01.21 10:50 Сейчас в теме
(1)а именно колонка нужна? я бы по хорошему сделал еще один ДинСписок Остатки и в него по выделенной номенклатуре уже с остатками по складам
2. SlavaKron 13.01.21 10:43 Сейчас в теме
ПриСозданииНаСервере должен быть блок примерно такого содержания:
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
	ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
	
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Замените его на:
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
	ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
	
	Массив = Новый Массив;
	Массив.Добавить(Метаданные.Справочники.Номенклатура);
	ПараметрыРазмещения.Источники = Массив;
	
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Показать
3. user1503152 13.01.21 10:45 Сейчас в теме
Программный код модуля формы:



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

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

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

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

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

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

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

&НаСервере
Процедура ОбработатьДанныеПоКодуСервер(СтруктураРезультат) Экспорт
	
	СтрокаРезультата = СтруктураРезультат.ЗначенияПоиска[0];
	
	Если СтрокаРезультата.Свойство("Карта") Тогда
		
		ПодключаемоеОборудованиеРТВызовСервера.ВставитьПредупреждениеОНевозможностиОбработкиКарт(СтруктураРезультат, СтрокаРезультата);
		
	Иначе
		
		ЭтотОбъект.ТекущийЭлемент = Элементы.Список;
		Элементы.Список.ТекущаяСтрока = СтрокаРезультата.Номенклатура;
		
	КонецЕсли;
	
	Если СтрокаРезультата.Свойство("ТекстПредупреждения") Тогда
		СтруктураРезультат.Вставить("ТекстПредупреждения", СтрокаРезультата.ТекстПредупреждения);
	КонецЕсли;
		
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// Процедура - обработчик команды "ИзменитьВыделенные".
//
&НаКлиенте
Процедура ИзменитьВыделенные(Команда)
	
	ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список);
	
КонецПроцедуры

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

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

&НаСервереБезКонтекста
Функция ПолнотекстовыйПоискНаСервереБезКонтекста(СтрокаПоиска, РезультатПоиска)
	
	ОписаниеОшибки = "";
	РезультатПоиска = Обработки.ПодборТоваров.ПоискТоваров(СтрокаПоиска, ОписаниеОшибки);
	
	Если НЕ ЗначениеЗаполнено(ОписаниеОшибки) Тогда
		
		Возврат Ложь;
		
	Иначе
		
		Возврат Истина;
		
	КонецЕсли;
	
КонецФункции

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

&НаСервереБезКонтекста
Процедура ОбновитьИндексПолнотекстовогоПоиска()
	
	УстановитьПривилегированныйРежим(Истина);
	ПолнотекстовыйПоиск.ОбновитьИндекс();
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновлениеИндексаПолнотекстовогоПоискаДанных()
	
	Состояние(НСтр("ru = 'Идет обновление индекса полнотекстового поиска ...'"));
	ОбновитьИндексПолнотекстовогоПоиска();
	Состояние(НСтр("ru = 'Обновление индекса полнотекстового поиска завершено...'")); 
	
	ИндексПолнотекстовогоПоискаАктуален = Истина;
	ПолнотекстовыйПоискНаКлиенте();
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ПолнотекстовыйПоискНаКлиенте()
		
	ГруппаОтбора = ОтборыСписковКлиентСервер.СоздатьГруппуЭлементовОтбора(
		Список.Отбор.Элементы,
		"ПоискПоПодстроке",
		ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ);
		
	Если НЕ ЗначениеЗаполнено(СокрЛП(СтрокаПоиска)) Тогда
		
		ПоискНеУдачный = Ложь;
		
		ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
			ГруппаОтбора,
			"Ссылка",
			Неопределено,
			Ложь, ВидСравненияКомпоновкиДанных.ВСписке);
						
	Иначе
		
		РезультатПоиска = Неопределено;
		ПоискНеУдачный = ПолнотекстовыйПоискНаСервереБезКонтекста(СтрокаПоиска, РезультатПоиска);
		
		Если Не ПоискНеУдачный Тогда
			
			Использование = РезультатПоиска.Номенклатура.Количество() > 0;
			
			ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
				ГруппаОтбора,
				"Ссылка",
				?(Использование, РезультатПоиска.Номенклатура, Неопределено),
				Использование, ВидСравненияКомпоновкиДанных.ВСписке);
						
			СпискиВыбораКлиент.ОбновитьСписокВыбора(Элементы.СтрокаПоиска.СписокВыбора, СтрокаПоиска);
			
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПрименитьПоиск()
	
	Если ИспользоватьПолнотекстовыйПоиск Тогда
		
		ВыполнитьПолнотекстовыйПоискНаКлиенте();
		
	Иначе
		
		ПоискПоПодстрокеНаКлиенте();
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

#КонецОбласти
Показать
5. user1503152 13.01.21 10:51 Сейчас в теме
Я так понимаю, здесь что-то нужно поменять:

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

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

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

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

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

Показать
6. user1503152 13.01.21 11:11 Сейчас в теме
(2) Ваш программный код:

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

Показать


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

{ВнешняяОбработка.ВнешняяОбработка3.Форма.ФормаСписка.Форма(105)}: Поле объекта не обнаружено (СписокСтандартныйПоискНоменклатураКоманднаяПанель)
    ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;

7. SlavaKron 13.01.21 11:14 Сейчас в теме
(6) Вместо "СписокСтандартныйПоискНоменклатураКоманднаяПанель" используйте имя командной панели списка на вашей форме.
8. user1503152 13.01.21 11:26 Сейчас в теме
(7) Гуд, обработка запустилась, все как врач прописал, извините за юмор, Врачом на данный момент оказались Вы, и очень грамотным специалистом, за что Вам огромная благодарность, есть еще заминка, пните пожалуйста для ускорения!!!

В Функция СведенияОВнешнейОбработке() Экспорт
Что прописать для регистрации внешней обработки!?
9. SlavaKron 13.01.21 11:36 Сейчас в теме
(8)
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.Идентификатор = Метаданные().Имя;
	НоваяКоманда.Представление = Метаданные().Синоним;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции
Показать
10. user1503152 13.01.21 11:41 Сейчас в теме
(9) Зачетный Ты человечище, Slava Kron!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Огромный респект!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11. user1503152 13.01.21 11:42 Сейчас в теме
(9) Удачи ТЕБЕ и всех благ в Новом году!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12. SlavaKron 13.01.21 11:45 Сейчас в теме
13. user1503152 13.01.21 13:54 Сейчас в теме
SlavaKron, Вы на Форуме, можно еще один маленький вопросик!?
14. SlavaKron 13.01.21 14:00 Сейчас в теме
15. user1503152 13.01.21 14:13 Сейчас в теме
Куда прописать данный код, чтобы данная обработка открывалась только на одной организации с привязкой ИИН Организации!?

Если НЕ МассивОбъектов[0].Организация.ИНН = "ХХХХХХХХХХХХ" Тогда Сообщить("Несанкционированное использование внешней обработки, оплатите пожалуйста лицензию!");
		
		Возврат;
					
    КонецЕсли;
16. SlavaKron 13.01.21 14:17 Сейчас в теме
(15) В ПриСозданииНаСервере установите параметр Отказ = Истина.
17. user1503152 13.01.21 14:30 Сейчас в теме
Так это в модуле Формы, а в модуле Объекта можно прописать и под пароль!?
18. SlavaKron 13.01.21 14:41 Сейчас в теме
(17) Хм, нетривиальная задача. Попробуйте создать отдельную тему, возможно другие участники форма подскажут подходящее решение.
19. SlavaKron 13.01.21 15:12 Сейчас в теме
Как вариант. Модуль объекта:
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	NULL
	|ИЗ
	|	Справочник.Организации
	|ГДЕ
	|	ИНН В(&МассивИНН)");
	
	МассивИНН = Новый Массив;
	МассивИНН.Добавить("12345678");
	
	Запрос.УстановитьПараметр("МассивИНН", МассивИНН);
	
	Если Не Запрос.Выполнить().Пустой() Тогда
		
		НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
		НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
		НоваяКоманда.Идентификатор = Метаданные().Имя;
		НоваяКоманда.Представление = Метаданные().Синоним;
		
	КонецЕсли;
	
    Возврат ПараметрыРегистрации;
    
КонецФункции

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

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