|
Обращение к реквизиту. | ☑ | ||
---|---|---|---|---|
0
Novostruev
03.08.13
✎
14:55
|
Добрый день. Недавно начал изучать 1С и вот такой вопрос возник:
Имеется справочник Контрагент, с реквизитом ПроцентСкидки. Также имеется документ ПриходнаяНакладная, с реквизитом Контрагент (с ссылкой на справочник). Нужно , чтобы при изменении поля Контрагент в форме документа, ПроцентСкидки записывался в табличную часть документа. Как мне в форме получить ссылку на выбранный в поле контрагент ?? Я понял, что на клиенте я к нем не могу обратиться(к справочнику) и не могу считать реквизит справочника. Но можно получить ссыль и в общем модуле получить нужный реквизит. Как мне получить эту ссылку ?? И второй небольшой вопрос. Опять же в форме, я могу обратиться "Элементы.Контрагент" и "объект.Контрагент". В чем разница между ними, к чем у я именно обращаюсь в этих случаях ?? |
|||
1
GROOVY
03.08.13
✎
15:28
|
Элементы.Контрагент - это элемент формы. Его можно скрыть, сделать недоступным, покрасить в разные цвета.
Объект.Контрагент - это данные формы. Данные формы содержат ссылку на элемент справочника и его представление. Именно передавая в серверную процедуру данные формы - мы можем по ссылке получить значения реквизитов. |
|||
2
Novostruev
04.08.13
✎
08:48
|
Спасибо большое за пояснение, все работает =)
|
|||
3
Novostruev
04.08.13
✎
10:16
|
Решил не создавать новую тему, вопрос тот же, но уже связан с табличной частью документа.
Документ ПриходнаяНакладаная. Табличная часть - СписокНоменклатры. При изменении поля Номенклатура из ТабЧасти, должна возвращаться цена продажи из справочника. С простым полем выбора(1 случай) у меня срабтало, а вот с ТЧ не получается. обращаюсь - ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.Номенклатура); Не видит поле номенклатура.(хотя вроде как передаю ссылку на нее) пробовал обращаться по номеру строки. Не видит реквизит справочника - ЦенаТовара. НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока; ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.НайтиПоИдентификатору(НомерСтроки)); Так как же в ТЧ теперь получить ссылку на справочник ?? =) |
|||
4
Ковычки
04.08.13
✎
10:41
|
все делается без изменений конфигурации
|
|||
5
Novostruev
04.08.13
✎
11:13
|
Так почему-то не делается. Ошибку выдает. Где я не так написал ??
|
|||
6
Orfin
04.08.13
✎
11:35
|
Может так?
НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока.НомерСтроки; ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.НайтиПоИдентификатору(НомерСтроки)); |
|||
7
Novostruev
04.08.13
✎
11:53
|
пишет ошибку ((
{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(10)}: Значение не является значением объектного типа (НомерСтроки) НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока.НомерСтроки; |
|||
8
Капитан О
04.08.13
✎
11:56
|
&НаКлиенте
Процедура ТоварыСтрокаТЧПриИзменении(Элемент) КлиентскийМодуль.РассчитатьСтоимость(Элементы.Товары.ТекущиеДанные); КонецПроцедуры Процедура РассчитатьСтоимость(СтрокаТЧ) Экспорт СтрокаТЧ.Стоимость=СтрокаТЧ.Количество*СтрокаТЧ.Цена; КонецПроцедуры |
|||
9
Novostruev
04.08.13
✎
12:02
|
Мне не нужно считать стоимость. Мне нужно получиться в из ТабличнойЧасти получить ссылку на реквизит справочника. С полем ввода у меня получилось, но вот с ТЧ выдает почему-то ошибку
|
|||
10
Novostruev
04.08.13
✎
12:03
|
*Мне нужно получить из ТабличнойЧасти ссылку на реквизит
|
|||
11
Капитан О
04.08.13
✎
12:06
|
(9) не нужно считать стоимость - не считай
|
|||
12
Novostruev
04.08.13
✎
12:21
|
Мне не элемент формы нужен, а ссылка на реквизит справочника Номенклатура. Обратиться к этому реквизиту я могу через серверную функцию с ссылкой на элемент этого справочника. Так вот как именно получить эту ссылку из ТЧ ???
|
|||
13
Капитан О
04.08.13
✎
12:23
|
(12) я ни хрена не понял. вон тебе в качестве примера обращение к цене, количеству и стоимость текущей строки ТЧ. сформулируй вопрос
|
|||
14
Любопытная
04.08.13
✎
12:24
|
(12) на сервер отправь свою текущую строку, а на сервере уще СтрокаТЧ.Номенклатура и будет ссылка на элемент справочника. Что непонятно?
|
|||
15
Капитан О
04.08.13
✎
12:28
|
(14) дык ссылка бывает не только на сервере
|
|||
16
Любопытная
04.08.13
✎
12:32
|
(15) ты внимательно читай (12): "Обратиться к этому реквизиту я могу через серверную функцию..." Он один хрен на сервер пойдет, пусть сразу туда все тащит
|
|||
17
Капитан О
04.08.13
✎
12:35
|
(16) да, ты права
(12) отдавай на сервер свою номенклатуру |
|||
18
Novostruev
04.08.13
✎
12:40
|
Сейчас все заново опишу, чего мне не понятно.
в Документе в ТабличнойЧасти нужно при изменении Номенклатуры получить значение реквизита ЦенаПродажи из справочника Номенклатура. На клиенте есть только ссылка на справочник. А значение реквизита справочника ЦенаПродажи я получу через серверную функцию, так как на клиенте к нему нет доступа.(Ответ на самый первый мой пост). Мне нужна ссылка не на строку ТабличнойЧасти , а на реквизит справочника. До этого я заполнил поле Контрагент(поле выбора) и обращался к нему Объект.Контрагент - вот ссылка на элемент справочника Контрагент, и на серверной функции я считал его резквизит. Это работает. Но вот как получить ссылку на элемент справочника, но уже из ТЧ ?? код в модуле формы: &НаКлиенте Процедура СписокНоменклатурыНоменклатураПриИзменении(Элемент) СтрокаТЧ = Элементы.СписокНоменклатуры.ТекущиеДанные; ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(СтрокаТЧ); СтрокаТЧ.Цена = ЦенаТовара*(100-ПроцентСкидки)/100; РаботаСДокументами.РасчитатьСумму(СтрокаТЧ); КонецПроцедуры А вот серверная функция : Функция УзнатьЦенуТовара(Товар) Экспорт Возврат Товар.ЦенаПродажи; КонецФункции |
|||
19
Капитан О
04.08.13
✎
12:41
|
(18) нельзя цену продажи хранить в реквизите элемента. дальше советовать не вижу смысла
|
|||
20
Капитан О
04.08.13
✎
12:43
|
(19) хотя, не, вижу. ПолучитьПродажнуюЦену(Номенклатура) всего-то нужно переписать. и отдавать ей номенклатуру из текущей строки, а не всю строку целиком
|
|||
21
Novostruev
04.08.13
✎
12:47
|
Вот я подаю сроку
ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(СтрокаТЧ.Номенклатура); а как функцию переписать ?? Что ей не хватает ?? |
|||
22
Капитан О
04.08.13
✎
12:52
|
(21) запроса к РС ЦеныНоменклатуры ей не хватает
|
|||
23
Novostruev
04.08.13
✎
12:54
|
Запросом ?? я просто хотел без него попробовать, как с полем Контрагент, просто передать ссыль и считать реквизит, ну да ладно, запросом, так запросом. Спасибо большое за терпение ))
|
|||
24
Капитан О
04.08.13
✎
12:56
|
(23) осмысли (19)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |