|
ЕдиницаХраненияОстатков | ☑ | ||
---|---|---|---|---|
0
EKO LX
11.09.12
✎
15:25
|
Здравствуйте.
вот процедура Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка " +?(ВГруппеИлиРавно="равно","=&Ссылка", "В ИЕРАРХИИ (&Ссылка)"); Запрос.УстановитьПараметр("Ссылка",Товар); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() ЦИКЛ Ссылка = Результат.Ссылка; Сообщить(Ссылка.Наименование); Если Ссылка.ЭтоГруппа Тогда Продолжить; КонецЕсли; ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Ссылка); Если ВыборкаЕдиниц.Следующий() Тогда НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка; Иначе НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = БазоваяЕдиницаИзмерения.Наименование; НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = Ссылка; Попытка НайденнаяЕдиницаОбъект.Записать(); Исключение Сообщить("Не удалось записать единицу: " + ОписаниеОшибки(), СтатусСообщения.Важное); Отказ = Истина; Возврат; КонецПопытки; НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка; КонецЕсли; ЕдиницаХраненияОстатков = НайденнаяЕдиница; Попытка ЕдиницаХраненияОстатков.Записать(); Исключение Отказ = Истина; КонецПопытки; КонецЦикла; КонецПроцедуры процедура работает, но не полностью. добавляет БазоваяЕдиницаИзмерения, но не добавляет ЕдиницаХраненияОстатков. в чем ошибка? |
|||
1
salvator
11.09.12
✎
15:30
|
(0) Отладчик?
|
|||
2
zladenuw
11.09.12
✎
15:32
|
подскажу, разные типы
|
|||
3
rinatru
11.09.12
✎
15:33
|
(2) ты не прав.
|
|||
4
Cандер
11.09.12
✎
15:34
|
Могу, конечно ошибаться, но единицу хранения просто так не поменяешь. Где-то в коде (точно не помню) стоит "Отказ = Истина;".
|
|||
5
zladenuw
11.09.12
✎
15:34
|
(3) думаешь ?
|
|||
6
rinatru
11.09.12
✎
15:34
|
объектном = Ссылка.получитьобъект();
объектном.единицахраненияостатков = НайденнаяЕдиница; объектном.записать(); |
|||
7
DrShad
11.09.12
✎
15:37
|
(4) открой для себя конструкцию
Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; и перейдешь на новый уровень |
|||
8
Cандер
11.09.12
✎
15:38
|
(7) Это к чему?
|
|||
9
DrShad
11.09.12
✎
15:40
|
(8) к твоему посту в этой ветке естественно
|
|||
10
golden-pack
11.09.12
✎
15:41
|
(8) это тебе ответ на (4) ... все нечем крыть ?
|
|||
11
palpetrovich
11.09.12
✎
15:44
|
(0) Процедура КнопкаВыполнитьНажатие(Кнопка) - это где?
ЕдиницаХраненияОстатков - это что? случайно не из типовой копи-паст? Процедура ПроверитьЕдиницуХраненияОстатков(Отказ) Если ЗначениеЗаполнено(ЕдиницаХраненияОстатков) Тогда Возврат; КонецЕсли; ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Ссылка); Если ВыборкаЕдиниц.Следующий() Тогда НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка; Иначе НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = БазоваяЕдиницаИзмерения.Наименование; НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = Ссылка; Попытка НайденнаяЕдиницаОбъект.Записать(); Исключение Сообщить("Не удалось записать единицу хранения остатков: " + ОписаниеОшибки(), СтатусСообщения.Важное); Отказ = Истина; Возврат; КонецПопытки; НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка; КонецЕсли; ЕдиницаХраненияОстатков = НайденнаяЕдиница; Попытка ЗаписатьВФорме(); Исключение Отказ = Истина; КонецПопытки; КонецПроцедуры // ПроверитьЕдиницуХраненияОстатков() |
|||
12
golden-pack
11.09.12
✎
15:45
|
(11) ЕдиницаХраненияОстатков это ЕдиницаХраненияОстатков. Кэп.
|
|||
13
rinatru
11.09.12
✎
15:48
|
я так понял, что ТС программно прописывает единицы в номенклатуре... элемент ЕдиницыИзмерения создал. а в карточке элемента Номенклатуры ссылку не привязал
|
|||
14
DrShad
11.09.12
✎
15:48
|
(12) если более подробно, то та единица в которой буду сформированы движения документа
|
|||
15
zladenuw
11.09.12
✎
15:49
|
(13) так может это в форме элемента
|
|||
16
palpetrovich
11.09.12
✎
15:50
|
(12) спасибо, но это так-же может быть и переменная, реквизит формы, реквизит документа, справочника, обработки...
|
|||
17
Reset
11.09.12
✎
15:50
|
(11) Реквизит объекта номенклатура, думаю
|
|||
18
DrShad
11.09.12
✎
15:50
|
(16) вы совершенно правы - это и есть реквизит справочника Номенклатура
|
|||
19
Reset
11.09.12
✎
15:52
|
Хотя если в контексте (0) - это переменная со ссылкой
|
|||
20
palpetrovich
11.09.12
✎
15:53
|
(18) телепат? ...я вот не уверен что эта процедура у автора в справочнике Номенклатура, мне почему-то кажется, что в обработке
|
|||
21
Reset
11.09.12
✎
15:53
|
(19), а гоню. Это действительно что угодно может быть, зависит от контекста, где (0) написано
|
|||
22
palpetrovich
11.09.12
✎
15:54
|
+20 могу конечно ошибаться, но автор пояснять не хочет :)
|
|||
23
Reset
11.09.12
✎
15:55
|
Но там явно ссылка и
Попытка ЕдиницаХраненияОстатков.Записать(); всегда вызывает исключение |
|||
24
DrShad
11.09.12
✎
15:56
|
судя по конструкции
Отказ = Истина; это таки модуль объекта |
|||
25
Reset
11.09.12
✎
15:56
|
Думаю это кривая и косая копипаста с поста ПалПетровича, ну точнее с его первоисточника
|
|||
26
palpetrovich
11.09.12
✎
15:57
|
(23) ксати да :)
а в чем смысл | Номенклатура.Ссылка " +?(ВГруппеИлиРавно="равно","=&Ссылка", "В ИЕРАРХИИ (&Ссылка)"); она как-то по другому работает разве чем: | Номенклатура.Ссылка В ИЕРАРХИИ (&Ссылка)"; ? |
|||
27
Reset
11.09.12
✎
15:57
|
(24) Судя по названию процедуры "КнопкаВыполнитьНажатие(Кнопка)" -наврядли модулб объекта :)
|
|||
28
Reset
11.09.12
✎
15:58
|
А отказ - это тупо переменная, котрая исчезает после завершения этой процедуры
|
|||
29
palpetrovich
11.09.12
✎
15:58
|
(25) ну первоисточнок - в УТ, в модуле формы спраочника номенклатура :)
|
|||
30
Reset
11.09.12
✎
15:58
|
Короче я раскрыл заговор. Автору учить отличие между объектом и ссылкой.
|
|||
31
DrShad
11.09.12
✎
15:59
|
(27) тоже первым делом сомневался, но...
|
|||
32
Reset
11.09.12
✎
16:01
|
Автор кстати создал тему и свалил, истину мы не узнаем ^^
|
|||
33
palpetrovich
11.09.12
✎
16:12
|
(0) как-то так получше будет:
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ (&ВыбНоменклатура)"); Запрос.УстановитьПараметр("Ссылка",Товар); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() ЦИКЛ НоменклатураСсылка = Результат.Ссылка; Если НоменклатураСсылка.ЭтоГруппа Тогда Продолжить; КонецЕсли; ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, НоменклатураСсылка); Если ВыборкаЕдиниц.Следующий() Тогда НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка; Иначе НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = НоменклатураСсылка.БазоваяЕдиницаИзмерения.Наименование; НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = НоменклатураСсылка.БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = НоменклатураСсылка; Попытка НайденнаяЕдиницаОбъект.Записать(); Исключение Сообщить("Не удалось записать единицу: " + ОписаниеОшибки(), СтатусСообщения.Важное); Возврат; КонецПопытки; НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка; КонецЕсли; НоменклатураОбъект = НоменклатураСсылка.ПолучитьОбъект(); НоменклатураОбъект.ЕдиницаХраненияОстатков = НайденнаяЕдиница; Попытка НоменклатураОбъект.Записать(); Исключение КонецПопытки; КонецЦикла; КонецПроцедуры зы: не проверял, но вроде ошибок нет :) |
|||
34
palpetrovich
11.09.12
✎
16:14
|
* мля :)
Запрос.УстановитьПараметр("ВыбНоменклатура",ВыбНоменклатура); // ВыбНоменклатура - реквизит на форме обработки |
|||
35
EKO LX
11.09.12
✎
17:17
|
Спасибо большое palpetrovich! а ошибка есть, забыли поставить "." между Номенклатура и Ссылка :)
НоменклатураОбъект = НоменклатураСсылка.ПолучитьОбъект(); |
|||
36
palpetrovich
11.09.12
✎
17:22
|
(35) не-не, там-же раньше НоменклатураСсылка = Результат.Ссылка;
а вот что забыл, так это вначале: Запрос = новый Запрос; :) |
|||
37
Reset
11.09.12
✎
17:30
|
(35) Гы-гы. Не надо там точки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |