Как создать внешнюю обработку из стандартной формы справочник Номенклатура 1С Розница
Здравствуйте, Уважаемое сообщество! Есть для меня такая задача (учебная): Конфигурация 1С Розница 8, редакция 2.2 (базовая), нужно из стандартной формы справочник Номенклатура создать внешнюю обработку добавив (Поле: Остаток), в динамическом списке в конструкторе произвольного запроса, создала произвольный запрос и привязала к полю, прикладываю скриншот, надо теперь ее запустить в конфигурации, что-то не получается, пишет ошибку:
Помогите пожалуйста, как запустить ее в режиме пользователя, какой код нужно прописать?
Скриншот;
Помогите пожалуйста, как запустить ее в режиме пользователя, какой код нужно прописать?
{ОбщийМодуль.ПодключаемыеКоманды.Модуль(66)}: В формах внешних отчетов и обработок
при вызове процедуры "ПодключаемыеКоманды.ПриСозданииНаСервере"
требуется явно указывать параметр "ПараметрыРазмещения.Источники"
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Скриншот;
Прикрепленные файлы:
По теме из базы знаний
- Информационная панель номенклатуры для 1С: Розница 2.2. Остатки по складам, информация о ценах, штрихкодах, остатки товара на складах. Остатки ЕГАИС в справочнике номенклатуры
- Изменение цен номенклатуры с вызовом из формы списка для 1С: Розница
- Обработки для 1С: Розница по работе с ЕГАИС
- Универсальная печатная форма для справочника и документа по своему шаблону, сделанному в ms word: Кадровые, Торговые, Делопроизводственные, Бухгалтерские, Управляющие
- API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3
Найденные решения
ПриСозданииНаСервере должен быть блок примерно такого содержания: Замените его на:
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
Массив = Новый Массив;
Массив.Добавить(Метаданные.Справочники.Номенклатура);
ПараметрыРазмещения.Источники = Массив;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Показать
(8)
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.Идентификатор = Метаданные().Имя;
НоваяКоманда.Представление = Метаданные().Синоним;
Возврат ПараметрыРегистрации;
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ПриСозданииНаСервере должен быть блок примерно такого содержания: Замените его на:
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
Массив = Новый Массив;
Массив.Добавить(Метаданные.Справочники.Номенклатура);
ПараметрыРазмещения.Источники = Массив;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Показать
Программный код модуля формы:
#Область ПрограммныйИнтерфейс
#Область ОбработчикиСобытийПодключаемогоОборудования
&НаКлиенте
Процедура ОповещениеПоискаПоШтрихкоду(Штрихкод, ДополнительныеПараметры) Экспорт
Если НЕ ПустаяСтрока(Штрихкод) Тогда
СтруктураПараметровКлиента = ПолученШтрихкодИзСШК(Штрихкод);
ОбработатьДанныеПоКодуКлиент(СтруктураПараметровКлиента);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОповещениеПоискаПоМагнитномуКоду(ТекКод, ДополнительныеПараметры) Экспорт
Если Не ПустаяСтрока(ТекКод) Тогда
СтруктураПараметровКлиента = ПолученМагнитныйКод(ТекКод);
ОбработатьДанныеПоКодуКлиент(СтруктураПараметровКлиента);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОповещениеОткрытьФормуВыбораДанныхПоиска(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ОбработатьДанныеПоКодуСервер(Результат);
ОбработатьДанныеПоКодуКлиент(Результат)
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолученМагнитныйКод(МагнитныйКод) Экспорт
СтруктураРезультат = ПодключаемоеОборудованиеРТВызовСервера.ПолученМагнитныйКод(МагнитныйКод, ЭтотОбъект);
Возврат СтруктураРезультат;
КонецФункции
&НаСервере
Функция ПолученШтрихкодИзСШК(Штрихкод) Экспорт
СтруктураРезультат = ПодключаемоеОборудованиеРТВызовСервера.ПолученШтрихкодИзСШК(Штрихкод, ЭтотОбъект);
Возврат СтруктураРезультат;
КонецФункции
&НаСервере
Процедура ОбработатьДанныеПоКодуСервер(СтруктураРезультат) Экспорт
СтрокаРезультата = СтруктураРезультат.ЗначенияПоиска[0];
Если СтрокаРезультата.Свойство("Карта") Тогда
ПодключаемоеОборудованиеРТВызовСервера.ВставитьПредупреждениеОНевозможностиОбработкиКарт(СтруктураРезультат, СтрокаРезультата);
Иначе
ЭтотОбъект.ТекущийЭлемент = Элементы.Список;
Элементы.Список.ТекущаяСтрока = СтрокаРезультата.Номенклатура;
КонецЕсли;
Если СтрокаРезультата.Свойство("ТекстПредупреждения") Тогда
СтруктураРезультат.Вставить("ТекстПредупреждения", СтрокаРезультата.ТекстПредупреждения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьДанныеПоКодуКлиент(СтруктураПараметровКлиента) Экспорт
ОткрытаБлокирующаяФорма = Ложь;
ПодключаемоеОборудованиеРТКлиент.ОбработатьДанныеПоКоду(ЭтотОбъект, СтруктураПараметровКлиента, ОткрытаБлокирующаяФорма);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИспользоватьПолнотекстовыйПоиск = ПолучитьФункциональнуюОпцию("ИспользоватьПолнотекстовыйПоиск");
ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая();
ДополнительныеКолонкиНоменклатуры = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ДополнительнаяКолонкаПриОтображенииНоменклатуры");
УстановитьДополнительныеКолонкиНоменклатуры();
Если ИспользоватьПолнотекстовыйПоиск Тогда
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
ИндексПолнотекстовогоПоискаАктуален = ПолнотекстовыйПоиск.ИндексАктуален();
Иначе
Элементы.СтрокаПоиска.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
// ПодключаемоеОборудование
ПараметрыСобытийПО = Новый Структура;
ПараметрыСобытийПО.Вставить("РегистрацияНовойНоменклатуры", Истина);
ПодключаемоеОборудованиеРТВызовСервера.НастроитьПодключаемоеОборудование(ЭтотОбъект);
// Конец ПодключаемоеОборудование
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ЭтотОбъект = РеквизитФормыВЗначение("Список");
ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка3.Форма.ФормаСписка");
// ПодключаемоеОборудование
МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода, СчитывательМагнитныхКарт");
// Конец ПодключаемоеОборудование
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
// ПодключаемоеОборудование
МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект);
// Конец ПодключаемоеОборудование
КонецПроцедуры
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если ВводДоступен() Тогда
ПодключаемоеОборудованиеРТКлиент.ВнешнееСобытиеОборудования(ЭтотОбъект, Источник, Событие, Данные);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
// Процедура - обработчик события "Очистка" поля формы "СтрокаПоиска".
//
&НаКлиенте
Процедура СтрокаПоискаОчистка(Элемент, СтандартнаяОбработка)
ПрименитьПоиск();
КонецПроцедуры
// Процедура - обработчик события "ПриИзменении" поля формы "СтрокаПоиска".
//
&НаКлиенте
Процедура СтрокаПоискаПриИзменении(Элемент)
ПрименитьПоиск();
КонецПроцедуры
// Процедура - обработчик события "АвтоПодбор" поля формы "СтрокаПоиска".
//
&НаКлиенте
Процедура СтрокаПоискаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
СпискиВыбораКлиент.АвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
#Область ОбработчикиКомандПодключаемогоОборудования
&НаКлиенте
Процедура ПоискПоМагнитномуКоду(Команда)
ОбработкаТабличнойЧастиТоварыКлиент.ВвестиМагнитныйКод(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПоискПоШтрихкоду(Команда)
ОбработкаТабличнойЧастиТоварыКлиент.ВвестиШтрихкод(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
// Процедура - обработчик команды "ИзменитьВыделенные".
//
&НаКлиенте
Процедура ИзменитьВыделенные(Команда)
ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Функция ПолнотекстовыйПоискНаСервереБезКонтекста(СтрокаПоиска, РезультатПоиска)
ОписаниеОшибки = "";
РезультатПоиска = Обработки.ПодборТоваров.ПоискТоваров(СтрокаПоиска, ОписаниеОшибки);
Если НЕ ЗначениеЗаполнено(ОписаниеОшибки) Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ПоискПоПодстрокеНаКлиенте()
Использование = ЗначениеЗаполнено(СтрокаПоиска);
ГруппаОтбора = ОтборыСписковКлиентСервер.СоздатьГруппуЭлементовОтбора(
Список.Отбор.Элементы,
"ПоискПоПодстроке",
ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли);
ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
ГруппаОтбора,
"Наименование",
СтрокаПоиска,
Использование, ВидСравненияКомпоновкиДанных.Содержит);
ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
ГруппаОтбора,
"Код",
СтрокаПоиска,
Использование, ВидСравненияКомпоновкиДанных.Содержит);
ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
ГруппаОтбора,
"НаименованиеПолное",
СтрокаПоиска,
Использование, ВидСравненияКомпоновкиДанных.Содержит);
ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
ГруппаОтбора,
"Артикул",
СтрокаПоиска,
Использование, ВидСравненияКомпоновкиДанных.Содержит);
СпискиВыбораКлиент.ОбновитьСписокВыбора(Элементы.СтрокаПоиска.СписокВыбора, СтрокаПоиска);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОбновитьИндексПолнотекстовогоПоиска()
УстановитьПривилегированныйРежим(Истина);
ПолнотекстовыйПоиск.ОбновитьИндекс();
КонецПроцедуры
&НаКлиенте
Процедура ОбновлениеИндексаПолнотекстовогоПоискаДанных()
Состояние(НСтр("ru = 'Идет обновление индекса полнотекстового поиска ...'"));
ОбновитьИндексПолнотекстовогоПоиска();
Состояние(НСтр("ru = 'Обновление индекса полнотекстового поиска завершено...'"));
ИндексПолнотекстовогоПоискаАктуален = Истина;
ПолнотекстовыйПоискНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПолнотекстовыйПоискНаКлиенте()
Если Не ИндексПолнотекстовогоПоискаАктуален
И ИнформационнаяБазаФайловая Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ВопросВыполнитьПолнотекстовыйПоискНаКлиенте", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения,
НСтр("ru='Индекс полнотекстового поиска неактуален. Обновить индекс?'"),
РежимДиалогаВопрос.ДаНет);
Иначе
ПолнотекстовыйПоискНаКлиенте();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросВыполнитьПолнотекстовыйПоискНаКлиенте(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
ПодключитьОбработчикОжидания("ОбновлениеИндексаПолнотекстовогоПоискаДанных",0.2,Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВопросОбработатьДанныеПоКодуКлиент(Результат, СозданиеНовогоШтрихКода) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СозданиеНовогоШтрихКода", СозданиеНовогоШтрихКода);
Если ЗначениеЗаполнено(Элементы.Список.ТекущийРодитель) Тогда
ПараметрыФормы.Вставить("ЗначенияЗаполнения", Новый Структура("Родитель", Элементы.Список.ТекущийРодитель));
КонецЕсли;
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаЭлемента", ПараметрыФормы);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПолнотекстовыйПоискНаКлиенте()
ГруппаОтбора = ОтборыСписковКлиентСервер.СоздатьГруппуЭлементовОтбора(
Список.Отбор.Элементы,
"ПоискПоПодстроке",
ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ);
Если НЕ ЗначениеЗаполнено(СокрЛП(СтрокаПоиска)) Тогда
ПоискНеУдачный = Ложь;
ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
ГруппаОтбора,
"Ссылка",
Неопределено,
Ложь, ВидСравненияКомпоновкиДанных.ВСписке);
Иначе
РезультатПоиска = Неопределено;
ПоискНеУдачный = ПолнотекстовыйПоискНаСервереБезКонтекста(СтрокаПоиска, РезультатПоиска);
Если Не ПоискНеУдачный Тогда
Использование = РезультатПоиска.Номенклатура.Количество() > 0;
ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(
ГруппаОтбора,
"Ссылка",
?(Использование, РезультатПоиска.Номенклатура, Неопределено),
Использование, ВидСравненияКомпоновкиДанных.ВСписке);
СпискиВыбораКлиент.ОбновитьСписокВыбора(Элементы.СтрокаПоиска.СписокВыбора, СтрокаПоиска);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПрименитьПоиск()
Если ИспользоватьПолнотекстовыйПоиск Тогда
ВыполнитьПолнотекстовыйПоискНаКлиенте();
Иначе
ПоискПоПодстрокеНаКлиенте();
КонецЕсли;
КонецПроцедуры
// Конец МеханизмВнешнегоОборудования
&НаСервере
Процедура УстановитьДополнительныеКолонкиНоменклатуры()
Элементы.Код.Видимость = ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код
ИЛИ ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.КодАртикул;
Элементы.Артикул.Видимость = ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул
ИЛИ ДополнительныеКолонкиНоменклатуры = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.КодАртикул;
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
#КонецОбласти
Показать
Я так понимаю, здесь что-то нужно поменять:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИспользоватьПолнотекстовыйПоиск = ПолучитьФункциональнуюОпцию("ИспользоватьПолнотекстовыйПоиск");
ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая();
ДополнительныеКолонкиНоменклатуры = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ДополнительнаяКолонкаПриОтображенииНоменклатуры");
УстановитьДополнительныеКолонкиНоменклатуры();
Если ИспользоватьПолнотекстовыйПоиск Тогда
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
ИндексПолнотекстовогоПоискаАктуален = ПолнотекстовыйПоиск.ИндексАктуален();
Иначе
Элементы.СтрокаПоиска.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
// ПодключаемоеОборудование
ПараметрыСобытийПО = Новый Структура;
ПараметрыСобытийПО.Вставить("РегистрацияНовойНоменклатуры", Истина);
ПодключаемоеОборудованиеРТВызовСервера.НастроитьПодключаемоеОборудование(ЭтотОбъект);
// Конец ПодключаемоеОборудование
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ЭтотОбъект = РеквизитФормыВЗначение("Список");
ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка3.Форма.ФормаСписка");
// ПодключаемоеОборудование
МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода, СчитывательМагнитныхКарт");
// Конец ПодключаемоеОборудование
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
// ПодключаемоеОборудование
МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект);
// Конец ПодключаемоеОборудование
КонецПроцедуры
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если ВводДоступен() Тогда
ПодключаемоеОборудованиеРТКлиент.ВнешнееСобытиеОборудования(ЭтотОбъект, Источник, Событие, Данные);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
Показать
(2) Ваш программный код:
Выдает ошибку:
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
Массив = Новый Массив;
Массив.Добавить(Метаданные.Справочники.Номенклатура);
ПараметрыРазмещения.Источники = Массив;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
ПоказатьВыдает ошибку:
{ВнешняяОбработка.ВнешняяОбработка3.Форма.ФормаСписка.Форма(105)}: Поле объекта не обнаружено (СписокСтандартныйПоискНоменклатураКоманднаяПанель)
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель;
(7) Гуд, обработка запустилась, все как врач прописал, извините за юмор, Врачом на данный момент оказались Вы, и очень грамотным специалистом, за что Вам огромная благодарность, есть еще заминка, пните пожалуйста для ускорения!!!
В Функция СведенияОВнешнейОбработке() Экспорт
Что прописать для регистрации внешней обработки!?
В Функция СведенияОВнешнейОбработке() Экспорт
Что прописать для регистрации внешней обработки!?
(8)
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.Идентификатор = Метаданные().Имя;
НоваяКоманда.Представление = Метаданные().Синоним;
Возврат ПараметрыРегистрации;
КонецФункции
Показать
Куда прописать данный код, чтобы данная обработка открывалась только на одной организации с привязкой ИИН Организации!?
Если НЕ МассивОбъектов[0].Организация.ИНН = "ХХХХХХХХХХХХ" Тогда Сообщить("Несанкционированное использование внешней обработки, оплатите пожалуйста лицензию!");
Возврат;
КонецЕсли;
Как вариант. Модуль объекта:
Это однако не помешает скопировать форму внешней обработки в новую обработку, поэтому код модуля формы, претендующий на защиту авторских прав, лучше также выносить модуль объекта.
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
Запрос = Новый Запрос(
"ВЫБРАТЬ
| NULL
|ИЗ
| Справочник.Организации
|ГДЕ
| ИНН В(&МассивИНН)");
МассивИНН = Новый Массив;
МассивИНН.Добавить("12345678");
Запрос.УстановитьПараметр("МассивИНН", МассивИНН);
Если Не Запрос.Выполнить().Пустой() Тогда
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.Идентификатор = Метаданные().Имя;
НоваяКоманда.Представление = Метаданные().Синоним;
КонецЕсли;
Возврат ПараметрыРегистрации;
КонецФункции
Если Найти(ИспользуемоеИмяФайла, "e1cib\tempstorage\") <> 1 Тогда
ВызватьИсключение "Обработку """ + Метаданные().Синоним + """ запрещено открывать интерактивно!";
КонецЕсли;
ПоказатьЭто однако не помешает скопировать форму внешней обработки в новую обработку, поэтому код модуля формы, претендующий на защиту авторских прав, лучше также выносить модуль объекта.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот