Имя: Пароль:
1C
1С v8
ПолучитьОбъект() не работает
0 ksenod
 
07.06.19
09:34
целый день мучений в поисках причины, началось все с Програмное создание характеристик ут11.4

Код вида

[code]
&НаСервере
Процедура Команда1(Команда)
    НайденыйОбъект=Справочники.Номенклатура.НайтиПоНаименованию("Набор пиратов в коробке 46,5*12*23,5");
    РедОбъект= НайденыйОбъект.ПолучитьОбъект();
    РедОбъект.Артикул = "неуд";
    Попытка
        РедОбъект.Записать();
    Исключение
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;
[/code]
Ничего не делает, если попытаться его отладить на клиенте(толстом) то он падает на ПолучитьОбъект(), с ошибкой При подписке ЗаписатьВерсиюОбъекта на событие ПередЗаписью произошла ошибка. Обработчик события не найден.
Но этот обработчик есть.
1 Черный маклер
 
07.06.19
09:36
а если твое НайтиПоНаименованию возвращает Неопределено ?
2 mpei
 
07.06.19
09:36
НайденыйОбъект что возвращает?
3 ksenod
 
07.06.19
09:36
(1) Отладчиком посмотрел что там все хорошо. Код падает дальше.
4 jsmith82
 
07.06.19
09:37
(1) тогда уж пустую ссылку
5 eTmy
 
07.06.19
09:37
НайтиПоНаименованию("Набор пиратов в коробке 46,5*12*23,5");

Это пять
6 jsmith82
 
07.06.19
09:37
на тонком клиенте отлаживай
7 mpei
 
07.06.19
09:38
(3) что хорошо? ссылка?
8 wowik
 
07.06.19
09:39
Если ЗначениеЗаполнено(НайденыйОбъект)...  наше все)
9 ksenod
 
07.06.19
09:39
(7) https://ibb.co/zbtmx65 (5) Это просто отладка, в коде такой дичи не будет (6) Так не доступен ПолучитьОбьект, если не ошибаюсь
10 mpei
 
07.06.19
09:42
(9) вроде все хорошо должно быть попробуй (6)
11 eTmy
 
07.06.19
09:45
В тонком клиенте, в серверной процедуре
12 dezss
 
07.06.19
09:47
(9) читай и впитывай про клиентский и серверный контекст
https://xn----1-bedvffifm4g.xn--p1ai/news/2017-03-09-how-server-call-works/
13 mpei
 
07.06.19
09:49
(12) и причем тут это? у него стоит &НаСервере
14 sqr4
 
07.06.19
09:51
(1) оно бы уже тут вальнулось
РедОбъект.Артикул = "неуд";
15 Cyberhawk
 
07.06.19
09:51
(13) В толстом клиенте пади делает, вот и ошибка
16 dezss
 
07.06.19
09:52
(13) согласен, не обратил внимания.
Странно, что падает на ПолучитьОбъект().
17 mpei
 
07.06.19
09:52
(15) ага выше написал
18 Cyberhawk
 
07.06.19
09:53
У автора проблемы с логикой просто
19 ksenod
 
07.06.19
09:56
(12) (13) (14) Извиняюсь если ввел в заблуждение, Смотрел в переменную НаКлиенте, сам код ничего не делает в том виде как он указан в 1 посте. (18) Не стоит смешивать логику и знания.
20 ksenod
 
07.06.19
09:56
(11) Сейчас попробую
21 Cyberhawk
 
07.06.19
09:57
(19) "Не стоит смешивать логику и знания" // Я и не смешиваю, а сужу по твоему утверждению: "Ничего не делает".
22 ksenod
 
07.06.19
10:00
(21) Пожалуйста, покиньте данную ветку форума.
23 Cyberhawk
 
07.06.19
10:02
(22) Желание повластвовать в ответ на критику / правду говорит о неадекватном отношении к оной
24 ksenod
 
07.06.19
10:05
(23) Если есть желание пообщаться создайте свою ветку форума с пометкой флуд, я готов присоединиться не стоит флудить в этой.
25 Cyberhawk
 
07.06.19
10:09
(24) Ты что-то напутал, все только по делу
26 bootini
 
07.06.19
11:18
(0) У тебя же ругается на подпиську, вот и ищи подпиську на событие.
27 NUser
 
07.06.19
11:25
(5) В каком смысле?
28 ksenod
 
07.06.19
11:29
(26) Она есть, с ней все хорошо. Просто не отрабатывает &НаКлиенте (27) Плохой тон зашивать такое в код.
29 shuhard
 
07.06.19
11:36
(28)[ Она есть, с ней все хорошо. Просто не отрабатывает &НаКлиенте]
на клиенте нет  ПолучитьОбъект()
т.е. весь топик пурга
30 singlych
 
07.06.19
12:08
Ну епрст.
Обработчик команды оставить НаКлиенте. Из него вызвать процедуру НаСервере, в ней все это НайтиПоНаименованию, ПолучитьОбъект и т.п. Проверить, что обработчик подписки в серверном модуле.
31 ksenod
 
07.06.19
12:24
(30) Спасибо большое, вроде бы разобрался.

Заработало так:

НаКлиенте вызываю функцию

НаСервере Записываю переменную

Вопрос, почему я не мог по кнопке сразу вызвать функцию на сервере?(точнее она не исполнялась)?
Ушел изучать  (12)
32 dezss
 
07.06.19
12:25
(31) Потому что событие происходит на клиенте, сервер о нем ничего не знает.
Кнопка же не на сервере.

Поэтому обработка нажатия кнопки сперва идет на клиенте, а оттуда уже можно сервер вызвать.
33 VladZ
 
07.06.19
12:29
(0) Правило №1: Прежде чем что-то делать - прочитайте инструкцию.

В программировании вариант: "Бери лопату, кидай дальше. Пока летит - отдыхай" не работает. Тут нужно думать.
И нужно иметь какую-то базу. Без базы ты будешь как слепой котенок в трех соснах.
34 eTmy
 
07.06.19
13:33
Я рад что всё закончилось хорошо!
35 DrZombi
 
гуру
07.06.19
13:38
(24) Приведи свой код в порядок, и все проблемы перестанут возникать.
Сервер слева, Клиент справа :)
36 DrZombi
 
гуру
07.06.19
13:39
(31) Разработчики 1С так реализовали, ответ прост, так же как ваши проблемы.
..Вселенная не вертится вокруг вас ;)...
37 Вася Теркин
 
07.06.19
13:44
(34) Че закончилось? Пятница в разгаре, а клиент ушел. И кто теперь нас будет развлекать?
38 Вася Теркин
 
07.06.19
13:44
(36) Нифига, вселенная мисты вокруг таких как он и вертится.
Эх вы...