Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нединамический фильтр и Доступность кнопочек на панели инструментов
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
shkoda
Всем приветы!

Фото конфы, но там многое изменено уже


Попросили кадровики убрать из справочника строки с пометкой удаления


Написал ЧекБокс, всё работает и строки с пометкой удаления пропадают, но на следубщий день обратились с жалобой, что не нажимается кнопка НоваяСтрока - она просто недоступна


Вот кот:

Процедура Скрывать()
    
    Если фСкрывать = 1 Тогда
        
        // выполним запрос по справочнику Сотрудники
        ТекстЗапр = "//{{ЗАПРОС(ОтборСотр)";  
        ТекстЗапр = "
        |Обрабатывать НеПомеченныеНаУдаление;
        |Фирма = Справочник.Фирмы.ТекущийЭлемент;
        |Группировка Фирма;
        |";//}}ЗАПРОС                
        Запр = СоздатьОбъект("Запрос");
        Если Запр.Выполнить(ТекстЗапр) = 0 Тогда
            Возврат;
        КонецЕсли;
        СписЭлементов = СоздатьОбъект("СписокЗначений");
        Пока Запр.Группировка("Фирма") = 1 Цикл
            СписЭлементов.ДобавитьЗначение(Запр.Фирма);
        КонецЦикла;
        //УстановитьОтбор(,);
        ИспользоватьСписокЭлементов(СписЭлементов);    
        Форма.Обновить();

    Иначе
        
        // выполним запрос по справочнику Сотрудники
        ТекстЗапр = "//{{ЗАПРОС(ОтборСотр)";  
        ТекстЗапр = "
        //|Обрабатывать НеПомеченныеНаУдаление;
        |Фирма = Справочник.Фирмы.ТекущийЭлемент;
        |Группировка Фирма;
        |";//}}ЗАПРОС                
        Запр = СоздатьОбъект("Запрос");
        Если Запр.Выполнить(ТекстЗапр) = 0 Тогда
            Возврат;
        КонецЕсли;
        СписЭлементов = СоздатьОбъект("СписокЗначений");
        Пока Запр.Группировка("Фирма") = 1 Цикл
            СписЭлементов.ДобавитьЗначение(Запр.Фирма);
        КонецЦикла;
        //УстановитьОтбор(,);
        ИспользоватьСписокЭлементов(СписЭлементов);    
        Форма.Обновить();
    КонецЕсли;
    
КонецПроцедуры



Я так понимаю, что после применения ИспользоватьСписокЭлементов эти все слюнявки происходят. Или может я ошибаюсь, граждане подскажите, где ошибка? (Про ДНК можно не писать - уже осознал это связавшись с 1С)
И как сделать так чтобы и фильтр работал - в будущем ещё добавятся реквизиты для фильтрации - и эти кнопочки наверху были активны.

Всем спасибо за помощь!
nysysimara
попробуйте
    ИерархическийСписок(0,);

после ИспользоватьСписокЭлементов
Acid
shkoda @ Сегодня, 14:00 необходимо зарегистрироваться для просмотра ссылки ,
фигасе у вас Фирм....

Я бы сделал проще - создал бы папку "Удаленные", и переместил их все туда.
shkoda
nysysimara @ Сегодня, 15:59 необходимо зарегистрироваться для просмотра ссылки ,
пробовал ранее - не помогло

Acid @ Сегодня, 15:59 необходимо зарегистрироваться для просмотра ссылки ,
я тоже так хотел сделать, но беда в том что в самом скором времени добавится новый реквизит - Регион, по которому тоже нужно будет делать отбор

а фирм действительно много, и людей там работает мама-негорюй rulez.gif
Sanyk
Проблема в тому, що коли показує лише певний список елементів, система не може з'ясувати, до якої папки буде належати створюваний елемент (теж саме, коли вимикаєш ієрархію). Створіть окрему кнопку на формі списку для створення нових елементів і кодом пропішіть створення нового елемента:
// ===============================
Процедура СоздатьЭлемент()
     ОткрытьФорму("Элемент.Сотрудники",,0);
КонецПроцедуры
nysysimara
еще вариант:
для ведения справочника (создание, пометка на удаление, заполнение реквизитов) использовать основную форму списка без отборов
отборы применять в формах выбора
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.