|
объявление глобальных переменных | ☑ | ||
---|---|---|---|---|
0
Jokerfunny
27.03.16
✎
13:06
|
Посмейтесь профаны, объявил 2 глобальные переменные:
Перем Ар ; Перем Ш; Ар=Новый Массив; Ш=0; Затем присваиваю значение: Ар.Добавить(ЭтотОбъект.Объект.Наименование); Ш=Ш+1; После чего пытаюсь их вызвать в цикле А[1][1]=А[1][1]+Справочники.Торты.НайтиПоНаименованию(Ар[Ш]).Тесто; Выдает ошибки: {Документ.ВыпускПродуцкии.Форма.Смена.Форма(6,2)}: Переменная не определена (Ар) <<?>>Ар.Добавить(ЭтотОбъект.Объект.Наименование); (Проверка: Сервер) {Документ.ВыпускПродуцкии.Форма.Смена.Форма(33,62)}: Переменная не определена (Ш) А[1][1]=А[1][1]+Справочники.Торты.НайтиПоНаименованию(Ар[<<?>>Ш]).Тесто; (Проверка: Сервер) |
|||
1
Jokerfunny
27.03.16
✎
13:12
|
Кажется понял, переменные созданы на клиенте, процедура выполняется на сервере
|
|||
2
Jokerfunny
27.03.16
✎
13:13
|
Все равно ошибка((
|
|||
3
Jokerfunny
27.03.16
✎
13:25
|
&НаСервере
Процедура РасчетСменыНаСервере() НоваяСтрока=Объект.ТЗ.Добавить(); НоваяСтрока.Название=ЭтотОбъект.Объект.Наименование; Ар.Добавить(ЭтотОбъект.Объект.Наименование); Ш=Ш+1; НоваяСтрока.Количество=ЭтотОбъект.Объект.Количество; КонецПроцедуры &НаКлиенте Процедура РасчетСмены(Команда) РасчетСменыНаСервере(); КонецПроцедуры &НаСервере Процедура ТЗНаСервере() А=Новый Массив(4,5) ; А[0][0]="Ингредиент"; А[1][0]="Цена"; А[2][0]="Общий вес"; А[3][0]="Стоимость"; А[0][1]="Тесто"; А[0][2]="Сливки"; А[0][3]="Сахар"; А[0][4]="Масло"; А[1][1]=Справочники.Ингредиенты.НайтиПоНаименованию("Тесто").Цена; А[1][2]=Справочники.Ингредиенты.НайтиПоНаименованию("Сливки").Цена; А[1][3]=Справочники.Ингредиенты.НайтиПоНаименованию("Сахар").Цена; А[1][4]=Справочники.Ингредиенты.НайтиПоНаименованию("Масло").Цена; Для Счетчик = 1 По Ш Цикл А[1][1]=А[1][1]+Справочники.Торты.НайтиПоНаименованию(Ар[Счетчик]).Тесто; А[1][2]=А[1][2]+Справочники.Торты.НайтиПоНаименованию(Ар[Счетчик]).Сливки; А[1][3]=А[1][3]+Справочники.Торты.НайтиПоНаименованию(Ар[Счетчик]).Сахар; А[1][4]=А[1][4]+Справочники.Торты.НайтиПоНаименованию(Ар[Счетчик]).Масло; КонецЦикла; Построитель = Новый ПостроительОтчета; ПостроительИсточникДанных = Новый ОписаниеИсточникаДанных(А); Построитель.Выполнить(); Построитель.Вывести(); КонецПроцедуры |
|||
4
ДенисЧ
27.03.16
✎
13:43
|
Глобальные переменные - зло.
Поэтому их использовать не надо. передавай параметрами. |
|||
5
Обработка
27.03.16
✎
13:47
|
обычно под словом "профаны" всегда понимали типа дураки так ведь?
|
|||
6
DDwe
27.03.16
✎
13:49
|
(5) Свершенно верно )))
|
|||
7
Jokerfunny
27.03.16
✎
13:50
|
(5) :D Здесь мне часто попадаются люди которые просто смеются над кодом, непонимающие, что я начинающий, так что начало моего сообщения было адресованы для них.
|
|||
8
DDwe
27.03.16
✎
13:51
|
(7) ПРОФА?Н, профана, муж. (лат. profanus - непосвященный). Человек, совершенно несведущий в чем-нибудь, невежда в какой-нибудь области.
|
|||
9
Jokerfunny
27.03.16
✎
13:51
|
(4) Спасибо, я из других источников тоже это вычитал... Специфический язык(((
|
|||
10
DDwe
27.03.16
✎
13:51
|
||||
11
Asmody
27.03.16
✎
13:51
|
(7) Смеются не над кодом, а над нежеланием вдуматься в задачу.
|
|||
12
Asmody
27.03.16
✎
13:52
|
(9) А в каком языке глобальные переменные — "добро"?
|
|||
13
DDwe
27.03.16
✎
13:52
|
(9) И над непониманием того, что пишешь. А ты даже простой текст с пониманием не можешь написать.
|
|||
14
DDwe
27.03.16
✎
13:52
|
(9) Это ты про русский или про 1С ?
|
|||
15
Jokerfunny
27.03.16
✎
13:54
|
(11) Вдуматься в задачу??? я в ворде разобрал на алгоритмическом языке эту задачу, но реализовать грамотно не могу, поэтому я здесь, (13) Вот и проснулся...
|
|||
16
Jokerfunny
27.03.16
✎
13:55
|
(12) В Сишниках, подобных, ПХП Глобальные модули это весь ПХП, Питон
|
|||
17
Записьдампа
27.03.16
✎
13:57
|
(7) Так тебе обучаться или выпендриваться?
|
|||
18
Jokerfunny
27.03.16
✎
13:58
|
(17) Прости? Причем здесь выпендриваться?
|
|||
19
Записьдампа
27.03.16
✎
14:00
|
(18) Адресовывать начало сообщения. Да еще и неграмотно?
|
|||
20
Jokerfunny
27.03.16
✎
14:01
|
(19) А зачем издеваться?
|
|||
21
DDwe
27.03.16
✎
14:03
|
"в ворде разобрал на алгоритмическом языке эту задачу"
Видимо я чего-то не знаю. |
|||
22
DDwe
27.03.16
✎
14:04
|
(20) Ты первый начал.
|
|||
23
Jokerfunny
27.03.16
✎
14:05
|
(22) относительно
|
|||
24
Jokerfunny
27.03.16
✎
14:06
|
Но ладно спасибо за совет (4) Спасибо тебе
|
|||
25
DDwe
27.03.16
✎
14:06
|
(23) Относительно чего?
|
|||
26
Jokerfunny
27.03.16
✎
14:06
|
относительно темы, относительно форума
|
|||
27
Asmody
27.03.16
✎
14:18
|
(16) То, что язык поддерживает глобальные переменные, не означает, что нужно использовать глобальные переменные.
|
|||
28
Asmody
27.03.16
✎
14:19
|
А за "НайтиПоНаименованию" в 1С давно принято бить линейкой по пальцам.
|
|||
29
Jokerfunny
27.03.16
✎
14:23
|
(28) Серьезно? А как тогда?
|
|||
30
hhhh
27.03.16
✎
17:43
|
ошибка хоть какая??
и хотя бы так напиши Для Счетчик = 1 По Ш Цикл Торт = Справочники.Торты.НайтиПоНаименованию(Ар[Счетчик]); А[1][1]=А[1][1] + Торт.Тесто; А[1][2]=А[1][2]+Торт.Сливки; А[1][3]=А[1][3]+Торт.Сахар; А[1][4]=А[1][4]+Торт.Масло; КонецЦикла; это же дикость - искать одно и то же 4 раза. Поиск - это вообще-то долго. А ты его 4 раза. |
|||
31
marvak
27.03.16
✎
18:39
|
(0)
При повторном вызове серверной функции глобальные серверные переменные инициализируются заново. Поэтому передавай то что хочешь в параметрах, или сохраняй в хранилище между вызовами сервера. А насмешки над новичками на наших форумах это к сожалению наша плохая традиция. :( |
|||
32
pessok
27.03.16
✎
23:46
|
(28) самое грустное, что 1С к этому принуждает в БСП-конфах. Там везде представление справочников - наименование. Если надо - делай константу, суй туда... Но когда используешь доп.реквизит, и найти элемент плана вида характеристик можно *только* по наименованию... Это пиз. ненене, это разрушает созданный годами внутренний мир :)
|
|||
33
pessok
27.03.16
✎
23:47
|
+(31) зачем в параметрах то? явно ж видно по коду, что УФ, можно хранить просто в реквизитах формы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |