Имя: Пароль:
1C
1С v8
прошу помощи разобраться в коде (мутабельного значения 1-го параметра метода )
0 mortal
 
07.10.11
12:31
Приветствую уважаемых форучан!

"коллега"-программист наваял в общем модуле некий код:


       Если ТипЗнч(Источник) = Тип("ДокументОбъект.РеализацияТоваровУслуг") Тогда
           Если ЗначениеЗаполнено(Источник.Контрагент.мерСчетУчета) Тогда
               Источник.СчетУчетаРасчетовСКонтрагентом = Источник.Контрагент.мерСчетУчета;
               Источник.СчетУчетаРасчетовПоАвансам = Источник.Контрагент.мерСчетУчета;
           КонецЕсли;
       ИначеЕсли ТипЗнч(Источник) = Тип("ДокументОбъект.ПлатежноеПоручениеВходящее") Тогда
           Если ЗначениеЗаполнено(Источник.Контрагент.мерСчетУчета) Тогда
               Источник.СчетУчетаРасчетовСКонтрагентом = Источник.Контрагент.мерСчетУчета;
               Источник.СчетУчетаРасчетовСКонтрагентомНУ = БухгалтерскийУчет.ПреобразоватьСчетаБУвСчетНУ(Новый Структура("СчетБУ",  Источник.СчетУчетаРасчетовСКонтрагентом), , Источник.Дата);
               Для Каждого ТЧ_РасшПлатежа Из Источник.РасшифровкаПлатежа Цикл    
                   ТЧ_РасшПлатежа.СчетУчетаРасчетовСКонтрагентом = Источник.Контрагент.мерСчетУчета;
                   ТЧ_РасшПлатежа.СчетУчетаРасчетовПоАвансам = Источник.Контрагент.мерСчетУчета;
               КонецЦикла;
           КонецЕсли;
       КонецЕсли;

Теперь при записе документа из списка в приведенном коде лезет ошибка:

Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода МерИзменениеСчетаУчетаРасчетовСКонтрагентамиПередЗаписью ().


Кто знает почему так?
1 mortal
 
07.10.11
12:32
конфа
Комплексная автоматизация, редакция 1.1 (1.1.11.2)
2 mortal
 
07.10.11
12:33
+(0)да, еще добавлена ПодрискаНаСобытие МерИзменениеСчетаУчетаРасчетовСКонтрагентами
3 mortal
 
07.10.11
12:34
еще раз +0

в файловой версии этой ошибки не было
4 H A D G E H O G s
 
07.10.11
12:35
При Сталине вообще такого не было.
5 mortal
 
07.10.11
12:35
(4) :)

а серьёзно?
6 ShotGun
 
07.10.11
12:36
отладку в помощь
7 Happy Bear
 
07.10.11
12:37
(5) ссылку, а не объект
8 Ненавижу 1С
 
гуру
07.10.11
12:37
а где собственно место передачи параметра?
9 sivalor
 
07.10.11
12:38
(5) Передается выполнение на сервер. Передать параметр с типом Объект нельзя (оно мутабельное).
10 ShotGun
 
07.10.11
12:38
платформа 8.2?

если передается выполнение в модуль в флажком "сервер", то мутабельное значение не может обабатываться

взведи в общем модуле флажок "клиент" и все заработает
НО это крайний случай (читай -- так делать не надо), надо искать обходное решение
11 aleks-id
 
07.10.11
12:39
(7) ссылка это для списка. а в самом доке объект будет
12 sivalor
 
07.10.11
12:40
(10) уж лучше перенести процедуру в общий модуль с установленным флажком..
13 Sammo
 
07.10.11
12:40
Потомучто при вызове метода метода МерИзменениеСчетаУчетаРасчетовСКонтрагентамиПередЗаписью ()
у первого параметра мутабельное значение. Неожиданно, правда?
14 vde69
 
07.10.11
12:41
скорее всего в подписке вызов привелегерованого модуля
15 H A D G E H O G s
 
07.10.11
12:41
(10) Это - не крайний случай.
Для ТолстогоКлиента - это нормально.
Для Тонкого - модуль документа выполняется уже на сервере и передачи на сервер - не будет.
16 H A D G E H O G s
 
07.10.11
12:41
(14) В подписке - вызов серверной процедуры. Только и всего.
17 izekia
 
07.10.11
12:43
а кто мешает написать обертку, которая будет работать на клиенте
18 ShotGun
 
07.10.11
12:48
(12) уж именно так и стоит делать
(15) спасибо за поправку
19 mortal
 
07.10.11
13:06
(17) спасибо - думаю, буду в эту сторону копать
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс