Имя: Пароль:
1C
1С v8
Создание списка значений по макету
,
0 Altanzar
 
09.07.12
17:48
Имеется макет, в котором есть последовательность параметров: ОГРН1, ОГРН2,...ОГРН13.

Требуется создать список значений, который бы хранил в себе последовательность цифр ОГРН, и присвоить их значения параметрам.

Пока имеется такой код:

Для Х=1 по 13 Цикл
   СимвСтр = СтрПолучитьСтроку(ДанныеСправки.ОГРН, Х);
КонецЦикла;
1 Altanzar
 
10.07.12
06:36
В итоге немного переделал, и накалякал вот что:

Госномер = Новый СписокЗначений;
Для Х=1 по 13 Цикл
   СимвСтр=СтрПолучитьСтроку(ДанныеСправки.ОГРН, Х);
   Госномер.Добавить(Строка(СимвСтр),"R12"+"C"+Строка(20+Х));
   Х=Х+1;
КонецЦикла;

Тем не менее, ничего выводиться не желает. Что я делаю не так? (в 1С ноль без палочки)
2 Живой Ископаемый
 
10.07.12
06:38
в 1С есть отладчик.
3 Altanzar
 
10.07.12
06:47
Только я не понял, как им пользоваться.<_<
4 Altanzar
 
10.07.12
06:53
Пардон, разобрался. В общем, имеем следующее:

{ВнешняяОбработка.СправкаОказаниеУслуг.МодульОбъекта(44)}: Метод объекта не обнаружен (ДобавитьЗначение)
       Госномер.ДобавитьЗначение(Строка(СимвСтр),"R12"+"C"+Строка(20+Х));
5 Живой Ископаемый
 
10.07.12
07:28
и в 1С есть синтакс помощник... Что он говорит? Есть у СпискаЗначений метод ДобавитьЗначение()?
http://screencast.com/t/jUqQavcM1
6 Altanzar
 
10.07.12
07:44
Ладно, сформулирую по другому:

Каким образом я могу последовательность ячеек макета (скажем, R12C21:R12C33) вписать последовательность цифр, по одной в каждую?

Понятно, что сперва число (в моем случае ОГРН) надо представить в виде строки, что я сделал. Затем надо каждую очередную определенную подстроку (искомую цифру) вписать в очередную ячейку. Только не понимаю, как это сделать.
7 Живой Ископаемый
 
10.07.12
07:58
у тебя тут копрокод:

Для Х=1 по 13 Цикл
   СимвСтр=СтрПолучитьСтроку(ДанныеСправки.ОГРН, Х);
   Госномер.Добавить(Строка(СимвСтр),"R12"+"C"+Строка(20+Х));
   Х=Х+1;

У тебя Х достигает предела (13) в два раза быстрее чем тебе нужно, оставляя каждую четную ячейку вообще незаполненной.


===

2(6) просто посмотри как это сделано в типовых
8 Живой Ископаемый
 
10.07.12
07:59
Стоп.. то есть у тебя есть макет, и ты хочешь в него вывести что?
А зачем тебе Госномер = Новый СписокЗначений;
?
9 Altanzar
 
10.07.12
08:19
У меня есть 13 ячеек в макете, пронумерованных, куда надо вписать ОГРН - в каждую по одной цифре.

ОГРН изначально я запрашиваю из справочника, обозначая как ДанныеСправки.ОГРН.
Список значений, как я понял покопавшись в интернете, нужен за тем, что бы разбить ДанныеСправки.ОГРН на подстроки (искомые числа), и через цикл вставлять каждую в свою ячейку макета.
10 Живой Ископаемый
 
10.07.12
08:25
"Список значений, как я понял покопавшись в интернете, нужен за тем, что бы разбить ДанныеСправки.ОГРН на подстроки (искомые числа), и через цикл вставлять каждую в свою ячейку макета"
бред какой-то...


Строка из числа получается вот так:
МоеЧисло = 123673849;
Строка = ""+МоеЧисло;
11 Altanzar
 
10.07.12
08:48
Может, я путаю чего, но в экселевском образце нужный результат выглядит так:

http://savepic.net/3095024.htm
12 Живой Ископаемый
 
10.07.12
09:29
нет, ничего не путаешь...
13 Altanzar
 
10.07.12
11:25
В общем, меня это вывело из себя, и теперь это выглядит вот так:


Шапка.Параметры.ОГРН1  = Сред(ДанныеСправки.ОГРН, 1, 1);
Шапка.Параметры.ОГРН2  = Сред(ДанныеСправки.ОГРН, 2, 1);
Шапка.Параметры.ОГРН3  = Сред(ДанныеСправки.ОГРН, 3, 1);
Шапка.Параметры.ОГРН4  = Сред(ДанныеСправки.ОГРН, 4, 1);
Шапка.Параметры.ОГРН5  = Сред(ДанныеСправки.ОГРН, 5, 1);
Шапка.Параметры.ОГРН6  = Сред(ДанныеСправки.ОГРН, 6, 1);
Шапка.Параметры.ОГРН7  = Сред(ДанныеСправки.ОГРН, 7, 1);
Шапка.Параметры.ОГРН8  = Сред(ДанныеСправки.ОГРН, 8, 1);
Шапка.Параметры.ОГРН9  = Сред(ДанныеСправки.ОГРН, 9, 1);
Шапка.Параметры.ОГРН10 = Сред(ДанныеСправки.ОГРН, 10, 1);
Шапка.Параметры.ОГРН11 = Сред(ДанныеСправки.ОГРН, 11, 1);
Шапка.Параметры.ОГРН12 = Сред(ДанныеСправки.ОГРН, 12, 1);
Шапка.Параметры.ОГРН13 = Сред(ДанныеСправки.ОГРН, 13, 1);


Громоздко, но и черт с ним.
14 Живой Ископаемый
 
10.07.12
12:49
Для Сч=1 По 13 Цикл
Шапка.Параметры["ОГРН"+Сч]=Сред(ДанныеСправки.ОГРН, Сч, 1);
КонецЦикла;
15 Живой Ископаемый
 
10.07.12
12:50
внезапненько
16 Altanzar
 
10.07.12
13:15
(14)
UNLIMITED FACEPALM WORKS
А я блин ломал голову, как же это добро в цикл встроить. Значит квадратные скобки, понятненько...
17 Живой Ископаемый
 
10.07.12
13:42
просто вообще с начала не было понятно что же нужно...