|
Программное создание элемента номенклатуры | ☑ | ||
---|---|---|---|---|
0
enmelnik
05.08.15
✎
18:39
|
Подскажите, пожалуйста, как создать новый элемент номенклатуры без двойной записи.
Есть код: <code> НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент(); УИД = Новый УникальныйИдентификатор; НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(УИД); НовыйЭлемент.УстановитьСсылкуНового(НоваяСсылка); ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); ЕдиницаИзмерения.Владелец = НовыйЭлемент.ПолучитьСсылкуНового(); ЕдиницаИзмерения.Наименование = "шт"; ЕдиницаИзмерения.ЕдиницаПоКлассификатору = НовыйЭлемент.БазоваяЕдиницаИзмерения; ЕдиницаИзмерения.Коэффициент = 1; ЕдиницаИзмерения.Записать(); </code> Вываливаеться ошибка: Ошибка при вызове метода контекста (Записать) ЕдиницаИзмерения.Записать(); по причине: Значение поля "Номенклатура" не заполнено или заполнено неверно Что же не так? |
|||
1
Fragster
гуру
05.08.15
✎
18:41
|
не вижу заполнения поля "Номенклатура" в коде.
но возможно поможет ЕдиницаИзмерения.ОбменДанными.Загрузка = Истина; и не забыть транзакцию. |
|||
2
Fragster
гуру
05.08.15
✎
18:41
|
ЕдиницаИзмерения.Владелец = НоваяСсылка;
|
|||
3
Casey1984
05.08.15
✎
18:41
|
ЕдиницаИзмерения.Владелец = НовыйЭлемент.ПолучитьСсылкуНового() - зачем?
|
|||
4
enmelnik
05.08.15
✎
18:43
|
(3) ПолучитьСсылкуНового (GetNewObjectRef)
Синтаксис: ПолучитьСсылкуНового() Возвращаемое значение: Тип: СправочникСсылка. Описание: Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового значение ссылки |
|||
5
enmelnik
05.08.15
✎
18:44
|
(1) Поле "Номенклатура" отсутствует
|
|||
6
Fragster
гуру
05.08.15
✎
18:45
|
(4) ты уже сделал ссылку, она в переменной НоваяСсылка. не обязательно её получать.
|
|||
7
Fragster
гуру
05.08.15
✎
18:45
|
(5) а в ошибке - присутствует? как так?
|
|||
8
enmelnik
05.08.15
✎
18:48
|
(6) При
ЕдиницаИзмерения.Владелец = НоваяСсылка; Тоже выпадает эта же ошибка, а поле "Номенклатура" я так понимаю это Владелец |
|||
9
Fragster
гуру
05.08.15
✎
18:50
|
тогда ответ в (1)
|
|||
10
Casey1984
05.08.15
✎
18:50
|
НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(УИД) - без этого попробуй
|
|||
11
Casey1984
05.08.15
✎
18:50
|
(10) вернее без УИД !!!
|
|||
12
Casey1984
05.08.15
✎
18:51
|
НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку()
|
|||
13
enmelnik
05.08.15
✎
18:54
|
(12) Так нельзя
ПолучитьСсылку(<УникальныйИдентификатор>) Параметры: <УникальныйИдентификатор> (необязательный) Тип: УникальныйИдентификатор. Уникальный идентификатор, из которого будет формироваться ссылка. Возвращаемое значение: Тип: СправочникСсылка. Описание: Формирует ссылку из значения типа УникальныйИдентификатор. Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор. |
|||
14
Casey1984
05.08.15
✎
18:54
|
(13) можно <УникальныйИдентификатор> (необязательный)
|
|||
15
enmelnik
05.08.15
✎
18:56
|
Я имею ввиду, что без этого метода ссылку не получить, и УИД здесь явно не влияет на результат в таком случае
|
|||
16
Casey1984
05.08.15
✎
18:57
|
(15) почитай до конца справку по этому методу
|
|||
17
enmelnik
05.08.15
✎
19:00
|
(16) Ну будет сформирован новый УИД, и что? И будет новая ссылка, но единица измерения при записи выдает ошибку все равно))
|
|||
18
Casey1984
05.08.15
✎
19:04
|
Вот рабочий пример:
Процедура ПриЗаписи(Отказ) Если ЭтоНовый() Тогда СсылкаНового = ЭтотОбъект.ПолучитьСсылкуНового(); Если НЕ ЗначениеЗаполнено(СсылкаНового) Тогда СсылкаНового = Справочники.Контрагенты.ПолучитьСсылку(); КонецЕсли; МенеджерЗаписи = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Партнер = СсылкаНового; МенеджерЗаписи.Представление = Адрес; ЭтотОбъект.УстановитьСсылкуНового(СсылкаНового); КонецЕсли; КонецПроцедуры |
|||
19
Fragster
гуру
05.08.15
✎
19:11
|
все равно ответ в (1)
|
|||
20
enmelnik
05.08.15
✎
19:17
|
(18) Справочники.Контрагенты.ПолучитьСсылку()
Возвращает пустую ссылку |
|||
21
enmelnik
05.08.15
✎
19:21
|
(19) Да, спасибо! Если добавить строку:
ЕдиницаИзмерения.ОбменДанными.Загрузка = Истина; То все ОК. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |