Ошибка программиста при добавлении в УТ 11.5 стороннего модуля через объединение
В 1С при записи константы возникает ошибка не инициализированного параметра сеанса:
Ошибка при получении значения атрибута контекста (РаботаСВнешнимиРесурсамиЗаблокирована)
{ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(31)}:Возврат ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована;
{ОбщийМодуль.РегламентныеЗаданияСервер.Модуль(661)}:Возврат МодульБлокировкаРаботыСВнешнимиРесурсами.РаботаСВнешнимиРесурсамиЗаблокирована();
{Обработка.ПанельАдминистрированияБСП.Форма.Обслуживание.Форма(22)}:Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = РегламентныеЗаданияСервер.РаботаСВнешнимиРесурсамиЗаблокирована();
{Обработка.ПанельАдминистрированияБСП.Команда.Обслуживание.МодульКоманды(14)}:ОткрытьФорму(
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Попытка получения неинициализированного значения параметра сеанса
[ОшибкаИспользованияВстроенногоЯзыка]
Причина в том, что при записи константы, проверяется, можно ли ее записывать, вдруг идет удаление помеченных?
Процедура ЗапретитьИспользованиеУдаляемыхОбъектов(Источник, Отказ) // ОбменДанными.Загрузка = Истина не устанавливается, т.к. необходимо выполнение // при загрузке из внешних источников Если МонопольныйРежим() Тогда Возврат; КонецЕсли; Если Источник.ДополнительныеСвойства.Свойство("НеВыполнятьКонтрольУдаляемых") Или ПараметрыСеанса.ВыполняетсяУдалениеОбъектов Тогда Возврат; КонецЕсли;
Сделал было сделал расширение на модуль сеанса:
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) //Чтобы значение было инициализировано - Осипов 25-01-0801 ПараметрыСеанса.ВыполняетсяУдалениеОбъектов = ложь; КонецПроцедуры
Но потом посмотрел, а модуль сеанса то не заполнен! Скопировал из конфигурации поставщика модуль сеанса.
Но при запуске возникла ошибка, что не указана версия конфигурации. Я тоже заметил, что в «О программе» не указана версия, но сначала не придал этому значения.
Тут я и понял что когда программист, обратившийся ко мне, добавлял конфигурацию Меркурий в 1С, он забыл снять галочку с объединения корня и корень конфигурации заменился на код от Меркурия. В принципе, такая же проблема может быть и с объединением конфигурации Data Mobile.
Так что порекомендовал попробовать объединить заново, вернувшись предварительно к исходной конфигурации. Вот так — сначала снять галочку с корня, потом уже отмечать по подсистемам:

Кстати, разработчики тиражных решений не должны допускать подобной небрежности в коде — локальные переменные должны быть объявлены явно. Мне пришлось явно объявить локальную переменную, чтобы она не конфликтовала с названием общего модуля:

Среда: УТ 11.5.20.75 Объем: 0.5 час.
