Имя: Пароль:
1C
1С v8
Изменить текущую строку ТЧ по внешнему событию
,
0 tabarigen
 
31.08.15
16:27
Внешняя обработка.
При сканировании, нужно в установить Строку на найденное сканером номенклатуру.

Часть кода на котором застрял.

&НаКлиенте
Процедура ОбработатьШтрихкод(ТекКод)
    СсылкаНоменклатурыПоШтрихкоду = ОбработатьШтрихкодНаСервере(ТекКод);
    ЭтаФорма.Элементы.Товары.ТекущаяСтрока = СсылкаНоменклатурыПоШтрихкоду;
    
КонецПроцедуры



Переменная СсылкаНоменклатурыПоШтрихкоду , содержит ссылку на номенклатуру. Если такая же номенклатуры есть в ТЧ, в колонке Номенклатура, со значениями СправочникСсылка.Номенклатура, то предполагается что текущая строка изменится, но этого не происходит.

Внимание вопрос, ПОЧЕМУ?
1 jsmith82
 
31.08.15
16:29
типы же разные
2 jsmith82
 
31.08.15
16:30
тек. строка это индекс строки
3 jsmith82
 
31.08.15
16:33
Индекс = Объект.Товары.НайтиСтроки(Отбор)[0].ПолучитьИдентификатор();  
ЭлементыФормы.Товары.Текущаястрока = Индекс;  

не благодари
4 jsmith82
 
31.08.15
16:33
*Элементы.Товары
5 tabarigen
 
31.08.15
16:36
Объект.Товары.НайтиСтроки(Отбор)

А что будет в переменной отбор?

Заранее благодарен.
6 tabarigen
 
31.08.15
16:40
&НаКлиенте
Процедура ОбработатьШтрихкод(ТекКод)
    СсылкаНоменклатурыПоШтрихкоду = ОбработатьШтрихкодНаСервере(ТекКод);
    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Номенклатура", СсылкаНоменклатурыПоШтрихкоду);
    Индекс = Объект.Товары.НайтиСтроки(ПараметрыОтбора)[0].ПолучитьИдентификатор();
    ЭтаФорма.Элементы.Товары.ТекущаяСтрока = Индекс;
    
КонецПроцедуры

Всем спасибо проблема решена.
7 tabarigen
 
31.08.15
16:55
Единственное что хотелось бы грамотно обработать исключения.
Допустим  по найденному штриху номенклатуры не оказалось в ТЧ.

Как вывести пользователю уведомление об этом.

Пробую так

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


Выдается ошибка
{Форма.Форма.Форма(89)}: Индекс находится за границами массива
    Индекс = Объект.Товары.НайтиСтроки(ПараметрыОтбора)[0].ПолучитьИдентификатор();
8 jsmith82
 
31.08.15
16:56
пф
9 jsmith82
 
31.08.15
16:57
Массив = Объект.Товары.НайтиСтроки(ПараметрыОтбора);
Если Массив.Количество() = 0 Тогда
Сообщить("Указанный штрихкод не найден!");
Возврат;
КонецЕсли;
Индекс = Массив[0].ПолучитьИдентификатор();
10 tabarigen
 
31.08.15
17:04
ээээ ну зачем вы так (8)

Это вообще моя первая обработка, с 1с я на вы, так что не судите строго.

Благодарю Вас кстати.
11 jsmith82
 
31.08.15
17:05
ну я так и понял, что на вы
умилительно просто )
12 tabarigen
 
31.08.15
17:09
Под пфффф не сразу понятно, что подразумевается)
13 igork1966
 
31.08.15
17:12
(0) Это такой способ использовать форум как СП + Дебагер?
14 jsmith82
 
31.08.15
17:13
(13) как кнопочку яндекс
15 Брегорьян
 
31.08.15
17:16
О! Филиал интерактивного СП... ©Крошка Ру
16 tabarigen
 
31.08.15
17:26
Как вы думаете терминология СП много даст для неискушенного юзверя?? По мне так нет, доки 1с не для людей написаны, да и не людьми по всей видимости.
17 Брегорьян
 
31.08.15
17:26
(16) СП немного не для юзеров придуман
18 tabarigen
 
31.08.15
18:48
(17) Для юзеров тоже, иначе бы я в нем не копошился бы)
19 Брегорьян
 
31.08.15
18:53
(18) юзер копошится в том, что для него не предназначено. бывает
20 tabarigen
 
01.09.15
09:02
(20) отсюда вывод мб все таки по людски писать доки
21 tabarigen
 
01.09.15
09:14
но это уже совсем другая история. всем спасибо за помощь, тема закрыта
22 jsmith82
 
01.09.15
09:38
мужик, не слушай никого, дерзай!
23 Брегорьян
 
01.09.15
10:21
(20) нене, не надо этих выкрутасов. документацию надо писать нормальным техническим языком