|
Альфа Авто 4: Кнопка Ввод штрих-кода | ☑ | ||
---|---|---|---|---|
0
Flomik
07.01.13
✎
00:04
|
Необходимо на форму Чек добавить кнопку ввода строк ТЧ по номеру штрих-кода.
Написал процедуру, но поиск номенклатуры не отрабатывает. Уже всю бошку сломал, не могу найти причину. Процедура КоманднаяПанельТоварыШтрихКод(Кнопка) ШК=""; ШК = ВвестиСтроку(ШК,"Введите штрих код!",15); новЗапрос=Новый Запрос; новЗапрос.Текст= "ВЫБРАТЬ | Штрихкоды.Объект КАК Артикул |ИЗ | РегистрСведений.ШтрихКоды КАК Штрихкоды |ГДЕ | Штрихкоды.ШтрихКод = &Ссылка | И Штрихкоды.Объект ССЫЛКА Справочник.Номенклатура"; новзапрос.УстановитьПараметр("Ссылка",ШК); Результат=новЗапрос.Выполнить(); Выборка=Результат.Выбрать(); Артикул = Выборка.Артикул; ТЧ = ЭтотОбъект.Товары; Строчка=ТЧ.Добавить(); Строчка.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул); //Строчка.Номенклатура=Выборка.Имя; КонецПроцедуры |
|||
1
vs7719
07.01.13
✎
00:08
|
После "...Выборка=Результат.Выбрать();.."
добавить строку: Выборка.Следующий();... |
|||
2
zladenuw
07.01.13
✎
00:08
|
та да. но лучше Если Выбора.Следующий()
|
|||
3
Flomik
07.01.13
✎
00:10
|
(1)(2) - Не помогло
|
|||
4
vs7719
07.01.13
✎
00:12
|
Конечно! См. внимательнее стр.: Штрихкоды.Объект КАК Артикул
и Строчка.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул); |
|||
5
Flomik
07.01.13
✎
00:19
|
В выборке пусто, хотя я точно знаю, что в регистре есть элемент с искомым значением
|
|||
6
vs7719
07.01.13
✎
00:23
|
Может, где-то строка дополняется пробелами справа или искомое значение - Объект, не Номенклатура?
|
|||
7
szhukov
07.01.13
✎
00:30
|
(0)Бредняк какой-то...
Судя по запросу Артикул - это элемент справочника номенклатура, тогда эта строка: Строчка.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул); - какая-то лажа. Что-то не то в запросе написано. что даст запрос если убрать условие на проверку объекта: //| И Штрихкоды.Объект ССЫЛКА Справочник.Номенклатура ? |
|||
8
szhukov
07.01.13
✎
00:46
|
(0) Ошибка здесь:
ШК = ВвестиСтроку(ШК,"Введите штрих код!",15); потому что после ввода ШК = Истина ШК_Введен=Ложь; ШК=""; ШК_Введен = ВвестиСтроку(ШК, "Введите штрих код!",15); |
|||
9
szhukov
07.01.13
✎
00:51
|
+(8) тогда как-то так:
"ВЫБРАТЬ | Штрихкоды.Объект КАК ЭлНоменклатуры |ИЗ | РегистрСведений.ШтрихКоды КАК Штрихкоды |ГДЕ | Штрихкоды.ШтрихКод = &Ссылка | И Штрихкоды.Объект ССЫЛКА Справочник.Номенклатура"; новзапрос.УстановитьПараметр("Ссылка",ШК); Результат=новЗапрос.Выполнить(); Если Результат.Пустой() Тогда Предупреждение("А нет такого"); Возврат; КонецЕсли; Выборка=Результат.Выбрать(); Выборка.Следующий(); ТЧ = ЭтотОбъект.Товары; Строчка=ТЧ.Добавить(); Строчка.Номенклатура = Выборка.ЭлНоменклатуры; |
|||
10
Mashinist
07.01.13
✎
01:17
|
а если так
новзапрос.УстановитьПараметр("Ссылка",СокрЛП(ШК)); |
|||
11
szhukov
07.01.13
✎
01:22
|
(10) ошибка в другой строке, см. (8)
|
|||
12
Mashinist
07.01.13
✎
01:36
|
(11) угу. точно не то вводится
|
|||
13
Flomik
07.01.13
✎
02:43
|
Спасибо! Разобрался:
Процедура КоманднаяПанельТоварыШтрихКод(Кнопка) Текст = ""; Подсказка = "Введите Штрих-код"; Если ВвестиСтроку(Текст, Подсказка, 0, ЛОЖЬ) Тогда новЗапрос=Новый Запрос; новЗапрос.Текст= "ВЫБРАТЬ | Штрихкоды.Объект КАК ЭлНоменклатуры |ИЗ | РегистрСведений.ШтрихКоды КАК Штрихкоды |ГДЕ | Штрихкоды.ШтрихКод = &Ссылка | И Штрихкоды.Объект ССЫЛКА Справочник.Номенклатура"; новзапрос.УстановитьПараметр("Ссылка",Текст); Результат=новЗапрос.Выполнить(); Если Результат.Пустой() Тогда Предупреждение("Нет штрих-кода, найдите товар вручную"); Возврат; КонецЕсли; Выборка=Результат.Выбрать(); Выборка.Следующий(); ТЧ = ЭтотОбъект.Товары; Строчка=ТЧ.Добавить(); Строчка.Номенклатура = Выборка.ЭлНоменклатуры; КонецЕсли; Теперь вопрос - как заполнить созданную строку реквизитами поумолчанию - цена, НДС и т.д. |
|||
14
Mashinist
07.01.13
✎
03:02
|
так посмотри в коде добавления товара интерактивное
Из модуля объекта вызвать ОбработкаРеквизита(...) примерно так было когда-то ОбработкаРеквизита("Товары.Номенклатура",ТЧ.ТекущаяСтрока); |
|||
15
Flomik
07.01.13
✎
04:30
|
(14) Это я знаю, но как фокус новой строчке передать?
Выборка.Следующий(); ТЧ = ЭтотОбъект.Товары; Строчка=ТЧ.Добавить(); Строчка.Номенклатура = Выборка.ЭлНоменклатуры; ОбработкаРеквизита("Товары.Номенклатура",ЭлементыФормы.Товары.ТекущаяСтрока,ЭтаФорма); КонецЕсли; |
|||
16
Мимохожий Однако
07.01.13
✎
09:13
|
(0)Где хранятся штрихкоды в этой конфигурации?
|
|||
17
Mashinist
07.01.13
✎
13:10
|
(15) процедура ОбработкаРеквизита может форму и не принимать
ей нужно что пересчитывать "Товары.Номенклатура" и где т.е. строку ТЧ. у тебя это Строчка попробуй вызов ОбработкаРеквизита("Товары.Номенклатура",Строчка); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |