Имя: Пароль:
1C
 
Заполнение доп. реквизита на форме
0 golem14
 
17.11.21
09:20
Нужно программно заполнить доп. реквизит на форме при выборе склада.    
Сделал вот так, но мне кажется что-то очень сложный код получился, может это делается как-то проще?

    Свойство =  ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Направление продаж");
    СтруктураПоиска = Новый Структура("Свойство", Свойство);
    МассивСтрок = ЭтотОбъект.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(СтруктураПоиска);
    ОписаниеСвойства = МассивСтрок[0];
    ИмяСвойстваНаФорме = ОписаниеСвойства.ИмяРеквизитаЗначение;
    ЭтотОбъект[ИмяСвойстваНаФорме] = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Коммерческие продажи", , , Свойство);
1 Малыш Джон
 
17.11.21
09:34
Можно упростить:

ЭтотОбъект[ЭтотОбъект.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(Новый Структура("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Направление продаж")))[0].ИмяРеквизитаЗначение] = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Коммерческие продажи", , , Свойство);
2 RomanYS
 
17.11.21
09:38
(1) Свойство же не определено, переписывай)))
3 golem14
 
17.11.21
09:42
(1) ну, написать в одну строку не значит упростить )))
4 DexterMorgan
 
17.11.21
09:42
(0) Если тебе нужно в коде работать с доп. реквизитом - он не должен быть доп. реквизитом.
Но ты конечно можешь страдать и дальше
5 golem14
 
17.11.21
09:44
(4) Отказаться от механизма доп. реквизитов это вариант.
6 Малыш Джон
 
17.11.21
09:45
(3) Тогда дай определение понятию "упростить")
7 DexterMorgan
 
17.11.21
09:45
(5) Что мешает добавить реквизит?
8 Малыш Джон
 
17.11.21
09:45
Можно ещё на сервере ТЧ Допреквизиты у объекта заполнять
9 RomanYS
 
17.11.21
09:46
(4) Спорно. В современные типовые ДРты довольно органично вшиты, отказываться  вот из-за этого я бы точно не стал
10 DexterMorgan
 
17.11.21
09:47
(5) Сейчас заполнение, потом будет какая-нибудь пользовательская видимость, потом будешь в запросах соединять с ТЧ доп реквизитов и искать свойство по наименованию
11 RomanYS
 
17.11.21
09:47
(8) есть риск что данные из формы твою ТЧ перезаполнят.
12 DexterMorgan
 
17.11.21
09:48
(9) Не надо отказываться, надо отказываться, когда возникает потребность работать с ними в коде и запросах
13 DexterMorgan
 
17.11.21
09:49
(9) Но ты тоже можешь страдать дальше
14 Мимохожий Однако
 
17.11.21
09:53
Вместо строки
Свойство =  ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Направление продаж");
надо искать по реквизиту "Имя". Это на форме дополнительного реквизита или доп. сведения в подразделе "для разработчиков" видно.
15 Малыш Джон
 
17.11.21
09:53
(11) Слушай, ну вопрос стоит не "как надо", а "как проще" же
16 golem14
 
17.11.21
10:12
(14) Это имеет принципиальное значение? вроде и так и так одинаково работает. Вот если бы доп реквизиты на форме назывались этим именем, но нет же, там какая то абракадабра.
17 RomanYS
 
17.11.21
10:18
(16) туда можно/нужно своё записать, и уникальность должна гарантироваться в отличие от наименования
18 Мимохожий Однако
 
17.11.21
10:19
(16) Я сталкивался в некоторых базах с одинаковым наименованием для доп.реквизитов и доп.сведений. Мой вариант надёжнее
19 golem14
 
17.11.21
10:24
в общем вынес в процедуру в общем модуле
     УстановитьЗначениеДополнительногоРеквизитаНаФорме(Форма, ИмяРеквизита, ЗначениеРеквизита) Экспорт

Можно жить. Неужели в БСП нет такой?
20 Мимохожий Однако
 
17.11.21
10:31
Ради чего эти пляски с бубном?
21 Малыш Джон
 
17.11.21
10:31
(19) разве в конфе такой процедуры нет?
22 RomanYS
 
17.11.21
10:35
(21) похоже нет или не было. Или мало кто её может найти
Вот тем же путём идёт товарищ
https://infostart.ru/1c/articles/867282/
Программист всегда исправляет последнюю ошибку.