Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Найти значение в ТЗ

v7: Найти значение в ТЗ
Я
   Mafiozaa
 
22.01.21 - 07:54
Всем привет, что то не понятное, есть табличная часть, есть ТЗ, выгружаю табличную часть в ТЗ (в табличной части есть колонка (КодТовара)) хочу найти значение в колонке ТЗКоды.КодТовара, выдает ошибку неверный идентификатор колонки, но если в цикле пишу сообщить ТЗКоды.КодТовара он показывает все содержимое этой колонки

Для А = 1 По ТЗКоды.КоличествоСтрок() Цикл
    Если ТЗКоды.НайтиЗначение(Штрихкод, А, ТЗКоды.КодТовара) = 1 Тогда
        Сообщить("Есть")
    КонецЕсли;
КонецЦикла;
   ДенисЧ
 
1 - 22.01.21 - 07:55
А что СП говорит про НайтиЗначение() ? (у меня клюшек нет, посмотреть негде)
   Mafiozaa
 
2 - 22.01.21 - 07:56
(1)
НайтиЗначение(<?>,,);
Синтаксис:
НайтиЗначение(<Знач>,<Строка>,<Колонка>)
Назначение:
Найти заданное значение в таблице значений. Возвращает число: 0 - значение не найдено; 1 - значение найдено
Параметры:
<Знач> - значение для поиска.
<Строка> - идентификатор переменной, куда возвращается номер найденной строки. Если при вызове метода передать в этот параметр номер строки, то поиск будет осуществляться только по указанной строке.
<Колонка> - номер или идентификатор колонки, возвращает номер найденной колонки. Идентификатор переменной, куда возвращается номер найденной колонки. Если при вызове метода передать в этот параметр номер или идентификатор колонки, то поиск будет осуществляться только по указанной колонке.
   Документовед
 
3 - 22.01.21 - 07:57
ТЗКоды.ВыбратьСтроки();
Если ТЗКоды.НайтиЗначение(Штрихкод, А, ТЗКоды.КодТовара) = 1 Тогда
   ДенисЧ
 
4 - 22.01.21 - 07:57
А у тебя в ТЗКоды.КодТовара название колонки шоле?
   ДенисЧ
 
5 - 22.01.21 - 07:57
Так попробуй
Если ТЗКоды.НайтиЗначение(Штрихкод, А, "КодТовара") = 1 Тогда
   Андрей_Андреич
 
6 - 22.01.21 - 07:57
Вообще ни одной буквы не угадал
Если ТЗКоды.КодТовара=Штрихкод
Это если в цикле проверять
Если найти первую попавшуюся строка то:
    А=0;
    Если ТЗКоды.НайтиЗначение(Штрихкод, А, "КодТовара") = 1 Тогда
        Сообщить("Есть в строке № "+А)
    КонецЕсли;
   Bigbro
 
7 - 22.01.21 - 07:58
"кодТовара" в кавычках надо
   JeHer
 
8 - 22.01.21 - 08:01
(6) это клюшки. Там надо А=1.
И вполне возможно, что в ТЗ коды попали со всякими левыми символами, в том числе с пробелом.
   Mafiozaa
 
9 - 22.01.21 - 08:04
(6) "КодТовара" - съел, но не возвращает 1ку, хотя штрихкод верный, щас пробелы отобью
   Андрей_Андреич
 
10 - 22.01.21 - 08:04
(8) Садись два. Если не указать А=0, то ищет в строке с номером А. Если А=0, то ищет по всей таблице и в А возвращает номер найденной строки
   Mafiozaa
 
11 - 22.01.21 - 08:08
(10) (8) (7) (6) Штрихкод верный, СокрЛП не помог, еденичку не ворачивает
   Mafiozaa
 
12 - 22.01.21 - 08:15
В чем может быть проблема?)
   JeHer
 
13 - 22.01.21 - 08:15
(10) это что? Фича какая-то?
   JeHer
 
14 - 22.01.21 - 08:15
(12) типы данных одинаковые?
   Андрей_Андреич
 
15 - 22.01.21 - 08:16
(11) Мы же твоих данных не видим. Сохрани таблицу значений в файл и выложи. и штрихкод тоже
   ДенисЧ
 
16 - 22.01.21 - 08:16
(13) Это поведение, описанное в документации
   Mafiozaa
 
17 - 22.01.21 - 08:18
(14) Ну если я табличную часть выгружаю в ТЗ, врятле они меняются как то
   Bigbro
 
18 - 22.01.21 - 08:18
я вообще не понял зачем цикл?
стр=0;
Если ТЗКоды.НайтиЗначение(ШтрихКод,стр,"КодТовара")=1 Тогда
  Сообщить("Найден штрихкод в строке "+стр);
Иначе
  Сообщить("Штрихкод "+ШтрихКод+" не найден");
КонецЕсли;
   Андрей_Андреич
 
19 - 22.01.21 - 08:20
(17) Если тебе нужны ответы - следуй советам. Можно же не думать, а тупо посмотреть проверить. ЗначениеВФайл() и будет видно
(18) Может человеку надо все дубли проверить
   Bigbro
 
20 - 22.01.21 - 08:20
(19) дубли не так проверяются.
   Bigbro
 
21 - 22.01.21 - 08:21
а так он в цикле ищет в ТЗ но каждый раз по одной ячейке. это бред какой то.
   Mafiozaa
 
22 - 22.01.21 - 08:23
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
    // Процедура разбирает штрих-код, считанный сканером

    // и заполняет строки накладной

    Перем Упаковка,ТекКоличество, Спецификация;
    Перем ВремТовар, ВремЕдиница, ВремКоличество, ВремЦена;
    
    Перем СтрокаВозврЦена;
    Если Событие = "BarCodeValue" Тогда
        Штрихкод = СокрЛП(Данные);
        Сообщить(Штрихкод);
        стр=1;
            Если ТЗКоды.НайтиЗначение(ШтрихКод,стр,"КодТовара")=1 Тогда
                  Сообщить("Найден штрихкод в строке "+стр);
            Иначе
                 Сообщить("Штрихкод "+ШтрихКод+" не найден");
            КонецЕсли;
        //Если ТЗКоды.НайтиЗначение(Штрихкод,Стр,ТЗКоды.КодТовара) = 1 Тогда

        //    Сообщить("Йоу")

        //Иначе

        //    Сообщить("Колом");

        //КонецЕсли;

        
        //ПолучитьСтрокуПоНомеру(НомерСтроки);

        //Если СтрДлина(Данные) > 14 Тогда

        //    Маркер = СокрЛП(Данные);

        //    КодМаркировки = Маркер;

        //    ПолучитьСтрокуПоНомеру(НомерСтроки + 1);

        //    АктивизироватьСтроку(НомерСтроки);

        //КонецЕсли;

        глСканерПосылкаДанных(1);
    Иначе
        глОбработкаВнешнегоСобытия(Источник, Событие, Данные);    
    КонецЕсли;
   Mafiozaa
 
23 - 22.01.21 - 08:23
   Mafiozaa
 
24 - 22.01.21 - 08:24
При данном коде, вижу вот это см скрин
   JeHer
 
25 - 22.01.21 - 08:25
ТЗКоды как заполняешь-то всё-таки?
   Mafiozaa
 
26 - 22.01.21 - 08:26
(25) ВыгрузитьТабличнуюЧасть(ТЗКоды);
   Андрей_Андреич
 
27 - 22.01.21 - 08:26
(24) Ну и что что скрин - может это вычисляемое поле, а в таблице его нет. Говорю же - выдай собственно ТЗКоды
   Mafiozaa
 
28 - 22.01.21 - 08:27
(27) Секунду, этим и занимаюсь
   Андрей_Андреич
 
29 - 22.01.21 - 08:27
(26) А в коде нет этой выгрузки
   Mafiozaa
 
30 - 22.01.21 - 08:27
(29) Она заполняется при открытии
 
 Рекламное место пустует
   Bigbro
 
31 - 22.01.21 - 08:27
стр = 0 
а не стр = 1
иначе ищет по строке номер 1
   Mafiozaa
 
32 - 22.01.21 - 08:28
(29) И при обходе пусть той же номенклатуры в цикле, выдает все значения
   Mafiozaa
 
33 - 22.01.21 - 08:28
(31) Стр = 0, тоже самое
   Андрей_Андреич
 
34 - 22.01.21 - 08:29
(32) Пока таблицу не покажешь - смысла нет
   Bigbro
 
35 - 22.01.21 - 08:30
Значит оборачивай в СОкрЛП()
по-любому там пробелы у тебя добиты, длина поля больше чем длина штриха.
   JeHer
 
36 - 22.01.21 - 08:30
Вот не поленился и накидал обработину. У меня всё ищет
   Bigbro
 
37 - 22.01.21 - 08:31
ну или наоборот штрих добивай пробелами до нужной длины, чтобы найтизначение работало
   Mafiozaa
 
38 - 22.01.21 - 08:33
(34)
ЗначениеВФайл("123.txt", ТЗКоды);
Сообщить(ЗначениеВФайл("123.txt", ТЗКоды));

Возвращает 1, файл пустой
   JeHer
 
39 - 22.01.21 - 08:33
(36)+ https://prnt.sc/xf4q4x
По-любому, типы не совпадают
   Mafiozaa
 
40 - 22.01.21 - 08:35
(39) Строка 13 символом, а кодтовара строка 20 символом, щас под 13 сделал проверю
   Mafiozaa
 
41 - 22.01.21 - 08:36
(39) Красавчик, полетело
   Mafiozaa
 
42 - 22.01.21 - 08:50
Уважаемые,опять колом встал)))
   Mafiozaa
 
43 - 22.01.21 - 08:51
Бывает такое что на 1 номенклатурную позицию вбито 2-3 штрихкода)
   Андрей_Андреич
 
44 - 22.01.21 - 08:52
(42) Хвастаешься?
   JeHer
 
45 - 22.01.21 - 08:52
(43) опять в загадки играть будем? В чем теперь-то вопрос?
   Bigbro
 
46 - 22.01.21 - 08:55
(43) и что с того?
   Mafiozaa
 
47 - 22.01.21 - 09:04
(44) (45) (46) Принцип понятен, буду играться, разберусь, спасибо большое)
   Mikeware
 
48 - 22.01.21 - 09:38
Открой для себя индексированную таблицу из 1с++
   Андрей_Андреич
 
49 - 22.01.21 - 09:47
(48) Сначала синтакс-помощник бы открыть ...
   Mikeware
 
50 - 22.01.21 - 10:02
(49) ну да. Это первое дело...
"спроси у мужика в кепке!"©
   Mafiozaa
 
51 - 22.01.21 - 11:45
(48) Вот это дельное, а (49) (50) не по сути, ибо через него и делал
   GreyK
 
52 - 22.01.21 - 12:54
(51) А чем индексированная таблица дельнее, чем НайтиЗначений? Ну окромя того, что надо уметь пользоваться.
   andrewalexk
 
53 - 22.01.21 - 13:01
(52) :) найтизначение одно - ничем, а найтизначение списком - дельнее
   GreyK
 
54 - 22.01.21 - 13:13
(53) Тут бы ТС хоть одно значение найти, а вы про списки уже речь ведете, как говорят мудрецы : Большая дорога начинается с маленького шага :)
   Mikeware
 
55 - 22.01.21 - 13:51
(52)(53) тем, что можно найти сразу БлижайшуюБольше, и сравнив по СокрЛП, понять, попал или не попал.
ну и мелкий сахар, типа сразу спозиционироваться...
Или УстановитьФильтр и посмотреть КоличествоСтрок...
(54) ну да, сначала нужно научиться справшивать и понимать МужикаВКепке®


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