|
Заполнение реквизита подчиненного справочника | ☑ | ||
---|---|---|---|---|
0
Сергей333
28.08.17
✎
15:06
|
Подскажите новичку. Есть спр.Номенклатура, на форме елемента которого есть поле ввода "Вес". У этого справочника есть подчиненный спр. ЕдиницаИзмирения, в форме списка которого есть колонка "Вес". Вопрос, Как заполнить эту колонку при записи спр. Номенклатура?
|
|||
1
Сергей333
28.08.17
✎
15:41
|
Помогите. Срочно нужно!
|
|||
2
FIXXXL
28.08.17
✎
16:08
|
(1) зачем так делать?
|
|||
3
Сергей333
28.08.17
✎
16:10
|
(2) Клиенту нужно. Когда вводит вес в форме элемента спр. Номенклатура, то что бы Вес отображался в форме списка спр. Единица измерения(колонка Вес)
|
|||
4
FIXXXL
28.08.17
✎
16:19
|
(3) ничего, что у товара может быть множество ЕИ?
|
|||
5
Сергей333
28.08.17
✎
16:22
|
(4) Оно должно писаться когда выбрана базовая ЕИ.
|
|||
6
_Дайвер_
28.08.17
✎
16:23
|
(3) Тебе нужно менять запрос(добавить 1 строчку), и добавить новую колонку "ВЕС" в форму списка, есть ее нет через изменить форму.
|
|||
7
FIXXXL
28.08.17
✎
16:24
|
ПередЗаписьюНаСервере в форме засунь вес в параметры записи
ПослеЗаписиНаСервере в форме считай и запиши в ЕИ |
|||
8
Сергей333
28.08.17
✎
16:37
|
(7) Блин. Чет это оч сложно пока для меня( "НаСервере" у меня нет. Типовая конфа. Если можно, можете примером показать?
|
|||
9
Vladimkir
28.08.17
✎
16:37
|
Непонятно задача.
А, например, ящик 10 штук = Вес номенклатуры * 10 считал сам и подставлял? Делаешь запрос к справочнику единицизмерний по владельцу, получешь элементы, меняешь им по формуле или как надо реквизит вес, записываешь. Или надо только в форме списка ИИ??? Тогда вытащи в динамическом списке элемента владелец.вес и включи ему обязательность. |
|||
10
Сергей333
28.08.17
✎
16:44
|
(9) В спр.Номенклатура выбираем базовую ЕдиницуИзмерения (шт) и поле ввода Вес (к примеру 10кг) так когда записал спр. Номенклатура, в форме списка справочника ЕдиницаИзмерения отображается :Наименование, единицы и есть колонка Вес нужно что бы она тоже отображалась.
|
|||
11
FIXXXL
28.08.17
✎
16:46
|
(8) что за конфа?
|
|||
12
Сергей333
28.08.17
✎
16:49
|
(11) 1С:Предприятие 8.3 (8.3.9.2033) УТП
|
|||
13
FIXXXL
28.08.17
✎
17:01
|
(12) ОФ или УФ?
|
|||
14
Сергей333
28.08.17
✎
17:04
|
(13) Обычные формы.
|
|||
15
FIXXXL
28.08.17
✎
17:10
|
(14) ну в ПослеЗаписи формы напиши
ОбъектЕИ = ЕИ.ПолучитьОбъект(); ОбъектЕИ.Вес = ВесСФормы; ОбъектЕИ.Записать(); |
|||
16
dezss
28.08.17
✎
17:16
|
(15) да ему не писать надо, а просто в форме списка отобразить, насколько я понял.
|
|||
17
FIXXXL
28.08.17
✎
17:20
|
(16) если это старая УТП а-ля УТ10, то проще записать :)
|
|||
18
Сергей333
29.08.17
✎
15:15
|
(15) а как переменные написать?
|
|||
19
FIXXXL
29.08.17
✎
16:07
|
(18) какие переменные?
|
|||
20
Сергей333
29.08.17
✎
16:33
|
(19) {Справочник.Номенклатура.Форма.ФормаЭлементаУпрощенная.Форма(471,13)}: Переменная не определена (ЕИ)
ОбъектЕИ = <<?>>ЕИ.ПолучитьОбъект(); (Проверка: Толстый клиент (обычное приложение)) {Справочник.Номенклатура.Форма.ФормаЭлементаУпрощенная.Форма(472,17)}: Переменная не определена (ВесСФормы) ОбъектЕИ.Вес = <<?>>ВесСФормы; (Проверка: Толстый клиент (обычное приложение)) |
|||
21
FIXXXL
29.08.17
✎
16:38
|
(20) ну ты там разберись куда тебе писать вес надо
|
|||
22
Сергей333
29.08.17
✎
16:41
|
(21) Справочник.Номенклатура.Форма.ФормаЭлементаУпрощенная.Форма и вот в ней в процедуре После записи. Правильно? Или в модуле объекта?
|
|||
23
FIXXXL
29.08.17
✎
16:43
|
(22) сделай в форме, тебе пока хватит
|
|||
24
Сергей333
30.08.17
✎
09:15
|
Блин( Как вывести данные из реквизита спр.Номенклатура в форму списка спр.Единица Измерения?
Неужели никто толком не может конкретно ответить? Просто реально ума не приложу что делать((. |
|||
25
FIXXXL
30.08.17
✎
09:29
|
(24) если есть однозначная связь Номенклатура-ЕИ, выведи через ОформленияСтрок процедуры СписокПриПолученииДанных списка ЕИ
|
|||
26
FIXXXL
30.08.17
✎
09:30
|
||||
27
Сергей333
30.08.17
✎
09:31
|
(25) У Спр.ЕИ владельцы спр. Номенклатура.
Спр. ЕИ на поддержке стоит. |
|||
28
Сергей333
30.08.17
✎
10:01
|
Не пойму причем здесь Оформление Строк?
|
|||
29
Сергей333
30.08.17
✎
10:14
|
Люди добрые помогите)) Уже истерика) Блин ну земля же круглая то, придет время и я кому то помогу.
|
|||
30
dezss
30.08.17
✎
10:23
|
(29) во время записи номенклатуры, получай объект единиц измерения, меняй в нем вес на тот, что указан у тебя на форме номенклатуры и записывай этот объект. Тебе еще в (15) это посоветовали.
|
|||
31
Сергей333
30.08.17
✎
10:27
|
(30) В процедуре ПриЗаписи или ПолсеЗаписи?
|
|||
32
dezss
30.08.17
✎
10:30
|
(31) по большому счету пофиг, ты меняешь не номенклатуру, а другой объект, но по хорошему надо бы в передзаписью.
|
|||
33
Сергей333
30.08.17
✎
10:32
|
(32) Вот здесь не пойму как менять вес ОбъектЕИ.Вес = ВесСФормы;?
|
|||
34
dezss
30.08.17
✎
10:33
|
(33) Ну на форме ж расположен какой-то реквизит. Вот его найди и его значение бери.
|
|||
35
Сергей333
30.08.17
✎
10:35
|
(34) Что то вроде ОбъектЕдиницыИзмерения.Вес = ЭлементыФормы.ВесБазовойЕдиницыИзмерения;?
ВесБазовойЕдиницыИзмерения-реквизит формы номенклатуры. |
|||
36
Сергей333
30.08.17
✎
10:44
|
(30) {Справочник.Номенклатура.Форма.ФормаЭлементаУпрощенная.Форма(354)}: Метод объекта не обнаружен (ПолучитьОбъект)
ОбъектЕдиницыИзмерения = ЕдиницыИзмерения.ПолучитьОбъект(); |
|||
37
dezss
30.08.17
✎
10:44
|
(35) да...только у тебя ж в номенклатуре есть и ссылка на ЕИ.
Если ВесБазовойЕдиницыИзмерения - это реквизит формы и у тебя УФ, то ЭлементыФормы.ВесБазовойЕдиницыИзмерения использовать не надо, можно просто ВесБазовойЕдиницыИзмерения; Делаешь тогда так: ОбъектЕдиницыИзмерения = <твоя_ссылка_на_еи>.ПолучитьОбъект(); ОбъектЕдиницыИзмерения.Вес = ВесБазовойЕдиницыИзмерения; Попытка ОбъектЕдиницыИзмерения.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; |
|||
38
dezss
30.08.17
✎
10:44
|
(36) Какой тип у ЕдиницыИзмерения?
|
|||
39
Сергей333
30.08.17
✎
10:45
|
(37) Обычные формы
|
|||
40
Сергей333
30.08.17
✎
10:52
|
(37) Ошибка {Справочник.Номенклатура.Форма.ФормаЭлементаУпрощенная.Форма(354)}: Метод объекта не обнаружен (ПолучитьОбъект)
ОбъектЕдиницыИзмерения = Справочники.ЕдиницыИзмерения.ПолучитьОбъект(); |
|||
41
Михаил Козлов
30.08.17
✎
10:54
|
(24) Боюсь, Вы не понимаете, что Вам нужно: вес обычно является реквизитом не номенклатуры, а единицы измерения.
Т.е. вес нужно писать в единицу измерения и редактировать в форме этого справочника (а не в форме элемента справочника "Номенклатура"). Если в форме списка справочника "Номенклатура" нужно вывести вес какой-либо единицы измерения (единицы хранения остатков или базовой), то делается это "на лету" (событие табличного поля ПриПолученииДанных см.(26)). |
|||
42
dezss
30.08.17
✎
11:01
|
(40) это ересь.
ПолучитьОбъект надо применять к ссылке на единицу измерения текущей формы. Если ОФ, то ОбъектЕдиницыИзмерения = ЭлементыФормы.ЕдиницыИзмерения.ПолучитьОбъект(); |
|||
43
Сергей333
30.08.17
✎
11:18
|
(41) Нет. В спр.Номенклатура есть реквизит "Вес" и его нужно показать в форме списка справочника Единицы Измерения!
У Единицы Измерения тоже есть реквизит "Вес". |
|||
44
dezss
30.08.17
✎
11:25
|
(43) Они всегда совпадают в спр Номенклатуры и ЕИ?
|
|||
45
Михаил Козлов
30.08.17
✎
11:29
|
(43) А зачем тогда реквизит "Вес" у номенклатуры?
Тогда (15): в ячейке Вес показываете вес из владельца: Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок) ДЛЯ каждого оф ИЗ ОформленияСтрок Цикл оф.Ячейки.Вес.УстановитьТекст(оф.ДанныеСтроки.Ссылка.Владелец.Вес); КонецЦикла; КонецПроцедуры |
|||
46
Сергей333
30.08.17
✎
11:35
|
(45) Эту процедуру нужно писать в форме списка спр. Единицы Измерения?
|
|||
47
Михаил Козлов
30.08.17
✎
11:37
|
(46) Да. Нужно в событиях табличного поля выбрать "ПриПолученииДанных" - оформится заголовок процедуры. В теле оформляете текст из (45).
Все равно непонятно, как смысл в реквизите "Вес" у номенклатуры. |
|||
48
Сергей333
30.08.17
✎
14:33
|
(47) Теперь ошибка: {Справочник.ЕдиницыИзмерения.Форма.ФормаСписка.Форма(79)}: Поле объекта не обнаружено (ЭлементыФормы)
оф.Ячейки.Вес.УстановитьТекст(оф.ДанныеСтроки.Ссылка.Владелец.ЭлементыФормы.Вес); Только не пойму почему, если в форме списка спр. ЕдиницаИзмерения есть колонка "Вес". |
|||
49
Сергей333
30.08.17
✎
14:34
|
(47) И так тоже: {Справочник.ЕдиницыИзмерения.Форма.ФормаСписка.Форма(79)}: Поле объекта не обнаружено (Вес)
оф.Ячейки.Вес.УстановитьТекст(оф.ДанныеСтроки.Ссылка.Владелец.Вес); |
|||
50
FIXXXL
30.08.17
✎
14:36
|
(49) точку останова на
оф.Ячейки.Вес.УстановитьТекст(оф.ДанныеСтроки.Ссылка.Владелец.ЭлементыФормы.Вес и смотри в отладчике правильный путь до веса |
|||
51
Сергей333
30.08.17
✎
14:38
|
(50) Если закрыть ошибку, то показывает вес на той единицы которую я выбрал в Номенклатуре, а на остальных единицах измерения нули стоят.
|
|||
52
dezss
30.08.17
✎
14:54
|
тебе нужно вживую пообщаться с более опытным программистом...тебя не слишком просто понять...
то тебе надо, чтобы писался вес в ЕИ, то надо чтобы только отображался (но откуда он будет отображаться, если он не пишется)...то ли пусть вес берется из справочника номенклатуры... |
|||
53
Сергей333
30.08.17
✎
15:00
|
(52) Да вес должен записаться из спр. Номенклатура.
|
|||
54
dezss
30.08.17
✎
15:03
|
(53) ну так пиши его и не парь мозг, тебе это уже давно сказали как это сделать...
и в списке тоже тогда будет этот вес. |
|||
55
Сергей333
30.08.17
✎
15:22
|
(54) Я понимаю что запарил, последний вопрос куда писать код из (37) и (45) ?
|
|||
56
dezss
30.08.17
✎
15:28
|
(55) из (37) пишешь при записи номенклатуры...а из 45 никуда не надо...у тебя же в списке ЕИ и так есть колонка Вес...и теперь она будет заполняться
|
|||
57
Сергей333
30.08.17
✎
15:41
|
(56) Вот Процедура ПриЗаписи(Отказ)
Если Не СтатьяЗатрат.Пустая() Тогда ВидЗатрат = СтатьяЗатрат.ВидЗатрат; Если ВидЗатрат = Перечисления.ВидыЗатрат.Материальные И Услуга Тогда ОбщегоНазначения.СообщитьОбОшибке("Укажите нематериальную статью затрат на закладке ""По умолчанию"" !", Отказ); ИначеЕсли Не ВидЗатрат = Перечисления.ВидыЗатрат.Материальные И Не Услуга Тогда ОбщегоНазначения.СообщитьОбОшибке("Укажите материальную статью затрат на закладке ""По умолчанию"" !", Отказ); КонецЕсли; КонецЕсли; // Обработка записи свойств и категорий Если НЕ Отказ Тогда ОбработкаОбъектЗначенияСвойств.ОбъектОтбораЗначений = Ссылка; Отказ = НЕ ОбработкаОбъектЗначенияСвойств.ЗаписатьЗначенияСвойств(); ОбработкаОбъектКатегорииОбъекта.ОбъектОтбораКатегорий = Ссылка; Отказ = НЕ ОбработкаОбъектКатегорииОбъекта.ЗаписатьКатегорииОбъекта(); КонецЕсли; ОбъектЕдиницыИзмерения = ЭлементыФормы.БазоваяЕдиницаИзмерения.ПолучитьОбъект(); ОбъектЕдиницыИзмерения.Вес = Вес; Попытка ОбъектЕдиницыИзмерения.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры // ПриЗаписи() И выдает ошибку:{Справочник.Номенклатура.Форма.ФормаЭлементаУпрощенная.Форма(451)}: Метод объекта не обнаружен (ПолучитьОбъект) ОбъектЕдиницыИзмерения = ЭлементыФормы.БазоваяЕдиницаИзмерения.ПолучитьОбъект(); |
|||
58
dezss
30.08.17
✎
15:46
|
какой тип у ЭлементыФормы.БазоваяЕдиницаИзмерения?
|
|||
59
Сергей333
30.08.17
✎
15:51
|
(58) СправочникСсылка.КлассификаторЕдиницИзмерения
|
|||
60
Михаил Козлов
30.08.17
✎
16:28
|
(57) ОбъектЕдиницыИзмерения = ЭлементыФормы.БазоваяЕдиницаИзмерения.Значение.ПолучитьОбъект();
1. Зачем получать объект через элемент формы - должен же быть реквизит самого объекта или реквизит формы? 2. Зачем Вам вес писать в классификатор (ОКЕИ)? |
|||
61
Сергей333
30.08.17
✎
16:40
|
(60) В классификатор не нужно. Нужно в форму списка спр.ЕИ.
реквизит формы спр.Номенклатура есть ВЕС. |
|||
62
FIXXXL
31.08.17
✎
08:41
|
(59) не ту ЕИ смотришь
|
|||
63
Сергей333
31.08.17
✎
13:08
|
(62) (60) В общем получилось записать в ЕИ таким образо:
// записать вес Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЕдиницыИзмерения.Ссылка |ИЗ | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения |ГДЕ | ЕдиницыИзмерения.Владелец = &Номенклатура | И НЕ ЕдиницыИзмерения.ПометкаУдаления | И ЕдиницыИзмерения.ЕдиницаПоКлассификатору = &ЕдиницаПоКлассификатору"; Запрос.УстановитьПараметр("ЕдиницаПоКлассификатору", БазоваяЕдиницаИзмерения); Запрос.УстановитьПараметр("Номенклатура", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ЕдиницаИзмеренияОбъект = Выборка.Ссылка.ПолучитьОбъект(); ЕдиницаИзмеренияОбъект.Вес = ЭлементыФормы.ВесБазовойЕдиницыИзмерения.Значение; ЕдиницаИзмеренияОбъект.Записать(); КонецЦикла; |
|||
64
Сергей333
31.08.17
✎
13:11
|
Теперь вопрос такой. В спр. Номенклатура есть РЕКВИЗИТ ФОРМЫ, и при открытии Номенклатуры должен в поле ввода реквизита "ВесБазовойЕдиницыИзмерения" отображаться записаный вес. Как реализовать?
|
|||
65
Рэйв
31.08.17
✎
13:15
|
(64)Ну и заполняй при создании на сервере.
|
|||
66
Сергей333
31.08.17
✎
13:19
|
(65) Я пробовал в процедуре при открытии, не выходит(
// читаем вес Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЕдиницыИзмерения.Вес |ИЗ | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); СтруктураОтбора = Новый Структура(); Пока Выборка.Следующий() Цикл ЭлементыФормы.БазоваяЕдиницаИзмерения.Значение = Выборка.Вес; КонецЦикла; |
|||
67
Сергей333
31.08.17
✎
13:19
|
(65) Если что, УТП обычные формы.
|
|||
68
h-sp
31.08.17
✎
13:35
|
(67) тебе же уже сказали, это два разных справочника
БазоваяЕдиницаИзмерения - это справочник КлассификаторЕдиницИзмерения а у тебя Справочник ЕдиницыИзмерения. Это совсем другой справочник. |
|||
69
Рэйв
31.08.17
✎
13:37
|
(66)А если у тебя несколько единиц измерения с базовой как в текущей, то какой вес ты будешь втыкать в реквизит?
|
|||
70
Рэйв
31.08.17
✎
13:38
|
*как в текущей ссылке Номенклатуры
|
|||
71
Сергей333
31.08.17
✎
13:48
|
Неправильно сори.
Пока Выборка.Следующий() Цикл ЭлементыФормы.ВесБазовойЕдиницыИзмерения.Значение = Выборка.Вес; КонецЦикла; |
|||
72
Рэйв
31.08.17
✎
13:50
|
(71) из 100500 подчиненных единиц измерения тебе надо проставить вес только последней?
|
|||
73
Сергей333
31.08.17
✎
14:20
|
(72) Создаем новую номенклатуру, вводим единицу измерения и вводим Вес (в поле ввода реквизита формы "ВесБазовойЕдиницыИзмерения") записываем. Теперь Вес отображается в форме списка ЕИ. Нужно что бы при повторном открытии спр. Номенклатура (которую создали) отображался Вес (этот реквизит не записывается в номенклатуре).
|
|||
74
FIXXXL
31.08.17
✎
14:22
|
(73) возьми свой же запрос из (63) , только теперь считай вес и присвой реквизиту формы
|
|||
75
Сергей333
31.08.17
✎
14:56
|
(74) Вы имеете ввиду в этом цикле?
Пока Выборка.Следующий() Цикл ЕдиницаИзмеренияОбъект = Выборка.Ссылка.ПолучитьОбъект(); ЕдиницаИзмеренияОбъект.Вес = ЭлементыФормы.ВесБазовойЕдиницыИзмерения.Значение; ЕдиницаИзмеренияОбъект.Записать(); КонецЦикла; |
|||
76
FIXXXL
31.08.17
✎
15:38
|
(75) да
|
|||
77
FIXXXL
31.08.17
✎
15:41
|
Пока Выборка.Следующий() Цикл
Вес = Выборка.Ссылка.Вес; ЭлементыФормы.ВесБазовойЕдиницыИзмерения.Значение=Вес; КонецЦикла; |
|||
78
FIXXXL
31.08.17
✎
15:42
|
(77) Внимание! Копрокод :)
Вес лучше в запросе получить |
|||
79
Сергей333
31.08.17
✎
15:54
|
(78) Это как?
(77) Так получается, но только если номенклатура не в папке. А как сделать если номенклатуру нужно создать к примеру в папке "Алкоголь"? Спасибо) |
|||
80
dezss
31.08.17
✎
16:06
|
Вы все еще заполняете реквизиты?)))
(79) не важно в какой папке номенклатура, код один и тот же. |
|||
81
FIXXXL
31.08.17
✎
16:09
|
(79) какая папка-мамка?
|
|||
82
FIXXXL
31.08.17
✎
16:09
|
(80) из принципа надо добить задачу :)
|
|||
83
dezss
31.08.17
✎
16:17
|
(82) Тут не задачу надо добивать))))
|
|||
84
Сергей333
31.08.17
✎
16:24
|
Спасибо всем ОГРОМНОЕ:) Все работает) (82) , (83) При встрече добьете меня)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |