|
Как записать данные в реквизит "ЕдиницыДляОтчетов" справочника Номенклатуры | ☑ | ||
---|---|---|---|---|
0
SherifSP
31.08.12
✎
16:16
|
НовНом.ЕдиницаДляОтчетов = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СокрЛП(Дбф.ED));
Возвращает пустое значение, хотя такие данные в справочнике есть |
|||
1
eklmn
гуру
31.08.12
✎
16:21
|
Откуда он интересно есть если ты создаешь новыю номенклатуру?
|
|||
2
del123
31.08.12
✎
16:25
|
почему-то я не сомневался в авторе темы)
|
|||
3
SherifSP
31.08.12
✎
16:25
|
(1)Открыл справочник единицы измерения и посмотрел, там уже есть такая единица измерения
|
|||
4
SherifSP
31.08.12
✎
16:26
|
Справочник Единицы измерения подчинен справочнику Номенклатура
|
|||
5
eklmn
гуру
31.08.12
✎
16:26
|
(3) а владелец кто? наверно наименование у него "я будущее"
|
|||
6
eklmn
гуру
31.08.12
✎
16:27
|
ууу да тут тяжедейший случай
(2) че сразу не сказал )) |
|||
7
SherifSP
31.08.12
✎
16:28
|
Получается надо искать не в справочнике ЕД.Изм. а в спр.Номенклатура?
|
|||
8
del123
31.08.12
✎
16:31
|
Читал справку по функции НайтиПОНаименованию()? В частности описание параметров...
|
|||
9
palpetrovich
31.08.12
✎
16:32
|
(7) сначала находишь Номенклатуру, если есть, тогда:
НайтиПоНаименованию(СокрЛП(Дбф.ED), , , НоменклатураВладелец) |
|||
10
eklmn
гуру
31.08.12
✎
16:33
|
(9) у него элемент номенклатуры еще не записан даже
|
|||
11
palpetrovich
31.08.12
✎
16:34
|
(10) ну дык, тогда Записать для начала :)
|
|||
12
palpetrovich
31.08.12
✎
17:01
|
хм, я тут накидал чуток от скуки, а автор свалил ...ну не пропадать-же добру :)
// цикл по ДБФ-ке НайденнаяСсылка = Справочники.Номенклатура.НайтиПоНаименованию(Дбф.Tovar); // Tovar или как-там у тебя Если НайденнаяСсылка = Справочники.Номенклатура.ПустаяСсылка() Тогда // Элемент не найден, создаем НовыйОбъект = Справочники["Номенклатура"].СоздатьЭлемент(); НовыйОбъект.УстановитьНовыйКод(); НовыйОбъект.Наименование = Дбф.Tovar; // что там еще... // Базовая единица Измерения (если есть) НайденнаяСсылкаКлЕд = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(Дбф.ED); Если НайденнаяСсылкаКлЕд = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда // Элемент не найден, создаем НовыйОбъектКлЕд = Справочники["КлассификаторЕдиницИзмерения"].СоздатьЭлемент(); НовыйОбъектКлЕд.УстановитьНовыйКод(); НовыйОбъектКлЕд.Наименование = Дбф.ED; НовыйОбъектКлЕд.НаименованиеПолное = Дбф.ED; // что там еще... Попытка НовыйОбъектКлЕд.Записать(); НовыйОбъект.БазоваяЕдиницаИзмерения = НовыйОбъектКлЕд.Ссылка; Исключение КонецПопытки; КонецЕсли; Попытка // промежуточная запись НовыйОбъект.Записать(); НайденнаяСсылка = НовыйОбъект.Ссылка; Исключение КонецПопытки; КонецЕсли; // единицы НайденнаяСсылкаЕд = Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору", НовыйОбъект.БазоваяЕдиницаИзмерения, ,НайденнаяСсылка); Если НайденнаяСсылкаЕд = Справочники.ЕдиницыИзмерения.ПустаяСсылка() Тогда // Элемент не найден, создаем НовыйОбъектЕд = Справочники["ЕдиницыИзмерения"].СоздатьЭлемент(); НовыйОбъектЕд.УстановитьНовыйКод(); НовыйОбъектЕд.ЕдиницаПоКлассификатору = НовыйОбъект.БазоваяЕдиницаИзмерения; НовыйОбъектЕд.Наименование = НовыйОбъект.БазоваяЕдиницаИзмерения.Наименование; НовыйОбъектЕд.Владелец = НайденнаяСсылка; // что там еще... Попытка НовыйОбъектЕд.Записать(); НовыйОбъект.ЕдиницаДляОтчетов = НовыйОбъектЕд.Ссылка; Исключение КонецПопытки; КонецЕсли; Попытка НовыйОбъект.Записать(); Исключение КонецПопытки; |
|||
13
SherifSP
31.08.12
✎
17:15
|
ниче себе от скуки
|
|||
14
SherifSP
31.08.12
✎
17:17
|
Я нашел как в типовой, только одна проблема туда передается справочник ссылка, а у меня справочник объект
|
|||
15
SherifSP
31.08.12
✎
17:17
|
// Процедура записывает единицу хранения остатков номенклатуры.
// Процедура ПроверитьЕдиницуХраненияОстатков(Отказ) Если ЗначениеЗаполнено(ЕдиницаХраненияОстатков) Тогда Возврат; КонецЕсли; ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Ссылка); Если ВыборкаЕдиниц.Следующий() Тогда НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка; Иначе НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = БазоваяЕдиницаИзмерения.Наименование; НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = Ссылка; Попытка НайденнаяЕдиницаОбъект.Записать(); Исключение Сообщить("Не удалось записать единицу хранения остатков: " + ОписаниеОшибки(), СтатусСообщения.Важное); Отказ = Истина; Возврат; КонецПопытки; НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка; КонецЕсли; ЕдиницаХраненияОстатков = НайденнаяЕдиница; Попытка ЗаписатьВФорме(); Исключение Отказ = Истина; КонецПопытки; КонецПроцедуры // ПроверитьЕдиницуХраненияОстатков() |
|||
16
del123
31.08.12
✎
17:31
|
ну дак и посмотри как в этой же типовой туда ссылка передается, там тоже же из объекта
|
|||
17
SherifSP
31.08.12
✎
17:43
|
(16)Я могу получить ссылку с элемента, но пока не запишу она будит пустая(
|
|||
18
del123
31.08.12
✎
18:02
|
значит запиши сначала, а потом уже добавляй единицы измерения..)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |