|
Почему не ищет поиск в таблице значений ! |
|
|
|
|
|
|
|
|
|
24.03.12, 16:28
|

Про1С-ник

   
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

|
Цитата(Zink @ 24.03.12, 16:07)  может и еще нормальный код Так он не работает этот код. Вы же даже не удосужились в синтаксис-помошник зайти и посмотреть какие методы у таблицы значений есть. Цитата(Zink @ 24.03.12, 16:07)  Может кто, чего то подскажет ????????? Это слишком большой вопрос. Особенно если знаний нет, дать ответ на него невозможно. Задавайте конкретные вопросы, только сначала ознакомьтесь хотя бы с каким-то минимумом по работе с 1С, иначе все объяснения можно будет отправить в топку. Цитата(Zink @ 24.03.12, 16:12)  Функция НайтиТовПоШк() выдает либо 1-ну строку из справочника номенклатура по заданному штрих коду, либо вообще ничего не выдает. Результата типа таблицазначений. Затем я ищу в реквизите формы строку с таким же штрих кодом, если она есть то я увеличиваю колонку количество, если такой строки нет значит добавляю. при закрытии этой обработки данные переносятся в документ приходования товара. Из этого вообще ничего не понятно. По правильному процесс заполнения ТЧ товаров происходит так - при считывании ШК ищется товар в справочнике, если находится то проверяется ТЧ на наличие такого же, если найден то добавляется количество, если нет то добавляется новая строка с товаром.

Личные бесплатные консультации не даю, для этого есть форум!
|
|
|
|
|
|
|
24.03.12, 17:41
|
Общительный
 
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0

|
Сижу уже около с 10 утра завис над этим вопросом : метод НайтиСтроки() выдает 0 строк в таблицезначений, хотя заранее знаю что строка с искомым штрих кодом есть. Вот весь мой код: Функция НайтиТовПоШк() Запрос = Новый Запрос ("Выбрать |Код,НаименованиеПолное, ШтрихКод |ИЗ |Справочник.Номенклатура |ГДЕ |ШтрихКод = &ПолеШК"); Запрос.УстановитьПараметр("ПолеШК",ЭлементыФормы.ПолеШК.Значение); Результат = Запрос.Выполнить(); Рез = Результат.Выгрузить(); Если Рез.Количество()= 0 Тогда Возврат 0; Иначе Возврат Рез; КонецЕсли; КонецФункции
Процедура ПолеШКПриИзменении(Элемент) РезультатПоиска = НайтиТовПоШк(); Отбор = Новый Структура(); Отбор.Вставить("ШтрихКод",ЭлементыФормы.ПолеШК.Значение); Если РезультатПоиска = 0 Тогда Сообщить(" Товар с данным штрих кодом "+Элемент.Значение+" не найден !"); Иначе Строки = РезультатПоиска.НайтиСтроки(Отбор); Сообщить(""+Строки.Количество()); КонецЕсли; КонецПроцедуры
Что не так не могу понять, все вроде проверил: Ardi а) НайтиТовПоШк() никогда ничего не выдаёт. б) отсутствует колонка "ШтрихКод" в) колонка "ШтрихКод" всегда пустая г) колонка "ШтрихКод" не того типа. д) ЭлементыФормы.ПолеШК не того типа е) ЭлементыФормы.ПолеШК пустое в этот момент Может всетаки использовать ТЧ как писал logist. Тогда вопрос как её на форме отображать, если режим запуска обычное приложение или это не влияет ?
|
|
|
24.03.12, 17:56
|

Про1С-ник

   
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

|
Цитата(Zink @ 24.03.12, 17:41)  Может всетаки использовать ТЧ как писал logist. Я Вам написал выше, что ошибся, и имел ввиду ТЗ. Цитата(Zink @ 24.03.12, 17:41)  Что не так не могу понять Отладчик в руки и вперед, смотрите где что не так. Но опять же, вы неверно работаете с ТЗ. Нельзя так: Если РезультатПоиска = 0 Тогда
Верните из функции ТЗ, а потом уже проверяйте пустая она или нет. Я ж написал выше пример. + зачем объявлять переменные если они могут не использоваться... уберите это Отбор = Новый Структура(); Отбор.Вставить("ШтрихКод",ЭлементыФормы.ПолеШК.Значение); и вставьте сюда: Иначе Строки = РезультатПоиска.НайтиСтроки(Новый Структура ("ШтрихКод",ЭлементыФормы.ПолеШК.Значение));

Личные бесплатные консультации не даю, для этого есть форум!
|
|