Значение не является значением объектного типа (ИспользованиеПериода)
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Как вы заполняли документ? Добавляли ли начисления вручную? посмотрите по каждой строке начисления: скорее всего у одного из начислений не стоит период либо наоборот период излишен. Это бывает, например, когда создаете документ копированием, а одно из начислений изменили в прошлом месяце.
(2) {ОбщийМодуль.РасчетЗарплатыРасширенный.Модуль(275)}: Значение не является значением объектного типа (ИспользованиеПериода)
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода <> Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия Тогда
конфа Зарплата и кадры образовательной организации, редакция 3.1 (3.1.5.463)
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода <> Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия Тогда
конфа Зарплата и кадры образовательной организации, редакция 3.1 (3.1.5.463)
(12) в файловую базу выгрузил теперь точка останова срабатывает...
пробую другую организацию заполнить пишет уже другой код...
{ОбщийМодуль.ДлительныеОперации.Модуль(334)}: Значение не является значением объектного типа (ИспользованиеПериода)
ВызватьИсключение(ТекстОшибки);
пробую другую организацию заполнить пишет уже другой код...
{ОбщийМодуль.ДлительныеОперации.Модуль(334)}: Значение не является значением объектного типа (ИспользованиеПериода)
ВызватьИсключение(ТекстОшибки);
(14) сложно так что-то предполагать, но рассуждая логически:
у элемента массива РеквизитыНачислений с индексом Строка.Начисление нет свойства ИспользованиеПериода. Осталось узнать, что это за элемент РеквизитыНачислений[Строка.Начисление].
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода
у элемента массива РеквизитыНачислений с индексом Строка.Начисление нет свойства ИспользованиеПериода. Осталось узнать, что это за элемент РеквизитыНачислений[Строка.Начисление].
(15)
// Формирует движения по регистрам подсистемы.
// Параметры:
// Движения - коллекция движений регистратора.
// Отказ - признак отказа от заполнения движений.
// Организация
// ПериодРегистрации
// Начисления - таблица значений с колонками
// ФизическоеЛицо.
// Сотрудник
// Подразделение
// Начисление - ссылка на план видов расчета.
// ДатаНачала - дата, начало начисления.
// ДатаОкончания - дата, окончание начисления.
// Сумма
// ОтработаноДней
// ОтработаноЧасов
// НормаДней
// НормаЧасов
// ОплаченоДней
// ОплаченоЧасов
// ГрафикРаботы - ссылка на график, примененный при расчете строки.
// ГрафикРаботыНорма - ссылка на график, используемый для расчета нормы времени при неполном рабочем дне.
// ВидУчетаВремени - ссылка на вид учета времени, примененный при расчете строки
// ВремяВЧасах
// ПериодРегистрацииВремени
// ИдентификаторСтроки.
// Показатели - таблица значений с колонками (необязательный).
// Показатель - ссылка на показатель расчета зарплаты.
// Значение
// ИдентификаторСтроки - идентификатор строки таблицы с начислениями.
// ЗаписыватьДвижения - (необязательный), булево, по умолчанию Ложь,
// если Истина - наборы записей будут записаны после заполнения.
//
// Допустимо присутствие других колонок в передаваемых таблицах значений.
//
Процедура СформироватьДвиженияНачислений(Движения, Отказ, Организация, ПериодРегистрации, Начисления, Показатели = Неопределено, ЗаписыватьДвижения = Ложь) Экспорт
СтрокиЗаполнениеФизическихЛиц = Новый Массив;
СотрудникиЗаполнениеФизическихЛиц = Новый Массив;
СтрокиЗаполнениеГрафикаРаботы = Новый Массив;
МассивСотрудников = Новый Массив;
МассивНачислений = Новый Массив;
Для Каждого Строка Из Начисления Цикл
Если Не ЗначениеЗаполнено(Строка.ФизическоеЛицо) Тогда
СтрокиЗаполнениеФизическихЛиц.Добавить(Строка);
СотрудникиЗаполнениеФизическихЛиц.Добавить(Строка.Сотрудник);
КонецЕсли;
Если Не ЗначениеЗаполнено(Строка.ГрафикРаботы) Тогда
СтрокиЗаполнениеГрафикаРаботы.Добавить(Строка);
КонецЕсли;
МассивСотрудников.Добавить(Строка.Сотрудник);
МассивНачислений.Добавить(Строка.Начисление);
КонецЦикла;
ЗаполнитьФизическихЛицПоСотрудникам(СтрокиЗаполнениеФизическихЛиц, СотрудникиЗаполнениеФизическихЛиц);
Если СтрокиЗаполнениеГрафикаРаботы.Количество() > 0 Тогда
ЗарплатаКадрыРасширенный.СкорректироватьДатыНачисленийБезПериодаДействия(СтрокиЗаполнениеГрафикаРаботы, ПериодРегистрации);
КонецЕсли;
РегистраторНачислений = Движения.Начисления.Отбор.Регистратор.Значение;
ОсновныеСотрудники = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивСотрудников, "ГоловнойСотрудник");
// Получаем реквизиты видов расчета.
ИменаРеквизитов =
"ИспользованиеПериода,
|ПериодРасчетаБазовыхНачислений,
|КоличествоМесяцевБазовогоПериода,
|СдвигБазовогоПериода";
РеквизитыНачислений = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивНачислений, ИменаРеквизитов);
ГоловнаяОрганизация = ЗарплатаКадрыПовтИсп.ГоловнаяОрганизация(Организация);
Для Каждого Строка Из Начисления Цикл
НоваяСтрока = Движения.Начисления.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
НоваяСтрока.ПериодРегистрации = ПериодРегистрации;
НоваяСтрока.ГоловнаяОрганизация = ГоловнаяОрганизация;
НоваяСтрока.Организация = Организация;
НоваяСтрока.ВидРасчета = Строка.Начисление;
НоваяСтрока.ДокументОснование = Строка.ДокументОснование;
Если Не ЗначениеЗаполнено(НоваяСтрока.ДокументОснование) Тогда
НоваяСтрока.ДокументОснование = РегистраторНачислений;
КонецЕсли;
НоваяСтрока.ГоловнойСотрудник = ОсновныеСотрудники[Строка.Сотрудник];
Если НоваяСтрока.Результат = 0 Тогда
НоваяСтрока.Результат = Строка.Сумма;
КонецЕсли;
НоваяСтрока.РезультатВТомЧислеЗаСчетФБ = 0;
// Определяем месяц (период действия).
Месяц = Строка.ПериодДействия;
Если Не ЗначениеЗаполнено(Месяц) Тогда
Месяц = НачалоМесяца(Строка.ДатаНачала);
КонецЕсли;
НачалоМесяца = НачалоМесяца(Месяц);
КонецМесяца = КонецМесяца(Месяц);
НоваяСтрока.ПериодДействияНачало = Строка.ДатаНачала;
НоваяСтрока.ПериодДействияКонец = КонецДня(Строка.ДатаОкончания);
НоваяСтрока.БазовыйПериодНачало = НоваяСтрока.ПериодДействияНачало;
НоваяСтрока.БазовыйПериодКонец = НоваяСтрока.ПериодДействияКонец;
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода <> Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия Тогда
Если НоваяСтрока.ПериодДействияНачало < НачалоМесяца Или НоваяСтрока.ПериодДействияНачало > КонецМесяца Тогда
НоваяСтрока.ПериодДействияНачало = НачалоМесяца;
КонецЕсли;
Если НоваяСтрока.ПериодДействияКонец < НачалоМесяца Или НоваяСтрока.ПериодДействияКонец > КонецМесяца Тогда
НоваяСтрока.ПериодДействияКонец = КонецМесяца;
КонецЕсли;
КонецЕсли;
БазовыйПериодПереопределен = Ложь;
// - Если базовый период переопределяется.
Если ЕстьПолеВСтрокеКоллекции(Строка, "НачалоБазовогоПериода") И ЗначениеЗаполнено(Строка.НачалоБазовогоПериода)
И ЕстьПолеВСтрокеКоллекции(Строка, "ОкончаниеБазовогоПериода") И ЗначениеЗаполнено(Строка.ОкончаниеБазовогоПериода) Тогда
БазовыйПериодПереопределен = Истина;
НоваяСтрока.БазовыйПериодНачало = Строка.НачалоБазовогоПериода;
НоваяСтрока.БазовыйПериодКонец = Строка.ОкончаниеБазовогоПериода;
КонецЕсли;
Если Строка.Сторно Тогда
// Для сторно-записей не выполняем корректировку базового периода.
Продолжить;
КонецЕсли;
// - если не переопределяется
Если Не БазовыйПериодПереопределен Тогда
РеквизитыНачисления = РеквизитыНачислений[Строка.Начисление];
Если РеквизитыНачисления.ИспользованиеПериода = Перечисления.ВариантыИспользованияПериодаНачисления.БазовыйПериод Тогда
БазовыйПериод = РасчетЗарплатыРасширенныйКлиентСервер.БазовыйПериодНачисления(
Месяц, РеквизитыНачисления.ПериодРасчетаБазовыхНачислений, РеквизитыНачисления.КоличествоМесяцевБазовогоПериода, РеквизитыНачисления.СдвигБазовогоПериода);
НоваяСтрока.БазовыйПериодНачало = БазовыйПериод.ДатаНачала;
НоваяСтрока.БазовыйПериодКонец = БазовыйПериод.ДатаОкончания;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Движения.Начисления.Записывать = Истина;
Если Показатели <> Неопределено Тогда
// Получим значение регистратора.
Регистратор = Движения.ЗначенияПоказателейНачислений.Отбор.Регистратор.Значение;
Для Каждого Строка Из Показатели Цикл
НоваяСтрока = Движения.ЗначенияПоказателейНачислений.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
НоваяСтрока.РегистраторИзмерение = Регистратор;
КонецЦикла;
Движения.ЗначенияПоказателейНачислений.Записывать = Истина;
КонецЕсли;
Если ЗаписыватьДвижения Тогда
Движения.Начисления.Записать();
Движения.Начисления.Записывать = Ложь;
Если Показатели <> Неопределено Тогда
Движения.ЗначенияПоказателейНачислений.Записать();
Движения.ЗначенияПоказателейНачислений.Записывать = Ложь;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
(17) Сначала нужно узнать на какой строке вылетает и почему.
Внутри цикла
поставить точку прерывания прямо на эту строку
и галочку остановка по ошибке. Дальше запустить и прогнать до ошибки.
Другого варианта просто не знаю.
Внутри цикла
Для Каждого Строка Из Начисления Цикл
поставить точку прерывания прямо на эту строку
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода <> Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия Тогда
и галочку остановка по ошибке. Дальше запустить и прогнать до ошибки.
Другого варианта просто не знаю.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот