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

Ошибка в расчете оклада. Помогите пожалуйста найти ошибку в коде?

Автор pvictorp11, 17 мар 2017, 13:29

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

pvictorp11

Сейчас создаю БД по книге Радченко и Хрусталевой. Успешно дошли до расчетов по з/пл. Далее ввожу код в общий модуль в процедуру "Рассчитать начисления" как в книге:

      Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
         СтруктураНомер = Новый Структура("НомерСтроки");
         СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;
         ВыборкаРезультата.Сбросить();
         
         Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда
            
            Если ВыборкаРезультата.Норма = 0 Тогда
               Сообщение = Новый СообщениеПользователю;
               Сообщение.Текст = "ВидРасчета: Оклад - Нет рабочих дней в заданном периоде";
               Сообщение.Сообщить();
               ЗаписьРегистра.Результат = 0;
            Иначе
               //Рассчитать оклад по фактическому периоду и исходным данным
               ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанныеВыборкаРезультата.Норма)*(ВыборкаРезультата.Факт);
               Сообщение = Новый СообщениеПользователю;
               Сообщение.Текст = "Выполнен расчет " + ЗаписьРегистра.Регистратор
                     + "-" + ЗаписьРегистра.ВидРасчета + "-" +
                     ЗаписьРегистра.Сотрудник;
               Сообщение.Сообщить();
            КонецЕсли
            
         КонецЕсли
      КонецЦикла   
....и вижу, что при отладке наверняка будет ошибка в строке "ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанныеВыборкаРезультата.Норма)*(ВыборкаРезультата.Факт);"

Запускаю отладку, нажимаю, "Провести".
Получаю сообщение:

"Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ПроведениеРасчетов.Модуль(39)}: Поле объекта не обнаружено (ИсходныеДанныеВыборкаРезультата)
               ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанныеВыборкаРезультата.Норма)*(ВыборкаРезультата.Факт);"

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

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

Поиск