Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 ноя 2021, 21:31

Фактическое время

Автор Ивашка, 23 дек 2020, 12:30

0 Пользователей и 1 гость просматривают эту тему.

Ивашка

Приветствую!! Можете помочь подкорректировать код? Есть документ ЭлементБэклога, в нем есть два ТЧ(трудоемкость и трудозатраты).Сделал внешнюю обработку, добавил в нем реквизиты Месяц, и кнопку "выполнить", так вот: по кнопке нужно сделать так, чтобы за указанный месяц(месяц указывается в обработке,например 01.12.2020),бралась фактическая оценка из ТЧ трудоемкости (сумма в течении месяца), далее в табличную часть Трудозатраты добавлялась строка с выбранным месяцем, и согласованная оценка равнялась ранее полученной сумме из трудоемкости(не по одному доку, а по всем документам разом), нужно брать данные по бэклогам по всем за месяц указанный в обработке т.е. нужно обходить все бэклоги, и смотреть у них ТЧ с трудозатратам, если изначально строка была ее нужно удалять или переписывать
https://yadi.sk/i/_8X51QtR3yhKvw
написал запрос, но в результате возникает ошибка: Ошибка чтения записи

&НаСервере
Процедура ВыполнитьНаСервере()
       
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   ЭлементБэклогаТрудоемкость.Ссылка.Ссылка КАК Ссылка,
        |   ЭлементБэклогаТрудоемкость.Ссылка.Дата КАК Дата,
        |   ЭлементБэклогаТрудоемкость.Ссылка.Факт КАК Факт
        |ИЗ
        |   Документ.ЭлементБэклога.Трудоемкость КАК ЭлементБэклогаТрудоемкость";
   
    Результат = Запрос.Выполнить().Выбрать();
   
    Пока Результат.Следующий() Цикл
        //получаем объект на документ
    ДокОбъект = Результат.Ссылка.ПолучитьОбъект();
    СуммаФактуПоМесяцу = 0;
    //Для Каждого СтрокаТЧТрудоемкость Из ДокОбъект.Трудоемкость Цикл
        Если Месяц(Объект.Месяц) = Месяц(Результат.Дата) И Год(Объект.Месяц) = Год(Результат.Дата) Тогда
            СуммаФактуПоМесяцу = СуммаФактуПоМесяцу + Результат.Факт;
        КонецЕсли;
    //КонецЦикла;
   
    //добавляем строку в ТЧ
    НовСтр = ДокОбъект.АИ_Трудозатраты.Добавить();
   
    Если Месяц(Объект.Месяц) = Месяц(Результат.Дата) И Год(Объект.Месяц) = Год(Результат.Дата) Тогда
        НовСтр.АИ_Месяц = Объект.Месяц;
        НовСтр.АИ_СогласованнаяОценкаКлиента = СуммаФактуПоМесяцу;
    КонецЕсли;
    //КонецЦикла;

//записываем объект
ДокОбъект.Записать();

    КонецЦикла;
       
КонецПроцедуры

&НаКлиенте
Процедура Заполнить(Команда)
    ВыполнитьНаСервере();
КонецПроцедуры

LexaK

не из этой темы, пример блокировки от 3-го числа
ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск