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

что можно использовать на клиенте вместо метода Найти()?

Автор Yamuna, 28 авг 2019, 09:20

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

Yamuna

Добрый день! есть старое дополнение для Бухгалтерия предприятия 2.0 и ее надо переписать для Бух 3.0, и вопрос так как там на обычных формах то используют метод Найти() а как можно в тонком клиенте в модуле формы в клиетской процедуре это сейчас? вот код
ПолеДиски = элементы.Диски;
Отборы = ПолеДиски.ОтборСтрок;
ОтборПоСтрокам = Отборы.Найти("Заявка");

LexaK

а зачем вам что-то в (старом) отборе искать?
просто сразу задавайте новый нужный отбор и все
если помогло нажмите: Спасибо!

Yamuna

Цитата: LexaK от 28 авг 2019, 09:42
а зачем вам что-то в (старом) отборе искать?
просто сразу задавайте новый нужный отбор и все
а как? можете подсказать? вот код процедуры научите как ее переписывать..
// Обработчик события ПриАктивизацииСтроки табличного поля Подписки
//
Процедура ПодпискиПриАктивизацииСтроки(Элемент = 0)

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

ЭлементыФормы.ПанельПараметрыПодписки.Доступность = Истина;

ПолеДиски      = ЭлементыФормы.Диски;

Отборы         = ПолеДиски.ОтборСтрок;
ОтборПоСтрокам = Отборы.Найти("Заявка");

Если ОтборПоСтрокам = Неопределено Тогда
ОтборПоСтрокам = Отборы.Добавить("Заявка");
КонецЕсли;

Заявка = Строка.Заявка;

Состояние = Строка.СостояниеЗаявки;

Если Не ЗначениеЗаполнено(Строка.СостояниеЗаявки)
ИЛИ Строка.СостояниеЗаявки = Перечисления.ИТС_ВидыСостоянийЗаявок.НеЗаявлена
ИЛИ Строка.СостояниеЗаявки = Перечисления.ИТС_ВидыСостоянийЗаявок.Заявлена Тогда
ОтборПоСтрокам.Установить(Документы.ИТС_ВходящаяЗаявка.ПустаяСсылка());
ПолеДиски.Доступность = Ложь;
Иначе
ОтборПоСтрокам.Установить(Заявка);
ПолеДиски.Доступность = Истина;
КонецЕсли;

Если ЗначениеЗаполнено(Заявка)Тогда

// Контрагент
Контрагент = Заявка.Контрагент;

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

Строка = АутентификационныеДанные.Найти(Контрагент, "Контрагент");
Если Не Строка = Неопределено Тогда
Объект.Логин = Строка.Логин;
Объект.Пароль = Строка.Пароль;
Иначе
Объект.Логин = "";
Объект.Пароль = "";
КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЕсли;

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

LexaK

если помогло нажмите: Спасибо!

Yamuna

Цитата: LexaK от 28 авг 2019, 10:58
ПолеДиски - Диски это вообще что? ТЧ? ТЗ?
это табличная часть документа

LexaK

примерно так изменить отбор строк

// Обработчик события ПриАктивизацииСтроки табличного поля Подписки
//
Процедура ПодпискиПриАктивизацииСтроки(Элемент = 0)
   
    Строка = ЭлементыФормы.Подписки.ТекущиеДанные;
    Если Не Строка = Неопределено Тогда
       
        ЭлементыФормы.ПанельПараметрыПодписки.Доступность = Истина;
       
        //ПолеДиски      = ЭлементыФормы.Диски;
        //Отборы         = ПолеДиски.ОтборСтрок;
        //ОтборПоСтрокам = Отборы.Найти("Заявка");
        //Если ОтборПоСтрокам = Неопределено Тогда
        //    ОтборПоСтрокам = Отборы.Добавить("Заявка");
        //КонецЕсли;
       
        Состояние = Строка.СостояниеЗаявки;
        ПолеДиски       = Элементы.Диски;
        Если Не ЗначениеЗаполнено(Строка.СостояниеЗаявки)
         ИЛИ Строка.СостояниеЗаявки = Перечисления.ИТС_ВидыСостоянийЗаявок.НеЗаявлена
         ИЛИ Строка.СостояниеЗаявки = Перечисления.ИТС_ВидыСостоянийЗаявок.Заявлена Тогда
            лкЗаявка = Документы.ИТС_ВходящаяЗаявка.ПустаяСсылка();
            ПолеДиски.Доступность = Ложь;
        Иначе
            лкЗаявка = Строка.Заявка;
            ПолеДиски.Доступность = Истина;
        КонецЕсли;
        ПолеДиски.ОтборСтрок = Новый ФиксированнаяСтруктура("Заявка", лкЗаявка);
...........

если помогло нажмите: Спасибо!

Yamuna

Цитата: LexaK от 28 авг 2019, 12:50
примерно так изменить отбор строк

// Обработчик события ПриАктивизацииСтроки табличного поля Подписки
//
Процедура ПодпискиПриАктивизацииСтроки(Элемент = 0)
   

       
        //ПолеДиски      = ЭлементыФормы.Диски;
        //Отборы         = ПолеДиски.ОтборСтрок;
        //ОтборПоСтрокам = Отборы.Найти("Заявка");
        //Если ОтборПоСтрокам = Неопределено Тогда
        //    ОтборПоСтрокам = Отборы.Добавить("Заявка");
        //КонецЕсли;
       
     
...........


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

LexaK

так вот же Отбор используется
...
ПолеДиски.ОтборСтрок = Новый ФиксированнаяСтруктура("Заявка", лкЗаявка);
...

я так понял, у вас на форме две таблицы, когда вы в таблице Подписке активизируете строку,
то в таблице Диски показываются/отбираются строчки по текущей Заявке
если помогло нажмите: Спасибо!

Yamuna

Цитата: LexaK от 28 авг 2019, 12:50
примерно так изменить отбор строк

// Обработчик события ПриАктивизацииСтроки табличного поля Подписки
//
Процедура ПодпискиПриАктивизацииСтроки(Элемент = 0)
   
    Строка = ЭлементыФормы.Подписки.ТекущиеДанные;
    Если Не Строка = Неопределено Тогда
       
        ЭлементыФормы.ПанельПараметрыПодписки.Доступность = Истина;
       
        //ПолеДиски      = ЭлементыФормы.Диски;
        //Отборы         = ПолеДиски.ОтборСтрок;
        //ОтборПоСтрокам = Отборы.Найти("Заявка");
        //Если ОтборПоСтрокам = Неопределено Тогда
        //    ОтборПоСтрокам = Отборы.Добавить("Заявка");
        //КонецЕсли;
       
        Состояние = Строка.СостояниеЗаявки;
        ПолеДиски       = Элементы.Диски;
        Если Не ЗначениеЗаполнено(Строка.СостояниеЗаявки)
         ИЛИ Строка.СостояниеЗаявки = Перечисления.ИТС_ВидыСостоянийЗаявок.НеЗаявлена
         ИЛИ Строка.СостояниеЗаявки = Перечисления.ИТС_ВидыСостоянийЗаявок.Заявлена Тогда
            лкЗаявка = Документы.ИТС_ВходящаяЗаявка.ПустаяСсылка();
            ПолеДиски.Доступность = Ложь;
        Иначе
            лкЗаявка = Строка.Заявка;
            ПолеДиски.Доступность = Истина;
        КонецЕсли;
        ПолеДиски.ОтборСтрок = Новый ФиксированнаяСтруктура("Заявка", лкЗаявка);
...........


ЛехаК я еще пока немного не понял, как теперь этот отбор я могу использовать, например:
    ПолеДиски.ОтборСтрок = Новый ФиксированнаяСтруктура("Заявка", лкЗаявка);
        Отбор = ПолеДиски.ОтборСтрок;
        Если Отбор = Неопределено Тогда
           Сообщить("Ничего нет");
        КонецЕсли;

  Так можно будет?
или так :
  ПолеДиски.ОтборСтрок = Новый ФиксированнаяСтруктура("Заявка", лкЗаявка);
строка = ПолеДиски.ОтборСтрок;
если НЕ Строка=Неопределено Тогда
  Логин = Строка.Логин;
  Пароль = Строка.Пароль;
Иначе
  Логин = "";
  Пароль = "";
КонецЕсли;


.......

LexaK

отбор строк просто на форме чего-то там вам фильтрует!
причем тут логин и пароль?

для поиска и работы с данными какой ТЧ/ТЗ используйте метод НайтиСтроки(...)

вообще с самого начала не понятно что вам надо сделать вообще
если сможете опишите.

встали/выбрали на строчку в талице Подписки ... (что дальше должно произойти?)
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск