Вход | Регистрация

  1  2   
1С:Предприятие :: 1С:Предприятие 8 общая

Учусь писать код.

Ø [Волшебник, 19.06.14 - 13:19]
Учусь писать код.
Я
   dred999
 
19.06.14 - 11:02
Првет всем!

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

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

  &НаСервере
//&НаКлиенте

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

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

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

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

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

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

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

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

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

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

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

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

лучше сразу:

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

        // Объект.Валюта = Перечисления.Валюта.RUB;

     КонецЕсли;
     
 КонецПроцедуры
  &НаСервере
 Функция ВенутьЭлементСправочникаПоКоду(0059)
      Функция ВернутьЭлементСправочникаПоКоду(Код)
Возврат Справочники.СправочникЗатрат.НайтиПоКоду(Код);
КонецФункции
   dred999
 
45 - 19.06.14 - 11:22
{Документ.Затраты.Форма.ФормаДокумента.Форма(14,41)}: Ожидается имя формального параметра
 Функция ВенутьЭлементСправочникаПоКоду(<<?>>0059) (Проверка: Сервер)
{Документ.Затраты.Форма.ФормаДокумента.Форма(14,41)}: Ожидается имя формального параметра
 Функция ВенутьЭлементСправочникаПоКоду(<<?>>0059) (Проверка: Тонкий клиент)
   dred999
 
46 - 19.06.14 - 11:22
пфф стоп
   Drac0
 
47 - 19.06.14 - 11:23
(44) Ты даже копипастой пользоваться еще не умеешь?..
   dred999
 
48 - 19.06.14 - 11:23
сто стоп
   Goggy
 
49 - 19.06.14 - 11:23
(44) Функция ВенутьЭлементСправочникаПоКоду(0059)

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

        //Тогда

        // Объект.Валюта = Перечисления.Валюта.RUB;

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

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

и я ставлю


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

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


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

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

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

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

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

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

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


     Объект.Сумма = 350 
        
        И Объект.Валюта = Перечисления.Валюта.RUB
и морковку пожалуйста;
        
вот так должно точно взлететь
   dred999
 
88 - 19.06.14 - 11:49
(84) спасибо, нужно вникнуть сначала на обычном приложении..
   samozvanec
 
89 - 19.06.14 - 11:50
(86) согласен, виноват.
   samozvanec
 
90 - 19.06.14 - 11:50
+(89) но 1. а так - 2.
   DionisSergeevich
 
91 - 19.06.14 - 11:51
(88) Чистова Паши курсы найди - старенькие по обычному приложению
   13_Mult
 
92 - 19.06.14 - 11:51
(88) Нужно книжки сначала почитать
   Segate
 
93 - 19.06.14 - 11:52
(91) вангую следующий вопрос: "В обычном приложении все работает, а в клиент-серверном варианте нет!!!11111"
   DionisSergeevich
 
94 - 19.06.14 - 11:53
(93) На яндекс ответах? =))
   dred999
 
95 - 19.06.14 - 11:54
(88)  Курсы нашел, смотрю.
   dj_serega
 
96 - 19.06.14 - 11:55
(79) Есть такая штука "ПредопределенноеЗначение()".
Будешь первым в компании.
   DionisSergeevich
 
97 - 19.06.14 - 11:55
(95) их купить надо!!!
   Goggy
 
98 - 19.06.14 - 11:56
(79)Объект.Валюта = ПредопределенноеЗначение("Перечисления.Валюта.RUB")
   Goggy
 
99 - 19.06.14 - 11:56
(96) опередил)
   GROOVY
 
100 - 19.06.14 - 11:57
100!
  1  2   

Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует