Имя: Пароль:
1C
1C 7.7
v7: А в чём отличие? зачем НайтиДокумент?
0 Peltik
 
04.04.19
09:17
Пример 1

Док43 = СоздатьОбъект("Документ");
Док43 = Оп.Документ;
Док43.СделатьНеПроведенным();


Пример 2

Док43 = СоздатьОбъект("Документ");
Док43.НайтиДокумент(Оп.Документ);
Док43.СделатьНеПроведенным();


И в первом и во втором варианте дебагер на третьей строке значение Док43 показывает одно и то же, но только вот в первом варианте ругается "Не выбран документ!", а во втором случае отрабатывает так как и задумывалось. Ну а тут собственно и сабж.
1 Волшебник
 
04.04.19
09:19
так в 7.7 были реализованы ДокументСсылка и ДокументОбъект
2 VladZ
 
04.04.19
09:20
Отличие вот тут:

Док43 = СоздатьОбъект("Документ");
Док43 = Оп.Документ;

В первой строке ты создаешь объект. Во второй строке ты этой же переменной присваиваешь значение Оп.Документ.  В таком случае смысла в строке Док43 = СоздатьОбъект("Документ"); нет никакого.
3 Garykom
 
гуру
04.04.19
09:24
(1) Кстати раздельные ДокументСсылка и ДокументОбъект это на самом деле недоработка разработчиков платформы 1С.

Не смогли сделать единый объект-ссылка и чтобы оно работало шустро без тормозов и глюков.
Хотя во множестве реализаций ORM/JPA это из коробки.
4 Peltik
 
04.04.19
09:30
(1) Т.е. в первом варианте, это получилась ссылка на объект и соответственно распроведение не сработало его можно только читать, а во втором это уже непосредственно объект и его уже можно вертеть, я правильно понял?

Они б хотя бы в дебагере как-то их отличали, а то не поймешь, что откуда что растёт :(
5 Волшебник
 
04.04.19
09:32
(3) А зачем ты МНЕ об этом говоришь? Скажи им.
6 Волшебник
 
04.04.19
09:33
(4) Поставь уже восьмёрку. Там это реализовано.
7 VladZ
 
04.04.19
09:34
(4) Эта платформа была написана еще во времена царя Гороха... Ты слишком многого от нее хочешь.
8 Peltik
 
04.04.19
09:35
(6) Я знаю, что в восьмерке это реализовано, но я погряз в этом по самое нехочу :(
9 Волшебник
 
04.04.19
09:35
(8) Ты сам выбираешь свою судьбу.
10 Peltik
 
04.04.19
09:36
(7) конфига с тех же времен и пилится, и никто ничего менять не собирается :(
11 VladZ
 
04.04.19
09:36
(10) Переходи на 8.x
12 Peltik
 
04.04.19
09:37
(11) конфига уже 15 лет пилится, дождусь 16-тилетия, и отпущую ее в мир :)
13 VladZ
 
04.04.19
09:38
(12) 16 - не круглая дата. Жди 20.
14 Garykom
 
гуру
04.04.19
09:40
(5) Интересно почему авторы книг о 1С 7.7 или 1С 8.Х никогда об этом не упоминают.
15 Peltik
 
04.04.19
09:41
(13) совершеннолетие, и я буду не в ответе за нее, пусть сама развивается
16 Волшебник
 
04.04.19
09:44
(14) Попробуй напиши свою платформу, где ссылки и объекты будут одинаково быстро работать. И не надо ссылаться на ORM/JPA. Там нет табличных частей документов, нет регистров.
17 Garykom
 
гуру
04.04.19
09:47
(16) Да ТЧ и регистров нигде кроме 1С не видел.
Точнее нечто вроде есть в NoSQL но это уже другое.
18 vladko
 
04.04.19
09:49
(4) всё правильно понял. в 1м случае, говоря 8чным языком, у тебя ДокументСсылка, во втором ДокументОбъект. Только в 7.7 это неявно видно.
19 Peltik
 
04.04.19
10:46
(1) (18) спс, теперь все понятно
20 1Сергей
 
04.04.19
10:49
(0) первый вариант можешь сократить до

Док43 = Оп.Документ;
Док43.СделатьНеПроведенным();
21 Ёпрст
 
гуру
04.04.19
11:01
(0)
Первый вариант не рабочий, если что.
22 Ёпрст
 
гуру
04.04.19
11:02
(20) не выбран документ - будет ошибка ибо СделатьНеПроведенным - можно использовать только для объектов, созданных функцией СоздатьОбъект.
23 Ёпрст
 
гуру
04.04.19
11:04
(4) да
24 1Сергей
 
04.04.19
11:04
(22) ну, если там ссылка, то первый вариант (0) вообще не сработает
25 Peltik
 
04.04.19
11:23
(24) так он и не работает, там же русским по белому написано
26 Провинциальный 1сник
 
04.04.19
11:26
Проблема в том, что в семерке явно не разделены понятия "объект" и "ссылка".
27 Злопчинский
 
04.04.19
23:00
(26) а какие проблемы по этому поводу?
28 Провинциальный 1сник
 
05.04.19
06:49
(27) Люди не сразу понимают, как с этим правильно работать. И возникают вопросы типа сабжа.