![]() |
![]() |
![]() |
|
8.2 Правильная - ли логика в данной ситуации? | ☑ | ||
---|---|---|---|---|
0
lanc2233
25.02.10
✎
23:08
|
Абстрактный пример.
В шапке документа реквизит ВидНДС, тип Справочник.СтавкиНалогов, в справочнике есть реквизит ставка. В документе, есть реквизиты сумма с ндс, сумма без ндс. Один пересчитывается при изменении другого. При пересчете нужно значение ставки элемента "ВидНДС". Если каждый раз при пересчете обращаться к этому реквизиту, будет происходить вызов сервера, что нежелательно? Если да, то как решение сделать реквизит формы, в котором при изменении вида ндс хранить его ставку? |
|||
1
IamAlexy
25.02.10
✎
23:10
|
неосновной реквизит в который писать значение ставки при изменении реквизита ВидНДС ?
затем обращаться к нему ? |
|||
2
lanc2233
25.02.10
✎
23:12
|
(1) Да.
|
|||
3
IamAlexy
25.02.10
✎
23:13
|
(2) ну так вперед!
|
|||
4
lanc2233
25.02.10
✎
23:15
|
Вопрос в том что нормальный ход или через одно место?
Может реквизит "ВидНДС" хранит весь объект, и обращаться к серверу не будет? |
|||
5
IamAlexy
25.02.10
✎
23:17
|
ВидНДС это объект.видндс ?
а ты сделай свой реквизит. новый число и туда пиши значение ставки назови его чтонить типа мВидНДС и пиши ставку в него при изменении объект.видндс |
|||
6
lanc2233
25.02.10
✎
23:20
|
ВидНДС - тип СправочникСсылка.ИмяСправочника
|
|||
7
lanc2233
25.02.10
✎
23:22
|
Вопрос не придумал ли я сам себе проблему.
|
|||
8
IamAlexy
25.02.10
✎
23:24
|
справа у тебя есть жирниньким слово "Объект"
ты под ним правой клавишей мышки ткни и выбери "добавить" назови этот новый реквизит "мВидНДС" с типом "число" затем слева ткни на ВидНДС и в событии "ПриИзменении" сделай что то типа мВидНДС = ПолучитьСтавку(Объект.ВидНдс); ну или что там у тебя число ставки получает и далее просто обращайся к реквизиту "мВидНДС" кстати это присвоение лучше в отдельную процедурку.. и вызывать ее при создании на сервере и при изменении ВидНДС |
|||
9
lanc2233
25.02.10
✎
23:24
|
или если совсем свести вопрос, то нормально ли при пересчете обычное обращение ВидНДС.Ставка ?
|
|||
10
IamAlexy
25.02.10
✎
23:25
|
(9) да всем пофиг.. особенно если у тебя пересчет строки это универсальная функция выполняемая на сервере.. а там уже насервере спокойно к данным можно обращаться..
а вот если ты "чисто цифры" на клиенте считаешь то да - можно сохранить на клиенте же значение ставки и затем его цинично использовать |
|||
11
kiruha
25.02.10
✎
23:33
|
(1)
Это 8.2 ! Позволяет размещать реквизиты типа ВидНДС.Значение |
|||
12
kiruha
25.02.10
✎
23:34
|
Явно в головах еще 8.1
|
|||
13
IamAlexy
25.02.10
✎
23:36
|
(11) ну и твое решение ?
|
|||
14
lanc2233
25.02.10
✎
23:36
|
Решил смоделировать.
&НаКлиенте Процедура Тест(Команда) ЗН = ВидНДС.Ставка; ПоказатьОповещениеПользователя(ЗН); КонецПроцедуры Переменная не определена (ВидНДС) ЗН = <<?>>ВидНДС.Ставка; (Проверка: Тонкий клиент) |
|||
15
kiruha
25.02.10
✎
23:44
|
(14)
Что это ? В Форме перетаскиваешь из списка реквизитов в список элементов формы Объект.ВидНДС.Ставка |
|||
16
kiruha
25.02.10
✎
23:46
|
Тоже самое по другому
добавляешь поле ПутьКДанным Объект.ВидНДС.Ставка |
|||
17
lanc2233
25.02.10
✎
23:55
|
(15) ты не понял, пользователи должны выбирать Элемент с названием "Без НДС", а для пересчета нужно поле "ставка" этого элемента.
|
|||
18
kiruha
25.02.10
✎
23:57
|
(17)
Ну и поле элемента |
|||
19
IamAlexy
25.02.10
✎
23:58
|
||||
20
IamAlexy
26.02.10
✎
00:01
|
(16) честно. не понял.
|
|||
21
lanc2233
26.02.10
✎
00:08
|
(19) ну ты и оперативно смоделировал )) спасибо.
|
|||
22
IamAlexy
26.02.10
✎
00:11
|
(21) тестовая база на которой всякое такое моделируется всегда включена :)
|
|||
23
lanc2233
26.02.10
✎
00:13
|
у меня все равно какая-то фигня
&НаКлиенте Процедура ВидНДСПриИзменении(Элемент) мСтавка = Объект.ВидНДС.Ставка; КонецПроцедуры вылетает рантайм ошибка Поле объекта не обнаружено (Ставка) мСтавка = Объект.ВидНДС.Ставка; |
|||
24
IamAlexy
26.02.10
✎
00:14
|
у тебя реквизит "Ставка" есть то у справочника ?
|
|||
25
IamAlexy
26.02.10
✎
00:15
|
у меня есть :)
а у тебя наверняка как в типовых вид ндс это перечисление. и есть где то в общих модулях по учету НДС некая функция которая возвращает числовое значение ставки по передаваемому в нее перечислению |
|||
26
IamAlexy
26.02.10
✎
00:15
|
а внутри там тупые "если" :)
|
|||
27
lanc2233
26.02.10
✎
00:18
|
та я тоже на тестовой базе из одного документа делаю.
Ставка есть, на всякий случай даже копипастом со свойств реквизита скопировал... |
|||
28
IamAlexy
26.02.10
✎
00:18
|
у тебя Объект.ВидНДС это что такое - справочник или перечисление ?
|
|||
29
lanc2233
26.02.10
✎
00:20
|
Справочник
|
|||
30
lanc2233
26.02.10
✎
00:21
|
СправочникСсылка.Налоги
|
|||
31
lanc2233
26.02.10
✎
00:24
|
А если поставить &НаСервере нормально проходит :-/
|
|||
32
IamAlexy
26.02.10
✎
00:24
|
(31) а зачем нам на сервере.
нам же надо все на клиенте реализовать :) |
|||
33
IamAlexy
26.02.10
✎
00:25
|
на сервере любой дурак может.. задача то свести к нулю серверные вызовы :)
|
|||
34
kiruha
26.02.10
✎
00:25
|
2 поля на форме
Объект.ВидНДС для выбора пользователя Объект.ВидНДС.Ставка для хранения значения точно также как в табличной части Номенклатура Номенклатура.Артикул |
|||
35
IamAlexy
26.02.10
✎
00:27
|
(34) а я про что ?
|
|||
36
IamAlexy
26.02.10
✎
00:30
|
||||
37
lanc2233
26.02.10
✎
00:35
|
посмотрел, вроде все то-же сделал.
http://xmage.ru/?v=1267133474.jpg может где-то галочка какая ... а тебе можно конфу кинуть? |
|||
38
IamAlexy
26.02.10
✎
00:38
|
(37) кидай.. она не тяжолая ?
|
|||
39
lanc2233
26.02.10
✎
00:39
|
нет, один документ )
дай адрес |
|||
40
IamAlexy
26.02.10
✎
00:41
|
narod.yandex.ru
|
|||
41
IamAlexy
26.02.10
✎
00:41
|
:)
|
|||
42
IamAlexy
26.02.10
✎
00:41
|
через файлопомойку любую кинь :)
|
|||
43
IamAlexy
26.02.10
✎
00:41
|
ну или в личке есть аська вроде бы.. вроде там же и емыл был
|
|||
44
lanc2233
26.02.10
✎
00:44
|
webfile.ru/4322992
|
|||
45
IamAlexy
26.02.10
✎
00:49
|
аблин
|
|||
46
IamAlexy
26.02.10
✎
00:49
|
это у меня режимсовместимости был включен 6)
конечно там нужно на сервере воткнуть.. все же до реквизита то достучаться нужно же :) |
|||
47
lanc2233
26.02.10
✎
00:50
|
Понятно. Спасибо )
|
|||
48
IamAlexy
26.02.10
✎
00:57
|
или это из за толстого клиента.. ща проверю
|
|||
49
IamAlexy
26.02.10
✎
00:59
|
гы
это из за того что я в толстом проверял все. |
|||
50
lanc2233
26.02.10
✎
01:00
|
Понятно, а я даже не обращал внимания какой запускаю. Оказывается тонкий.
|
|||
51
lanc2233
26.02.10
✎
01:01
|
Честно говоря не понятно зачем 1с заварила всю эту кашу, когда есть сервер терминалов.
|
|||
52
IamAlexy
26.02.10
✎
01:03
|
(51) очень даже понятно.
максимальное облегчение клиента + унификация + web |
|||
53
lanc2233
26.02.10
✎
01:04
|
Терминал это все решает.
Можно полноценно работать даже за самом убитым компом на 95-й винде. |
|||
54
IamAlexy
26.02.10
✎
01:09
|
(53) нет.
все же web и терминал - разные вещи.. web будет и безопаснее, и "полегче" чем терминал. опять же - на терминал лицензии нужны дополнительные, дополнительное железо, обслуживание. терминал был актуален когда все клиенты были толстыми.. а сейчас смысла нет.. ну запусти в терминале тонкого клиента или веб клиента - разницы вообще никакой |
|||
55
IamAlexy
26.02.10
✎
01:09
|
то есть на лицо экономия в железе и лицензиях терминальных
|
|||
56
lanc2233
26.02.10
✎
01:13
|
а чья лицензия дороже терминальная или 1с-ная ? я цен на терминал не знаю.
а поповоду железа и настроек - поднять и админить веб сервер тоже не самая тривиальная задача, настроить сервер терминалов куда попроще. И желелеза он тоже впоряде будет требовать. |
|||
57
lanc2233
26.02.10
✎
01:22
|
по поводу Первого вопроса - теперь еще и при открытии документа эту мСтавка инициализировать надо.
|
|||
58
IamAlexy
26.02.10
✎
01:26
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) мВидНДС = Объект.ВидНДС.ставка; КонецПроцедуры |
|||
59
lanc2233
26.02.10
✎
01:28
|
а когда это событие срабатывает?
|
|||
60
lanc2233
26.02.10
✎
01:29
|
и где оно описывается?
|
|||
61
lanc2233
26.02.10
✎
01:31
|
Нашел. Событие формы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |