![]() |
|
1С:Предприятие
:: 1С:Предприятие 7.7 и ранее
|
|
| ||
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 | |||
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 | |||
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 | |||
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 | |||
Mikeware 48 - 22.01.21 - 09:38 | Открой для себя индексированную таблицу из 1с++ | ||
Андрей_Андреич 49 - 22.01.21 - 09:47 | (48) Сначала синтакс-помощник бы открыть ... | ||
Mikeware 50 - 22.01.21 - 10:02 | |||
Mafiozaa 51 - 22.01.21 - 11:45 | |||
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 |
|
Список тем форума |