|
Помогите связать регистр сведений с документом!!) | ☑ | ||
---|---|---|---|---|
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
|
||||
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) ты завтра приходи. мы функцию допилим до универсальной. туда будем нужные параметры передавать, а на выходе получать значения из регистра. а щас я спать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |