|
Обработка оповещения | ☑ | ||
---|---|---|---|---|
0
digorec88
03.01.20
✎
13:32
|
Всем привет и с Новым Годом всех. Проблема следующая.
&НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда Если ИмяСобытия = "ScanData" Тогда //Преобразуем предварительно к ожидаемому формату Если Параметр[1] = Неопределено Тогда Штрихкод = Параметр[0]; Иначе Штрихкод = Параметр[1][1]; КонецЕсли; //Если СтрДлина(СокрЛП(Штрихкод)) < 28 И СтрДлина(СокрЛП(Штрихкод)) <> 9 Тогда Если СтрДлина(СокрЛП(Штрихкод)) > 28 Тогда //ТекстПриветствия = "Штрихкод не распознан, считайте повторно!!!"; ТекстПриветствия = "Документ получен.Считайте штрихкод с паллеты"; Если Элементы.СтраницыТСД.ТекущаяСтраница = Элементы.СтраницаРазмещение Тогда Элементы.СтраницаРазмещение.Видимость = Ложь; ПодключитьОбработчикОжидания("ОшибкаРазмещение",2); ИначеЕсли Элементы.СтраницыТСД.ТекущаяСтраница = Элементы.СтриницаОтбор Тогда Элементы.СтриницаОтбор.Видимость = Ложь; ПодключитьОбработчикОжидания("ОшибкаОтбор",2); ИначеЕсли Элементы.СтраницыТСД.ТекущаяСтраница = Элементы.СтраницаОтгрузка Тогда Элементы.СтраницаОтгрузка.Видимость = Ложь; ПодключитьОбработчикОжидания("ОшибкаОтгрузка",2); ИначеЕсли Элементы.СтраницыТСД.ТекущаяСтраница = Элементы.СтраницаВозврат Тогда Элементы.СтраницаВозврат.Видимость = Ложь; ПодключитьОбработчикОжидания("ОшибкаВозврат",2); КонецЕсли; Элементы.СтраницаПриветствия.Видимость = Истина; Элементы.СтраницыТСД.ТекущаяСтраница = Элементы.СтраницаПриветствия; МассивСсылок = СсылкаНаЭлементСпискаПоШтрихкоду(Штрихкод); Иначе ОбработатьШтрихкоды(Штрихкод,МассивСсылок[0]); ПодключитьОбработчикОжидания("ОбновитьФормуСписка",10); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры Я печатаю документ задание на отбор и получаю ссылку на этот документ по штрихкоду с помощью этого МассивСсылок = СсылкаНаЭлементСпискаПоШтрихкоду(Штрихкод); &НаСервере Функция СсылкаНаЭлементСпискаПоШтрихкоду(Штрихкод) Менеджеры = Новый Массив(); Менеджеры.Добавить(ПредопределенноеЗначение("Документ.ОтборРазмещениеТоваров.ПустаяСсылка")); Возврат ШтрихкодированиеПечатныхФорм.ПолучитьСсылкуПоШтрихкодуТабличногоДокумента(Штрихкод, Менеджеры); КонецФункции После этого срабатывает процедура ОбработатьШтрихкоды(Штрихкод,МассивСсылок[0]); Но эта процедура не отрабатывает потому что у меня в Штрихкоде до сих пор хранится штрихкод документа В процедуре ОбработатьШтрихкоды(Штрихкод,МассивСсылок[0]); происходит следующее Пользователь считывает с паллеты штрихкод который находится в строке табличной части. При считывании, идет обращение к этой строке и меняется статус этой строки на выполнено. но программа не может найти эту строку по штрихкоду, потому что значение штрихкода до сих пор содержит в себе штрихкод документа. Поэтому в МассивСсылок[0] ссылку на документ я больше не вижу. Как перед выполнением вот этой процедуры ОбработатьШтрихкоды(Штрихкод,МассивСсылок[0]); очистить штрихкод и сохранить ссылку на документ? //Если СтрДлина(СокрЛП(Штрихкод)) < 28 И СтрДлина(СокрЛП(Штрихкод)) <> 9 Тогда Если СтрДлина(СокрЛП(Штрихкод)) > 28 Тогда Это я изменил для того чтобы получить ссылку на документ, потому чтодлина штрихкода документа>28. А длина штрихкода строки табличной части =28 |
|||
1
digorec88
03.01.20
✎
14:04
|
У кого какие идеи?
|
|||
2
Mort
03.01.20
✎
14:04
|
Вангую: в форме есть реквизит "штрихкод" который конфликтует с параметром функции.
|
|||
3
Mort
03.01.20
✎
14:06
|
А выяснять чей это штрихкод по его длине это плохо.
|
|||
4
digorec88
03.01.20
✎
14:07
|
(3) А каким образом тогда мне грубо говоря очистить штрихкод документа,и после очередного считывания, обратится к строке табличной части?
|
|||
5
digorec88
03.01.20
✎
14:09
|
(3) Т.е я сначала считал штрихкод с печатной формы "Задание на отбор". Получил ссылку на этот документ.
У меня на ТСД высветилось сообщение "Ссылка на документ получена. Считайте штрихкод с паллеты." Я считываю штрихкод,и у меня ссылка на документ пропадает. |
|||
6
digorec88
03.01.20
✎
14:10
|
(5) Соответственно без ссылки я не могу попасть в документ. Штрихкод который на паллете равен штрихкоду в строке табличной части.
|
|||
7
Бизон
03.01.20
✎
14:49
|
Видел как в УТ ордерный склад сам ордера создает по реализациям? Так вот там все доки херачится в стек регистра сведений, и после выписки исчезают
|
|||
8
digorec88
03.01.20
✎
14:56
|
(7) Так а мне и не надо чтобы документ исчезал. Мне наоборот нужно чтобы ссылка на документ сохранилась, чтобы после второго сканирования обращаться к строкам табличной части этого документа
|
|||
9
digorec88
03.01.20
✎
14:58
|
(7) У меня поиск строки идет по штрихкоду который я отсканировал с паллеты.
СтрокаТабЧасти = ДокументОтборОбъект.ТоварыОтбор.Найти(Штрихкод, "МТ_Штрихкод"); Но почему то остается штрихкод документа, а не тот который я отсканировал с паллеты. |
|||
10
Бизон
03.01.20
✎
14:59
|
Ну так а я тебе про что? Пикнул штрихкод дока, поместил в регистр документ, пикнул товар, забрал из регистра документ, очистил регистр.
PS или Усложнить штрих код строки, добавить номер и дату дока |
|||
11
digorec88
03.01.20
✎
15:01
|
(10) поместил в регистр документ
Вот этот момент как можно реализовать? |
|||
12
Бизон
03.01.20
✎
15:03
|
Если "сканируется документ" Тогда "в регистр добавляется док" ИначеЕсли "Если скоанируется Номенклатура, забираем док, чистим регистр" КонецЕсли
|
|||
13
digorec88
03.01.20
✎
15:04
|
(10) У меня ОбработкаОповещения &НаКлиенте выполняется. Получить объект из ссылки и записать его в регистр я не смогу
|
|||
14
digorec88
03.01.20
✎
15:05
|
(12) МассивСсылок = СсылкаНаЭлементСпискаПоШтрихкоду(Штрихкод);
Вот тут у меня хранится ссылка на документ |
|||
15
Бизон
03.01.20
✎
15:06
|
Ну и почему из клиента нельзя вызвать сервер?
|
|||
16
digorec88
06.01.20
✎
10:11
|
(15) Получилось. Новозникла одна проблема.
Добавил регистр с одним измерением тип Ссылка На документ. Запись Создается. Но как мне теперь обратится именно к этой записи регистра и вытащить оттуда нужный мне документ? |
|||
17
digorec88
06.01.20
✎
10:14
|
(15) Написал функцию,которая возвращает ссылку на документ.
Но вот тут почему то в отладке не видет документ Если СтрДлина(СокрЛП(Штрихкод)) > 28 Тогда Если Элементы.СтраницыТСД.ТекущаяСтраница = Элементы.СтриницаОтбор Тогда МассивСсылок = СсылкаНаЭлементСпискаПоШтрихкоду(Штрихкод); ДобавитьЗаписьВРегистр(МассивСсылок[0]); Документ = ПолучитьНужныеДокументыОтборРазмещение(МассивСсылок[0]); Иначе Если СтрДлина(СокрЛП(Штрихкод)) = 28 Тогда ОбработатьШтрихкоды(Штрихкод,Документ); |
|||
18
digorec88
06.01.20
✎
10:57
|
Разобрался. Всем спасибо за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |