Имя: Пароль:
1C
1С v8
Помогите ПолучитьОбъект (ошибка Элемент не выбран!)
0 Andrew_Best
 
28.12.14
18:13
Обработка. Заношу цены в документ УстановкаЦенНоменклатуры
Док = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру("00000000001");
Строка = Док.Товары.Добавить();
Строка.Номенклатура = НовыйЭлемент;
Строка.Валюта = Константы.ВалютаРегламентированногоУчета;
Строка.ЕдиницаИзмерения = НовыйЭлемент.БазоваяЕдиницаИзмерения;

Не получается сохранить документ.
Сохраняю
Док.Ссылка().ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
Док.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
Док.Записать();

У всех 3 вариантах ошибка.
1 RomanYS
 
28.12.14
18:20
НайтиПоНомеру - возвращает ссылку, именно здесь надо ПолучитьОбъект:
....НайтиПоНомеру("...").ПолучитьОбъект();

а дальше просто Док.Записать()
2 vicof
 
28.12.14
18:21
(1) Не найдет по номеру и скажет, что метод объекта не обнаружен.
3 Popkorm
 
28.12.14
18:42
(0) посмотри после как нашел документ,он скорее уже обьект.
4 alle68
 
28.12.14
18:51
(2) Скорее, будет сообщение из заголовка.
А пустую ссылку автор пусть сам проверяет.
(3) Он не найден ещё.
5 Andrew_Best
 
28.12.14
18:56
Док = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру("00000000001")

Если отладчиком смотрю на Док = пустая ссылка типа Документ.УстановкаЦенНоменклатуры

Если смотрю на Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру("00000000001") Получаю желаемое
6 alle68
 
28.12.14
19:04
(5) "Док" замени на "_Док".
7 Andrew_Best
 
28.12.14
19:08
5 - А почему так? Возможно Док гдето и используется. Спасибо)
8 Defender aka LINN
 
28.12.14
20:10
Док.Ссылка().ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
Док.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);

Генитально.
9 hhhh
 
28.12.14
21:43
(7) у НайтиПоНомеру 2 параметра надо указывать.
10 DrZombi
 
гуру
29.12.14
06:43
(0) >>> Док.Ссылка().ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);

Попробуй сделать по нормальному:

ДокСсыль = Док.Ссылка();
ДокОбъект = ДокСсыль.ПолучитьОбъект();
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
11 DrZombi
 
гуру
29.12.14
06:44
+(0) >>> У всех 3 вариантах ошибка.

Жесть, вам еще не предлагали почитать 4-5 книжек от 1С, по описанию языка программирования 1С? :)
...программист аникейщик...
12 chelentano
 
29.12.14
07:04
Док = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру("00000000001");
Строка = Док.Товары.Добавить();

уже ошибка, дальше читать не стал
13 cube033
 
29.12.14
08:05
//Получим ссылку на документ
ДокСсылка = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру("00000000001");
// Имея ссылку на документ ничего в нём изменить нельзя. (Нельзя переставить мебель в квартире, зная только её адрес)
Если ДокСсылка = Документы.УстановкаЦенНоменклатуры.ПустаяСсылка() Тогда
    Возврат;  //Печалька - нет документа с таким номером
Иначе
    ДокОбъект = ДокСсылка.ПолучитьОбъект(); //Получим объект - только в нем можно добавлять данные
КонецЕсли;
Строка = ДокОбъект .Товары.Добавить();
Строка.Номенклатура = НовыйЭлемент;
Строка.Валюта = Константы.ВалютаРегламентированногоУчета;
Строка.ЕдиницаИзмерения = НовыйЭлемент.БазоваяЕдиницаИзмерения;
Попытка
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение //Проведение вещь требовательная, если не получилось можно и документ потерять
ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецИсключения;
14 PaulBC
 
29.12.14
08:13
(13) >> Если ДокСсылка = Документы.УстановкаЦенНоменклатуры.ПустаяСсылка() Тогда
Печалька - НайтиПоНомеру возвращает ссылку либо Неопределено...
15 cube033
 
29.12.14
08:40
(14) Возвращаемое значение:

Тип: ДокументСсылка.<Имя документа>; Неопределено.
Ссылка на найденный документ. Если документ не найден, возвращается пустая ссылка на документ.
Если номер не задан (длина = 0), то будет возвращено Неопределено.

Я думаю - это не наш случай
16 hhhh
 
29.12.14
09:07
(15)  детский сад??

ДокСсылка = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру("00000000001", ДатаКакаяТо);
17 cube033
 
29.12.14
09:15
(16) в чем детский сад?
18 palladyi
 
29.12.14
09:19
(0) так в итоге разобрался?
19 cube033
 
29.12.14
09:44
(16) Не совсем понимаю - что не так
<ДатаИнтервала> (необязательный)
Тип: Дата.
Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
Параметр используется для документов с периодической нумерацией.

Мы не знаем итоговой задачи - поэтому не понятно нужен ли второй реквизит.
20 h_miha
 
29.12.14
10:06
(0) вангую появление новых тем от ТС   "Не устанавливается валюта!",  "Не устанавливается единица измерения!"     проблемные строки :   Строка.Валюта = Константы.ВалютаРегламентированногоУчета  
Строка.ЕдиницаИзмерения = НовыйЭлемент.БазоваяЕдиницаИзмерения
21 hhhh
 
29.12.14
10:59
(19) период уникальности у документа уберите. У ваас наверно там период уникальности указан год. ТОгда дата будет не нужна.

А детский сад, потому что миллион раз уже было про НайтиПоНомеру. Уже не смешно говорить, что дата не нужна.