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

Показать все документы по ключам

Автор nopIII, 27 ноя 2025, 13:57

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

Максим75

Цитата: antoneus от 28 ноя 2025, 09:39Ну можно и на табличную часть отборы поустанавливать)
да можно конечно и зайца научить курить, был бы толк от этого))

antoneus


nopIII


antoneus

Тогда так. Получаем форму, для списка устанавливаем более тонкие отборы.

Форма = ПолучитьФорму(
        "Документ.ПеремещениеТоваров.ФормаВыбора",
        ПараметрыФормы,
        ЭтаФорма,
        Новый ОписаниеОповещения(
            "ОбработкаВыбораДокументаПеремещения",
            ЭтаФорма,
            ДопПарам
        )
    );

ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(Форма.Список, "Дата", НачалоМесяца(Строка.Дата), ВидСравненияКомпоновкиДанных.БольшеИлиРавно);
ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(Форма.Список, "Дата", КонецМесяца(Строка.Дата), ВидСравненияКомпоновкиДанных.МеньшеИлиРавно);
ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(Форма.Список, "Ссылка.Товары.Номенклатура", Строка.Номенклатура);
....и так далее....
Форма.Открыть()

"Ссылка.Товары.Номенклатура" - путь к реквизиту ТЧ, может быть другим, подставляй как оно там всё у тебя называется.

nopIII

antoneus, У меня получился такой код &НаКлиенте
Процедура АнализНомерПеремещенияНачалоВыбора(Элемент, СтандартнаяОбработка)

   
    СтандартнаяОбработка = Ложь;

   
    Строка = Элементы.Анализ.ТекущиеДанные;
    Если Строка = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
    ДопПарам = Новый Структура("СтрокаАнализа", Строка);

   
    Форма = ПолучитьФорму(
        "Документ.ПеремещениеТоваров.ФормаСписка",
        Неопределено,                     // параметры формы не нужны
        ЭтаФорма,                         // владелец – наша форма
        Новый ОписаниеОповещения(
            "ОбработкаВыбораДокументаПеремещения", // процедура ниже
            ЭтаФорма,                              // где искать
            ДопПарам)                              // что передать вторым параметром
    );

   

   
    Если ЗначениеЗаполнено(Строка.Дата) Тогда

        ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(
            Форма.Список,
            "Дата",
            НачалоМесяца(Строка.Дата),
            ВидСравненияКомпоновкиДанных.БольшеИлиРавно);

        ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(
            Форма.Список,
            "Дата",
            КонецМесяца(Строка.Дата),
            ВидСравненияКомпоновкиДанных.МеньшеИлиРавно);

    КонецЕсли;

   
    Если ЗначениеЗаполнено(Строка.Номенклатура) Тогда

        ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(
            Форма.Список,
            "Ссылка.Товары.Номенклатура",     
            Строка.Номенклатура,
            ВидСравненияКомпоновкиДанных.Равно);

    КонецЕсли;

   
    Если ЗначениеЗаполнено(Строка.Характеристика) Тогда

        ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(
            Форма.Список,
            "Ссылка.Товары.Характеристика",
            Строка.Характеристика,
            ВидСравненияКомпоновкиДанных.Равно);

    КонецЕсли;

   
    Если ЗначениеЗаполнено(Строка.Количество) Тогда

        ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(
            Форма.Список,
            "Ссылка.Товары.КоличествоУпаковок",
            Строка.Количество,
            ВидСравненияКомпоновкиДанных.Равно);

    КонецЕсли;

   
    Если ЗначениеЗаполнено(Строка.СкладОтправитель) Тогда

        ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(
            Форма.Список,
            "СкладОтправитель",
            Строка.СкладОтправитель,
            ВидСравненияКомпоновкиДанных.Равно);

    КонецЕсли;

   
    Если ЗначениеЗаполнено(Строка.СкладПолучатель) Тогда

        ОтборыСписковКлиентСервер.УстановитьЭлементОтбораСписка(
            Форма.Список,
            "СкладПолучатель",
            Строка.СкладПолучатель,
            ВидСравненияКомпоновкиДанных.Равно);

    КонецЕсли;

   
    Форма.Открыть();

КонецПроцедуры


&НаКлиенте
Процедура ОбработкаВыбораДокументаПеремещения(ВыбранныйОбъект, ДопПараметры) Экспорт

   
    Если ВыбранныйОбъект = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
    Строка = Неопределено;

    Если ДопПараметры <> Неопределено
        И ДопПараметры.Свойство("СтрокаАнализа") Тогда

        Строка = ДопПараметры.СтрокаАнализа;
    КонецЕсли;

   
    Если Строка = Неопределено Тогда
        Строка = Элементы.Анализ.ТекущиеДанные;
    КонецЕсли;

    Если Строка = Неопределено Тогда
       
        Возврат;
    КонецЕсли;

   
    Строка.НомерПеремещения   = ВыбранныйОбъект;
    Строка.СтатусПеремещения  = ПолучитьСтатусПеремещения(ВыбранныйОбъект);

    Элементы.Анализ.Обновить();

КонецПроцедуры

   Теперь у меня после нажатия "Показать все" открывается форма выбора (со всеми документами вообще) и открывается форма списка документов с нашими ключами  :D  Где-то видимо накосячил) 

antoneus

ну СтандартнаяОбработка = Ложь должно вторую форму глушить, а так непонятно откуда она берется.

nopIII

antoneus, Исправил чутка код, сейчас он получается открывает две формы выбора, первую это стандартная форма со всеми доками и вторая это та самая форма с моими ключами то что мне нужно) Почему так происходит, интересно)

Теги:

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

Рейтинг@Mail.ru

Поиск