Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Записать данные в ТЧ документа

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


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

   Privetanya
 
4 - 26.08.20 - 13:20
(1) ну смотрите,создаю массив в который получаю названия строк,где есть себестоимость.
Затем создаю документ и в него записываю данные. В цикле перебираю строки тз -записываю номенклатуру и себестоимость. Вот с номенклатурой проблем нет, а себестоимость нужно получить сложив 2 значения.
Например: в массиве есть названия строк _12 и _13. Нужно сложить значения этик строк в цикле,т.е. вместо стр._10 нужно как-то получить значения строк _12 и _13 и сложить их,а только потом записать в тч.

https://ibb.co/BytTGVf  - массив
https://ibb.co/rvs2ss3   -стр
   Privetanya
 
5 - 26.08.20 - 13:24
(3) да,вы правильно меня поняли
   Privetanya
 
6 - 26.08.20 - 13:30
(3) Спасибо,все получилось)
   fisher
 
7 - 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.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.