Странная ошибка БП3 по регистру ИПМПЗОбороты

У пользователя не проводится списание с расчетного счета, ошибка:

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
Ошибка при вызове конструктора (Диапазон)
{ОбщийМодуль.УчетДоходовИРасходовПредпринимателя.Модуль(9428)}:ЭлементБлокировки.УстановитьЗначение("Период", Новый Диапазон(ДатаПервойПартии, Реквизиты.Период));
{Документ.СписаниеСРасчетногоСчета.МодульОбъекта(538)}:ТаблицыОплатыПоставщикуИП = УчетДоходовИРасходовПредпринимателя.ПодготовитьТаблицыОплатыПоставщику(

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
по причине:
Левая граница диапазона больше, чем правая

Поиск по патчам ничего не дал. Пришлось исправлять самому.

В процедуре СформироватьДвиженияИзменениеВидовДеятельностиОборотовМПЗ модуля УчетДоходовИРасходовПредпринимателя возникает ошибка в конструкторе объекта Диапазон:

Проблему нужно было решить срочно, поэтому сделал небольшой патч:

&ИзменениеИКонтроль("СформироватьДвиженияИзменениеВидовДеятельностиОборотовМПЗ")
Процедура испрош20240405_СформироватьДвиженияИзменениеВидовДеятельностиОборотовМПЗ(ТаблицаИзмененияВидаДеятельности, ТаблицаРеквизитов, Движения, Отказ)

	Если Не ЗначениеЗаполнено(ТаблицаИзмененияВидаДеятельности)
		Или Не ЗначениеЗаполнено(ТаблицаРеквизитов) Тогда
		Возврат;
	КонецЕсли;

	Реквизиты = ТаблицаРеквизитов[0];
	Если НЕ УчетнаяПолитика.ПлательщикНДФЛ(Реквизиты.Организация, Реквизиты.Период) Тогда
		Возврат;
	КонецЕсли;

	Параметры = ПодготовитьПараметрыИзменениеВидаДеятельности(ТаблицаИзмененияВидаДеятельности, ТаблицаРеквизитов);
	Реквизиты = Параметры.Реквизиты[0];
	ИзмененияВидаДеятельностиПродукции = Параметры.ИзмененияВидаДеятельности;

	ПартииОтгруженныхМПЗ = ОбщегоНазначения.ВыгрузитьКолонку(ИзмененияВидаДеятельностиПродукции, "Партия", Истина);

	ДатаПервойПартии = ДатаПервогоДокумента(ПартииОтгруженныхМПЗ);
#Вставка     
	//Осипов - поправляем логику 1С
	Если ДатаПервойПартии > Реквизиты.Период Тогда
		ДатаПервойПартии = Реквизиты.Период;
	КонецЕсли;
#КонецВставки
	
	...
КонецПроцедуры

Причем в процессе применения патча обнаружил, что нужно исправлять еще в одном месте этого модуля:

&ИзменениеИКонтроль("ПодготовитьТаблицыОплатыПоставщику")
Функция испрош20240405_ПодготовитьТаблицыОплатыПоставщику(ТаблицаВзаиморасчеты, ТаблицаРеквизитов)

	...

	ОплаченныеПартии = ПодготовитьТаблицуОплаченныеПартии(СписокВзаиморасчетов, Реквизиты, "Партия");
	ОплаченныеПартии.Индексы.Добавить("Партия");

	СписокПартий = ОбщегоНазначения.ВыгрузитьКолонку(ОплаченныеПартии, "Партия", Истина);
	ДатаПервойПартии = ДатаПервогоДокумента(СписокПартий);
#Вставка     
	//Осипов - поправляем логику 1С
	Если ДатаПервойПартии > Реквизиты.Период Тогда
		ДатаПервойПартии = Реквизиты.Период;
	КонецЕсли;
#КонецВставки

	// Установка управляемой блокировки
	Блокировка = Новый БлокировкаДанных;

	...
КонецФункции

Среда: 3.0.150.33 Объем: 0.5 час

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *