Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0
Выполняю запрос, получаю результат в виде таблицы значений. На форме есть реквизит штрих код, из него беру значение и создаю структуру отбора для поиска строк в полученной таблице значений. Результат все время ноль, хотя заранее я знаю что должен быть не ноль. ПОМОГИТЕ РАЗОБРАТЬСЯ !!!!!! Вот код:
Процедура ПолеШКПриИзменении(Элемент) // Вставить содержимое обработчика. ТаблицаЗнач = Новый ТаблицаЗначений(); ТаблицаЗнач = НайтиТовПоШк(); Отбор = Новый Структура(); Отбор.Вставить("ШтрихКод",ЭлементыФормы.ПолеШК); Если ТаблицаЗнач = 0 Тогда Сообщить(" Товар с данным штрих кодом "+Элемент.Значение+" не найден !"); Иначе Строки = ТаблицаЗнач.НайтиСтроки(Отбор); ТабличноеПоле1 = ТаблицаЗнач; Сообщить(" "+Строки.Количество()); КонецЕсли; КонецПроцедуры
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0
Код может и херня, но если учесть что я вообще первый раз пишу что-то в 1с то может и еще нормальный код. Задача вообще такая: приходовать товар по штрих коду с помощью сканера штрих кода(USB) и продавать также по штрих коду. Может кто, чего то подскажет ?????????
Функция НайтиТовПоШк() выдает либо 1-ну строку из справочника номенклатура по заданному штрих коду, либо вообще ничего не выдает. Результата типа таблицазначений. Затем я ищу в реквизите формы строку с таким же штрих кодом, если она есть то я увеличиваю колонку количество, если такой строки нет значит добавляю. при закрытии этой обработки данные переносятся в документ приходования товара.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Zink @ 24.03.12, 16:07)
может и еще нормальный код
Так он не работает этот код. Вы же даже не удосужились в синтаксис-помошник зайти и посмотреть какие методы у таблицы значений есть.
Цитата(Zink @ 24.03.12, 16:07)
Может кто, чего то подскажет ?????????
Это слишком большой вопрос. Особенно если знаний нет, дать ответ на него невозможно. Задавайте конкретные вопросы, только сначала ознакомьтесь хотя бы с каким-то минимумом по работе с 1С, иначе все объяснения можно будет отправить в топку.
Цитата(Zink @ 24.03.12, 16:12)
Функция НайтиТовПоШк() выдает либо 1-ну строку из справочника номенклатура по заданному штрих коду, либо вообще ничего не выдает. Результата типа таблицазначений. Затем я ищу в реквизите формы строку с таким же штрих кодом, если она есть то я увеличиваю колонку количество, если такой строки нет значит добавляю. при закрытии этой обработки данные переносятся в документ приходования товара.
Из этого вообще ничего не понятно. По правильному процесс заполнения ТЧ товаров происходит так - при считывании ШК ищется товар в справочнике, если находится то проверяется ТЧ на наличие такого же, если найден то добавляется количество, если нет то добавляется новая строка с товаром.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0
logist А почему именно через ТЧ, через таблицузначений нельзя это сделать ? Кинуть на форму реквизит типа "таблицазначений" и в него добавлять найденый новый товар или увеличивать количество уже имеющегося, я пытался так сделать. Остановился на том что у меня неработал метод НайтиСтроки(), с помощью кот-го я хотел узнавать есть ли уже товар с таким штрих кодом или нет.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Общий алгоритм действий должен быть где-то такой. Это не готовый код, я просто набросал как можно обойтись одной процедурой.
Процедура КнопкаПоискПоШК(Элемент) Если ПустаяСтрока(ПолеВводаШК) Тогда Возврат КонецЕсли;
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ШК",ПолеВводаШК); Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Штрихкод = &ШК"; Результат = Запрос.Выполнить().Выгрузить();
Если Результат.Количество() Тогда Если Результат.Количество() > 1 Тогда Товар = Результат.ВыбратьСтроку("Найдено несколько товаров, уточните.."); Иначе Товар = Результат[0]; КонецЕсли; дКоличетсво = 0; Если ВвестиЧисло(дКоличетсво,"Введите количество") Тогда нСтрока = ТЧТовары.Найти(Товар.Ссылка); Если нСтрока <> Неопределено Тогда нСтрока.Количество = нСтрока.Количество + дКоличетсво; Иначе нСтрока = ТЧТовары.Добавить(); нСтрока.Номенклатура = Товар.Ссылка; нСтрока.Количетсов = дКоличетсво; КонецЕсли; КонецЕсли; Иначе Сообщить("Товара с таким кодом нет в базе"); КонецЕсли;
КонецПроцедуры
Личные бесплатные консультации не даю, для этого есть форум!
Значит а) НайтиТовПоШк() никогда ничего не выдаёт. б) отсутствует колонка "ШтрихКод" в) колонка "ШтрихКод" всегда пустая г) колонка "ШтрихКод" не того типа. д) ЭлементыФормы.ПолеШК не того типа е) ЭлементыФормы.ПолеШК пустое в этот момент
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0
Сижу уже около с 10 утра завис над этим вопросом : метод НайтиСтроки() выдает 0 строк в таблицезначений, хотя заранее знаю что строка с искомым штрих кодом есть. Вот весь мой код:
Функция НайтиТовПоШк() Запрос = Новый Запрос ("Выбрать |Код,НаименованиеПолное, ШтрихКод |ИЗ |Справочник.Номенклатура |ГДЕ |ШтрихКод = &ПолеШК"); Запрос.УстановитьПараметр("ПолеШК",ЭлементыФормы.ПолеШК.Значение); Результат = Запрос.Выполнить(); Рез = Результат.Выгрузить(); Если Рез.Количество()= 0 Тогда Возврат 0; Иначе Возврат Рез; КонецЕсли; КонецФункции
Процедура ПолеШКПриИзменении(Элемент) РезультатПоиска = НайтиТовПоШк(); Отбор = Новый Структура(); Отбор.Вставить("ШтрихКод",ЭлементыФормы.ПолеШК.Значение); Если РезультатПоиска = 0 Тогда Сообщить(" Товар с данным штрих кодом "+Элемент.Значение+" не найден !"); Иначе Строки = РезультатПоиска.НайтиСтроки(Отбор); Сообщить(""+Строки.Количество()); КонецЕсли; КонецПроцедуры
Что не так не могу понять, все вроде проверил: Ardi а) НайтиТовПоШк() никогда ничего не выдаёт. б) отсутствует колонка "ШтрихКод" в) колонка "ШтрихКод" всегда пустая г) колонка "ШтрихКод" не того типа. д) ЭлементыФормы.ПолеШК не того типа е) ЭлементыФормы.ПолеШК пустое в этот момент
Может всетаки использовать ТЧ как писал logist. Тогда вопрос как её на форме отображать, если режим запуска обычное приложение или это не влияет ?
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0
logist До изучения отладчика еще не дашел !!! Видно именно сейчас и прийдется посмотреть как им пользоваться.
Кажись нашёл, в окне отладчика видно что поле Штрих Код содержит какие то левые пробелы, откуда они взялись непонятно !!!!! Спасибо logist за то что толкнули меня на отладчик !!!! Буду думать как это исправить.
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0
С поиском разобрался, все работает всем спасибо. Обработку "поиск товара по штрих коду" я написал, а как тепер при ее закрытии передать весь найденный товар в документ оприходования товара вот в чем вопрос !? Кто чем может подскажите !!!! Заранее спасибо.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!