|
Перебор элементов табличной части |
☑ |
0
FuriKuri
02.07.13
✎
13:43
|
1с 8.2 управляемые формы. Есть табличная часть товары с реквизитом номенклатура. Нужно при открытии формы перебрать все элементы табличной части и в каждой строке по номенклатуре заполнить поля Артикул и Код. Что-то не могу понять как получить ссылку на номенклатуру.
пробовал так:
Таблица = Объект.Товары;
Для каждого стр из Таблица цикл
Стр.Артикул=ПолучитьАртикул(Стр.Номенклатура);
Стр.Код = ПолучитьКод(Стр.Номенклатура);
КонецЦикла;
&НаСервере
Функция ПолучитьАртикул(Номенклатура)
Ном = Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура).ПолучитьОбъект();
Артикул = Ном.Артикул;
Возврат Артикул;
КонецФункции
&НаСервере
Функция ПолучитьКод(Номенклатура)
Ном = Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура).ПолучитьОбъект();
Код = Ном.Код;
Возврат Код;
КонецФункции
Но наименования может быть 2 одинаковых, тогда это не вариант. А получить ссылку напрямую не получается :(
|
|
1
ДенисЧ
02.07.13
✎
13:44
|
А если Стр.Артикул=Стр.Номенклатура.Артикул?
|
|
2
ДенисЧ
02.07.13
✎
13:44
|
Да и вообще... Получай на сервере объект и работай с его таблицей
|
|
3
Maxus43
02.07.13
✎
13:44
|
поля артикул и код тоже входят в состав ТЧ? или это просто колонки не привязанные к данным?
|
|
4
FuriKuri
02.07.13
✎
13:46
|
(1) так не прокатывает
(3) да, это просто колонки, а не реквизиты
|
|
5
Любопытная
02.07.13
✎
13:52
|
&НаКлиенте
Процедура ПриОткрытии()
ПеребратьТЧНаСервере()
КонецПроцеуры
&НаСервере
Процедура ПеребратьТЧНаСервере()
ЭтотОбъект = РеквизитФормыВЗначение("Объект");
ТаблицаСАртикулами = ЭтотОбъект.Товары.Выгрузить();
ТаблицаСАртикулами.колонки.Добавить("Артикул");
Для Каждого стр из ТаблицаСАртикулами Цикл
Стр.Артикул = Стр.Номенклатура.Артикул;
КонецЦикла;
ЗначениеВДанныеФормы(ТаблицаСАртикулами,ЭтаФорма.ТаблицаФормы);
КонецПроцедуры
Пожалуй, так
|
|
6
FuriKuri
02.07.13
✎
13:54
|
(5) Я сделал проще
&НаСервере
процедура ЗаполнитьАртикулКод()
Таблица = Объект.Товары;
Для каждого стр из Таблица цикл
Если ЗначениеЗаполнено(Стр.Номенклатура) тогда
Стр.Артикул=Стр.Номенклатура.артикул;
Стр.Код = Стр.Номенклатура.Код;
Конецесли;
КонецЦикла;
КонецПроцедуры
Но спасибо за идею :)
|
|
7
Любопытная
02.07.13
✎
13:56
|
(6)Так Артикул и код является колонками ТЧ объекта? Тогда конечно нафиг извращаться. Ты же вроде сказал, что они к объекту не имеют отношения
|
|
8
Maxus43
02.07.13
✎
13:56
|
(6)>(1)
>>так не прокатывает
айайай
|
|
9
FuriKuri
02.07.13
✎
13:57
|
(7) наверно неправильно выразился. Извините
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший