|
Подставить элемент из другого справочника |
☑ |
0
anagk
19.08.22
✎
11:52
|
Сообщать сообщает. А в форму не подставляет. Есть реквизит Контрагент, ПриВыборе Контрагента, в его карточке есть Ответственный (НаименованиеОтв). В накладной есть Реквизит СтруктурныеЕдиницы. Задача чтобы в СтруктурныеЕдиницы автоматом выбрался елемент который ПО НАИМЕНОВАИЮ совпадает с НаименованиеОтв. Сообщение работает. А вот СтрктурнаяЕдиница остаеться пустой.
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
***********//////////
Сообщить(НайтиСтруктурнуюЕдиницу(Контрагент));
//СтруктурнаяЕдиница = НайтиСтруктурнуюЕдиницу(Контрагент);
КонецПроцедуры
&НаСервере
Функция НайтиСтруктурнуюЕдиницу(СтрЕд)
Перем СтрЕдДляПоиска, СсылкаСтрЕд;
СтрЕдДляПоиска = Справочники.СтруктурныеЕдиницы;
КонтрагентСтрЕд = Контрагент.Ответственный;
СсылкаСтрЕд = СтрЕдДляПоиска.НайтиПоНаименованию(КонтрагентСтрЕд);
Если СсылкаСтрЕд = СтрЕдДляПоиска.ПустаяСсылка() Тогда
Возврат "Контрагент не найден";
Иначе
Возврат СсылкаСтрЕд.Наименование;
КонецЕсли;
КонецФункции
|
|
1
shuhard
19.08.22
✎
11:56
|
(0) и отладчик украли ?
|
|
2
Kobol
19.08.22
✎
11:59
|
Похоже у вас реквизит СтруктурнаяЕдиница имеет тип ссылки, а подставить пытаетесь строку (судя по Возврат СсылкаСтрЕд.Наименование).
|
|
3
Галахад
гуру
19.08.22
✎
11:59
|
И так видно, что тип возвращаемого значения строка.
|
|
4
Kassern
19.08.22
✎
12:02
|
(0) На чем раньше кодили?
Вместо:
Перем СтрЕдДляПоиска, СсылкаСтрЕд;
СтрЕдДляПоиска = Справочники.СтруктурныеЕдиницы;
КонтрагентСтрЕд = Контрагент.Ответственный;
СсылкаСтрЕд = СтрЕдДляПоиска.НайтиПоНаименованию(КонтрагентСтрЕд);
Если СсылкаСтрЕд = СтрЕдДляПоиска.ПустаяСсылка() Тогда
Можно:
СтруктурнаяЕдиница=Справочники.СтруктурныеЕдиницы.НайтиПоНаименованию(Контрагент.Ответственный);
Если СтруктурнаяЕдиница.Пустая() Тогда
|
|
5
Kassern
19.08.22
✎
12:06
|
Вы возвращаете строку, а должны ссылку. В вашем случае, вы можете сразу на сервере присвоить найденное значение нужному реквизиту. Объект.СтруктурнаяЕдиница=Справочники.СтруктурныеЕдиницы.НайтиПоНаименованию(Контрагент.Ответственный); А если нужно сообщить при пустом значении, то проверяйте на пустую ссылку и сообщайте
|
|
6
anagk
19.08.22
✎
12:08
|
(5) таким образом ошибка - Нет переменной "СПРАВОЧНИКИ"
|
|
7
anagk
19.08.22
✎
12:11
|
(4) у истоков стоял))) 7.7
|
|
8
1Сергей
19.08.22
✎
12:12
|
(6) на сервере это делать надо
|
|
9
anagk
19.08.22
✎
12:13
|
(2) согласен.. и как дальше?)
|
|
10
Kassern
19.08.22
✎
12:14
|
(9) см. (8) и (5)
|
|
11
anagk
19.08.22
✎
12:22
|
все ок - спасибо. Не привыкну к НаСервере, НаКлиенте))))
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший