Акцизные Марки

1. user2109808 20.12.24 08:48 Сейчас в теме
на форме рмк при выборе маркированного товара, должна выходить форма чтобы отсканировать марку и в дальнейшем после пробития чека записать в отдельную тч. алгоритм таков:
маркированный товар - выдается форма - сканируешь марку - нажимаешь окей или закрыть (как кнопку назовешь) - продолжаешь чек - пробиваешь чек .

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

    ПересчитатьДокументНаКлиенте();

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

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


на форме скана
&НаКлиенте
Процедура Очистить(Команда)
    МаркаСерии.Очистить();    
КонецПроцедуры      

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


//&НаСервере 
//Процедура ОбработатьШтрихкодНаСервере(ТекКод)  
//    Если стрДлина(ТекКод) > 14 Тогда  
//        Номенклатура = РегистрыСведений.ШтрихкодыНоменклатуры.ПолучитьНоменклатуруПоШтрихкоду(Сред(ТекКод,7,8));  
//    Иначе
//        Номенклатура = РегистрыСведений.ШтрихкодыНоменклатуры.ПолучитьНоменклатуруПоШтрихкоду(ТекКод);
//    КонецЕсли;  
//    
//    СтрокаТч = Объект.МаркиНоменклатуры.Добавить();
//    СтрокаТч.Номенклатура = Номенклатура;
//    СтрокаТч.НоменклатураГУИД = СтрокаТч.Номенклатура.УникальныйИдентификатор();
//    //СтрокаТч.КодМарки = ТекКод;
//    //СтрокаТч.КлючСвязи = КлючСвязи;
//КонецПроцедуры

&НаКлиенте
Процедура Ок(Команда, Параметр)
    АдресВХранилище = АдресМарокВХранилище();
    СтруктураВозврата = Новый Структура;
    СтруктураВозврата.Вставить("АдресВХранилище", АдресВХранилище);
    Если Не Модифицированность Тогда
        Закрыть(СтруктураВозврата);
    КонецЕсли;       
    сообщить(параметр); 
КонецПроцедуры 

&НаСервере 
Функция АдресМарокВХранилище() 
    ТаблицаМарок = Объект.МаркиНоменклатуры.Выгрузить();
    АдресМарок = ПоместитьВоВременноеХранилище(ТаблицаМарок, Новый УникальныйИдентификатор);
    Возврат АдресМарок;
КонецФункции

Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2109808 20.12.24 09:14 Сейчас в теме
как сделать это со временным хранилищем и без?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот