Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка при записи элемента справочника в СОМ соединении

Ошибка при записи элемента справочника в СОМ соединении
Я
   Альбатрос
 
27.10.16 - 12:24
Соединение по СОМ, платформа 8.3.8.2167. Есть вот такой код:

Функция СоздатьНоменклатуруВРознице(СтрокаТЗ)
    
     НоваяНоменклатура = Источник.Справочники.Номенклатура.СоздатьЭлемент();
     НоваяНоменклатура.Артикул = СТрокаТЗ.АртикулУТ;
     НоваяНоменклатура.Наименование = СтрокаТЗ.Наименование;
     НоваяНоменклатура.АлкогольнаяПродукция = Истина;
     НоваяНоменклатура.ВидАлкогольнойПродукцииЕГАИС = Источник.Справочники.ВидыАлкогольнойПродукцииЕГАИС.НайтиПоКоду(СтрокаТЗ.АП.ВидПродукции.КодГруппы);
     НоваяНоменклатура.Крепость = СтрокаТЗ.АП.Крепость;
     НоваяНоменклатура.ОбъемДал    = СтрокаТЗ.АП.Объем;
     НоваяНоменклатура.Родитель = Источник.Справочники.Номенклатура.НайтиПоНаименованию(СтрокаТЗ.АП.ВидПродукции.Наименование);
     НоваяНоменклатура.ВидНоменклатуры = Источник.Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Алкоголь");
     НоваяНоменклатура.ЕдиницаИзмерения = Источник.Справочники.БазовыеЕдиницыИзмерения.НайтиПоКоду(СтрокаТЗ.КодЕИ);
     НоваяНоменклатура.СтавкаНДС = Источник.Перечисления.СтавкиНДС.БезНДС;
     НоваяНоменклатура.КодАП_ЕГАИС = СтрокаТЗ.АП.Код;
     



     Попытка 
         НоваяНоменклатура.Записать();
         Возврат НоваяНоменклатура.ССылка();
     Исключение
         Сообщить(ОписаниеОшибки());
         Возврат Ложь;
     КонецПопытки;
     
     
КонецФункции


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

Не могу понять, чего не так? Где мутабельное значение?
 
 
   delavar
 
1 - 27.10.16 - 12:27
Конфигурация какая?
   Лефмихалыч
 
2 - 27.10.16 - 12:27
(0) во внешнем соединение, как и в неуправляемом толстом режиме, все подписки на клиенте выполняются. А на вход подписки получают ОБЪЕКТ. Очевидно, у тебя подписка выпоняется в модуле, у которого есть только галка "Сервер" и нет галки "Внешнее соединение".
   Рэйв
 
3 - 27.10.16 - 12:27
Попробуй добавить еще перед записью
НоваяНоменклатура.ОбменДанными.Загрузка=Истина;
   Beduin
 
4 - 27.10.16 - 12:27
(0) У тебя подписка вызывается
   mehfk
 
5 - 27.10.16 - 12:28
(0) А ты запусти в конфигураторе проверку конфигурации с галкой "Внешнее соединение".
   Лефмихалыч
 
6 - 27.10.16 - 12:29
то есть, если конфигурация будет использоваться в толстом режиме или в режиме внешнего соединения, то все подписки должны быть расположены в модулях, которые могут быть не серверными (галка "Клиент толстый" или/и "Внешнее соединение")
   Лефмихалыч
 
7 - 27.10.16 - 12:37
(5) по крайней мере в 8.3.6 ни чего не найдет эта проверка. https://i.imgur.com/NQgNozc.png
   Альбатрос
 
8 - 27.10.16 - 12:43
(1) Розница 2.2
(3) Не помогает
(6) Прикольно. А как мне определить, какая подписка срабатывает? Только визуально пересмотрев их в пофигураторе?
   Лефмихалыч
 
9 - 27.10.16 - 12:44
(8) перебрать все подписки на справочник номенклатуры, посмотреть, где лежат их процедуры
   Cyberhawk
 
10 - 27.10.16 - 12:50
Проще сразу привести все флажки в ОМ к стандартам с ИТС: https://its.1c.ru/db/v8std#content:2149184118:hdoc
 
 Рекламное место пустует
   Cyberhawk
 
11 - 27.10.16 - 12:51
В случае автора у всех ОМ, у которых стоит только один флажок "Сервер", поставить "Внешнее соединение" и "Клиент (ОП)"
   Лефмихалыч
 
12 - 27.10.16 - 12:54
(11) в этом случае есть риск утонуть нафиг в красной бороде потом...
   Михаил Козлов
 
13 - 27.10.16 - 12:54
(11) Если в названии модуля нет суффикса Сервер или Клиент.
Например для ПроцедурыОбменаДанными - нужно, а для ПроцедурыОбменаДаннымиСервер - нет.
Вообще странно, если в типовой флажки стоят не должным образом.
   Cyberhawk
 
14 - 27.10.16 - 13:06
(12) Почему? Ошибок компиляции возникать не должно, т.к. вроде для всех объектов встроенного языка доступность "Сервер, толстый клиент, внешнее соединение" всегда идет вместе...
   Cyberhawk
 
15 - 27.10.16 - 13:08
(13) А при чем тут суффикс? Не понял твоего примера, где не нужно ставить галку...
   Альбатрос
 
16 - 27.10.16 - 13:11
(9) Нашел модуль, поставил галку на внешнееСоединение, заработало. Возник второй вопрос, а как правильно ссылку вытащить из новосозданного объекта? вот так неправильно:

НоваяНоменклатура.Записать();
Возврат НоваяНоменклатура.ССылка();
   Альбатрос
 
17 - 27.10.16 - 13:15
(16) Все, нашел, Ref вроде как
   Альбатрос
 
18 - 27.10.16 - 13:25
(9) Большое спасибо за пояснения, все работает.
Всем большое спасибо!
   Лефмихалыч
 
19 - 27.10.16 - 13:26
(14) потому, что из этих модулей может что-то вызываться, чего на толстом клиенте, например, не существует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует