Имя: Пароль:
1C
1С v8
Помогите связать регистр сведений с документом!!)
,
0 Lerusja
 
10.06.12
19:39
Здравствуйте, уважаемые специалисты 1с!!!
В общем задача такая:

У меня есть 3 регистра сведений, которые содержат сведения о стоимости тарифных планов за местную связь, интернет и телевидение и документ "Оплата услуг", в котором есть реквизиты: наименование ТП за местную связь, инернет и телевидение и абонентская плата по ним. Нужно при нажатии кнопки выводить абонентскую плату в ячейки формы.

У меня получился вот такой текст:

Процедура ПриНажатииНачислитьОбщее(Команда)
   
   Запрос = Новый Запрос();
   Запрос.Текст =
    "ВЫБРАТЬ
    |    АбонентскаяПлатаЗаМестнуюСвязь.АбонентскаяПлата,
    |    АбонентскаяПлатаЗаТелевидение.Стоимость,
    |    АбонентскаяПлатаИнтернет.Стоимость КАК Стоимость1
    |ИЗ
    |    РегистрСведений.АбонентскаяПлатаЗаМестнуюСвязь КАК АбонентскаяПлатаЗаМестнуюСвязь,
    |    РегистрСведений.АбонентскаяПлатаИнтернет КАК АбонентскаяПлатаИнтернет,
    |    РегистрСведений.АбонентскаяПлатаЗаТелевидение КАК АбонентскаяПлатаЗаТелевидение
    |ГДЕ
    |    АбонентскаяПлатаЗаМестнуюСвязь.ТарифныйПлан = &ТарифныйПлан
    |    И АбонентскаяПлатаЗаТелевидение.ТПТелевидение = &ТПТелевидение
    |    И АбонентскаяПлатаИнтернет.ТарифныйПланИнтернет = &ТарифныйПланИнтернет";
       
Запрос.УстановитьПараметр("ТарифныйПлан", Объект.ТПТелефон);
Запрос.УстановитьПараметр("ТарифныйПланИнтернет", Объект.ТПИтернет);
Запрос.УстановитьПараметр("ТПТелевидение", Объект.ТПТелевидение);

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Выборка.Следующий();

Объект.АбонентскаяПлата = Выборка.АбонентскаяПлата;
Объект.АбПлата = Выборка.Стоимость1;
Объект.АбонПлата = Выборка.Стоимость;    
   
....

При нажатии кнопки никаких изменений не происходит(( Помогите пожалуйста!!
1 vicof
 
10.06.12
19:56
"Нужно при нажатии кнопки выводить абонентскую плату в ячейки формы" - глупость. Для этого есть отчеты.
2 vicof
 
10.06.12
19:57
так запросы писать нельзя. Это два.
3 vicof
 
10.06.12
19:58
прочитай хотя бы одну книжку по программированию в 1с. Это три.
4 vicof
 
10.06.12
19:59
но фотка симптаичная, это радует.
5 aleks-id
 
10.06.12
20:02
(2) а чем тебе запрос то не понравился? в нашем конкретном случае он не сработает, но в других может быть вполне оке. ну если конечно подчистить секцию ГДЕ
6 rphosts
 
10.06.12
20:03
(4) ну как-бэ пожалуй №3
7 Rie
 
10.06.12
20:03
(0) Что такое Объект?
8 rphosts
 
10.06.12
20:05
(0) объеты в 1С 8.* используются для модификации данныхз в ИБ.
по сути ваша задача плохо обрисована: не данных о версии платформы, о том что за отчет СКД или как?
9 rphosts
 
10.06.12
20:06
(7) неужели ты предполагаешь что настолько плохо?
10 Rie
 
10.06.12
20:08
(9) Что-то чему-то где-то присваивается. Интересно, где и чему и почему после этого присваивания должно что-то происходить на форме в некоторой "ячейке". Тут возможны разные варианты.
11 vicof
 
10.06.12
20:10
(5) нутром чую, что задача решается по-другому, даже не со стороны кода, а со стороны самой структуры решения)
12 Пеппи
 
10.06.12
20:10
(10) Похоже все же что это управляемая форма. :)
И данные должны отобразиться в этой форме. Только ТС ну очень уж начинающая.
13 Живой Ископаемый
 
10.06.12
20:12
Ну при чем тут версия платформы? В (0) - декартово произведение трех таблиц.
Если хотя бы из одного регистра по условию не будет ни одной строки, то ив запросе который умножает
три отдельных набора данных (три регистра), у которых соотвественно 0, ХХХХ строк и YYY строка, в итоге будет 0 строк
14 Rie
 
10.06.12
20:13
(12) Похоже. Но хотелось бы услышать эти подробности от ТС :-)
15 Живой Ископаемый
 
10.06.12
20:13
Поэтому прежде чем делать какие-то выводы.
авторы должен проверить сколько строк возвращается из каждого регистра при наложении нужного ей условия.
16 Rie
 
10.06.12
20:15
(13) Тогда при нажатии кнопки АбонентскаяПлата, АбПлата и АбонПлата очищались бы - и ТС на это обратил бы внимание.
17 Пеппи
 
10.06.12
20:16
(16) чтото я сомневаюсь что они вообще заполнены, так как и не заполняются даже. :)
18 Terve-R-
 
10.06.12
20:17
Фотка зачет! :)
19 Rie
 
10.06.12
20:18
(17) У существующего документа - вполне могут быть и заполнены.
В общем, ТС! Ау!
20 MishaD
 
10.06.12
20:37
Думаю, что голубоглазой блондинке с такой фоткой уже помогли.
21 Dzenn
 
гуру
10.06.12
21:33
Хороша. Жаль, что с 1С связалась.
22 Lerusja
 
10.06.12
21:34
vicof, мне не нужны никакие отчеты, так как я по сути из регистра хочу занести данные на форму документа, что по своей сути является самим занесением данных в документ. Книжки читала, но ничего стоящего не наша(( И к сожалению с 1с знакома только месяца 2 (первый месяц по книжкам типовые примеры ток прорешивала). И как запросы писать, к сожалению, плохо знаю(( Вообще до сих пор не понимаю, зачем решила писать диплом на 1с......лучше бы сайт создала или аис на delphi написала(

Rie, объект.реквизит - это путь к данным ....по крайней мере судя по свойству поля.

Живой Ископаемый, спасибо за замечание....я наверное как раз и не учла, что все должно между собой перемножиться, так как естественно, абонент не всегда все услуги связи подключает(( мб мне 3 запроса создать??

Спасибо за ответы, но, если честно, вы меня больше запутали(
23 rphosts
 
10.06.12
21:41
vicof, Rie, Живой Ископаемый вас заметили - дальше сами и разбирайтесь
24 Пеппи
 
10.06.12
21:44
<вы меня больше запутали(

ага, здесь так , да. У каждого свое мнение.
25 Lerusja
 
10.06.12
21:53
rphosts, я просто не могу ответить сразу всем( сори

< по сути ваша задача плохо обрисована: не данных о версии платформы, о том что за отчет СКД или как?

версия 8.2.14.519
СКД - это что??
26 Живой Ископаемый
 
10.06.12
22:04
2(22) делите задачи на две и решайте их по отдельности.
одна задача - чтобы запрос всегда возвращал э.. надо полагать одну запись
вторая - чтобы у вас что-то происходила смена отображаемой информации
27 Rie
 
10.06.12
22:05
(25) СКД - это "Система компоновки данных". Но это несущественно, как и версия платформы.
Для начала проверьте то, о чём в (13) написал Живой Ископаемый
Но лучше подумайте над изменением запроса - чтобы подобной проблемы попросту не было. Например, используйте не
28 Живой Ископаемый
 
10.06.12
22:05
Запросы здесь писать с помощью слава богу конструктора, и отлаживать их слава богу в консоли, прежде чем вставлять свой код
29 Lerusja
 
10.06.12
22:21
(26) а не легче разбить задачи не на две, а на три??? Так как у меня по сути 1 регистр связан с 2 ячейками, в которых они выводятся.....
к примеру, при тарифном плане телефонной связи  "безлимитный" (предварительно записан в документе ОплатаУслуг) в регистре сведений в измерении ищется тп "безлимитный" и его абонентская плата....эта абонентская плата из региста сведений записывается в ячейку АБТелефон и проводится документ!!! По такому же алгоритму записать данные об интенете и телевидении.....Телефон, Интернет и Телевидение между собой не взамосвязаны!!!)
30 Rie
 
10.06.12
22:22
(29) Только лучше сначала получить все три значения, а потом провести документ :-)
31 Lerusja
 
10.06.12
22:26
(30) Я образно написала)
Мне нужно получить 3 значения, а потом сложить эти значения + суммы за другие услуги и записать их в ячейку начислено!!)
32 Александр_
Тверь
 
10.06.12
22:30
о боже...
в выходные, на ночь глядя... господа, да что же это такое твориться?
33 Живой Ископаемый
 
10.06.12
22:31
2(29) ну... легче ли разбить на большее количество подзадач - это уж вам решать. А решать каждую более маленькую задачу, да, легче.
34 Живой Ископаемый
 
10.06.12
22:32
2(32) творится что и всегда. Заходит кто попало в тематические ветки и трындит про ЛАЙФ.
35 Lerusja
 
10.06.12
22:42
(33) Я просто удалила лишнее и вставила свои комментарии по поводу того, как я понимаю работает данный код) Просто я не знаю что изменить и добавить....или я вообще не так все делаю!!

Запрос = Новый Запрос();
   Запрос.Текст =
    "ВЫБРАТЬ
    |    АбонентскаяПлатаЗаМестнуюСвязь.АбонентскаяПлата
    |ИЗ
    |    РегистрСведений.АбонентскаяПлатаЗаМестнуюСвязь КАК АбонентскаяПлатаЗаМестнуюСвязь
    |ГДЕ
    |    АбонентскаяПлатаЗаМестнуюСвязь.ТарифныйПлан = &ТарифныйПлан";            
   
// из запроса мы получаем абонентскую плату

Запрос.УстановитьПараметр("ТарифныйПлан", Объект.ТПТелефон);

// сравнение тп из документа и тп из регистра сведений

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

// непосредственное получение значение абонентской платы

Выборка.Следующий();


АбонентскаяПлата = Выборка.АбонентскаяПлата;

// запись в ячейку значения
36 Живой Ископаемый
 
10.06.12
22:44
окей, это правильно, сначала отладить для одно, потом уже добавить два других.
Что получили? скриншшот делаете?
сам запрос если выполнить в консоли возвращает хоть одну строку?
37 Lerusja
 
10.06.12
22:46
(32) ну я думаю не кому не мешает общаться на форуме и смотреть футбол по тв....тем более игра между ирландией и хорватией по первому только началась) а испания и италия сыграли уже час назад)
38 aleks-id
 
10.06.12
22:49
>>испания и италия сыграли уже час назад
это точно хрупкая девушка а не бородатый тролль?
39 Александр_
Тверь
 
10.06.12
22:50
ладно ладно... попробую исправиться :)
если я правильно понял, и нигде не накосячил пока писал:
Текст запроса

"ВЫБРАТЬ
|    АбонентскаяПлатаЗаМестнуюСвязь.АбонентскаяПлата,
|    0 КАК Стоимость,
|    0 КАК Стоимость1
|ИЗ
|    РегистрСведений.АбонентскаяПлатаЗаМестнуюСвязь КАК АбонентскаяПлатаЗаМестнуюСвязь
|ГДЕ
|    АбонентскаяПлатаЗаМестнуюСвязь.ТарифныйПлан = &ТарифныйПлан
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    0,
|    АбонентскаяПлатаЗаТелевидение.Стоимость,
|    0
|ИЗ
|    РегистрСведений.АбонентскаяПлатаЗаТелевидение КАК АбонентскаяПлатаЗаТелевидение
|ГДЕ
|    АбонентскаяПлатаЗаТелевидение.ТПТелевидение = &ТПТелевидение
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    0,
|    0,
|    АбонентскаяПлатаИнтернет.Стоимость
|ИЗ
|    РегистрСведений.АбонентскаяПлатаИнтернет КАК АбонентскаяПлатаИнтернет
|ГДЕ
|    АбонентскаяПлатаИнтернет.ТарифныйПланИнтернет = &ТарифныйПланИнтернет";
40 Азазелло
 
10.06.12
22:50
(35) Так "АбонентскаяПлата" реквизит формы или Объекта?
(0) Если необходимо в одной строке выборки получить сведения из разнородных таблиц по разнородным критериям, то обычно используют левое соединение по базовой таблице. в данном случае в качестве базовой может использоваться таблица вида (ВЫБРАТЬ 1)
41 Lerusja
 
10.06.12
22:51
(36) консоль - это где??
я надеюсь не сильно отвлекаю.... а то мне так не удобно что-то спрашивать(((
42 Азазелло
 
10.06.12
22:52
(39) ага, и получил 3 строки в результате. нужно использвать группировки, агрегаты вида СРЕДНЕЕ
43 aleks-id
 
10.06.12
22:52
(39) вот нафейхоа тут вообще запрос если в выборке будет только одна запись???
44 Азазелло
 
10.06.12
22:53
(43) не, не среднее, а наверное СУММА :)
45 Азазелло
 
10.06.12
22:54
(43) получение сведений из БД не запросами - моветон
46 Александр_
Тверь
 
10.06.12
22:54
да да, забыл про группировку :)


ВЫБРАТЬ
|    СУММА(ВложенныйЗапрос.АбонентскаяПлата) КАК АбонентскаяПлата,
|    СУММА(ВложенныйЗапрос.Стоимость) КАК Стоимость,
|    СУММА(ВложенныйЗапрос.Стоимость1) КАК Стоимость1
|ИЗ
|    (ВЫБРАТЬ
|        АбонентскаяПлатаЗаМестнуюСвязь.АбонентскаяПлата КАК АбонентскаяПлата,
|        0 КАК Стоимость,
|        0 КАК Стоимость1
|    ИЗ
|        РегистрСведений.АбонентскаяПлатаЗаМестнуюСвязь КАК АбонентскаяПлатаЗаМестнуюСвязь
|    ГДЕ
|        АбонентскаяПлатаЗаМестнуюСвязь.ТарифныйПлан = &ТарифныйПлан
|    
|    ОБЪЕДИНИТЬ ВСЕ
|    
|    ВЫБРАТЬ
|        0,
|        АбонентскаяПлатаЗаТелевидение.Стоимость,
|        0
|    ИЗ
|        РегистрСведений.АбонентскаяПлатаЗаТелевидение КАК АбонентскаяПлатаЗаТелевидение
|    ГДЕ
|        АбонентскаяПлатаЗаТелевидение.ТПТелевидение = &ТПТелевидение
|    
|    ОБЪЕДИНИТЬ ВСЕ
|    
|    ВЫБРАТЬ
|        0,
|        0,
|        АбонентскаяПлатаИнтернет.Стоимость
|    ИЗ
|        РегистрСведений.АбонентскаяПлатаИнтернет КАК АбонентскаяПлатаИнтернет
|    ГДЕ
|        АбонентскаяПлатаИнтернет.ТарифныйПланИнтернет = &ТарифныйПланИнтернет) КАК ВложенныйЗапрос
47 Живой Ископаемый
 
10.06.12
22:54
2(39) Ну это просто издевательство.. Девушка хотела одну строку, а получит три, в которой ненулевые значения располагаются по диагонали...
48 Александр_
Тверь
 
10.06.12
22:54
(43) учить мат часть! срочно!
49 Lerusja
 
10.06.12
22:54
(39)

ВЫБРАТЬ
|    АбонентскаяПлатаЗаМестнуюСвязь.АбонентскаяПлата,
|    0 КАК Стоимость,
|    0 КАК Стоимость1
|ИЗ
|    РегистрСведений.АбонентскаяПлатаЗаМестнуюСвязь КАК АбонентскаяПлатаЗаМестнуюСвязь
|ГДЕ
|    АбонентскаяПлатаЗаМестнуюСвязь.ТарифныйПлан = &ТарифныйПлан

стоимость 1 - регистр сведений АбонентскаяПлатаЗаТелевидение
стоимость - регистр сведений АбонентскаяПлатаЗаИнтернет
50 Азазелло
 
10.06.12
22:55
Бог с ним, с запросом. Меня больше интересует, почему данные на форме не отображаются
51 Александр_
Тверь
 
10.06.12
22:56
(47) косяк косяк :)
52 Азазелло
 
10.06.12
22:56
Нет, все-таки, вот что фото животворящее делает :)
53 aleks-id
 
10.06.12
22:56
(45)(48) оба марш учить матчасть. в выборке будет заведомо одна запись. на кой черт запрос????
54 Александр_
Тверь
 
10.06.12
22:56
(52) это не фото делает. Это курсовая делает... на столько не хота делать, что чем бы не заняться, лишь бы не курсовой :) а тут вроде даже отмазка нашлась.
55 Lerusja
 
10.06.12
22:56
(38) девушки тоже смотрят футбол))
56 Александр_
Тверь
 
10.06.12
22:57
(53) свисток сними, чайник :)
57 Азазелло
 
10.06.12
22:57
(55) а пиво к футболу? :)
58 Живой Ископаемый
 
10.06.12
22:57
консоль или на ИТС или на
http://devtool1c.ucoz.ru/

но это отдельно, это то что вам поможет отладить в итоге запрос. то есть одна задача.


Тперь давайте со второй, покажите что происходит в (35)
59 Азазелло
 
10.06.12
22:59
(53) и чО? Чем выборка с 1й записью хуже выборки с >1 Записью?
60 aleks-id
 
10.06.12
23:00
(56) других аргументов нет? ты наверняка и реквизиты объектов получаешь запросом, установив объект параметром, да?
61 Александр_
Тверь
 
10.06.12
23:00
(60) слышь...
напиши свой вариант, а мы посмеемся. давай.
62 Азазелло
 
10.06.12
23:01
(60) а ты поди через точку обращаешься... мдя...
63 aleks-id
 
10.06.12
23:02
(61) ты свое "слышь" прибереги для своих быдлодружбанов.
64 Азазелло
 
10.06.12
23:02
(60) + не Объект, а Ссылку, коль на то пошло
65 aleks-id
 
10.06.12
23:02
(64) согласен
66 Александр_
Тверь
 
10.06.12
23:03
(62) да он просто не знает, что когда он получает через точку - вытаскивается ВЕСЬ объект. А когда через запрос, только значение того чего выбираешь... да еще и учить решил :)
более того, мне интересно что он хочет предложить в качестве альтернативы по теме.
67 Азазелло
 
10.06.12
23:03
(60) другие аргументы есть. Почитай механизм реализации на платформенном уровне получения данных объекта при обращении через точку
68 Александр_
Тверь
 
10.06.12
23:03
(63) для быдлокодеров тоже сгодится. давай свой вариант.
69 Азазелло
 
10.06.12
23:04
(66) +1.
70 Lerusja
 
10.06.12
23:04
не ругайтесь, плиз)
71 aleks-id
 
10.06.12
23:05
(66) на курсах по одинцу давно был или самоучка-МенеджерПоЗакупкам?
72 Александр_
Тверь
 
10.06.12
23:05
(70) ты пока(46) попробуй.
а мы подождем как aleks-id свою крутость доказывать будет.
73 Азазелло
 
10.06.12
23:05
давай-давай мириться, давай-давай мириться :)
74 Азазелло
 
10.06.12
23:06
(71) был на курсах 2 недели назад. обращаются через точку. на вопрос "Почему" - ответ - "Запросы - тема другого курса".
75 Lerusja
 
10.06.12
23:06
(58) ну при нажатии кнопки вообще ничего не происходит((
76 Александр_
Тверь
 
10.06.12
23:06
(71) давай по теме. приведи свой правильный пример.
77 aleks-id
 
10.06.12
23:07
(74) тебя обманули
78 Александр_
Тверь
 
10.06.12
23:07
(74) он до того курса еще не дошел.
79 Азазелло
 
10.06.12
23:09
(77) не спорю. жестоко. меня жизнь научился во избежание получения грязных данных из кэша получать реквизиты объектов с помощью запросов
80 Азазелло
 
10.06.12
23:10
(58) а если в кнопку написать просто Объект.АбонентскаяПлата = 1000
что будет?
81 Александр_
Тверь
 
10.06.12
23:11
(79) не отвлекай человека. он ваяет свое решение.
А то отмазываться будет, мол некогда ему... отвечать надо.
82 Азазелло
 
10.06.12
23:13
(81) да лан, не жалко :) он же не в наших базах ваяет :)
83 Lerusja
 
10.06.12
23:14
если кому-то интересно - вот ссылка на скрин формы документа - http://zalil.ru/33423946
84 Александр_
Тверь
 
10.06.12
23:14
(82) да не, такие как он нужны.  Программисты на фоне aleks-id выгодно смотрятся.
85 Азазелло
 
10.06.12
23:14
Ладно, всем спасибо за дозу вечернего позитива и частично холивара. Пора и отдыхать. Желаю ТС успехов с запросом и отображением данных на форме.
86 Александр_
Тверь
 
10.06.12
23:19
(83) короче, в (0) вместо запроса подставляешь (46).
Скорее всего у тебя ТПТелефон реквииты документа, и по этому:

в запросе пиши:
Запрос.УстановитьПараметр("ТарифныйПлан", ТПТелефон);
Запрос.УстановитьПараметр("ТарифныйПланИнтернет", ТПИтернет);
Запрос.УстановитьПараметр("ТПТелевидение", ТПТелевидение);


а дальше присваиай

АбонентскаяПлата = Выборка.АбонентскаяПлата;
АбПлата = Выборка.Стоимость1;
АбонПлата = Выборка.Стоимость;


но это предположение. попробй
87 aleks-id
 
10.06.12
23:19
(81) перед свиньями бисер метать? оно мне надо?
88 Александр_
Тверь
 
10.06.12
23:21
(87) слив засчитан.
Иди учись, быдлокодер.
89 aleks-id
 
10.06.12
23:24
(88) мне пох. а вот ты иди учись. недоменеджер и недопрограммист
90 Lerusja
 
10.06.12
23:27
{Документ.ОплатаУслуг.Форма.ФормаДокумента.Форма(63,17)}: Тип не определен (Запрос)
   Запрос = Новый <<?>>Запрос(); (Проверка: Тонкий клиент)
лучше подскажите как от этого сообщения об ошибке избавится))
я просто процедуру поставила  &НаСеревере   вместо наклиенте(
91 Живой Ископаемый
 
10.06.12
23:30
2(90) Для этого нужно вызвать процедуру определенную на сервере, и уже в которой выполняется запрос
92 Живой Ископаемый
 
10.06.12
23:31
"я просто процедуру поставила  &НаСеревере   вместо наклиенте(" - глубоко плавно, если вы это сделали в модуле тонкой формы
93 Lerusja
 
10.06.12
23:39
(91) я поменяла на &НаКлиенте.....как мне вызвать процедуру определенную на сервере??
модуль тонкой формы - это что??

давно не чувствовала себя "блондинкой"(((
94 Живой Ископаемый
 
10.06.12
23:40
2(93) где вы пишите все то что вы пишите?
95 Lerusja
 
10.06.12
23:45
(94) 1С:Предприятие 8.2 (8.2.14.519)

режим: серверный

субд ms sql server 2005
96 Живой Ископаемый
 
10.06.12
23:47
2(95) гы... Что, прямо во всей сразу?

Надо было ответить тогда - "в комнате...", получилось бы еще смешнее...

В каком месте вы пишите то, что пишите?
97 aleks-id
 
10.06.12
23:49
забавно что тверской дыртаньян слился и не помогает. видать мозга не хватает.
98 aleks-id
 
10.06.12
23:51
(95) напиши отдельную процедуру на сервере, в которой у тебя будет запрос (я лично против запроса и рекомендую почитать в СП метод Получить регистра сведений)
дальше эту серверную процедуру вызывай из процедуры на клиенте.
99 Живой Ископаемый
 
10.06.12
23:53
2(95) стоп, прошу прощения.
Итак, предположим у вас

Документ.ОплатаУслуг.Форма.ФормаДокумента.Форма - тонкая форма

У этой формы есть модуль, вы все пишите в нем.

так вот, у вас должны быть процедуры которые определены на клиенте
, они привязаны к элементам - например к кнопка.
Но эти процедуру должны вызывать процедуру, определенные на сервере.

Они уже могут выполнять запросы.
100 DrShad
 
10.06.12
23:54
100
101 Живой Ископаемый
 
10.06.12
23:56
Типа так:


&НаКлиенте
Процедура ДействиеПользователя(Команда)
   ДействиеПользователяНаСервере()    
КонецПроцедуры
   
&НаСервере
Процедура ДействиеПользователяНаСервере()
     Запрос = Новый Запрос("а тут текст запроса");
{и т.д.}
КонецПроцедуры
102 aleks-id
 
10.06.12
23:56
(100) чо, вот прям так 4 часа пас чтоб сотку замочить или бота написал? :)))
103 aleks-id
 
10.06.12
23:57
(101) ты ж вменяемый. ну напиши ей без запроса, а то мне тупо лень :)
104 Живой Ископаемый
 
10.06.12
23:58
2(103) Я уже написал что там два отдельные задачи. про запрос мы разобрали, сейчас решаем вторую.
Сейчас может хватить буквально
Возврат "120 рубля";
105 aleks-id
 
11.06.12
00:01
(104) пля. накой там запрос? серверная функция. туда параметром имя РС и Измерение а на выхлопе примитивный тип. чо тут мудрить то 4 часа кряду?
106 Живой Ископаемый
 
11.06.12
00:04
2(105) мне вообще все равно
107 aleks-id
 
11.06.12
00:13
(106) мне вообще то тоже пох, но задачка решается на раз-два без извратов с запросами.
*(105) +Ресурс (возможно Измерений там нет)
ну и выяснить периодический РС или нет.
108 Lerusja
 
11.06.12
00:13
(101)
&НаКлиенте
 Процедура ПриНажатииНачислитьОбщее(Команда)
     
   Объект.АбонентскаяПлата =  ДействиеПользователяНаСервере(Объект.АбонентскаяПлата);

   Начислено = Элементы.Начислено;
   МеждугородняяСвязь  = Элементы.МеждугородняяСвязь;
   МеждународнаяСвязь = Элементы.МеждународнаяСвязь;
   
       
   Объект.Начислено = Объект.ОплатаМеждугородняяСвязь.Итог("Итого") +Объект.ОплатаМеждународнойСвязи.Итог("Итого");
   КонецПроцедуры

   &НаСервере
   Функция ДействиеПользователяНаСервере(АбонентскаяПлата)
       
   Запрос = Новый Запрос();
   Запрос.Текст =
    "ВЫБРАТЬ
    |    АбонентскаяПлатаЗаМестнуюСвязь.АбонентскаяПлата
    |ИЗ
    |    РегистрСведений.АбонентскаяПлатаЗаМестнуюСвязь КАК АбонентскаяПлатаЗаМестнуюСвязь
    |ГДЕ
    |    АбонентскаяПлатаЗаМестнуюСвязь.ТарифныйПлан = &ТарифныйПлан";            
   
Запрос.УстановитьПараметр("ТарифныйПлан",Объект.ТПТелефон);
 
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Выборка.Следующий();
АбонентскаяПлата = Выборка.АбонентскаяПлата;

    КонецФункции


я так понимаю должно быть что-то типа этого???
ток немного переделать надо, а то 0 ставит
109 aleks-id
 
11.06.12
00:16
(108) уйди от запросов. сделай как я написал в (105)
110 Lerusja
 
11.06.12
00:26
(109) Что-то вроде этого??И на чем писать на клиенте или сервере?? ПС периодический (в пределах секунды)
Процедура МашинаПриИзменении(Элемент)
       Ресурсы = РегистрыСведений.Бригады.ПолучитьПоследнее(,Новый Структура("Машина",Элемент.значение));
         Водитель=Ресурсы.Водитель;
         Грузчик1=Ресурсы.Грузчик1;
         Грузчик2=Ресурсы.Грузчик2;
         ПокСчСпид=Ресурсы.ПокСчСпид;
    КонецПроцедуры
111 aleks-id
 
11.06.12
00:29
(110) да! только это должна быть функция на сервере которая на клиента будет возвращать число. а на клиенте это число присваивай реквизитам объекта
112 Lerusja
 
11.06.12
00:37
(111) что по запросу, что с ресурсами 0 выводит(
&НаКлиенте
 Процедура ПриНажатииНачислитьОбщее(Команда)
     
   Объект.АбонентскаяПлата =  ДействиеПользователяНаСервере("АбонентскаяПлата");

   Начислено = Элементы.Начислено;
   МеждугородняяСвязь  = Элементы.МеждугородняяСвязь;
   МеждународнаяСвязь = Элементы.МеждународнаяСвязь;
   
       
   Объект.Начислено = Объект.ОплатаМеждугородняяСвязь.Итог("Итого") +Объект.ОплатаМеждународнойСвязи.Итог("Итого");
   КонецПроцедуры

   &НаСервере
   Функция ДействиеПользователяНаСервере(АбонентскаяПлата)
       
       Ресурсы = РегистрыСведений.АбонентскаяПлатаЗаМестнуюСвязь.ПолучитьПоследнее(,Новый Структура("ТарифныйПлан",Объект.ТПТелефон));
       АбонентскаяПлата = Ресурсы.АбонентскаяПлата;
       
   КонецФункции
113 aleks-id
 
11.06.12
00:38
&НаСервере
   Функция ДействиеПользователяНаСервере(АбонентскаяПлата)
       
       Ресурсы = РегистрыСведений.АбонентскаяПлатаЗаМестнуюСвязь.ПолучитьПоследнее(,Новый Структура("ТарифныйПлан",Объект.ТПТелефон));
       ВОЗВРАТ Ресурсы.АбонентскаяПлата;
       
   КонецФункции

а если так?
114 aleks-id
 
11.06.12
00:39
+113 там конечно гомнокод везде, но главное чтобы ты поняла как эта шляпа работает. если чо завтра подпилим и все взлетит.
115 Lerusja
 
11.06.12
00:49
Всем большое спасибо за помощь (в особенности:  Живой Ископаемый, aleks-id, Александр_Тверь)
(113) все работает))
116 aleks-id
 
11.06.12
01:02
(115) ты завтра приходи. мы функцию допилим до универсальной. туда будем нужные параметры передавать, а на выходе получать значения из регистра. а щас я спать
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший