Имя: Пароль:
1C
1С v8
База торговли 10.3 на сервере преприятия
0 junk
 
26.10.11
18:57
Была базка в файловом режиме. Решили перевести на сервер предприятия, т.к. объемом она стала довольно большая и планируется еще существенное увеличение.
Выгрузил dt. Загружаю в серверном варианте - загружается. Пробую запустить - вылетает ошибка 'Невозможно обработать параметр "ФормаОповещенияОЗадачах" для получения значения'.
Платформы ставил 8.2.14.537 и 8.2.13.219. БД - PostgreSQL 9.0.3 и 8.4.3 - проблема не уходит. Из этого же dt делаю загрузку в файловый режим - без проблем работает потом.

Что это может быть и как с этим бороться??
1 Fragster
 
гуру
26.10.11
19:00
скорее всего УТ допиленная. где-то происходит попытка-исключение, а исключение типа передача мутабельного значения на сервер. глобальный поиск по конфигурации слов "Невозможно обработать параметр" поможет найти место
2 junk
 
26.10.11
19:09
Конфа слегка допилена. Поиск по конфигурации показал, что эти слова встречаются 1 раз - ОбщийМодуль.ОбщегоНазначения.Модуль(1967,23). Это функция ПолучитьЗначениеПеременной().
Параметр "ФормаОповещенияОЗадачах" там обрабатывается в конструкции "#Если Клиент Тогда". но по идее это и должен быть вызов из клиента.
3 Fragster
 
гуру
26.10.11
19:23
(2) учу пользоваться отладчиком, дорого. подсказка - точка останова + стек вызовов
4 shuhard
 
26.10.11
19:25
(3) +1 останов по ошибке
5 Fragster
 
гуру
26.10.11
19:34
(4) даже лучше, просто не юзаю, потому что в том гомункулусе 100500 мест, в попытки завернуто и это типа нормально, что отваливается по ошибке...
6 Fragster
 
гуру
26.10.11
19:35
том гомункулусе, что я ковыряю

Ну и из-за этого остановка по ошибке слишком часто срабатывает
7 junk
 
26.10.11
20:00
Отладчик пользовать умею. Фишка интересная. Точка останова внутри ПолучитьЗначениеПеременной() не останавливает выполнение в принципе. Ни на одной строчке, ни по ошибке. Зато останавливается в глЗначениеПеременной(). Стек вызова следующий:
МодульОбычногоПриложения.глЗначениеПеременной()
ОбщийМодуль.УправлениеКонтактами.Модуль.ПроверитьНапоминанияПользователя()
МодульОбычногоПриложения.ПроверитьПодключениеОбработчикаОжидания()
МодульОбычногоПриложения.ПриНачалеРаботыСистемы()

Я так понял, что ошибка эта вылазит именно в обработчике ожидания. Именно по этому процедура он выполняется не как "клиент" и именно поэтому не получается остановиться в ПолучитьЗначениеПеременной(). Как от этого избавиться?
8 kuza2000
 
26.10.11
20:26
(7) Нужно включить режим отладки на сервере. Точка останова должна работать и в ПолучитьЗначениеПеременной()
9 junk
 
26.10.11
20:53
Продвинулся чуть дальше. Получил "попытка передачи с сервера клиенту мутабельного значения 2-го параметра метода ПолучитьЗначениеПеременной()"
вторым параметром передаётся структура глОбщиеЗначения. в ней 4 значения. 3 СправочникСсылка, 1 - Соответствие. в Соответствии 2 ключа - планвидовхарактеристикссылка, значения - булево. что не так передается??
10 junk
 
26.10.11
21:30
Вроде разобрался. Загрузил конфу из коробки - работает. Начал сравнивать, увидел разницу - модуль ОбщегоНазначения почему-то был Привилегированный.
Сделал как в оригинальной конфе 10.3.13.2 - заработало.