|
Заполнить поле выбора | ☑ | ||
---|---|---|---|---|
0
ghostrid3r
18.12.12
✎
12:06
|
Добрый день подскажите как заполнить поле выбора, написал следующий код а всеравно поле выбора <не задано>.
Форма = НовДокРеалТоваровУслуг.ПолучитьФорму(); Номенклатура = ПолучитьСправочнкиИз8ки(Новый Структура("Имя, Назначение, ИмяЭ",Стр.ТМЦ, Стр.НазПрод, Стр.ТМЦЭ), "Номенклатура"); ЭлементСпискаЗначений = Форма.ЭлементыФормы.Вагоны.Колонки.Номенклатура.ЭлементУправления.СписокВыбора.Добавить(Номенклатура); Форма.ЭлементыФормы.Вагоны.Колонки.Номенклатура.ЭлементУправления.Значение = ЭлементСпискаЗначений; ЭлементСпискаЗначений все ок, там сидит наша номенклатура, а вот как ее подставить в табличную часть? |
|||
1
cw014
18.12.12
✎
12:07
|
Форма.ЭлементыФормы.Вагоны.Колонки.Номенклатура.ЭлементУправления.Значение = ЭлементСпискаЗначений.Значение;
|
|||
2
ghostrid3r
18.12.12
✎
12:08
|
(1) не подходит в отладчике, это равенство равно ЛОжь
|
|||
3
Reset
18.12.12
✎
12:11
|
(2) Это не равенство, это присваивание
|
|||
4
Reset
18.12.12
✎
12:11
|
Хотя и некорректное
|
|||
5
Reset
18.12.12
✎
12:13
|
Возможно, нужно что-то типа
Форма.Вагоны[НомерСтроки].Номнклатура=ЗначениеНоменклатуры Пишу "возможно", потому что условия задачи эээ нечеткие |
|||
6
Reset
18.12.12
✎
12:14
|
или, вернее
НовДокРеалТоваровУслуг.Вагоны[НомерСтроки].Номнклатура=ЗначениеНоменклатуры |
|||
7
ghostrid3r
18.12.12
✎
12:20
|
(6) ваш вариант не подходит, тк номенклатура не реквизит табличной части, поэтому к ней надо обращатся через элементы формы
|
|||
8
ghostrid3r
18.12.12
✎
12:22
|
(3) + если это присваивание и при присваивание отладчик выдал Ложь, то присваивания не будет, и так же останется <не задано>
|
|||
9
ghostrid3r
18.12.12
✎
12:27
|
единсвенный вариант при котором присваивание выдаст истину следующий, но я не уверен что он правильный.
Форма.ЭлементыФормы.Вагоны.Колонки.Номенклатура.ЭлементУправления.СписокВыбора[0].Значение = ЭлементСпискаЗначений.значение |
|||
10
Reset
18.12.12
✎
12:28
|
"не реквизит табличной части,поэтому к ней надо обращатся через элементы формы"
Мощно задвинул. Так ты определи тогда, что такое - номенклатура. (8) "при присваивание отладчик выдал Ложь" - у тебя действительно такая каша в мозгах или просто изъясняться не умеешь? |
|||
11
cw014
18.12.12
✎
12:28
|
(8) Отладчик не отрабатывает присваивание. Он может только вычислить значение, поэтому он равенство тебе показывает, что на данный момент значение не равно указываемому
|
|||
12
Reset
18.12.12
✎
12:29
|
(9) Прекрати это "при котором присваивание выдаст истину"
Тут не С а 1С, примваивание ничего не выдает |
|||
13
Reset
18.12.12
✎
12:29
|
присваивание*
|
|||
14
Reset
18.12.12
✎
12:30
|
(0) "а вот как ее подставить в табличную часть"
(7) " тк номенклатура не реквизит табличной части" действительно каша |
|||
15
ghostrid3r
18.12.12
✎
12:32
|
(10) я не мощно задвинул, это добавленная вручную колонка, с типом строка, с повешеными обработчиком выбора, которой пихает туда номенклатуру из другой табличной части. Но мне не нужно каждый раз заходить и выбирать например 100 строк, а чтобы они автоматом заполнились
|
|||
16
cw014
18.12.12
✎
12:32
|
Пока не поймешь, что такое присваивание и сравнение, пока не научишься отделять мух от котлет - помочь ничем не смогу
|
|||
17
Reset
18.12.12
✎
12:33
|
(15) Добавленная вручную КУДА?
|
|||
18
cw014
18.12.12
✎
12:33
|
(4) А почему ты думаешь что некорректное? Ибо у поля выбора есть тип значения - неважно что оно всегда "Произвольное". Поэтому значением этого ЭУ будет значением из элемента списка
|
|||
19
ghostrid3r
18.12.12
✎
12:34
|
в табличную часть Вагоны
|
|||
20
Reset
18.12.12
✎
12:35
|
(18) Некорректное - потому что мухе котлету пытается присвоить
|
|||
21
Reset
18.12.12
✎
12:36
|
(19) Ты отличаешь табличную часть от табличного поля? Точно добавил в табличную часть?
|
|||
22
ghostrid3r
18.12.12
✎
12:36
|
как вам еще обьяснить?
|
|||
23
Reset
18.12.12
✎
12:36
|
(19) тк в (7)
"тк номенклатура не реквизит табличной части" |
|||
24
ghostrid3r
18.12.12
✎
12:36
|
(21) да точно она добавлена в табличную часть.
|
|||
25
Reset
18.12.12
✎
12:37
|
(24) тогда см (6)
|
|||
26
ghostrid3r
18.12.12
✎
12:37
|
(23) ее в реквизитах нет, когда обратится к табличной части документа, не через элементы формы.
|
|||
27
Reset
18.12.12
✎
12:38
|
(26) Я спросил в (21), отличаешь или нет - вижу, не отличаешь
|
|||
28
cw014
18.12.12
✎
12:38
|
(20)
ЭлементыФормы.ПолеВыбора1.СписокВыбора.Очистить(); ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить("ААА"); ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить("БББ"); ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить("ВВВ"); ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить("ГГГ"); ЭлементыФормы.ПолеВыбора1.Значение = "ВВВ"; Прикинь, работает |
|||
29
Reset
18.12.12
✎
12:39
|
(28) Два путающих мух и котлеты на одного меня - слишком много
|
|||
30
ghostrid3r
18.12.12
✎
12:39
|
(25) Поле объекта не обнаружено Номенклатура.
|
|||
31
Reset
18.12.12
✎
12:40
|
(28) А ты отличаешь табличное поле от поля ввода?
|
|||
32
cw014
18.12.12
✎
12:41
|
(31) А где ты видел у меня "Поле ввода"?
|
|||
33
Reset
18.12.12
✎
12:44
|
(32) Ну поле выбора. Прикидывешься идиотом?
|
|||
34
Reset
18.12.12
✎
12:44
|
(33) хотя грубовато, извини
|
|||
35
cw014
18.12.12
✎
12:45
|
(34) Ладно, мы похоже не до конца друг друга понимаем
(30) Подскажи, а что у тебя в свойстве "Данные" находится, если колонка не реквизит ТЧ? |
|||
36
Reset
18.12.12
✎
12:46
|
В общем, для более терпеливых читателей темы.
Я так понимаю что автор в ТП с данными из ТЧ впендючил колонку и хочет заполнить ее данными. Очевидно, это невозможно, т.к. данных у такой колонки нет. Можно только симулировать наличие данных в ней ПриВыводеСтроки(ПриПолученииДанных), храня их где-нибудь. Ну или добавить таки реквизит в ТЧ. Не чувствую себя в состоянии довести это до автора, может кому-то другому удастся. |
|||
37
cw014
18.12.12
✎
12:47
|
(30) Слушай мудрых людей в (36)
|
|||
38
ghostrid3r
18.12.12
✎
12:48
|
Форма.ЭлементыФормы.Вагоны.Колонки.Номенклатура.Данные - строка (35)
|
|||
39
ghostrid3r
18.12.12
✎
12:49
|
(36) и ничего я не впиндюривал, все так и было. просто нужно заполнить автоматом
|
|||
40
ghostrid3r
18.12.12
✎
12:59
|
Форма.ЭлементыФормы.Вагоны.Номенклатура поле объекта не обнаружено Номенклатура.
Форма.ЭлементыФормы.Вагоны.Колонки.Номенклатура - КолонкаТабличногоПоля |
|||
41
cw014
18.12.12
✎
13:00
|
(38) Не может быть.... А что в этом свойстве то?
|
|||
42
cw014
18.12.12
✎
13:01
|
(40) Логично
|
|||
43
Reset
18.12.12
✎
13:02
|
(35) Я действительно не совсем прав был, если у колонки нет данных,(1) присвоит значение "по умолчанию" для "всех" элементов управления в ТП. Т.е. если нужно одно на всех значение во всех строках (?), тогда это можно использовать.
Но автору нужно, видимо, в каждой строке свое значение, иначе зачем вообще добавлять это в ТЧ. |
|||
44
Reset
18.12.12
✎
13:03
|
(43) неправ в том, что "присваивание некорректное"
|
|||
45
cw014
18.12.12
✎
13:03
|
(44) Прощаю, я не обидчивый. Ну так что будем с ТП делать то?
|
|||
46
Reset
18.12.12
✎
13:06
|
(45) я не знаю, что делать. Автор то добавлял колонку, то "так было". Если "было" (кто-то уже сделал до автора) и колонка уже организована с хранением, то обращаться нужно туда, где оно хранится.
Короче кончился запас телепатии |
|||
47
ghostrid3r
18.12.12
✎
13:08
|
(46) я нигде не писал что добавлял колонку
|
|||
48
ghostrid3r
18.12.12
✎
13:09
|
вот какие обработчики висят на этом поле выбора
Процедура ВагоныНоменклатураНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) ЭлементыФормы.Вагоны.Колонки.Номенклатура.ЭлементУправления.СписокВыбора = СформироватьСписокВыбораНоменклатурыДляТранспорта(); КонецПроцедуры Функция СформироватьСписокВыбораНоменклатурыДляТранспорта() СписокВыбора = Новый СписокЗначений; Для каждого СтрокаТоваров ИЗ Товары Цикл Если СтрокаТоваров.КлючСтроки <> 0 Тогда СписокВыбора.Добавить(Новый Структура("ИмяТЧ, КлючСтроки", "Товары", СтрокаТоваров.КлючСтроки), "" + СтрокаТоваров.НомерСтроки + ". " + СтрокаТоваров.Номенклатура); КонецЕсли; КонецЦикла; Возврат СписокВыбора; КонецФункции |
|||
49
Reset
18.12.12
✎
13:09
|
(47) ----> (15)
" это добавленная вручную колонка, с типом строка" |
|||
50
ghostrid3r
18.12.12
✎
13:11
|
Раньше все в тч части товары выбирали номенклатуру, а в тч вагоны забывали. Теперь нужно пройтись обработкой и заполнить номенклатуру в тч вагоны. (49) и где тут написано что добавлял я?
|
|||
51
Reset
18.12.12
✎
13:12
|
(50) Слушай, мне похрен, реально, кто именно добавлял.
(48) Покажи обработчики ВагоныПриВыподеСтроки и ВагоныПриПолученииДанных, если таковые есть. |
|||
52
Reset
18.12.12
✎
13:13
|
ВагоныПриВыподеСтроки --> ВагоныПриВыводеСтроки
|
|||
53
cw014
18.12.12
✎
13:13
|
(50) > а в тч вагоны забывали
Может потому и "забывали" что не давало выбрать? |
|||
54
ghostrid3r
18.12.12
✎
13:15
|
Процедура ВагоныПриПолученииДанных(Элемент, ОформленияСтрок)
ПриПолученииДанныхТабличногоПоляТранспорта(Элемент, ОформленияСтрок); КонецПроцедуры Процедура ПриПолученииДанныхТабличногоПоляТранспорта(Элемент, ОформленияСтрок) Если НЕ Элемент.Колонки.Номенклатура.Видимость Тогда Возврат; КонецЕсли; Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл ТекстНоменклатуры = "<не задана>"; Если ОформлениеСтроки.ДанныеСтроки.КлючСтроки <> 0 И НЕ ПустаяСтрока(ОформлениеСтроки.ДанныеСтроки.ИмяТЧСтроки) Тогда СтрокиТоваров = ЭтотОбъект[ОформлениеСтроки.ДанныеСтроки.ИмяТЧСтроки].НайтиСтроки(Новый Структура("КлючСтроки", ОформлениеСтроки.ДанныеСтроки.КлючСтроки)); Если СтрокиТоваров.Количество() > 0 Тогда ТекстНоменклатуры = СтрокиТоваров[0].Номенклатура.Наименование; КонецЕсли; КонецЕсли; ОформлениеСтроки.Ячейки.Номенклатура.УстановитьТекст(ТекстНоменклатуры); КонецЦикла; КонецПроцедуры |
|||
55
cw014
18.12.12
✎
13:17
|
(54) Так, уже что то. А нужно то теперь что?
|
|||
56
Reset
18.12.12
✎
13:18
|
(54) Т.е. в табличной части "Вагоны" есть поле КлючСтроки?
|
|||
57
cw014
18.12.12
✎
13:19
|
(56) Смотри, что то проясняется
|
|||
58
cw014
18.12.12
✎
13:19
|
(56) И я кажется знаю что. Он хочет выбирать номенклатуру, а должно меняться "КлючСтроки" по этой номенклатуре. Короче связывать их как серийные номера
|
|||
59
ghostrid3r
18.12.12
✎
13:20
|
(56) есть
|
|||
60
Reset
18.12.12
✎
13:21
|
(59) и в этом поле хранится эмм структура, состоящая из имени ТЧ и клча строки в ТЧ
|
|||
61
cw014
18.12.12
✎
13:21
|
(60) Скорее всего просто Ключ строки
|
|||
62
Reset
18.12.12
✎
13:22
|
(60) А, не
два отдельных ИмяТЧСтроки КлючСтроки |
|||
63
Reset
18.12.12
✎
13:22
|
(62) Собственно, в них и нужно писать, а не в "Номенклатура"
|
|||
64
Reset
18.12.12
✎
13:24
|
т.е
НовДокРеалТоваровУслуг.Вагоны[НомерСтроки].ИмяТЧСтроки="Товары"; НовДокРеалТоваровУслуг.Вагоны[НомерСтроки].КлючСтроки=КлючСтрокиИз_ТЧ_Товары |
|||
65
Reset
18.12.12
✎
13:26
|
КлючСтрокиИз_ТЧ_Товары - это значение реквизита КлючСтроки из табличной части товары, из той строки, в которой находится нужна номенклатура
|
|||
66
Reset
18.12.12
✎
13:34
|
В (54) неоптимальность - используется НайтиСтроки, когда можно просто Найти (зря тратится время на создание структуры, зря осущвляется поиск по всей тч, когда можно остановится при первом найденном, зря возвращается массив (из одного значения), зря тратится время на получение элемента по индексу..) Хотя это детали, так, докопаться.
|
|||
67
Reset
18.12.12
✎
13:35
|
(66) При этом используется Номенклатура.Наименование;
Пффф :) |
|||
68
Reset
18.12.12
✎
13:41
|
Короче, ответ на (0) в (64)(65)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |