|
Как сделать чтобы цена в документе вставала автоматом? | ☑ | ||
---|---|---|---|---|
0
program345
07.03.15
✎
08:17
|
доброго дня!
есть код: // &НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) Элементы.Товары.ТекущиеДанные.Цена = ТоварыНоменклатураПриИзмененииСервер(Элементы.Товары.ТекущиеДанные.Номенклатура); КонецПроцедуры &НаСервере Функция ТоварыНоменклатураПриИзмененииСервер(Товар) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Цена, | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ЭтоГруппа = ЛОЖЬ | И Номенклатура.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Товар.Наименование); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.Цена; КонецЕсли; КонецФункции // можно ли его упростить? |
|||
1
ДенисЧ
07.03.15
✎
08:18
|
А куда проще?
|
|||
2
jsmith82
07.03.15
✎
08:20
|
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент) Элементы.Товары.ТекущиеДанные.Цена = ТоварыНоменклатураПриИзмененииСервер(Элементы.Товары.ТекущиеДанные.Номенклатура); КонецПроцедуры &НаСервере Функция ПолучитьЦенуТовараНаСервере(Товар) Возврат Товар.Цена; КонецФункции |
|||
3
Strogg
07.03.15
✎
08:22
|
1) нафига ты к наименованию обращаешься, когда у тебя уже есть ссылка?
2) в типовых, цена хранится в специально обученном рс. Посмотри внимательней свою конфу) |
|||
4
jsmith82
07.03.15
✎
08:26
|
я бы сделал так
&НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) СтрокаТабЧасти = Элементы.Товары.ТекущиеДанные.ПолучитьИдентификатор(); ТоварыНоменклатураПриИзмененииСервер(НомерСтроки); КонецПроцедуры &НаКлиенте Процедура ТоварыНоменклатураПриИзмененииСервер(НомерСтроки) СтрокаТабЧасти = Объект.Товары.НайтиПоИдентификатору(НомерСтроки); СтрокаТабЧасти.Цена = СтрокаТабЧасти.Номенклатура.Цена; КонецПроцедуры |
|||
5
program345
07.03.15
✎
08:38
|
(4) этот код не работает
|
|||
6
User_Agronom
07.03.15
✎
08:38
|
(0) Цена реквизит справочника. Нетленка что-ли?
|
|||
7
program345
07.03.15
✎
08:45
|
(3) 1) нафига ты к наименованию обращаешься, когда у тебя уже есть ссылка? это как же?
// &НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) ТекСтрока = Элементы.Товары.ТекущаяСтрока; Элементы.Товары.ТекущиеДанные.Цена = ТоварыНоменклатураПриИзмененииСервер(Элементы.Товары.ТекущиеДанные.Номенклатура, ТекСтрока); КонецПроцедуры &НаСервере Функция ТоварыНоменклатураПриИзмененииСервер(Товар, ТекСтрока) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Цена, | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ЭтоГруппа = ЛОЖЬ | И Номенклатура.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Объект.Товары[ТекСтрока].Номенклатура); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.Цена; КонецЕсли; КонецФункции // только усложнит |
|||
8
program345
07.03.15
✎
08:55
|
вопрос решен, всем спасибо:
// &НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) ТД = Элементы.Товары.ТекущиеДанные; ТД.Цена = ТоварыНоменклатураПриИзмененииСервер(ТД.Номенклатура); КонецПроцедуры &НаСервере Функция ТоварыНоменклатураПриИзмененииСервер(ТД) Возврат ТД.Цена; КонецФункции // |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |