Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема сохранение формулы в справочнике (число прочтений - 2305 )
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
сохранение формулы в справочнике
29. Июня 2011 :: 03:12
Печать  
Кто-нибудь реализовывал следующее:

Хочу ввести в базу комлексные услуги, т.е. услуги, состоящие из нескольких услуг. Цена входящих должна расчитываться в зависимости от выбранных параметров услуги. Для этого в справочнике входящих услуг нужно сохранить формулу расчета цены в зависимости от параметров.
Как можно сохранить формулу в справочнике и сделать расчет цены, исходя из введенных параметров комплексной услуги?

Расчет должен делаться в 1с и в розничной базе, написанной на C#. Хотелось бы, чтобы решение было универсальное.
  
Наверх
ICQ  
IP записан
 
novichek
Экс-Участник


Re: сохранение формулы в справочнике
Ответ #1 - 29. Июня 2011 :: 04:48
Печать  
ну чтоб совсем универсально - генерируй текст функции рассчета на скриптовом языке (vbs, js...) и выполняй её потом где хочешь Улыбка
  
Наверх
 
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: сохранение формулы в справочнике
Ответ #2 - 29. Июня 2011 :: 05:04
Печать  
Цитата:
ну чтоб совсем универсально - генерируй текст функции рассчета на скриптовом языке (vbs, js...) и выполняй её потом где хочешь Улыбка


а как результат расчета вернуть из скрипта?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: сохранение формулы в справочнике
Ответ #3 - 29. Июня 2011 :: 06:31
Печать  
Код
Выбрать все
    Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
    Скрипт.Language="vbscript";
    Стр="Страх!";
    Заг="Ужас...";
    Скрипт.ExecuteStatement("text="""+Стр+"""");
    Скрипт.ExecuteStatement("head="""+Заг+"""");
    Скрипт.ExecuteStatement("prop=cint("""+(4096+3+16)+""")");
    Сообщить(Скрипт.Eval("msgbox(text,prop,head)"));
 



© Абрахамс  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: сохранение формулы в справочнике
Ответ #4 - 29. Июня 2011 :: 07:49
Печать  
Спасибо, идея понятна.   Век живи, век учись  Улыбка
  
Наверх
ICQ  
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: сохранение формулы в справочнике
Ответ #5 - 29. Июня 2011 :: 09:00
Печать  
Второй варинат:

strScript = "
|Function ShowFolderList(treeroot)
| Dim fso, f, f1, fc, s
| Set fso = CreateObject(""Scripting.FileSystemObject"")
| Set f = fso.GetFolder(treeroot)
| Set fc = f.SubFolders
| For Each f1 in fc
| s = s & f1.name
| s = s & ""\""
| Next
| ShowFolderList = s
|End Function
|
|";

ScriptControl = СоздатьОбъект("MSScriptControl.ScriptControl");
ScriptControl.Language = "vbscript";
ScriptControl.AddCode(strScript);

стрСписокПапок = ScriptControl.Eval("ShowFolderList(""" + КореньДерева + """)");
  
Наверх
 
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: сохранение формулы в справочнике
Ответ #6 - 06. Июля 2011 :: 05:54
Печать  
а как условный оператор на vbs одной строчкой реализовать?

как у 1С:  ?(par="такой",1,2)

с использованием if и case не получается, там нужно оператор присваивания ставить, а мне значение вернуть нужно.

  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: сохранение формулы в справочнике
Ответ #7 - 06. Июля 2011 :: 06:56
Печать  
Код
Выбрать все
function iif(p1, p2, p3) if p1 then iif = p2 else iif = p3 end if end function

par="такой"
wscript.echo iif(par="такой",1,2) 


Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: сохранение формулы в справочнике
Ответ #8 - 06. Июля 2011 :: 07:34
Печать  
Сработало! Сам бы не додумался до такого  Улыбка логика совсем другая.

Очередное спасибо!
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать