Имя: Пароль:
   
1C
1С v8
Учусь писать код.
Ø (Волшебник 19.06.2014 13:19)
0 dred999
 
19.06.14
11:02
Првет всем!

У меня есть документ в реквизитах которого есть Назначение и сумма. и когда я выбираю определенной назначение (Ежедневные затраты) мне нужно чтобы сумма автоматом ставилась 500.

Пишу код при изменении реквизита назначение:

  &НаСервере
//&НаКлиенте
Процедура НазначениеПриИзменении(Элемент)
      
    Если Объект.Назначение = Справочники.СправочникЗатрат.НайтиПоКоду(0059)
        Тогда Объект.Сумма = 500;
        
    
    КонецПроцедуры

НЕ РАБОТАЕТ! В чем проблема подскажите!
1 Кай066
 
19.06.14
11:03
КонецЕсли?
2 mikecool
 
19.06.14
11:03
учу писать код, дорого
3 GROOVY
 
19.06.14
11:04
Событие "ПриИзменении" отрабатывает на клиенте, а не на сервере.
4 dred999
 
19.06.14
11:04
ЧЕрт не весь код скопировал. КонецЕсли  стоит
5 Господин ПЖ
 
19.06.14
11:05
сервер про изменения формы не в курсе...
6 dred999
 
19.06.14
11:05
Ставлю НаКлиенте выдает ошибку

{Документ.Затраты.Форма.ФормаДокумента.Форма(6,27)}: Переменная не определена (Справочники)
    Если Объект.Назначение = <<?>>Справочники.СправочникЗатрат.НайтиПоКоду(0059)  (Проверка: Тонкий клиент)
7 Господин ПЖ
 
19.06.14
11:05
но там в свою очередь Если Объект.Назначение = Справочники.СправочникЗатрат.НайтиПоКоду(0059)
        Тогда Объект.Сумма = 500;

работать не будет

жизнь - боль
8 Godofsin
 
19.06.14
11:06
(3) + НайтиПоКоду("0059");
9 Господин ПЖ
 
19.06.14
11:06
(6)  в СП все написано
10 jsmith82
 
19.06.14
11:06
кавычки ставь
11 Кай066
 
19.06.14
11:06
может Справочник
12 Wobland
 
19.06.14
11:06
13 jsmith82
 
19.06.14
11:06
на клиенте класс справочники не доступен
14 Fragster
 
19.06.14
11:06
правильно хранить в объекте или РС связанную с ним информацию и цеплять её уже, а не записывать "магические числа". Ведь всем известно, что значение Pi в военное время может достигать четырех.
15 jsmith82
 
19.06.14
11:07
на клиенте предопределенное значение если тока
16 Segate
 
19.06.14
11:07
УЖАС! КОШМАР! НЕ РАБОТАЕТ!
Объект.Назначение = Справочники.СправочникЗатрат.НайтиПоКоду(0059)
Использовать такие конструкции - моветон.
Но если без этого никак, то ищи элемент на сервере,, а присваивай значение на клиенте, как то так
17 dred999
 
19.06.14
11:08
хммм
18 dred999
 
19.06.14
11:09
кавычки не помогают
19 KarpovDeniska
 
19.06.14
11:09
в (12) тебе написали ответ
20 GROOVY
 
19.06.14
11:10
Да при чем тут кавычки?! У тебя нет понимания работы клиент-серверной связи.

Обратится к метаданным, к базе данных на клиенте нельзя, а на сервере нельзя описывать события интерфейсные.
21 Господин ПЖ
 
19.06.14
11:11
>а присваивай значение на клиенте

клиент про Объект не в курсе...
22 Крошка Ру
 
19.06.14
11:12
Предлагаю в 1С внедрить новую директиву:

&НаКлиентеНоЕслиЧоТоИНаСервере

специально для начинающих программистов
23 Necessitudo
 
19.06.14
11:12
Задолбали студенты, которые только получили диплом и поперлись во франч.
24 KarpovDeniska
 
19.06.14
11:13
о ужас ужас, как жить дальше......
25 Goggy
 
19.06.14
11:13
(0)Конечно г0вн0к0д аццкий, но у тебя должно получиться что-то типа:

Процедура НазначениеПриИзменении(Элемент)
    Если Объект.Назначение = ВернутьЭлементСправочникаПоКоду(Код) Тогда
        Объект.Сумма = 500;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Функция ВернутьЭлементСправочникаПоКоду(Код)
Возврат Справочники.СправочникЗатрат.НайтиПоКоду(Код);
КонецФункции

Павел тебе в (3) и (20) примерно об этом и говорил.
З.Ы. Могут присутствовать ошибки, накидал от руки прям тут.
26 dred999
 
19.06.14
11:13
Хватит ругаться :(
27 Drac0
 
19.06.14
11:13
(21) в курсе. Это просто реквизит формы в данном контексте.
28 KarpovDeniska
 
19.06.14
11:13
во франч же надо только после 5 лет работы идти
29 GROOVY
 
19.06.14
11:14
(21) Как правило "Объект" - это основной реквизит формы => на клиенте доступен.
30 Fragster
 
19.06.14
11:14
(22) ты не поверишь: &НаКлиентеНаСервереБезКонтекста
31 dred999
 
19.06.14
11:14
Ок щас попробую
32 Fragster
 
19.06.14
11:14
&НаКлиентеНаСервере
33 dj_serega
 
19.06.14
11:14
(23) Так их там должны обучать же ;( Помогать ;(
34 Господин ПЖ
 
19.06.14
11:14
>&НаКлиентеНоЕслиЧоТоИНаСервере

лучше сразу:

&ИменемБорисаНуралиеваВыполнисьГдеБыНиБыл
35 Крошка Ру
 
19.06.14
11:15
(25) Ну ты и хитрый! Значит справочников на клиенте нет, а элемент справочника есть?
36 Drac0
 
19.06.14
11:15
(25) "&НаСервере" - зачем весь контекст тащить ради получения ссылки из менеджера? Надо &НаСервереБезКонтекста
37 Fragster
 
19.06.14
11:15
(29) помоги избавиться от функции "УходимНаСервер" в http://infostart.ru/public/198264/ при "автоматическом" выборе места выполнения, когда в толстом клиенте - на клиенте, а в тонком - на сервере
38 Drac0
 
19.06.14
11:16
(35) 0_о это возвращает ссылку. Ссылка на клиенте есть.
39 Goggy
 
19.06.14
11:17
(38) Вот взял и испортил мне весь стёб((
Я уже такой смешной абзац написал...
40 Goggy
 
19.06.14
11:18
(36) согласен.
41 Drac0
 
19.06.14
11:18
(39) Извини :-(
42 dred999
 
19.06.14
11:19
(25)  куча ошибок посыпалась
43 dj_serega
 
19.06.14
11:20
(42) Пример в студию
44 dred999
 
19.06.14
11:22
&НаКлиенте
Процедура НазначениеПриИзменении(Элемент)
      
    Если Объект.Назначение = ВернутьЭлементСправочникаПоКоду(0059)
        Тогда Объект.Сумма = 350;
        //Тогда
        // Объект.Валюта = Перечисления.Валюта.RUB;
     КонецЕсли;
    
КонецПроцедуры
  &НаСервере
Функция ВенутьЭлементСправочникаПоКоду(0059)
      Функция ВернутьЭлементСправочникаПоКоду(Код)
Возврат Справочники.СправочникЗатрат.НайтиПоКоду(Код);
КонецФункции
45 dred999
 
19.06.14
11:22
{Документ.Затраты.Форма.ФормаДокумента.Форма(14,41)}: Ожидается имя формального параметра
Функция ВенутьЭлементСправочникаПоКоду(<<?>>0059) (Проверка: Сервер)
{Документ.Затраты.Форма.ФормаДокумента.Форма(14,41)}: Ожидается имя формального параметра
Функция ВенутьЭлементСправочникаПоКоду(<<?>>0059) (Проверка: Тонкий клиент)
46 dred999
 
19.06.14
11:22
пфф стоп
47 Drac0
 
19.06.14
11:23
(44) Ты даже копипастой пользоваться еще не умеешь?..
48 dred999
 
19.06.14
11:23
сто стоп
49 Goggy
 
19.06.14
11:23
(44) Функция ВенутьЭлементСправочникаПоКоду(0059)

Это Гениально)))
50 Wobland
 
19.06.14
11:24
(45) вот поэтому программистов готовят в вузах 5 лет
51 dred999
 
19.06.14
11:26
вот
52 dred999
 
19.06.14
11:26
&НаКлиенте
Процедура НазначениеПриИзменении(Элемент)
      
  Если Объект.Назначение = ВернутьЭлементСправочникаПоКоду(0059) Тогда
        Объект.Сумма = 500;

        //Тогда
        // Объект.Валюта = Перечисления.Валюта.RUB;
     КонецЕсли;
    
КонецПроцедуры
  &НаСервере
      Функция ВернутьЭлементСправочникаПоКоду()
Возврат Справочники.СправочникЗатрат.НайтиПоКоду(0059);
КонецФункции
53 dred999
 
19.06.14
11:26
{Документ.Затраты.Форма.ФормаДокумента.Форма(6,60)}: Слишком много фактических параметров (ВернутьЭлементСправочникаПоКоду)
  Если Объект.Назначение = ВернутьЭлементСправочникаПоКоду(<<?>>0059) Тогда  (Проверка: Тонкий клиент)
54 dj_serega
 
19.06.14
11:26
(49) а это еще более гениальней

  &НаСервере
Функция ВенутьЭлементСправочникаПоКоду(0059)
      Функция ВернутьЭлементСправочникаПоКоду(Код)
Возврат Справочники.СправочникЗатрат.НайтиПоКоду(Код);
КонецФункции
55 Godofsin
 
19.06.14
11:26
ого
56 dj_serega
 
19.06.14
11:27
(53) Так написано же что передаешь параметр которого там быть не должно.
57 Segate
 
19.06.14
11:27
(53) что непонятно? Ты в вызове пихаешь параметр, а в описании функции его нет
58 dred999
 
19.06.14
11:28
Убрал, ошиба ушла, проверил не устанавливаеться 500
59 Aleksandr N
 
19.06.14
11:29
(58) Код в кавычки заключи
60 dj_serega
 
19.06.14
11:30
(58) ты передаешь на поиск число, а там нужно строку
61 Segate
 
19.06.14
11:32
научу пользваться отладчиком за деньги
62 Goggy
 
19.06.14
11:33
ТС ты сделал мой день, спасибо. Пойду штоле поработаю))))
63 samozvanec
 
19.06.14
11:34
какой писец
64 Beduin
 
19.06.14
11:34
(0) Скажи, зачем тебе это все?
65 Drac0
 
19.06.14
11:35
Сохраню ветку для будущих споров о необходимости профильного образования для программистов.
66 samozvanec
 
19.06.14
11:35
че? я не забанен????

ну раз так. ТС вот тебе:

Если Объект.Назначение.Код = "0059" Тогда
67 dred999
 
19.06.14
11:35
(64) Хочу к вам)))
68 dred999
 
19.06.14
11:37
(59)  Заключил в кавычки - ЗАРАБОТАЛО!!!!!! Спасибо народ!!!!!)))))
69 Beduin
 
19.06.14
11:37
(67) Так ты уже среди нас. 60 процентов одинесников как ты.
Иди работай. Больше ошибок, больше закрытых часов.
70 Fish
 
19.06.14
11:38
(68) Ещё немного усилий, и сможешь просить отстатыщ за работу.
71 Segate
 
19.06.14
11:39
(66) Объект.Назначение если составной тип данных, то могут быть коллизии
72 dred999
 
19.06.14
11:39
(67) ок спс!
73 Drac0
 
19.06.14
11:39
(70) Это было бы смешно ,если б не было так грустно...
74 dred999
 
19.06.14
11:40
(66) Я так понимаю это в управляемом приложении такой гиморой, в обычном попроще
75 Segate
 
19.06.14
11:40
(73) кому грусно, а кому отстатыщ
76 Beduin
 
19.06.14
11:41
Щас везде так. На мобилки уже с улицы собирают
http://5craft.com/job
77 Drac0
 
19.06.14
11:42
(66) во-первых, (71), во-вторых, все равно серверный вызов.
78 samozvanec
 
19.06.14
11:43
(71) ну это дополнительные вводные. можно еще тип проверить. зато без вызова сервера.
(74) это не геморрой, это порядок
79 dred999
 
19.06.14
11:45
опять начинаеться.. (( у меня есть еще реквизит валюта суммы.

и я ставлю


&НаКлиенте
Процедура НазначениеПриИзменении(Элемент)
      
  Если Объект.Назначение = ВернутьЭлементСправочникаПоКоду() Тогда
        Объект.Сумма = 350
        
        И Объект.Валюта = Перечисления.Валюта.RUB;
        
     КонецЕсли;
    
КонецПроцедуры
  &НаСервере
  Функция ВернутьЭлементСправочникаПоКоду()
      
Возврат Справочники.СправочникЗатрат.НайтиПоКоду("0059");

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


и выдает
{Документ.Затраты.Форма.ФормаДокумента.Форма(9,22)}: Переменная не определена (Перечисления)
                 Объект.Валюта = <<?>>Перечисления.Валюта.RUB; (Проверка: Тонкий клиент)
80 samozvanec
 
19.06.14
11:47
(79) перечисление валюта? пятница то завтра)
но вообще они тоже на сервере. все, что не на форме - оно на сервере, грубо говоря.
81 Фокусник
 
19.06.14
11:47
(0) переходи на 77 или 81 ;)
82 Godofsin
 
19.06.14
11:47
(67) Плати членский взнос
83 Fragster
 
19.06.14
11:47
(79) Глобальный контекст (Global context)
Перечисления (Enums)
Использование:

Только чтение.
Описание:

Тип: ПеречисленияМенеджер.
Используется для доступа к определенным в конфигурации перечислениям.

Доступность:

Сервер, толстый клиент, внешнее соединение.
См. также:

ПеречисленияМенеджер
84 Dionis Sergeevich
 
19.06.14
11:47
перечисления как и справочники доступны только на сервере. Учись писать код в режиме обычного приложения. Там нет серверов-клиентов - с серверами потом разберешься когда понимание придет
85 Kashey
 
19.06.14
11:47
Может ТС тролль?
86 Drac0
 
19.06.14
11:48
(78) см. (77)
87 Segate
 
19.06.14
11:48
читаем выше, на клиентне нет данных о структуре метаданных конфигурации..

и вот эта часть особенно хороша:


     Объект.Сумма = 350
        
        И Объект.Валюта = Перечисления.Валюта.RUB
и морковку пожалуйста;
        
вот так должно точно взлететь
88 dred999
 
19.06.14
11:49
(84) спасибо, нужно вникнуть сначала на обычном приложении..
89 samozvanec
 
19.06.14
11:50
(86) согласен, виноват.
90 samozvanec
 
19.06.14
11:50
+(89) но 1. а так - 2.
91 Dionis Sergeevich
 
19.06.14
11:51
(88) Чистова Паши курсы найди - старенькие по обычному приложению
92 13_Mult
 
19.06.14
11:51
(88) Нужно книжки сначала почитать
93 Segate
 
19.06.14
11:52
(91) вангую следующий вопрос: "В обычном приложении все работает, а в клиент-серверном варианте нет!!!11111"
94 Dionis Sergeevich
 
19.06.14
11:53
(93) На яндекс ответах? =))
95 dred999
 
19.06.14
11:54
(88)  Курсы нашел, смотрю.
96 dj_serega
 
19.06.14
11:55
(79) Есть такая штука "ПредопределенноеЗначение()".
Будешь первым в компании.
97 Dionis Sergeevich
 
19.06.14
11:55
(95) их купить надо!!!
98 Goggy
 
19.06.14
11:56
(79)Объект.Валюта = ПредопределенноеЗначение("Перечисления.Валюта.RUB")
99 Goggy
 
19.06.14
11:56
(96) опередил)
100 GROOVY
 
19.06.14
11:57
100!
101 Dionis Sergeevich
 
19.06.14
11:58
101!
102 dred999
 
19.06.14
11:58
(79)Объект.Валюта = ПредопределенноеЗначение("Перечисления.Валюта.RUB")  пробую
103 dred999
 
19.06.14
11:58
{Документ.Затраты.Форма.ФормаДокумента.Форма(7)}: Ошибка при вызове метода контекста (ПредопределенноеЗначение)
        Объект.Сумма = 350
по причине:
Предопределенное значение "Перечисления.Валюта.RUB" не найдено.
104 dj_serega
 
19.06.14
11:59
(102) тебя в (98) немного подшутили :)
там нужно писать "Перечисление"
105 dred999
 
19.06.14
12:00
{Документ.Затраты.Форма.ФормаДокумента.Форма(9,46)}: Переменная не определена (Перечисление)
        И Объект.Валюта = ПредопределенноеЗначение(<<?>>Перечисление.Валюта.RUB); (Проверка: Тонкий клиент)
106 Dionis Sergeevich
 
19.06.14
12:01
кавычки
107 Segate
 
19.06.14
12:06
Как же это оказывается сложно... а то пишешь-пишешь, и не понимаешь
108 dred999
 
19.06.14
12:07
(106)  Да все заработало!
109 dred999
 
19.06.14
12:07
только еще "И" убрал и вывел за условие
110 Dionis Sergeevich
 
19.06.14
12:11
Ну все, через неделю новый отстатысячник появится
112 Segate
 
19.06.14
12:13
(111) фуфуфуфу сайт на усоз ком, что, на домен первого уровня у начинающих 1с нет 300р?
113 dj_serega
 
19.06.14
12:15
(110) фух. тему закрываем? :)
114 dred999
 
19.06.14
12:15
Не получается там зарегиться
115 dred999
 
19.06.14
12:19
Да спасибо ребят - Закрываем! Вы КРАСАВЦЫ, ну кроме тех кто начал стибаться надо мной...
116 Gattuso
 
19.06.14
12:21
(115) в чем проблема с регистрацией?
117 Gattuso
 
19.06.14
12:23
(112) это новый проект - создатель и так будет безвозмездно тратить свое время на помощь новичкам в 1С, а не на стеб. Поэтому не вижу тут никаких проблем с бесплатным доменом.
118 Goggy
 
19.06.14
12:26
(115) А как же те, которые стебались и помогали одновременно?))
119 dj_serega
 
19.06.14
12:27
(117) если Тупо помочь, никто ничего не запомнит. А так с шутками оно дошло.
120 Segate
 
19.06.14
12:27
(117) а создатель-то кто?
121 dj_serega
 
19.06.14
12:27
+ (119) надеюсь
122 Gattuso
 
19.06.14
12:28
(121) юмор и откровенный стеб все-таки разные вещи :)
Насчет "с шутками оно дошло" - согласен :)
123 Gattuso
 
19.06.14
12:28
(120) он перед вами
124 dred999
 
19.06.14
12:29
(115) говорит что емайл уже занят
125 Segate
 
19.06.14
12:33
(123)А вы, простите, кто такой? =) Вы профессионал? Эксперт? У вас есть сертифицированные курсы?
126 Gattuso
 
19.06.14
13:02
(123) Прощаю:)
Если вас интересуют бумажки, то у меня 3 профа, но это вряд ли какой-то показатель. Получал я их когда только начинал заниматься 1с. Гнуть пальцы и хвастаться проектами, к которым я приложил руку не буду :)
Курсов у меня нет, просто есть желание помогать тем, кто только делает первые шаги в программировании в 1с. Так как все мы такими когда-то были.
127 Gattuso
 
19.06.14
13:03
(124) Значит вы уже зарегистрированы на одном из сайтов ucoz, там общая регистрация вроде как.
Так что можете попробовать ввести свои "стандартные" логин и пароль)
128 Gattuso
 
19.06.14
13:05
(124) хотя возможно я сейчас чушь написал.
Попробуйте еще раз - возможно просто глюк
129 GROOVY
 
19.06.14
13:08
(117) Да ладно! Нахрена это тебе? Как юзеров будешь привлекать?
130 Gattuso
 
19.06.14
13:14
(129) моральное удовольствие :)
Пока сайт еще на нулевом практически этапов, а юзеров буду вручную собираться в просторах интернета для начала, а дальше буду действовать по ситуации.
131 Segate
 
19.06.14
13:14
(128) я вам так скажу, у меня юсоз ассоциируется с клоакой из вирусов и троянов, и я даже не прошел по вашей ссылке потому что ни одного дельного сайта на этом домене не видел ни разу.

Мой вам совет, потраттье 300р в месяц, сделайте норм домен.
132 Gattuso
 
19.06.14
13:14
(129) Пока что вообще хочу понять главное, а надо ли это самим начинающим 1сникам
133 GROOVY
 
19.06.14
13:15
(130) С таким подходом не взлетит, не трать время.
134 Gattuso
 
19.06.14
13:15
(131) мое сообщение с ссылкой подчистили, я так понимаю тут нельзя выкладывать ссылки на другие сайты?
135 Gattuso
 
19.06.14
13:16
(133) Про подход - вы имеете ввиду как я ищу новичков?
Я пока их еще никак не ищу, тк еще сайт даже на 5 процентов не готов, но идеи по этому поводу имеются (просто озвучивать их публично я по понятным причинам не очень хочу)
136 Segate
 
19.06.14
13:17
(134) давай протестируем... Http://1c.ru
137 GROOVY
 
19.06.14
13:17
(131) У меня форум на укозе хостится, но домен свой. Я считаю это ничего не меняет.
ЗЫ: Есть энтуазисты которые забесплатно перенесут базу форума с укоза на что-то более нормальное?
138 GROOVY
 
19.06.14
13:17
139 vladislav_kz
 
19.06.14
13:18
(0) Качните халявного Чистова. Для начинающих самое то.
140 Segate
 
19.06.14
13:18
(137) я не про хостинг, а про домен как раз. Юсоз в свое время был забит кучей треша, с попап рекламками на порно и тд
141 Gattuso
 
19.06.14
13:18
(139) Все равно даже если постоянно смотреть видеокурсы и читать полезную литературу, то на начальном этапе вопросы постоянно возникают
142 Fragster
 
19.06.14
13:19
единственный правильный сайт на юкозе: http://devtool1c.ucoz.ru/
143 Fragster
 
19.06.14
13:20
(138) http://fragster.ru/ , чо
2 + 2 = 3.9999999999999999999999999999999...