8.х Как выбрать данные из формы и проверить на совпадение символов в наименовании?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Seva, 17 окт 2013.

  1. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Розница 1.0, есть форма кассираккм и нужно перед проведением чека проверить номенклатуру, если есть номенклатура с названием к примеру Apple тогда выдать предупреждение кассиру что к товару обязательно идет подарок.
    Как выбрать и проверить запросом я знаю а вот как проверить данные из формы никак не соображу, подскажите пожалуйста.

    Вложения:

    • форма.jpg
      форма.jpg
      Размер файла:
      183,7 КБ
      Просмотров:
      15
  2. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    По идее надо при нажатии на кнопку ОПЛАТИТЬ выбрать номенклатуру из формы и проверит в условии
    Если Товары.Наименование Содержит "Apple" тогда
    Сообщить(...);
    КонецЕсли;

    В запросе я бы указало ПОДОБНО а как сделать без запроса? или как можно запросом выбрать данные из этой формы? интересует только колонка наименование на скрине.
  3. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    В обработчике действия кнопки, вставте процедурку или функцию которая будет проверять номенклатуру.
    В этой функции/процедурке получите из источника табличного поля (это скорее всего таблица значений или табличная часть обработки) выгрузите колонку "Номенклатура", получите массив который можно использовать в качестве параметра в запросе и после, по результатам запроса выдавать соотв. сообщение

    при этом если тип в колонке "Номенклатура" "СправочникСсылка.Номенклатура" тогда использовать "ПОДОБНО" в запросе не придется, массив можно проверить целиком используя конструкцию запроса "В (&СписокНоменклатуры)"
    смотрите синтаксис помощник раздел "Работа с запросами"
  4. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Делаю такую процедуру. ошибка не соответсвие типов...
    Код:
    Процедура ПроверяюНоменклатуру()
    ТЗ = Новый МенеджерВременныхТаблиц;
    ТЗ =  ЭтотОбъект.Товары.Выгрузить();
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = ТЗ;
    Запрос.Текст = "Выбрать Наименование как Наименование ИЗ ТЗ";
    Рез= Запрос.Выполнить().Выбрать();
    Предупреждение(Рез);
    КонецПроцедуры
    
  5. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Вроде разобрался, в итоге получилась вот такая процедурка:
    Код:
    Процедура ПроверитьНоменклатуру()
    
    ТЗ = ЭтотОбъект.Товары.Выгрузить();
    МенВТ = Новый  МенеджерВременныхТаблиц;
    Запрос = новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МенВТ;
    Запрос.Текст = "Выбрать * Поместить ДокТЧ ИЗ &ТЗ как ТЗ";
    Запрос.УстановитьПараметр("ТЗ",ТЗ);
    Запрос.Выполнить();
    
    Запрос = новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МенВТ;
    Запрос.Текст = "Выбрать Номенклатура ИЗ ДокТЧ ГДЕ Номенклатура.Наименование ПОДОБНО ""%Apple%""";
    СТР = Запрос.Выполнить().Выбрать();
    
    Пока стр.Следующий() Цикл
    Предупреждение(СТР.Номенклатура);
    КонецЦикла;
    КонецПроцедуры
    
    Не уверен что все правильно, но у меня работает ;). Может кому пригодится.
  6. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    А чем стандартный функционал не устроил? В рознице есть скидки, которые выдают оповещение. Назначили бы на нужную номенклатуру и все?
    Изобретение велосипеда.
  7. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    В базе более 20т. наименований думаю быстрее было этот код сделать чем вручную назначать скидки на нужные товары. Но спасибо я был не в курсе что это можно сделать с помощью скидок.
  8. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Так сделайте отбор номенклатуры по наименованию и все.

Поделиться этой страницей