|
v7: цикл | ☑ | ||
---|---|---|---|---|
0
Новичёк123123
21.07.11
✎
17:42
|
ДоброгоВремениСуток) второй час бьюсь над решение проблемы никак не получается. вообщем есть вот такая форма справочника
[URL=http://saveimg.ru/show-image.php?id=fee522204240cb51f792857a5b06affa] [IMG]http://saveimg.ru/thumbnails/21-07-11/c5f5c66e174e70e171e3034a0238d499.JPG[/IMG][/URL] нужно загрузить её в таблицу значений в таком же порядке как она расположена на картинке. В тупую перебором это сделать легко: СпрАкции.НайтиПоКоду(КодЭлемента); СпрАкции.ТекущийЭлемент(); СтрокаИ="и "; ТабЗначАкционныеТовары.НоваяСтрока(); ТабЗначАкционныеТовары.Товар=СпрАкции.АкционныйТовар1; ТабЗначАкционныеТовары.Количество=СпрАкции.Количество1; Если ПустоеЗначение(СпрАкции.АкционныйТовар2)=0 Тогда ТабЗначАкционныеТовары._=СтрокаИ; ТабЗначАкционныеТовары.Товар2=СпрАкции.АкционныйТовар2; ТабЗначАкционныеТовары.Количество2=СпрАкции.Количество2; КонецЕсли; Если ПустоеЗначение(СпрАкции.АкционныйТовар3)=0 Тогда ТабЗначАкционныеТовары.НоваяСтрока(); ТабЗначАкционныеТовары.Товар=СпрАкции.АкционныйТовар3; ТабЗначАкционныеТовары.Количество=СпрАкции.Количество3; Если ПустоеЗначение(СпрАкции.АкционныйТовар4)=0 Тогда ТабЗначАкционныеТовары._=СтрокаИ; ТабЗначАкционныеТовары.Товар2=СпрАкции.АкционныйТовар4; ТабЗначАкционныеТовары.Количество2=СпрАкции.Количество4; КонецЕсли; КонецЕсли; Если ПустоеЗначение(СпрАкции.АкционныйТовар5)=0 Тогда ТабЗначАкционныеТовары.НоваяСтрока(); ТабЗначАкционныеТовары.Товар=СпрАкции.АкционныйТовар5; ТабЗначАкционныеТовары.Количество=СпрАкции.Количество5; Если ПустоеЗначение(СпрАкции.АкционныйТовар6)=0 Тогда ТабЗначАкционныеТовары._=СтрокаИ; ТабЗначАкционныеТовары.Товар2=СпрАкции.АкционныйТовар6; ТабЗначАкционныеТовары.Количество2=СпрАкции.Количество6; КонецЕсли; КонецЕсли; Если ПустоеЗначение(СпрАкции.АкционныйТовар7)=0 Тогда ТабЗначАкционныеТовары.НоваяСтрока(); ТабЗначАкционныеТовары.Товар=СпрАкции.АкционныйТовар7; ТабЗначАкционныеТовары.Количество=СпрАкции.Количество7; Если ПустоеЗначение(СпрАкции.АкционныйТовар8)=0 Тогда ТабЗначАкционныеТовары._=СтрокаИ; ТабЗначАкционныеТовары.Товар2=СпрАкции.АкционныйТовар8; ТабЗначАкционныеТовары.Количество2=СпрАкции.Количество8; КонецЕсли; КонецЕсли; Если ПустоеЗначение(СпрАкции.АкционныйТовар9)=0 Тогда ТабЗначАкционныеТовары.НоваяСтрока(); ТабЗначАкционныеТовары.Товар=СпрАкции.АкционныйТовар9; ТабЗначАкционныеТовары.Количество=СпрАкции.Количество9; Если ПустоеЗначение(СпрАкции.АкционныйТовар10)=0 Тогда ТабЗначАкционныеТовары._=СтрокаИ; ТабЗначАкционныеТовары.Товар2=СпрАкции.АкционныйТовар10; ТабЗначАкционныеТовары.Количество2=СпрАкции.Количество10; КонецЕсли; КонецЕсли; Сделал без проблем но подумал что лучше сделать в цикле. Пробовал так: ПроверкаНаЧетность=0; СчетКол=1; Для Счет=1 по 9 цикл ПроверкаНаЧетность=Счет/2; Если (ПроверкаНаЧетность<>1) или (ПроверкаНаЧетность<>2) или (ПроверкаНаЧетность<>3) или (ПроверкаНаЧетность<>4) Тогда СчетКол=Счет+1; ЗначениеПараметраТовар = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(АкционныйТовар" + Счет + ")]")); ЗначениеПараметраКоличество = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(Количество" + Счет + ")]")); Если ПустоеЗначение(СпрАкции.ЗначениеПараметраТовар)=0 Тогда ТабЗначАкционныеТовары.НоваяСтрока(); ТабЗначАкционныеТовары.Товар=СпрАкции.ЗначениеПараметраТовар; ТабЗначАкционныеТовары.Количество=СпрАкции.ЗначениеПараметраКоличество; КонецЕсли; ЗначениеПараметраТовар2 = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(АкционныйТовар" + СчетКол + ")]")); ЗначениеПараметраКоличество2 = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(Количество" + СчетКол + ")]")); Если ПустоеЗначение(СпрАкции.ЗначениеПараметраТовар2)=0 Тогда ТабЗначАкционныеТовары._=СтрокаИ; ТабЗначАкционныеТовары.Товар2=СпрАкции.ЗначениеПараметраТовар2; ТабЗначАкционныеТовары.Количество2=СпрАкции.ЗначениеПараметраКоличество2; КонецЕсли; КонецЕсли; КонецЦикла; И так: ПроверкаНаЧетность=0; СчетКол=1; Для Счет=1 по 9 цикл ПроверкаНаЧетность=Счет/2; Если (ПроверкаНаЧетность<>1) или (ПроверкаНаЧетность<>2) или (ПроверкаНаЧетность<>3) или (ПроверкаНаЧетность<>4) Тогда СчетКол=Счет+1; ЗначениеПараметраТовар="АкционныйТовар"+Счет; ЗначениеПараметраКоличество="Количество"+Счет; Если ПустоеЗначение(СпрАкции.ПолучитьАтрибут(ЗначениеПараметраТовар))=0 Тогда ТабЗначАкционныеТовары.НоваяСтрока(); ТабЗначАкционныеТовары.Товар=СпрАкции.ЗначениеПараметраТовар; ТабЗначАкционныеТовары.Количество=СпрАкции.ЗначениеПараметраКоличество; КонецЕсли; ЗначениеПараметраТовар2 = "АкционныйТовар"+СчетКол; ЗначениеПараметраКоличество="Количество"+СчетКол; Если ПустоеЗначение(СпрАкции.ПолучитьАтрибут(ЗначениеПараметраТовар2))=0 Тогда ТабЗначАкционныеТовары._=СтрокаИ; ТабЗначАкционныеТовары.Товар2=СпрАкции.ЗначениеПараметраТовар2; ТабЗначАкционныеТовары.Количество2=СпрАкции.ЗначениеПараметраКоличество2; КонецЕсли; КонецЕсли; КонецЦикла; оба вариант ноль на массе. Подскажите в правильном ли я вообще направлении двигаюсь, и если в не правильном то подскажите через что пытаться) заранее спасибо) |
|||
1
Новичёк123123
21.07.11
✎
17:49
|
||||
2
Попытка1С
21.07.11
✎
17:49
|
Ссылки не работают.
|
|||
3
Новичёк123123
21.07.11
✎
17:49
|
||||
4
Новичёк123123
21.07.11
✎
17:49
|
Вот последняя заработала)
|
|||
5
Jstunner
21.07.11
✎
17:51
|
что такое СпрАкции.ЗначениеПараметраТовар?
|
|||
6
palpetrovich
21.07.11
✎
17:54
|
(3) узнаю, узнаю очередную нетленку :)
|
|||
7
Новичёк123123
21.07.11
✎
17:57
|
Там все элементы имееют похожие названия: "АкционныйТовар№"
Вотя и попытался подставить вместо "АкционныйТовар№" Значение параметраТовар в котором хранится "АкционныйТовар№"с но вместо № цифра из цикла Что такое нетленка? |
|||
8
palpetrovich
21.07.11
✎
17:59
|
нетленка - это то чем ты сейчас занимаешься :)
ИзобретательствоВелосипеда |
|||
9
Новичёк123123
21.07.11
✎
17:59
|
АААА) а есть выход проще?)
|
|||
10
Jstunner
21.07.11
✎
18:02
|
Новичёк123123, ответь на (5)
|
|||
11
Mikeware
21.07.11
✎
18:07
|
(10) лучше попросить описать поставленную задачу, нежели корректировать херокод.
|
|||
12
Новичёк123123
21.07.11
✎
18:07
|
так ответил же в (7): СпрАкции.ЗначениеПараметраТовар это: мы создаём цикл для счет=1 по 9, и пока он работает мы ЗначениеПараметраТовар="АкционныйТовар"+счет, таким образом мы получаем название всех элементов на форме справочника(АкционныйТовар1,АкционныйТовар2..АкционныйТовар10)
|
|||
13
Сияющий Асинхраль
21.07.11
✎
18:08
|
(9) Слушай (5) и (9) - дело говорит
|
|||
14
Новичёк123123
21.07.11
✎
18:09
|
Задача загнать в таблицу значений значения всех элементов на форме именно в том порядке в котором они расположены, если элемент пуст то ничего и не заносить.
|
|||
15
Сияющий Асинхраль
21.07.11
✎
18:09
|
Ну ты же сам написал правильно:
СпрАкции.ПолучитьАтрибут(ЗначениеПараметраТовар) А потом почему то переходишь: СпрАкции.ЗначениеПараметраТовар |
|||
16
Новичёк123123
21.07.11
✎
18:10
|
щас гляну)
|
|||
17
Новичёк123123
21.07.11
✎
18:20
|
Попутно столько ошибок нашёл, но заработало, криво правда, но хоть работает. Спасибо Асинхраль)
|
|||
18
Сияющий Асинхраль
21.07.11
✎
18:22
|
Благодари (5) - это он тебе показал, а ты не увидел :-)
|
|||
19
Новичёк123123
21.07.11
✎
18:25
|
И ему спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |