Ошибка с регистром ЗаданияКОтражениюСостоянияЗаказов. УТ 11.5
При проведении перемещений у клиента непонятная ошибка:
Ошибка при вызове метода контекста (Записать)
{ОбщийМодуль.ОтложенныеЗадания.Модуль(232)}:ИсточникЗаданий.Записать(Ложь);
{РегистрСведений.ЗаданияКОтражениюСостоянияЗаказов.МодульМенеджера(32)}:ОтложенныеЗадания.ДобавитьЗаданияВОчередь("ЗаданияКОтражениюСостоянияЗаказов", Данные,, ТаблицаЗаданий);
{РегистрСведений.СостоянияВнутреннихЗаказов.МодульМенеджера(115)}:РегистрыСведений.ЗаданияКОтражениюСостоянияЗаказов.ДобавитьЗадания(Заказ, Действие, ТаблицаЗаданий);
{ОбщийМодуль.СостоянияДокументов.Модуль(103)}:РегистрыСведений[ИмяРегистра].ДобавитьЗаданияКОтражениюСостоянияЗаказов(
{ОбщийМодуль.СостоянияДокументов.Модуль(44)}:ДобавитьЗаданияКОтражениюСостоянияЗаказов(ДокументИсточник, МассивОтражаемыхДокументов,,, Запустить);
{ОбщийМодуль.ПроведениеДокументов.Модуль(1281)}:СостоянияДокументов.ОтразитьСостоянияДокументов(Документ, МенеджерВременныхТаблиц, Запустить);
{ОбщийМодуль.ПроведениеДокументов.Модуль(1823)}:СформироватьЗаданияНаОтложенныеДвижения(Документ, МенеджерВременныхТаблиц, Ложь);
{ОбщийМодуль.ПроведениеДокументов.Модуль(250)}:ПровестиДокумент(Документ, Отказ, ДопПараметры);
{Документ.ПеремещениеТоваров.МодульОбъекта(300)}:ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Запись не верна! Значение поля "Документ" не может быть пустым!: ЗаданияКОтражениюСостоянияЗаказов: , 27e2878c-7694-4b4f-b34a-0629bae4c9ce (Регистр сведений: Задания к отражению состояния заказов; Номер строки: 1)
[ОшибкаХранимыхДанных]
Отладить не мог — отладка не работала, поэтому добавил заглушку на модуль записей регистра сведений ЗаданияКОтражениюСостоянияЗаказов:
&После("ПередЗаписью") Процедура дор_ПередЗаписью(Отказ, Замещение) Всего = ЭтотОбъект.Количество(); Для Инд = 1 По Всего Цикл МЗ = ЭтотОбъект[Всего-Инд]; Если Не ЗначениеЗаполнено(МЗ.Документ) Тогда ЭтотОбъект.Удалить(МЗ); КонецЕсли; КонецЦикла; КонецПроцедуры
Заглушка работает отлично.
Среда: УТ 11.5.22.83




Здесь уже классика «как делать не надо»:
1. Удаление объекта, после чего индексы последующих элементов уменьшаются на 1 — не проверяется запись, следующая за удаляемой
2. И попадаем в ошибку «индекс вне диапазона» — количество уменьшилось, а граница цикла нет
3. Тестировалось конечно только на коллекции из одного элемента, считай частный случай
4. И ГЛАВНОЕ: не разобрался в ошибке, а сделал патч, который возможно меняет логику систему
да, с индексом надо поправить, глаз замылился. Бывает.
В 1с столько ошибок, что разбираться с ними никаких бюджетов не хватит.
Пусть на селезневской разбираются, клиенту главное чтобы работало.