|
Ошибка НаСервереБезКонтекста | ☑ | ||
---|---|---|---|---|
0
STAYEKR
18.06.12
✎
09:04
|
НаСервереБезКонтекста имеется код
&НаСервереБезКонтекста функция ПроверитьСостояниеСогласование(Состояние, Согласование) возврат (Состояние = Справочники.Состояния.КСогласованиюЗО) Или (НЕ Согласование = Справочники.Состояния.СогласованаЧастичноЗО); конецфункции который потом надо обработать на клиенте Если ПроверитьСостояниеСогласование(Объект.Состояние, Объект.Согласование)Тогда Сообщить("Дата платежа равна текущей, редактирование невозможно."); Отказ = Истина; Возврат; КонецЕсли; вся конструкция падает с ошибкой "Нельзя изменять поле, содержащее объект данных формы". В чем причина может быть? |
|||
1
unregistered
18.06.12
✎
09:11
|
(0) ИМХО, глюк компиляции. Попробуй:
Результат = Состояние = Справочники.Состояния.КСогласованиюЗО Или НЕ Согласование = Справочники.Состояния.СогласованаЧастичноЗО; Возврат Результат; |
|||
2
Нуф-Нуф
18.06.12
✎
09:12
|
не факт что проблема в этом, но все же посмотри на то, что "состояние" выделено красным цветом
|
|||
3
andrewks
18.06.12
✎
09:15
|
может, так:
функция ПроверитьСостояниеСогласование(Знач Состояние, Знач.Согласование) |
|||
4
Pro-tone
модератор
18.06.12
✎
09:15
|
(0) замени "Состояние" на "МоеСостояние"
|
|||
5
andrewks
18.06.12
✎
09:16
|
+(3) у тебя реквизиты формы передаются как параметры, доступные для изменения
|
|||
6
Coldboy
18.06.12
✎
09:16
|
(0) состояние по моему, эт тоже самое как Сообщить, зарезервированное слово.
|
|||
7
Ненавижу 1С
гуру
18.06.12
✎
09:30
|
вообще с точки зрения грамматики языка ошибок нет, имхо ответ в (1) = глюк
|
|||
8
STAYEKR
18.06.12
✎
09:30
|
пробовал так:
&НаСервереБезКонтекста функция ПроверитьСостояниеСогласование(ЭтоСостояние, Согласование) возврат (ЭтоСостояние = Справочники.Состояния.КСогласованиюЗО) Или (НЕ Согласование = Справочники.Состояния.СогласованаЧастичноЗО); конецфункции Если ПроверитьСостояниеСогласование(Объект.ЭтоСостояние, Объект.Согласование)Тогда Сообщить("Дата платежа равна текущей, редактирование невозможно."); Отказ = Истина; Возврат; КонецЕсли; падает с ошибкой "Поле объекта не обнаружено (ЭтоСостояние)". в чем беда? |
|||
9
andrewks
18.06.12
✎
09:31
|
(7) при чём здесь грамматика? см (3)
(8) ппц |
|||
10
STAYEKR
18.06.12
✎
09:45
|
(9) а по-конкретнее нельзя ли про ппц и чтобы к делу относилось?
|
|||
11
STAYEKR
18.06.12
✎
10:03
|
(4) Пробовал, пишет "Поле объекта не обнаружено (МоеСостояние)". в чем беда?
|
|||
12
Deniskind
18.06.12
✎
10:08
|
Ошибка, указанная вами в (0) означает, что данные формы (реквизиты) которые вы передаете в серверную процедуру, каким-то образом изменились. Это происходит когда символ "=" интерпретируется компилятором, как знак присваивания. В вашем коде символ "=" должен интерпретироваться как знак сравнения, но, видимо, этого не происходит. Скорее всего дело в платформе, которая установлена у вас. На платформе 8.2.15.315 код отрабатывает нормально и ошибка не воспроизводится.
В (8) у вас, действительно, не очень удачный код написан, хм... :) Вы вызываете процедуру ПроверитьСостояниеСогласование и в качестве первого параметра передаете Объект.ЭтоСостояние. Объект - это текущий объект документа или справочника, например. После сочетания букв "Объект." должно следовать имя реквизита, имеющегося в объекте. Скорее всего, реквизита "МоеСостояние" в объекте у вас нет. Верните в вызов Объект.Состояние, а в функции исправьте на "ЭтоСостояние" в параметрах и в после сочетания "возврат (". Если не поможет, то меняйте платфому. Впрочем, лучше все равно поменять :) |
|||
13
Deniskind
18.06.12
✎
10:14
|
+(12) Да, и в (3), кстати, тоже правильно написано.
|
|||
14
DUDE
18.06.12
✎
10:15
|
(11) погромист Онотоле, мне страшно за вышу базу данных, сделайте бэкап на всякий случай :) а то погромите раньше времени :)
|
|||
15
STAYEKR
18.06.12
✎
10:16
|
(13) не ясно, знач там через точку написано или как? был бы очень признателен за фрагмент кода
|
|||
16
STAYEKR
18.06.12
✎
10:16
|
(14) не бойтесь, это тестовая :)
|
|||
17
andrewks
18.06.12
✎
10:17
|
функция ПроверитьСостояниеСогласование(Знач Состояние, Знач Согласование)
исправленному верить. подпись, дата |
|||
18
STAYEKR
18.06.12
✎
10:18
|
(17) вызывать с клиетна как ее потом?
|
|||
19
Deniskind
18.06.12
✎
10:18
|
(17) исправленному верить. - что за модуль такой? :)
|
|||
20
andrewks
18.06.12
✎
10:18
|
(18) ну дык так же
|
|||
21
andrewks
18.06.12
✎
10:19
|
(19) документооборот
|
|||
22
Deniskind
18.06.12
✎
10:19
|
(21) :)
|
|||
23
STAYEKR
18.06.12
✎
10:47
|
ткните носом чайника! вот код, насколько я его понял:
&НаСервереБезКонтекста Функция ПроверитьСостояниеСогласование(Знач Состояние, Знач Согласование) Возврат (Состояние = Справочники.Состояния.КСогласованиюЗО) Или (НЕ Согласование = Справочники.Состояния.СогласованаЧастичноЗО); КонецФункции //клиент ... Если НЕ ПроверитьСостояниеСогласование(Объект.Состояние, Объект.Согласование) Тогда Сообщить("123"); Отказ = Истина; Возврат; КонецЕсли; с таким кодом дает возможность менять даты ВСЕХ заявок. а как настроить, чтобы только нужных? |
|||
24
STAYEKR
18.06.12
✎
11:59
|
Всем спасибо, разобрался!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |