Имя: Пароль:
1C
 
Получить Значение конкретного Объекта в ФормеВыбора
0 Dasvi
 
24.06.22
13:37
Всем Привет , задача максимально проста , а я видимо немного туплю
В общем есть такой код:
СкладВыбор = ..... Вот что сюда вписать что бы все работало по человечески)))...... ;                                
    Дата = ЭлементыФормы.Дата.Значение;    
    
    ФормаВыбора = РегистрыСведений.ЦеныЕжедневно.ПолучитьФормуСписка(,Элемент);
    
    ФормаВыбора.РежимВыбора = Истина;
    ФормаВыбора.Отбор.Склад.Использование = Истина;
    ФормаВыбора.Отбор.Склад.ВидСравнения = ВидСравнения.Равно;
    ФормаВыбора.Отбор.Склад.Значение = СкладВыбор;


Если есть поле на форме и в поле выбирается Склад , а потом я задаю СкладВыбор = ЭлементыФормы.Склад
То все фильтрует на Ура
Но мне нужен просто один из складов постоянно и при любых условиях , соответсвенно я просто должен закинуть его значение в СкладВыбор
Уже пробовал по ID , пробовал ПоискПоНаименованию, но в итоге передается пустое значение и соответсвенно Отбор тоже вставляет пустое и ни чего не выдает
Проблема как раз в том что я видимо передаю не значение а что то другое
Подскажите как быть)
1 bolobol
 
24.06.22
14:07
Пока не найдёте склад - ничего не получится. Ищите склад точнее, хоть ..ПоНаименованию
2 Dasvi
 
24.06.22
14:09
(1) Склад я нахожу, с этим все ок
работает и по наименованию и по ID и по коду и тд
Но потом мне пишет что неверный тип значения в строке

ФормаВыбора.Отбор.Склад.Значение = СкладВыбор;
3 Dasvi
 
24.06.22
14:09
Я думал что нужно записать что то типо
СкладВыбор = Справочники.Склады.ПоискСкладаПоЧемуХотите().Значение;
Но так это не работает
4 bolobol
 
24.06.22
14:13
Справочники.Склады.НайтиПо..() - это и есть то что нужно
5 Dasvi
 
24.06.22
14:22
(4) Спасибо Вам) Я до этиого Использовал НайтиПо , но почему то не задалось, возможно ошибка в ситаксисе была и я сразу за другое взялся....
Теперь Все работает
СкладВыбор = Справочники.Склады.НайтиПоКоду("КОДСКЛАДА",ИСТИНА,,);     
    Дата = ЭлементыФормы.Дата.Значение;
    
    ФормаВыбора = РегистрыСведений.Я_ЦеныПриходаСкладыЕжедневно.ПолучитьФормуСписка(,Элемент);    
    ФормаВыбора.РежимВыбора = Истина;
    ФормаВыбора.Отбор.Склад.Использование = Истина;
    ФормаВыбора.Отбор.Склад.ВидСравнения = ВидСравнения.Равно;
    ФормаВыбора.Отбор.Склад.Значение = СкладВыбор;
6 Гипервизор
 
24.06.22
14:27
(5) Потому что у вас раньше было НайтиПо...().Значение, а Значение тут лишнее.
7 Dasvi
 
24.06.22
14:39
(6) Спасибо)
Осталось только выбрать из этого списка Цену и вставить ее в поле))
Реализовал так же что бы выбиралась только одна строка, тк как нужна цена за предыдущий день от формирования отчета:
ФормаВыбора.Отбор.Период.Использование = Истина;
ФормаВыбора.Отбор.Период.ВидСравнения = ВидСравнения.Равно;
ФормаВыбора.Отбор.Период.Значение = Дата - 60*60*24;
8 Dasvi
 
24.06.22
14:41
Случаем не так это делается:
ФормаВыбора = ЭлементыФормы.Найти(Цена);
?
9 Dasvi
 
24.06.22
14:42
ФормаВыбора.ЭлементыФормы.Найти(Цена); ***
10 Dasvi
 
24.06.22
14:47
Не работает такое:
Вызывается метод при обработки/изменении поля
Элемент = ФормаВыбора.ЭлементыФормы.найти(Цена);
11 Dasvi
 
24.06.22
14:47
Не метод а процедуры
12 Dasvi
 
24.06.22
14:52
Крч Вот Вся процедура
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;    
    Номенклатура = СтрокаТабличнойЧасти.Номенклатура;
    Дата = ЭлементыФормы.Дата.Значение;
    СкладВыбор = СкладВыбор;
        СкладВыбор = Справочники.Склады.НайтиПоКоду("000000003",ИСТИНА,,);         
    ФормаВыбора = РегистрыСведений.Я_ЦеныПриходаСкладыЕжедневно.ПолучитьФормуСписка(,Элемент);    
        ФормаВыбора.РежимВыбора = Истина;
        ФормаВыбора.Отбор.Склад.Использование = Истина;
        ФормаВыбора.Отбор.Склад.ВидСравнения = ВидСравнения.Равно;
        ФормаВыбора.Отбор.Склад.Значение = СкладВыбор;
    
        ФормаВыбора.Отбор.Номенклатура.Использование = Истина;
        ФормаВыбора.Отбор.Номенклатура.ВидСравнения = ВидСравнения.Равно;
        ФормаВыбора.Отбор.Номенклатура.Значение = Номенклатура;
    
        ФормаВыбора.Отбор.Период.Использование = Истина;
        ФормаВыбора.Отбор.Период.ВидСравнения = ВидСравнения.Равно;
        ФормаВыбора.Отбор.Период.Значение = Дата - 60*60*24;
        ФормаВыбора.Открыть();
        ЦенаВыбор = ФормаВыбора.ЭлементыФормы.ТекущиеДанные;
        Цена = СтрокаТабличнойЧасти.Цена;
        Элемент = Цена;
13 Мультук
 
гуру
24.06.22
14:59
(12)

Это вместо запроса?
А форму кто закрывает ?
14 Fish
 
24.06.22
15:02
15 Dasvi
 
24.06.22
15:07
(14) Да
16 Dasvi
 
24.06.22
15:08
(13) На данный момент в целях проверки того какие данные он отображает и отображает ли вообще ручками сам закрываю
17 Dasvi
 
24.06.22
15:09
(15) Ну хотя не совсем,  Цену то я получаю)) Мне ее вставить надо
18 Dasvi
 
24.06.22
15:11
(13) С запросами не очень вышло, решил так сделать, устал я от Запросов) Весь месяц только и делаю  что пишу их)
19 Dasvi
 
24.06.22
15:12
(13) Форму по сути открывать то и не надо , это я так, для наглядности себе, потом можно убрать
20 Fish
 
24.06.22
15:22
(19) Форму по сути и получать не надо. И под тонкий клиент твой код (12) не заработает.
21 Dasvi
 
24.06.22
15:24
(20) Да на тонком я и не выполняю эту задачу

Понятное дело что на тонком и УФ будет по другому
22 Dasvi
 
24.06.22
15:24
Это обычное приложение толстый клиент
23 Fish
 
24.06.22
15:26
(22) В любом случае получать какие-то данные из регистра через форму - это неправильно.
24 Dasvi
 
24.06.22
15:30
(23) Запросом предлагаешь все сделать?
25 Dasvi
 
24.06.22
15:31
(23) Мне просто нужно выбрать цену из отфильтрованого списка где 1 строка и поставить ее таблицу в колонку цена
26 Dasvi
 
24.06.22
15:31
(23) А почему неправильно?
27 Fish
 
24.06.22
15:34
(24) Необязательно запросом. Есть же методы Получить, ПолучитьПоследнее, СрезПоследних.
28 Dasvi
 
24.06.22
15:48
(27) До них я не добрался еще, в следующий раз через них попробую)
Как из этой формы вытащить цену?)
29 Fish
 
24.06.22
15:50
(28) Не нужно из формы ничего вытаскивать. За такое сразу надо бить по рукам.
30 Dasvi
 
24.06.22
15:54
(29) Ну спасибо за помощь и совет конечно
31 Dasvi
 
24.06.22
15:54
(29) Удружил)
32 Dasvi
 
24.06.22
15:55
Ля, если тебе будет от этого лучше, я могу выгрузить все полученные данные в форме в массив и тогда из массива надо брать
33 Dasvi
 
24.06.22
15:55
Вам будет* Простите
34 Dasvi
 
24.06.22
15:55
Заработался
35 Fish
 
24.06.22
15:59
(32) А за такое надо бить не только по рукам, но и по голове :))
36 Dasvi
 
24.06.22
16:07
(35) Воу Воу воу , опасность)) Не надо так с джунами, они еще слабы и беззащитны
37 Dasvi
 
24.06.22
16:09
(35) Ну тогда остается то только запрос,
Если через форму неправильно, соответсвенно остается запрос ну и методы про которые Вы говрили
буду писать через них
38 Dasvi
 
24.06.22
16:19
Да и опять же, почему столь простой вариант не подходит?
Основная теорема систематики: Новые системы плодят новые проблемы.