Имя: Пароль:
1C
1С v8
Записать данные из массивов
,
0 Privetanya
 
03.09.20
10:47
Есть массив Колонок и цветов. Нужно записать данные в документ. Массив колонок дает нам названия колонок из которого взять значение. Массив цветов дает нам названия цветов,по которым мы определяем в какой реквизит записать. Так вот надо правильно организовать цикл. Пока что то не получается. Подскажите пожалуйста.


Для каждого стр из тз цикл
        
        НоменСсылка=Справочники.Номенклатура.НайтиПоРеквизиту("НаименованиеПолное",стр._2);
        ТЧНов=НовыйДок.ТЧ.Добавить();
        ТЧНов.Номенклатура=НоменСсылка;
        
        
            
        Для Каждого ИмяКолонки Из МассивКолонок Цикл
            
            если стр[ИмяКолонки]<>"" тогда
                
                Для Каждого КолонкаЦвет из МассивЦветов Цикл
                    
                    
                    Если КолонкаЦвет="белый" тогда
                        
                        ТЧНов.СебестБелый = стр[ИмяКолонки];
                        
                    иначеЕсли КолонкаЦвет="матов" тогда
                        
                        ТЧНов.СебестМатов = стр[ИмяКолонки];
                        
                    КонецЕсли;
                    
                    
                КонецЦикла;
                
            КонецЕсли;
            
        КонецЦикла;
1 Privetanya
 
03.09.20
11:41
вроде как сообразили
Для Каждого ИмяКолонки Из МассивКолонок Цикл
        
                        
                    Если МассивЦветов[счЦвет]="белый" тогда
                        
                        ТЧНов.СебестБелый = стр[ИмяКолонки];
                        
                    иначеЕсли МассивЦветов[счЦвет]="матов" тогда
                        
                        ТЧНов.СебестМатов = стр[ИмяКолонки];
                        
                    КонецЕсли;
                      счЦвет=счЦвет+1;
                
                КонецЦикла;
2 Privetanya
 
03.09.20
12:19
а нет,все равно немного не правильно получается.
3 Галахад
 
гуру
03.09.20
12:21
Это чего, какая-то учебная задача?
4 Privetanya
 
03.09.20
12:29
(3) нет,нужно из отчета сохранить данные в документ. Вот я данные из отчета получаю  в тз. удаляю лишние строки и начинаю записывать данные в документ. Не могу понять,как объяснить что значение строки Себестоимость- МДФ матов надо записать в тч.СебестМатов и т.д.
https://ibb.co/nLGX1xc
5 Privetanya
 
03.09.20
12:33
В массивколонок я получаю названия колонок в котором есть данные по себестоимости, а в  массивцветов данные по цветам которые вообще есть
6 acht
 
03.09.20
12:35
(4) "Белый матовый" куда писать и почему?
7 Privetanya
 
03.09.20
12:41
(6) Смотрите в тз есть данные -Себестоимость-МДФ Белый-963,МДФ Матов-893. Вот нужно эти данные в таком виде записать в тч документа
8 Галахад
 
гуру
03.09.20
12:43
В документе в ТЧ, реквизит так и называется "СебестМатов"?
9 Privetanya
 
03.09.20
12:45
(8) да
10 Privetanya
 
03.09.20
12:46
11 acht
 
03.09.20
12:56
Для Каждого Стр Из ТЗ Цикл
    ...        
    Для Каждого Колонка Из ТЗ.Колонки Цикл
        Содержимое = Строка[Колонка.Имя];
        Если СтрНайти(Содержимое, "белый") > 0 Тогда
            ТЧНов.СебестБелый = Содержимое;
        КонецЕсли;
        Если СтрНайти(Содержимое, "матов") > 0 Тогда
            ТЧНов.СебестМатов = Содержимое;
        КонецЕсли;
    КонецЦикла;
КонецЦикла;
12 Privetanya
 
03.09.20
13:01
(11) я перед тем как записывать в документ из тз удаляю строки и у меня остается в итоге строка со значениями,т.е если по картинке то та,которая с индексом 3
13 Privetanya
 
03.09.20
13:04
(11) а колонки называются вот так https://ibb.co/2YW1S7Y
14 acht
 
03.09.20
13:05
(12) Даже вникать не буду
15 FIXXXL
 
03.09.20
13:27
(10) трЭш какой...
сделай одну колонку "Цвет" в ТЧ и пиши построчно Номенклатура - Себест - Рент - ЦВЕТ
а трЭш типа "РентГлянц" убери
16 FIXXXL
 
03.09.20
13:28
(15) +
или "Глянц" это характеристика вообще?
17 Privetanya
 
03.09.20
13:41
Все получилось,прото массив с колонками по рентабельности правильно по возрастанию записали и все