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

Заполнение данных в строку ТЧ

Заполнение данных в строку ТЧ
Я
   JuixyJes
 
28.04.19 - 13:51
Если Рз.Количество() = 1 Тогда
                    НоваяСтрока.КТУ_Факт = 1;
                Иначе
                    Времени = 0 ;
                    КТУ_Факт = 0;
                    Для ИИ = 1 по РЗ.Количество() Цикл
                        
                        Времени = Времени + РЗ[ИИ-1].Времени;
                        
                    КонецЦикла;
                    Для ИИ = 1 по РЗ.Количество() Цикл
                        КТУ_Факт = РЗ[ИИ-1].Времени/Времени;
                        Сообщить(КТУ_Факт);
                                            
                    КонецЦикла;
                КонецЕсли;


Как мне заполнить строки значениями, которые высчитываются в КТУ_Факт?
 
 
   Гобсек
 
1 - 28.04.19 - 14:04
КТУ_Факт - это столбец РЗ?
Если да, то сделать в цикле:
  РЗ[ИИ-1].КТУ_Факт = РЗ[ИИ-1].Времени/Времени;
   Гобсек
 
2 - 28.04.19 - 14:08
(1) +
еще добавлю, что в этом случае надо бы добавить пару строк кода для учета погрешности округления, чтобы итог КТУ_Факт по столбцу был равен 1
   Dimeric
 
3 - 28.04.19 - 14:52
Можно как вариант записать в "КТУ_Факт" Таблицу, а потом пройтись по ней циклом
   JuixyJes
 
4 - 28.04.19 - 15:05
(1) КТУ_Факт это столбец Таблицы Наряд_КТУ
   HawkEye
 
5 - 28.04.19 - 15:19
(0) Наряд_КТУ[ИИ-1].КТУ_Факт  = РЗ[ИИ-1].Времени/Времени;
   HawkEye
 
6 - 28.04.19 - 15:22
+(5) вот это:
   HawkEye
 
7 - 28.04.19 - 15:23
Для ИИ = 1 по РЗ.Количество() Цикл 
 Времени = Времени + РЗ[ИИ-1].Времени; 
КонецЦикла; 

меняется на:

Времени = РЗ.Итог("Времени")
   JuixyJes
 
8 - 28.04.19 - 15:45
(5) Наряд_КТУ это табличная часть документа, я разве смогу обратиться к ней так?
    НКТУ = ЭлементыФормы.Наряд_КТУ.ТекущиеДанные;
    НКТУ[ИИ-1].КТУ_Факт = РЗ[ИИ-1].Времени/Времени 
    Выдает ошибку "Получение элемента по индексу для значения не определено"
   JuixyJes
 
9 - 28.04.19 - 15:51
Обратилась через Наряд_КТУ[ИИ-1].КТУ_Факт  = РЗ[ИИ-1].Времени/Времени;

Возникла проблема с ошибкой "Индекс находится за границами массива"
   HawkEye
 
10 - 28.04.19 - 16:04
(9) значит нет строки...
   JuixyJes
 
11 - 28.04.19 - 16:16
(10) ну, не успевает заполняться строка, не смотря на то, что кту в строке заполняется в последнюю очередь
   HawkEye
 
12 - 28.04.19 - 16:24
(11) потому что не надо пихать НКТУ[ИИ-1].КТУ_Факт = РЗ[ИИ-1].Времени/Времен в цикл создания строк
   JuixyJes
 
13 - 28.04.19 - 16:45
(12) Это и так вне цикла создания строк находится
   hhhh
 
14 - 28.04.19 - 16:49
(13) это внутри цикла
   JuixyJes
 
15 - 28.04.19 - 16:51
(14) я убирала этот код вместе с прилегающим к нему запросом из цикла создания строк, тогда мне не давало обращаться через индекс
   Garykom
 
16 - 28.04.19 - 17:01
(0) В наряде/задаче/работе с несколькими сотрудниками.
Надо высчитать КТУ каждого участника пропорционально от его затрат времени?
   hhhh
 
17 - 28.04.19 - 17:26
(15) сделайте отдельную табличку: Сотрудник-КТУ, потом уже когда начнете создание строк, будете по сотруднику вставлять в наряд нужный КТУ.
   HawkEye
 
18 - 28.04.19 - 17:34
(15) показывай текущий код.... кто знает чего ты там понаписала ))
   JuixyJes
 
19 - 28.04.19 - 19:38
(16) Да, именно так.
   JuixyJes
 
20 - 28.04.19 - 19:51
(17) а как мне это сделать, мозги уже в кашу превращаются по тихоньку
   Garykom
 
21 - 28.04.19 - 20:08
(19) Примерно так, но не сильно поможет

//...

РЗ = Запрос.Выполнить().Выгрузить();
ОбщееВремя = РЗ.Итог("Времени");
Для Каждого ТекСтр Из РЗ Цикл
  ТекСтр.КТУ_Факт = ТекСтр.Времени/ОбщееВремя;
КонецЦикла;
//...



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