[РЕШЕНО] Запрет ввода номенклатуры, помеченной на удаление

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем roofless, 4 фев 2015.

  1. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    хм, а что подбором не пользуетесь? по мне так куда удобнее
    upload_2015-2-5_20-52-52.png

    upload_2015-2-5_20-52-17.png
  2. TopicStarter Overlay
    roofless
    Offline

    roofless Опытный в 1С

    Регистрация:
    27 июн 2014
    Сообщения:
    260
    Симпатии:
    7
    Баллы:
    29
  3. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    в 11.1 там задействован общий модуль
    "НомеклатураВызовСервера"
    и конкретно эта процедура
    Код:
    Процедура НоменклатураОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Экспорт
       
        СтандартнаяОбработка = Ложь;
       
        // Получим структуру возможных полей отбора справочника номенклатуры
        СтруктураРеквизитов = ЗначениеНастроекПовтИсп.РеквизитыСправочника("Номенклатура");
       
        Запрос        = Новый Запрос;
        СтрокаПоиска  = Параметры.СтрокаПоиска;
        УсловиеОтбора = "";
       
        Для Каждого КлючИЗначениеОтбора Из Параметры.Отбор Цикл
            Если СтруктураРеквизитов.Свойство(КлючИЗначениеОтбора.Ключ) Тогда
                УсловиеОтбора = УсловиеОтбора + "
                    |    И СпрНоменклатура." + КлючИЗначениеОтбора.Ключ + " В (&" + КлючИЗначениеОтбора.Ключ + ")";
                Запрос.УстановитьПараметр(КлючИЗначениеОтбора.Ключ,КлючИЗначениеОтбора.Значение);
            КонецЕсли;
        КонецЦикла;
       
        Если НЕ Параметры.Отбор.Свойство("ЭтоГруппа") И Параметры.Свойство("ВыборГруппИЭлементов") Тогда
            Если Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы Тогда
                УсловиеОтбора = УсловиеОтбора + "
                    |    И СпрНоменклатура.ЭтоГруппа";
            ИначеЕсли Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Элементы Тогда
                УсловиеОтбора = УсловиеОтбора + "
                    |    И НЕ СпрНоменклатура.ЭтоГруппа";
            КонецЕсли;
        КонецЕсли;
       
        Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 50
        |    СпрНоменклатура.Ссылка,
        |    СпрНоменклатура.Наименование КАК ПредставлениеСовпадения,
        |    СпрНоменклатура.Качество.Порядок КАК Качество,
        |    0 КАК Порядок,
        |    СпрНоменклатура.Код КАК ПредставлениеНоменклатуры,
        |    СпрНоменклатура.ЭтоГруппа
        |ПОМЕСТИТЬ НоменклатураПоиск
        |ИЗ
        |    Справочник.Номенклатура КАК СпрНоменклатура
        |ГДЕ
        |    СпрНоменклатура.Наименование ПОДОБНО &СтрокаПоиска
        |    " + СокрЛП(УсловиеОтбора) + "
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ ПЕРВЫЕ 50
        |    СпрНоменклатура.Ссылка,
        |    СпрНоменклатура.Код,
        |    СпрНоменклатура.Качество.Порядок,
        |    1,
        |    СпрНоменклатура.Наименование,
        |    NULL
        |ИЗ
        |    Справочник.Номенклатура КАК СпрНоменклатура
        |ГДЕ
        |    СпрНоменклатура.Код ПОДОБНО &СтрокаПоиска
        |    " + СокрЛП(УсловиеОтбора) + "
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ ПЕРВЫЕ 50
        |    СпрНоменклатура.Ссылка,
        |    СпрНоменклатура.Артикул,
        |    СпрНоменклатура.Качество.Порядок,
        |    2,
        |    СпрНоменклатура.Наименование,
        |    NULL
        |ИЗ
        |    Справочник.Номенклатура КАК СпрНоменклатура
        |ГДЕ
        |    СпрНоменклатура.Артикул ПОДОБНО &СтрокаПоиска
        |    " + СокрЛП(УсловиеОтбора) + "
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ ПЕРВЫЕ 50
        |    СпрНоменклатура.Ссылка,
        |    СпрНоменклатура.КодДляПоиска,
        |    СпрНоменклатура.Качество.Порядок,
        |    3,
        |    СпрНоменклатура.Наименование,
        |    NULL
        |ИЗ
        |    Справочник.Номенклатура КАК СпрНоменклатура
        |ГДЕ
        |    СпрНоменклатура.КодДляПоиска ПОДОБНО &СтрокаПоиска
        |    " + СокрЛП(УсловиеОтбора) + "
        |;
        |   
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    НоменклатураПоиск.Ссылка,
        |    МИНИМУМ(НоменклатураПоиск.Порядок) КАК Порядок
        |ПОМЕСТИТЬ НоменклатураПоПорядку
        |ИЗ
        |    НоменклатураПоиск КАК НоменклатураПоиск
        |
        |СГРУППИРОВАТЬ ПО
        |    НоменклатураПоиск.Ссылка
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    НоменклатураПоиск.Качество КАК Качество,
        |    НоменклатураПоиск.Ссылка,
        |    НоменклатураПоиск.Порядок КАК Порядок,
        |    НоменклатураПоиск.ПредставлениеСовпадения КАК ПредставлениеСовпадения,
        |    НоменклатураПоиск.ПредставлениеНоменклатуры КАК ПредставлениеНоменклатуры
        |ИЗ
        |    НоменклатураПоПорядку КАК НоменклатураПоПорядку
        |        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураПоиск КАК НоменклатураПоиск
        |        ПО НоменклатураПоПорядку.Ссылка = НоменклатураПоиск.Ссылка
        |            И НоменклатураПоПорядку.Порядок = НоменклатураПоиск.Порядок
        |
        |УПОРЯДОЧИТЬ ПО
        |    Порядок,
        |    Качество,
        |    ПредставлениеСовпадения,
        |    ПредставлениеНоменклатуры";
       
        Запрос.УстановитьПараметр("СтрокаПоиска", СтрокаПоиска + "%");
       
        ДанныеВыбора = Новый СписокЗначений;
    
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
           
            ТекстЗначения = СокрП(Выборка.ПредставлениеСовпадения) + " (" + Выборка.ПредставлениеНоменклатуры + ")";
            ДанныеВыбора.Добавить(Выборка.Ссылка, ТекстЗначения);
           
        КонецЦикла;    
       
    КонецПроцедуры
    
    по идее надо просто вставить условие проверки пометки удаления
  4. UDmitriy
    Offline

    UDmitriy

    Регистрация:
    26 авг 2016
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Кусок кода не могу кинуть но у меня работает так: роли-> шаблоны ограничений создаю шаблон где если скрывать помеченые на улаление=ложь
    код дать не могу но делаю так: создаю шаблон оганичениия с выбором помеченых если установлен флаг параметрасеанса
    Далее в документе в нужном поле на событиях окончаниеввода и автоподбор меняю флаг параметра сеанса и подключаю обработчик ожидания с периодом 0.1 сек на обратную смену флага . Работает даже на вебклиенте (причем процедура смены флага серверная но ошибки не возникает). в форме выбора делаю запрос к данным и проверкой флага (если флаг установлен то выводитьили не выводить как запрограммируешь)

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