Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 фев 2025, 15:02

Масштабирование картинки

Автор sali, 16 дек 2024, 12:09

0 Пользователей и 2 гостей просматривают эту тему.

sali

Максим75, я посмотрел же код другого программиста. там оповещение вызвано в оповещении и помещается во временное хранилище

Максим75

Цитата: sali от 19 дек 2024, 09:56Максим75, я посмотрел же код другого программиста. там оповещение вызвано в оповещении и помещается во временное хранилище
прямо оповещение во временное и помещается? чудо-код.

короче говоря, я показал как это надо делать, Вы или по образу и подобию делаете, или смотрите и дальше код другого программиста.

sali

Максим75, *данные помещаются во временное хранилище

Максим75

Цитата: sali от 19 дек 2024, 10:19Максим75, *данные помещаются во временное хранилище
да ясный красный, между формами передать данные через хранилище удобно.

fruitella

sali, Знаю, временное хранилище, но тебе уже выше ответили

sali

Цитата: Максим75 от 19 дек 2024, 10:14Вы или по образу и подобию делаете, или смотрите и дальше код другого программиста.
таки смотрю ваш код тот что второй "ОповещениеОткрытьФормуВводаАкцизнойМарки" и задаюсь вопросом что за алгоритм идет после окончания условия "если типзнач(результат) = тип("строка") тогда

Максим75

Цитата: sali от 19 дек 2024, 11:50
Цитата: Максим75 от 19 дек 2024, 10:14Вы или по образу и подобию делаете, или смотрите и дальше код другого программиста.
таки смотрю ваш код тот что второй "ОповещениеОткрытьФормуВводаАкцизнойМарки" и задаюсь вопросом что за алгоритм идет после окончания условия "если типзнач(результат) = тип("строка") тогда

да Вы не задавайтесь, результат может быть и строкой, а Вас должен интересовать вариант, когда структура возвращается.
Это же пример того, как реализовано в типовой. Смотрите на сам принцип. Я Вам его описал.
В форме заполняете марки (сделайте на форме табличную часть и там все марки пишите), после нажатия на кнопку переноса, выполняете код. В коде заворачиваете табличную часть  во временное хранилище, адрес в хранилище в структуру, структуру передаете в параметре Закрыть(ВашаСтруктура).
Потом уже в оповещении обрабатываете эту переданную структуру.
Вот просто пока дойдите до обработчика этого оповещения и посмотрите, что в структуре прилетит.
Потом уже найти в хранилище данные и записать в документ дело техники.

sali

Максим75, а без временного хранилище такое получается?

Максим75

sali,
Цитата: sali от 19 дек 2024, 12:33Максим75, а без временного хранилище такое получается?
ну поэкспериментируйте с передачей таблицы значений между разными формами. для или для начала хотя бы с сервера на клиент. и все поймете.

sali

Максим75, ну вот поэкспериментировал и получилось, немного не то , но получилось записать. и вот код который работает не со сканером (без сканера сейчас пробую , рядом нет просто)
на главной форме
&НаКлиенте
Процедура ПодборЗаверщение(Результат, ДополнительныеПараметры) Экспорт

Если Результат = Неопределено Тогда
Возврат;
КонецЕсли; 

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

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

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

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

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

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

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


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

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

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



результат таков - в тч маркиСерииНоменклатуры документа чек ккм, в колонке код марки пишется ОК. собственно на какую команду нажал та и написалась

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск