![]() |
![]() |
![]() |
|
v8: Нужно организовать добавление услуги в чек | ☑ | ||
---|---|---|---|---|
0
dantedev
29.11.13
✎
16:37
|
Есть справочник Номенклатура в котором находятся услуги и регистр сведений в котором хранятся цены на услугу, а так же срок исполнения услуги. Нужно создать чек в котором при добавлении услуги автоматически добавлялись данные из регистра сведений в поля стоимость и срок исполнения.
В задании сказано сделать это следующим образом: 1. В модуле формы написать клиентскую процедуру вида: &НаКлиенте Процедура ТабличнаяЧасть1УслугаПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.ТабличнаяЧасть1.ТекущиеДанные; //вызов серверной процедуры, но вначале подготовим данные Стоимость = 0 Срок = 0 ПолучитьДанныеУслуги(СтрокаТабличнойЧасти.Услуга, Стоимость, Срок) СтрокаТабличнойЧасти.Стоимость = Стоимость; СтрокаТабличнойЧасти.Срок = Срок; КонецПроцедуры Если данные в регистре сведений, а не справочнике, то в процедуру надо еще передать дату Объект.Дата. 2. Создать процедуру в модуле на сервере. Процедура ПолучитьДанныеУслуги(Элемент, Стоимость, Срок) Экспорт создать новый объект для поиска по справочнику, используя Элемент найти запись, вызвав метод НайтиПоНаименованию() извлечь из записи значения полей стоимость и срок и присвоить их переменным Стоимость и Срок КонецПроцедуры Если данные в регистре сведений, то использовать метод ПолучитьПоследнее(). До этого сделал это задание использованием общих модулей с дальнейшим вызовом их в модуле формы документа и все работало. Сейчас другим способом сделать и вообще никак не могу сообразить что к чему. Помоги плиз. Если можно скиньте текст модуля формы. |
|||
1
DmitriyDI
29.11.13
✎
16:46
|
Спр = Справочники.Услуги.НайтиПоНаименованию(ЭтотОбъект.Наименование);
Отбор = Новый Структура; Отбор.Вставить("Услуга",Спр); Регистр = РегистрыСведений.АдресныйКлассификатор.ПолучитьПоследнее(ЭтотОбъект.Дата,Отбор); Так получишь последнюю запись |
|||
2
DmitriyDI
29.11.13
✎
16:47
|
Только вместо АдресныйКлассификатор впиши там твой регистр
|
|||
3
DmitriyDI
29.11.13
✎
16:48
|
Но лучше запросом делать
|
|||
4
dantedev
29.11.13
✎
17:36
|
запросом это через запрос = новый запрос и в нем выбрать регистр сведений и присвоить стоимость и срок?
|
|||
5
Господин ПЖ
29.11.13
✎
17:39
|
>найти запись, вызвав метод НайтиПоНаименованию()
автора "теста" по спине оглоблей... |
|||
6
KRV
29.11.13
✎
17:56
|
Студенты пошли на работу и начали учиться?
|
|||
7
dantedev
29.11.13
✎
18:09
|
ну студенты да, но не на работу, а просто для себя. А задание с тренингов у друга взял)
|
|||
8
dantedev
29.11.13
✎
18:15
|
раньше было сделано вот как
&НаКлиенте Процедура ПрейскурантУслугНаименованиеУслугиПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.ПрейскурантУслуг.ТекущиеДанные; СтрокаТабличнойЧасти.Стоимость = АктуальнаяСтоимость.Стоимость( Объект.Дата, СтрокаТабличнойЧасти.НаименованиеУслуги); СтрокаТабличнойЧасти.СрокИсполнения = АктуальныйСрокИсполнения. СрокиИсполнения(Объект.Дата, СтрокаТабличнойЧасти.НаименованиеУслуги); КонецПроцедуры где АктуальнаяСтоимость.Стоимость и АктуальныйСрокИсполнения. СрокиИсполнения были 2 общих модуля и все прекрасно выводило, но сказали что это не оптимальный вариант и нужно вот так оптимизировать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |