Вход | Регистрация
 

Проверка товара по реквизиту

Проверка товара по реквизиту
Я
   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, то не делаем ничего
   Deon
 
1 - 29.09.20 - 08:54
Это какая версия 1Ски?
   Василий Алибабаевич
 
2 - 29.09.20 - 08:55
(0) Весь код - в топку. Он вообще не делает вот это : "программа находит данный реквизит и его значение и записывает в рез = 1"
   Василий Алибабаевич
 
3 - 29.09.20 - 08:55
(1) Клюшки.
   Mafiozaa
 
4 - 29.09.20 - 08:56
(1) 7.7 (2) А что он делает?)
   Василий Алибабаевич
 
5 - 29.09.20 - 08:56
(0) Кто такой "Объект", который передается в заголовке Функции?
   Mafiozaa
 
6 - 29.09.20 - 08:57
(3) Объект это ККМ, пароль это пароль от ККМ
   Mafiozaa
 
7 - 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". Покажите пальцем это код.
   Mafiozaa
 
10 - 29.09.20 - 09:04
(9) Согласен, больше похоже на вот это (8) Поправьте меня как переделать?
   Василий Алибабаевич
 
11 - 29.09.20 - 09:04
ТС! Твой код не выполняет никакой "Проверка товара по реквизиту". Он проверяет есть ли такой элемент в справочнике или нет. Все.
   Василий Алибабаевич
 
12 - 29.09.20 - 09:04
(10) Пиши что нужно сделать.
   Mafiozaa
 
13 - 29.09.20 - 09:06
(11) Мне нужно, когда я продаю товар (с чеком ККМ) проверяло товар на наличие маркировки,если маркировка есть то печатало его QR код на чеке, в противном случае QR код не печатается
   Mafiozaa
 
14 - 29.09.20 - 09:10
(12) Предположим, продаю железо (если реквизит маркер у железа = 1) сообщить (то,се). Если реквизит железа 0 то продолжить далее по коду
   tgu82
 
15 - 29.09.20 - 09:17
(0) Позиционируешься на Номен. И проверяешь значение реквизита Маркер.
Если Номен.Маркер=1 Тогда ..............

Если конечно я правильно Вас понял
   Mafiozaa
 
16 - 29.09.20 - 09:21
(15) Сделал так как вы предложили,qr код перестал печататься даже там где он =1
   Mafiozaa
 
17 - 29.09.20 - 09:24
(15) (11) А не надо ли мне, создать новый справочник привязать его к номенклатуре? и через использоватьвладельца?
   tgu82
 
18 - 29.09.20 - 09:32
(17) Вы же должны еще передать и конкретный элемент номенклатуры, то есть
по идее Функция НаличиеМаркера(Объект, Пароль, номен) 
А иначе непонятно для какой номенклатуры вы собираетесь проверять Маркер
   Mafiozaa
 
19 - 29.09.20 - 09:34
(18) Не совсем понял,номенклатура одна = элементов много,растолкуйте))
   MouHacTaBHuk
 
20 - 29.09.20 - 09:35
(17) Ты собственную задачу понимаешь? Мы пока не очень. Ты описываешь одно действие, код у тебя делает совсем другое; ты пишешь код твой, но что он делает не понимаешь.
Опиши чётко, что нужно проверить и какой должен быть результат/действия после проверки.
Какие qr коды? какой справочник? ты о чём вообще?...
   Mafiozaa
 
21 - 29.09.20 - 09:40
(20) Хорошо смотри.
Что проверить - Товар который я продаю на наличие маркировки (Маркер = 1)
Если на данном товаре есть маркер то я печатаю qr code
Если его нет, то соответственно я его не печатаю
   tgu82
 
22 - 29.09.20 - 10:03
(21) Ну правильно - значит ты должен на этом товаре спозиционироваться, а по твоей функции конкретного товара не видно и проверить есть маркер или нет - нельзя
   MouHacTaBHuk
 
23 - 29.09.20 - 10:23
Функция НаличиеМаркера(Номен) 
    Рез = 0;                             
    Если Номен.Маркер = 1 Тогда 
        Рез = 1; 
    КонецЕсли; 
    Возврат Рез; 
КонецФункции 


или если у тебя это доп реквизит, тогда
   MouHacTaBHuk
 
24 - 29.09.20 - 10:26
+(23) тогда надо найти значение этого реквизита. Например так:
Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок", "Маркер");
РеквизитВНомен = Номен.ДополнительныеРеквизиты.Найти(Свойство, "Свойство");
Если РеквизитВНомен.Значение = 1 Тогда 
    Рез = 1; 
КонецЕсли;
   tgu82
 
25 - 29.09.20 - 10:32
(24) Ну там 7.7 вроде как.
Маркер - это реквизит числовой длиной 1, то есть либо 1 либо 0.
Если Номен.Маркер=1 Тогда....

Главное - спозиционироваться на конкретный элемент номенклатуры чтобы проверить есть маркер или нет.
   MouHacTaBHuk
 
26 - 29.09.20 - 10:35
(25) а, пропустил информацию про 7.7. Свалю вину на ТС, так как ни в первом посте ни в пояснении не упомянул об этом
   skafandr
 
27 - 29.09.20 - 11:16
(0)Это жесть
    
"Объект это ККМ". Вопрос-подсказка в ККМ ОДИН товар?
Если не один То значит должен быть перебор по строчкам ККМ,в нем проверка наличия маркера у товара в данной строчке.
Короче типа такого
  
 Объект.ВыбратьСтроки();
 Пока Объект.ПолучитьСтроку() = 1 Цикл 
   Если Объект.Товар.Маркер=1 Тогда
    // тут делать свое "если маркировка есть то печатало его QR код на чеке"

   КонецЕсли
 КонеЦикла


 КонецЦикла
   skafandr
 
28 - 29.09.20 - 11:17
(27) один КонецЦикла лишний - убрать


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.