Значение не является значением объектного типа (ИспользованиеПериода)

1. neon_dot_net 07.06.19 13:45 Сейчас в теме
Добрый день. При начислении зарплаты за июнь месяц у всех организации появилось вот такая загвоздочка {ОбщийМодуль.ДлительныеОперации.Модуль(334)}: Значение не является значением объектного типа (ИспользованиеПериода), за май месяц такой проблемы нет... конфигурацию не обновляли...
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. GSokolov 320 07.06.19 17:06 Сейчас в теме
(1) Если не обновляли, но заполнялось корректно, сделайте архив и проверьте базу ChDbfl.exe и затем в конфигураторе Тестирование и исправление.
4. neon_dot_net 07.06.19 23:16 Сейчас в теме
(3) тестирование делал, кэш чистил, ничего не помогает база sql-ая)
7. user869223 10.06.19 13:40 Сейчас в теме
(1)Как вы заполняли документ? Добавляли ли начисления вручную? посмотрите по каждой строке начисления: скорее всего у одного из начислений не стоит период либо наоборот период излишен. Это бывает, например, когда создаете документ копированием, а одно из начислений изменили в прошлом месяце.
2. user1095163 07.06.19 15:17 Сейчас в теме
покажите хотя бы этот кусок кода
5. neon_dot_net 07.06.19 23:21 Сейчас в теме
(2) {ОбщийМодуль.РасчетЗарплатыРасширенный.Модуль(275)}: Значение не является значением объектного типа (ИспользованиеПериода)
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода <> Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия Тогда

конфа Зарплата и кадры образовательной организации, редакция 3.1 (3.1.5.463)
6. alivan 08.06.19 19:24 Сейчас в теме
(5) попробовать под отладчиком остановку по ошибке и посмотреть, на какой строке вылетает.
предположу, что в этой строке у начисления не стоит нужная дата.
8. neon_dot_net 10.06.19 18:05 Сейчас в теме
(6) добрый вечер. А в какой строке точку останова поставить? куда не ставлю не срабатывает.
9. GSokolov 320 10.06.19 22:28 Сейчас в теме
(8) Попробуйте начислить подбором одного сотрудника. Если количество сотрудников в документе больше определённого значения, расчет осуществляется в фоне и точка останова не работает.
10. alivan 11.06.19 22:21 Сейчас в теме
(8) По ошибке то же не срабатывает?
11. neon_dot_net 11.06.19 22:36 Сейчас в теме
12. alivan 12.06.19 06:56 Сейчас в теме
(11) Странно. И перед этой строкой,если ставить точку, не останавливается? (334 строка)?
13. neon_dot_net 12.06.19 19:58 Сейчас в теме
(12) в файловую базу выгрузил теперь точка останова срабатывает...
пробую другую организацию заполнить пишет уже другой код...

{ОбщийМодуль.ДлительныеОперации.Модуль(334)}: Значение не является значением объектного типа (ИспользованиеПериода)
ВызватьИсключение(ТекстОшибки);
14. neon_dot_net 12.06.19 20:02 Сейчас в теме
(13) отладчиком прошёлся даты вроде как везде проставляет...
15. alivan 12.06.19 22:12 Сейчас в теме
(14) сложно так что-то предполагать, но рассуждая логически:
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода

у элемента массива РеквизитыНачислений с индексом Строка.Начисление нет свойства ИспользованиеПериода. Осталось узнать, что это за элемент РеквизитыНачислений[Строка.Начисление].
16. neon_dot_net 18.06.19 09:06 Сейчас в теме
(15)
// Формирует движения по регистрам подсистемы.
// Параметры:
//		Движения - коллекция движений регистратора.
//		Отказ - признак отказа от заполнения движений.
//		Организация
//		ПериодРегистрации
//		Начисления - таблица значений с колонками
//			ФизическоеЛицо.
//			Сотрудник
//			Подразделение
//			Начисление - ссылка на план видов расчета.
//			ДатаНачала - дата, начало начисления.
//			ДатаОкончания - дата, окончание начисления.
//			Сумма
//			ОтработаноДней
//			ОтработаноЧасов
//			НормаДней
//			НормаЧасов
//			ОплаченоДней
//			ОплаченоЧасов
//			ГрафикРаботы - ссылка на график, примененный при расчете строки.
//			ГрафикРаботыНорма - ссылка на график, используемый для расчета нормы времени при неполном рабочем дне.
//			ВидУчетаВремени - ссылка на вид учета времени, примененный при расчете строки
//			ВремяВЧасах
//			ПериодРегистрацииВремени
//			ИдентификаторСтроки.
//		Показатели - таблица значений с колонками (необязательный).
//			Показатель - ссылка на показатель расчета зарплаты.
//			Значение
//			ИдентификаторСтроки - идентификатор строки таблицы с начислениями.
//		ЗаписыватьДвижения - (необязательный), булево, по умолчанию Ложь, 
//			если Истина - наборы записей будут записаны после заполнения.
//
//		Допустимо присутствие других колонок в передаваемых таблицах значений.
//
Процедура СформироватьДвиженияНачислений(Движения, Отказ, Организация, ПериодРегистрации, Начисления, Показатели = Неопределено, ЗаписыватьДвижения = Ложь) Экспорт
	
	СтрокиЗаполнениеФизическихЛиц = Новый Массив;
	СотрудникиЗаполнениеФизическихЛиц = Новый Массив;
	СтрокиЗаполнениеГрафикаРаботы = Новый Массив;
	МассивСотрудников = Новый Массив;
	МассивНачислений = Новый Массив;
	Для Каждого Строка Из Начисления Цикл
		Если Не ЗначениеЗаполнено(Строка.ФизическоеЛицо) Тогда
			СтрокиЗаполнениеФизическихЛиц.Добавить(Строка);
			СотрудникиЗаполнениеФизическихЛиц.Добавить(Строка.Сотрудник);
		КонецЕсли;
		Если Не ЗначениеЗаполнено(Строка.ГрафикРаботы) Тогда
			СтрокиЗаполнениеГрафикаРаботы.Добавить(Строка);
		КонецЕсли;
		МассивСотрудников.Добавить(Строка.Сотрудник);
		МассивНачислений.Добавить(Строка.Начисление);
	КонецЦикла;
	
	ЗаполнитьФизическихЛицПоСотрудникам(СтрокиЗаполнениеФизическихЛиц, СотрудникиЗаполнениеФизическихЛиц);
	
	Если СтрокиЗаполнениеГрафикаРаботы.Количество() > 0 Тогда
		ЗарплатаКадрыРасширенный.СкорректироватьДатыНачисленийБезПериодаДействия(СтрокиЗаполнениеГрафикаРаботы, ПериодРегистрации);
	КонецЕсли;
	
	РегистраторНачислений = Движения.Начисления.Отбор.Регистратор.Значение;
	
	ОсновныеСотрудники = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивСотрудников, "ГоловнойСотрудник");
	
	// Получаем реквизиты видов расчета.
	ИменаРеквизитов = 
		"ИспользованиеПериода,
		|ПериодРасчетаБазовыхНачислений,
		|КоличествоМесяцевБазовогоПериода,
		|СдвигБазовогоПериода";
	РеквизитыНачислений = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивНачислений, ИменаРеквизитов);
	
	ГоловнаяОрганизация = ЗарплатаКадрыПовтИсп.ГоловнаяОрганизация(Организация);
	
	Для Каждого Строка Из Начисления Цикл
		НоваяСтрока = Движения.Начисления.Добавить();
		ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
		НоваяСтрока.ПериодРегистрации = ПериодРегистрации;
		НоваяСтрока.ГоловнаяОрганизация = ГоловнаяОрганизация;
		НоваяСтрока.Организация = Организация;
		НоваяСтрока.ВидРасчета = Строка.Начисление;
		НоваяСтрока.ДокументОснование = Строка.ДокументОснование;
		Если Не ЗначениеЗаполнено(НоваяСтрока.ДокументОснование) Тогда
			НоваяСтрока.ДокументОснование = РегистраторНачислений;
		КонецЕсли;
		НоваяСтрока.ГоловнойСотрудник = ОсновныеСотрудники[Строка.Сотрудник];
		Если НоваяСтрока.Результат = 0 Тогда
			НоваяСтрока.Результат = Строка.Сумма;
		КонецЕсли;
		НоваяСтрока.РезультатВТомЧислеЗаСчетФБ = 0;
		// Определяем месяц (период действия).
		Месяц = Строка.ПериодДействия;
		Если Не ЗначениеЗаполнено(Месяц) Тогда
			Месяц = НачалоМесяца(Строка.ДатаНачала);
		КонецЕсли;
		НачалоМесяца = НачалоМесяца(Месяц);
		КонецМесяца = КонецМесяца(Месяц);
		НоваяСтрока.ПериодДействияНачало = Строка.ДатаНачала;
		НоваяСтрока.ПериодДействияКонец = КонецДня(Строка.ДатаОкончания);
		НоваяСтрока.БазовыйПериодНачало = НоваяСтрока.ПериодДействияНачало;
		НоваяСтрока.БазовыйПериодКонец = НоваяСтрока.ПериодДействияКонец;
		Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода <> Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия Тогда
			Если НоваяСтрока.ПериодДействияНачало < НачалоМесяца Или НоваяСтрока.ПериодДействияНачало > КонецМесяца Тогда
				НоваяСтрока.ПериодДействияНачало = НачалоМесяца;
			КонецЕсли;
			Если НоваяСтрока.ПериодДействияКонец < НачалоМесяца Или НоваяСтрока.ПериодДействияКонец > КонецМесяца Тогда
				НоваяСтрока.ПериодДействияКонец = КонецМесяца;
			КонецЕсли;
		КонецЕсли;
		БазовыйПериодПереопределен = Ложь;
		// - Если базовый период переопределяется.
		Если ЕстьПолеВСтрокеКоллекции(Строка, "НачалоБазовогоПериода") И ЗначениеЗаполнено(Строка.НачалоБазовогоПериода) 
			И ЕстьПолеВСтрокеКоллекции(Строка, "ОкончаниеБазовогоПериода") И ЗначениеЗаполнено(Строка.ОкончаниеБазовогоПериода) Тогда
			БазовыйПериодПереопределен = Истина;
			НоваяСтрока.БазовыйПериодНачало = Строка.НачалоБазовогоПериода;
			НоваяСтрока.БазовыйПериодКонец = Строка.ОкончаниеБазовогоПериода;
		КонецЕсли;
		Если Строка.Сторно Тогда
			// Для сторно-записей не выполняем корректировку базового периода.
			Продолжить;
		КонецЕсли;
		// - если не переопределяется
		Если Не БазовыйПериодПереопределен Тогда
			РеквизитыНачисления = РеквизитыНачислений[Строка.Начисление];
			Если РеквизитыНачисления.ИспользованиеПериода = Перечисления.ВариантыИспользованияПериодаНачисления.БазовыйПериод Тогда
				БазовыйПериод = РасчетЗарплатыРасширенныйКлиентСервер.БазовыйПериодНачисления(
					Месяц, РеквизитыНачисления.ПериодРасчетаБазовыхНачислений, РеквизитыНачисления.КоличествоМесяцевБазовогоПериода, РеквизитыНачисления.СдвигБазовогоПериода);
				НоваяСтрока.БазовыйПериодНачало = БазовыйПериод.ДатаНачала;
				НоваяСтрока.БазовыйПериодКонец = БазовыйПериод.ДатаОкончания;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Движения.Начисления.Записывать = Истина;
	
	Если Показатели <> Неопределено Тогда
		// Получим значение регистратора.
		Регистратор = Движения.ЗначенияПоказателейНачислений.Отбор.Регистратор.Значение;
		Для Каждого Строка Из Показатели Цикл
			НоваяСтрока = Движения.ЗначенияПоказателейНачислений.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
			НоваяСтрока.РегистраторИзмерение = Регистратор;
		КонецЦикла;
		Движения.ЗначенияПоказателейНачислений.Записывать = Истина;
	КонецЕсли;
	
	Если ЗаписыватьДвижения Тогда
		Движения.Начисления.Записать();
		Движения.Начисления.Записывать = Ложь;
		Если Показатели <> Неопределено Тогда
			Движения.ЗначенияПоказателейНачислений.Записать();
			Движения.ЗначенияПоказателейНачислений.Записывать = Ложь;
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры
Показать
17. neon_dot_net 18.06.19 09:07 Сейчас в теме
(16) Может в коде что тут поправить необходимо
18. alivan 18.06.19 12:16 Сейчас в теме
(17) Сначала нужно узнать на какой строке вылетает и почему.
Внутри цикла
 Для Каждого Строка Из Начисления Цикл

поставить точку прерывания прямо на эту строку
Если РеквизитыНачислений[Строка.Начисление].ИспользованиеПериода <> Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия Тогда

и галочку остановка по ошибке. Дальше запустить и прогнать до ошибки.
Другого варианта просто не знаю.
19. Program 214 20.01.20 10:24 Сейчас в теме
Как перейти из ЗКОО (образовательной организации) 3.1 в ЗКГУ (государственного учреждения) 3.1?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот