Всем привет.
Управление торговлей, редакция 11 (11.4.13.275) платформа 8.3.17.1989.
При закрытии месяца странная ошибка.
При выполнении операции "Формирование движений по данным взаиморасчетов" произошла ошибка:
Поле объекта недоступно для записи (ФизическиеЛица)
ФизическиеЛица = ПолучитьСсылкиСправочника("ФизическиеЛица", АналитикаРасчета);
ФизическиеЛица в данном случае просто переменная, в неё должен результат запроса записаться. Это не поле какого-то объекта.
Раза с 10-го закрывается. И ошибка не возникает. В ночное время почти всегда закрывается. Но и днём пользователей челок 10 не больше.
Отладкой не получилось в этом месте остановиться. Кэш чистил. Дописок в этом модуле нет.
что делает функция ПолучитьСсылкиСправочника()? Ей в парамаетры передается, судя по всему, тип объекта и сам объекта. Вопрос, что она там с ним творит?
(1) В данном случае она получает ссылки из справочника "Физические лица". АналитикаРасчета это массив ссылок физ.лиц, которых нужно получить из справочника. Функция возвращает из запроса колонку "Ссылка".
Функция ПолучитьСсылкиСправочника(ИмяСправочника, МассивСсылок, Организация = Неопределено)
Шаблон =
"ВЫБРАТЬ
| Спр.Ссылка
|ИЗ
| Справочник.%1 КАК Спр
|ГДЕ
| Спр.Ссылка В(&МассивСсылок)
| И %2";
ТекстЗапроса = СтрШаблон(Шаблон, ИмяСправочника, ?(ЗначениеЗаполнено(Организация),"Спр.Организация = &Организация","ИСТИНА"));
Проблема решена. Непонятно почему она раньше не проявлялась. И не всегда проявлялась при закрытии.
Включил отладку на сервере. Запустил отладку фоновых заданий.
Выяснилось, что в переменной "ФизическиеЛица" на момент запроса уже был определён Общий модуль.
В конфигурации такого модуля не нашлось, он был обнаружен в расширении.
Переименовали модуль. И всё заработало.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.