|
Проверка товара по реквизиту | ☑ | ||
---|---|---|---|---|
0
Mafiozaa
29.09.20
✎
08:45
|
Приветствую. Нужна помощь, есть справочник номенклатура в нем есть числовой реквизит длинной 1 символ (1 - да, 0 - нет) состряпал функцию
Функция НаличиеМаркера(Объект, Пароль) Рез = 0; Номен = СоздатьОбъект("Справочник.Номенклатура"); Если Номен.НайтиПоРеквизиту("Маркер", 1, 1) = 1 Тогда Рез = 1; Объект.Password = 30; Объект.BarcodeType = 3; Объект.LineNumber = 256; Объект.FirstLineNumber = 1; Объект.BarcodeAlignment = 0; Объект.PrintBarcodeGraph() Иначе Рез = 0; Возврат Рез; КонецЕсли; КонецФункции Но если я правильно понимаю то что сам сделал, то программа находит данный реквизит и его значение и записывает в рез = 1, но у каждой позиции в номенклатуре в значении данного реквизита будет где то 0, где то 1, как мне это сделать так,чтоб если у товара данный реквизит = 1, то делаем то то, если данный реквизит = 0, то не делаем ничего |
|||
1
Deon
29.09.20
✎
08:54
|
Это какая версия 1Ски?
|
|||
2
Василий Алибабаевич
29.09.20
✎
08:55
|
(0) Весь код - в топку. Он вообще не делает вот это : "программа находит данный реквизит и его значение и записывает в рез = 1"
|
|||
3
Василий Алибабаевич
29.09.20
✎
08:55
|
(1) Клюшки.
|
|||
4
Mafiozaa
29.09.20
✎
08:56
|
(1) 7.7 (2) А что он делает?)
|
|||
5
Василий Алибабаевич
29.09.20
✎
08:56
|
(0) Кто такой "Объект", который передается в заголовке Функции?
|
|||
6
Mafiozaa
29.09.20
✎
08:57
|
(3) Объект это ККМ, пароль это пароль от ККМ
|
|||
7
Mafiozaa
29.09.20
✎
08:58
|
(2) Ну типо НайтиПоРеквизиту возвращает 1 если найден элемент, 0 если нет, а раз такой реквизит с таким значением есть в номенклатуре то он и ворачивает мне 1,в любом случае,даже если у конкретного товара он = 0
|
|||
8
Василий Алибабаевич
29.09.20
✎
09:01
|
(4) Ищет в справочнике "Номенклатура" первый элемент с реквизитом "Маркер" равным 1.
Если элемент с таким реквизитом есть - начинает что-то присваивать переменной Объект. (При этом не возвращает никаких значений) Если такого элемента нет - возвращает "0". (Путем хитрых манипуляций с присвоением значений никому не нужных промежуточных переменных.) |
|||
9
Василий Алибабаевич
29.09.20
✎
09:02
|
(7) "он и ворачивает мне 1". Покажите пальцем это код.
|
|||
10
Mafiozaa
29.09.20
✎
09:04
|
(9) Согласен, больше похоже на вот это (8) Поправьте меня как переделать?
|
|||
11
Василий Алибабаевич
29.09.20
✎
09:04
|
ТС! Твой код не выполняет никакой "Проверка товара по реквизиту". Он проверяет есть ли такой элемент в справочнике или нет. Все.
|
|||
12
Василий Алибабаевич
29.09.20
✎
09:04
|
(10) Пиши что нужно сделать.
|
|||
13
Mafiozaa
29.09.20
✎
09:06
|
(11) Мне нужно, когда я продаю товар (с чеком ККМ) проверяло товар на наличие маркировки,если маркировка есть то печатало его QR код на чеке, в противном случае QR код не печатается
|
|||
14
Mafiozaa
29.09.20
✎
09:10
|
(12) Предположим, продаю железо (если реквизит маркер у железа = 1) сообщить (то,се). Если реквизит железа 0 то продолжить далее по коду
|
|||
15
tgu82
29.09.20
✎
09:17
|
(0) Позиционируешься на Номен. И проверяешь значение реквизита Маркер.
Если Номен.Маркер=1 Тогда .............. Если конечно я правильно Вас понял |
|||
16
Mafiozaa
29.09.20
✎
09:21
|
(15) Сделал так как вы предложили,qr код перестал печататься даже там где он =1
|
|||
17
Mafiozaa
29.09.20
✎
09:24
|
(15) (11) А не надо ли мне, создать новый справочник привязать его к номенклатуре? и через использоватьвладельца?
|
|||
18
tgu82
29.09.20
✎
09:32
|
(17) Вы же должны еще передать и конкретный элемент номенклатуры, то есть
по идее Функция НаличиеМаркера(Объект, Пароль, номен) А иначе непонятно для какой номенклатуры вы собираетесь проверять Маркер |
|||
19
Mafiozaa
29.09.20
✎
09:34
|
(18) Не совсем понял,номенклатура одна = элементов много,растолкуйте))
|
|||
20
MouHacTaBHuk
29.09.20
✎
09:35
|
(17) Ты собственную задачу понимаешь? Мы пока не очень. Ты описываешь одно действие, код у тебя делает совсем другое; ты пишешь код твой, но что он делает не понимаешь.
Опиши чётко, что нужно проверить и какой должен быть результат/действия после проверки. Какие qr коды? какой справочник? ты о чём вообще?... |
|||
21
Mafiozaa
29.09.20
✎
09:40
|
(20) Хорошо смотри.
Что проверить - Товар который я продаю на наличие маркировки (Маркер = 1) Если на данном товаре есть маркер то я печатаю qr code Если его нет, то соответственно я его не печатаю |
|||
22
tgu82
29.09.20
✎
10:03
|
(21) Ну правильно - значит ты должен на этом товаре спозиционироваться, а по твоей функции конкретного товара не видно и проверить есть маркер или нет - нельзя
|
|||
23
MouHacTaBHuk
29.09.20
✎
10:23
|
Функция НаличиеМаркера(Номен)
Рез = 0; Если Номен.Маркер = 1 Тогда Рез = 1; КонецЕсли; Возврат Рез; КонецФункции или если у тебя это доп реквизит, тогда |
|||
24
MouHacTaBHuk
29.09.20
✎
10:26
|
+(23) тогда надо найти значение этого реквизита. Например так:
Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок", "Маркер"); РеквизитВНомен = Номен.ДополнительныеРеквизиты.Найти(Свойство, "Свойство"); Если РеквизитВНомен.Значение = 1 Тогда Рез = 1; КонецЕсли; |
|||
25
tgu82
29.09.20
✎
10:32
|
(24) Ну там 7.7 вроде как.
Маркер - это реквизит числовой длиной 1, то есть либо 1 либо 0. Если Номен.Маркер=1 Тогда.... Главное - спозиционироваться на конкретный элемент номенклатуры чтобы проверить есть маркер или нет. |
|||
26
MouHacTaBHuk
29.09.20
✎
10:35
|
(25) а, пропустил информацию про 7.7. Свалю вину на ТС, так как ни в первом посте ни в пояснении не упомянул об этом
|
|||
27
skafandr
29.09.20
✎
11:16
|
(0)Это жесть
"Объект это ККМ". Вопрос-подсказка в ККМ ОДИН товар? Если не один То значит должен быть перебор по строчкам ККМ,в нем проверка наличия маркера у товара в данной строчке. Короче типа такого Объект.ВыбратьСтроки(); Пока Объект.ПолучитьСтроку() = 1 Цикл Если Объект.Товар.Маркер=1 Тогда // тут делать свое "если маркировка есть то печатало его QR код на чеке" КонецЕсли КонеЦикла КонецЦикла |
|||
28
skafandr
29.09.20
✎
11:17
|
(27) один КонецЦикла лишний - убрать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |