Имя: Пароль:
1C
1С v8
Записать данные в ТЧ документа
0 Privetanya
 
26.08.20
12:51
В массив получаю названия колонок. В цикле хочу перебрать строки и нужно сложить значения колонок,которые есть в массиве. Не пойму как это сделать или слишком трудно думаю.Подскажите пожалуйста..
Надо вместо стр._10 ,найти колонки названия которых в массиве и сложить их.
МассивКолонок = Новый Массив;
    
    Счстроки=0;
    СтрокаСебест=тз.Найти("Себестоимость ");
    Если СтрокаСебест<> Неопределено Тогда
        для каждого стрсебес из СтрокаСебест Цикл
            Счстроки=Счстроки+1;
            Если стрсебес="Себестоимость " тогда
                
                МассивКолонок.Добавить("_"+Счстроки);
                
            КонецЕсли;
            
        конеццикла
        
    КонецЕсли;


Для каждого стр из тз цикл
        НоменСсылка=Справочники.Номенклатура.НайтиПоНаименованию(стр._2,истина);
        ТЧНов=НовыйДок.ТЧ.Добавить();
        ТЧНов.Номенклатура=НоменСсылка;
            ТЧНов.Себестоимость=стр._10 ;
1 fisher
 
26.08.20
13:08
Слишком бессвязный код. Написано, что проблема с блоком сложения, но в приведенном блоке наполнения массива колонок тоже какой-то бред. Практический смысл этой задачи неясен. Непонятно, что советовать.
2 Мимохожий Однако
 
26.08.20
13:10
Опиши цель задачи или проблему. Только после этого, что делала и что не получается\не понятно
3 fisher
 
26.08.20
13:17
Если буквально отвечать на вопрос, то как-то так:

Себестоимость = 0;
Для Каждого ИмяКолонки Из МассивКолонок Цикл
   Себестоимость = Себестоимость + стр[ИмяКолонки];
КонецЦикла;
ТЧНов.Себестоимость = Себестоимость;
4 Privetanya
 
26.08.20
13:20
(1) ну смотрите,создаю массив в который получаю названия строк,где есть себестоимость.
Затем создаю документ и в него записываю данные. В цикле перебираю строки тз -записываю номенклатуру и себестоимость. Вот с номенклатурой проблем нет, а себестоимость нужно получить сложив 2 значения.
Например: в массиве есть названия строк _12 и _13. Нужно сложить значения этик строк в цикле,т.е. вместо стр._10 нужно как-то получить значения строк _12 и _13 и сложить их,а только потом записать в тч.

https://ibb.co/BytTGVf  - массив
https://ibb.co/rvs2ss3   -стр
5 Privetanya
 
26.08.20
13:24
(3) да,вы правильно меня поняли
6 Privetanya
 
26.08.20
13:30
(3) Спасибо,все получилось)
7 fisher
 
26.08.20
13:33
Просто алгоритм заполнения массива колонок очень странный. Если алгоритм корректен, значит у вас в ТЗ содержатся в том числе и заголовки, т.е. содержание ТЗ неоднородно. Парсинг какого-то отчета, загнанного в ТЗ, что ли? :) Тогда зря вы алгоритм заполнения массива колонок выложили. Он только смущает.
8 МихаилМ
 
26.08.20
21:06
кстати
в (3)
записана НЕСОВМЕСТНАЯ  СЛАУ .
значит вычислить  сумму можно с помощью нового объекта 1с
решение слау
https://wonderland.v8.1c.ru/blog/mekhanizm-resheniya-sistem-lineynykh-algebraicheskikh-uravneniy/

осталось проверить эффективность .
9 МихаилМ
 
26.08.20
21:37
(8) нет. для решения придется делать UNPIVOT.