Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 04:15

Добавление функции "Поиск по штрих-коду ISBN"

Автор DinaMuS, 06 мая 2011, 12:43

0 Пользователей и 1 гость просматривают эту тему.

DinaMuS

Платформа 7.7 (7.70.025)
Конфигурация  Библиотека Колледжа (7.70.203)

Изначально в программе заложен "Простой поиск" и "Поиск инвентарному номеру". Вопрос в том - как можно добавить еще поиск по штрих-коду ISBN?

Вот что я попробовал:

Вырезка из глоб модуля:

Функция НайтиПоШтрихКодуИСБН(Номер) Экспорт
   Перем Кн;
   СпрИН=СоздатьОбъект("Справочник.Книги");

   Если СпрИН.НайтиПоКоду(Номер,0)=1 Тогда
      Предупреждение("Найден");
      Кн=СпрИН.Владелец;    
   Иначе 
      Кн=ПолучитьПустоеЗначение("Справочник.Книги");
      Предупреждение("Не найден");
   КонецЕсли;
   Возврат(Кн);    
КонецФункции //НайтиПоШтрихКодуИСБН(Номер) Экспорт


Вырезка из кнопки:

ИначеЕсли Действие="Поиск по штрих-коду ISBN"   Тогда
      ВвестиСтроку(ШКисбн,"Введите штрих-код ИСБН",13);      
      Спр=НайтиПоШтрихКодуИСБН(ШКисбн);
      Если ПустоеЗначение(Спр)=0 Тогда
         АктивизироватьОбъект(спр.текущийЭлемент());
      Иначе
         Предупреждение("Книга с таким штрих-кодом ИСБН не найдена!");
      КонецЕсли;



p.s. В коде 1С работаю примерно 2 недели.

DinaMuS

Спасибо, но ответ смогу сказать только во вторник утром-днем.

ISBN или Штрих-код ISBN??? Вообще, раньше эти величины были взаимосвязаны, но я сделал так, чтобы штрих-код ISBN генерировался случайно, а не зависимо от ISBN - требование руководителя, т.к. каждой книге нужен был независимый штрих-код, а ISBN у каждой записи в справочнике "Книги" был одинаковый.

p.s. Надеюсь, я Вас не сильно запутал =)

DinaMuS

Выдает ошибку, что недостаточное количество параметров для функции "НайтиПоРеквизиту". Пробовал написать вот так - "Найти по Реквизиту(Номер,0)", но все равно одно и то же.

DinaMuS

Исправил. Все работает!

Сделал в этой функции так - "Найти по Реквизиту("ШтрихКодИСБН",Номер,0)"

Большое спасибо!!!

p.s. Под вашим ником спасибо тоже сказал =)

DinaMuS

Чтобы не плодить темы, задам следующий вопрос тут.

Функция "Поиск по щтрих-коду ISBN" создавалась для уже созданного поля в форме, сейчас я хочу просто брать данные передаваемые в переменной (которая не является полем) модуля, уже созданной процедуры.

Вырезка из процедуры:

<b>
ИначеЕсли Действие = "Этикетки" Тогда
      Если Проведен()=1 Тогда
      Инв=СоздатьОбъект("Справочник.ИнвентарныеНомера");
      Парт=СоздатьОбъект("Справочник.Партии");
      
      Таб=СоздатьОбъект("ТаблицаЗначений");
      Таб.НоваяКолонка("Товар");
      Таб.НоваяКолонка("ШтрихКод");
      Пар=СоздатьОбъект("СписокЗначений");
      ВыбратьСтроки();
      Пока ПолучитьСтроку()=1 Цикл
         Издание=Поступление;
         // Не многотомник
         СтрОписания=глСтрокаДляЭтикетки(Издание);
         
         Инв.ИспользоватьВладельца(Издание);
         Инв.ВыбратьЭлементы();
         Пока Инв.ПолучитьЭлемент()=1 Цикл
              //  Сообщить(Инв.Код);
            Если Инв.ДокументПоступленияВФонд.Получить(ДатаДок)=ТекущийДокумент() Тогда
               ШтрихКод=глСформироватьБарКодИнв(Инв.Код);
               Таб.НоваяСтрока();
               Таб.Товар=СтрОписания;
               Таб.ШтрихКод=ШтрихКод;
</b>

Функция из глобального модуля:

<b>
Функция НайтиПоШтрихКоду(Номер) Экспорт
   Перем Кн;
   СпрИН=СоздатьОбъект("Документ.ПоступлениеКниг");

    Если СпрИН.НайтиПоРеквизиту("Штрихкод",Номер,0)=1 Тогда
      Предупреждение("Найден");    
      Кн=СпрИН.ТекущийЭлемент();    
   Иначе 
      Кн=ПолучитьПустоеЗначение("Справочник.Книги");
      Предупреждение("Не найден");
   КонецЕсли;
   Возврат(Кн);    
КонецФункции //НайтиПоШтрихКоду(Номер) Экспорт
</b>

Проблема в том, что эта функция никак не может увидеть эту переменную (ШтрихКод), как сделать так, чтобы она ее увидела?

DinaMuS

До этого работало нормально и так =)

В любом случае, дело не в этом, когда я при такой конфигурации пытаюсь сделать поиск, то выдается ошибка - "Поле агрегатного обьекта не обнаружено (НайтиПоРеквитизиту)"

DinaMuS

Забыл сказать, что пробовал, правда это тупость совсем, но пробовал создать поле в этом же документе и давал ему идентификатор "ШтрихКод", но поле всегда оставалось пустое, значит проблема в самом присвоении значения этой переменной.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск