3
Oblako486
30.10.20
✎
11:03
|
Сделал расширением. Добавил реквизиты на форму
ИспользоватьПодключаемоеОборудование Булево
ПоддерживаемыеТипыПодключаемогоОборудования Строка
Добавил код в модуль формы.
&НаКлиенте
&ИзменениеИКонтроль("ОбработкаОповещения")
Процедура Р_ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" Тогда
Если Параметр[1] = Неопределено Тогда
ТекущийКод = Параметр[0];
Иначе
ТекущийКод = Параметр[1][1];
КонецЕсли;
ДобавитьПоШтрихкодуНаСервере(ТекущийКод);
КонецЕсли;
ИначеЕсли ИмяСобытия = "ДанныеСкопированыВБуферОбмена" Тогда
УстановитьДоступностьКомандыВставки(ЭтотОбъект, Истина);
Иначе
ОбщегоНазначенияБПКлиент.ОбработкаОповещенияФормыДокумента(ЭтотОбъект, Объект.Ссылка, ИмяСобытия, Параметр, Источник);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ДобавитьПоШтрихкодуНаСервере(Штрихкод)
ТаблицаНоменклатурыПоШтрихкоду = РегистрыСведений.ШтрихкодыНоменклатуры.НоменклатураПоШтрихкоду(Штрихкод);
Если ТаблицаНоменклатурыПоШтрихкоду.Количество() = 1 Тогда
ДобавитьНоменклатуруНаСервере(ТаблицаНоменклатурыПоШтрихкоду[0].Номенклатура);
Иначе
ДобавитьНоменклатуруНаСервере(Справочники.Номенклатура.ПустаяСсылка());
КонецЕсли;
КонецФункции
&НаСервере
Процедура ДобавитьНоменклатуруНаСервере(Номенклатура)
ТаблицаТовары = Новый ТаблицаЗначений;
ТаблицаТовары.Колонки.Добавить("Номенклатура");
ТаблицаТовары.Колонки.Добавить("Количество");
ТаблицаТовары.Колонки.Добавить("Цена");
ДанныеОбъекта = Новый Структура("Дата, Организация, СуммаВключаетНДС");
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, Объект);
Если ЗначениеЗаполнено(Номенклатура) Тогда
СведенияОНоменклатуре = БухгалтерскийУчетПереопределяемый.ПолучитьСведенияОНоменклатуре(Номенклатура, ДанныеОбъекта, Ложь, Истина);
Иначе
СведенияОНоменклатуре = Неопределено;
КонецЕсли;
СтрокаТаблицаТовары = ТаблицаТовары.Добавить();
СтрокаТаблицаТовары.Номенклатура = Номенклатура;
СтрокаТаблицаТовары.Количество = 1;
СтрокаТаблицаТовары.Цена = ?(СведенияОНоменклатуре = Неопределено, 0, СведенияОНоменклатуре.Цена);
Значение = Новый Структура("АдресПодобраннойНоменклатурыВХранилище, КоличествоДобавленныхСтрок", ПоместитьВоВременноеХранилище(ТаблицаТовары, УникальныйИдентификатор));
ОбработкаВыбораПодборВставкаИзБуфераНаСервере(Значение, "Комплектующие");
КонецПроцедуры
&НаКлиенте
Процедура Р_ПриЗакрытииПосле(ЗавершениеРаботы)
// ПодключаемоеОборудование
МенеджерОборудованияКлиентПереопределяемый.НачатьОтключениеОборудованиеПриЗакрытииФормы(ЭтаФорма);
// Конец ПодключаемоеОборудование
КонецПроцедуры
&НаКлиенте
&После("ПриОткрытии")
Процедура Р_ПриОткрытии(Отказ)
ИспользоватьПодключаемоеОборудование = истина;
Если НЕ ТолькоПросмотр и ИспользоватьПодключаемоеОборудование Тогда
// Попробуем подключить сканер штрихкода
МенеджерОборудованияКлиентПереопределяемый.НачатьПодключениеОборудованиеПриОткрытииФормы(ЭтотОбъект, "СканерШтрихкода");
КонецЕсли;
КонецПроцедуры
|
|