Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как подружить документ Комплектация номенклатуры и сканер штрихкодов, БП 3.0?

Как подружить документ Комплектация номенклатуры и сканер штрихкодов, БП 3.0?
Я
   Oblako486
 
29.10.20 - 18:27
Бухгалтерия предприятия, редакция 3.0 (3.0.79.11)
В табличной части не работает, выдает цифры вместо номенклатуры.
В подборе в поиске не ищет по штрихкоду.
   kubik_live
 
1 - 29.10.20 - 18:42
Нвстроить сканер
   Oblako486
 
2 - 29.10.20 - 18:44
(1) В поступлении товаров и инвентаризации товаров, работает в табличной части как надо. Получается сканер настроен?
   Oblako486
 
3 - 30.10.20 - 11:03
Сделал расширением. Добавил реквизиты на форму

ИспользоватьПодключаемоеОборудование Булево
ПоддерживаемыеТипыПодключаемогоОборудования Строка

Добавил код в модуль формы.

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

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

&НаСервере
Функция ДобавитьПоШтрихкодуНаСервере(Штрихкод)
    ТаблицаНоменклатурыПоШтрихкоду = РегистрыСведений.ШтрихкодыНоменклатуры.НоменклатураПоШтрихкоду(Штрихкод);
    
    Если ТаблицаНоменклатурыПоШтрихкоду.Количество() = 1 Тогда
        ДобавитьНоменклатуруНаСервере(ТаблицаНоменклатурыПоШтрихкоду[0].Номенклатура);
    Иначе
        ДобавитьНоменклатуруНаСервере(Справочники.Номенклатура.ПустаяСсылка());
    КонецЕсли;
КонецФункции

&НаСервере
Процедура ДобавитьНоменклатуруНаСервере(Номенклатура)

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

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

&НаКлиенте
Процедура Р_ПриЗакрытииПосле(ЗавершениеРаботы)
        // ПодключаемоеОборудование

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


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

&НаКлиенте
&После("ПриОткрытии")
Процедура Р_ПриОткрытии(Отказ)
    ИспользоватьПодключаемоеОборудование = истина;    
    Если НЕ ТолькоПросмотр и ИспользоватьПодключаемоеОборудование Тогда
        // Попробуем подключить сканер штрихкода

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.