Версия для печати темы (https://pro1c.org.ua/index.php?s=14c20ee01b1d1b18e2c6868d9a4c3871&showtopic=67494)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Ошибка COM при обмене

Автор: burza 05.03.24, 17:37

Делаю обмен через COM между базами, когда делаю через файловую версию всё ок через сервер вот такое вылазит.Помогите уже не знаю куда смотреть.

Лазил в обсужение ОбсужденияПередЗаписьюДокумента удалил оттуда документ, всеровно ошибка.

Произошла исключительная ситуация (1C:Enterprise 8.3.19.1522): При подписке ОбсужденияПередЗаписьюДокумента на событие ПередЗаписью произошла ошибка. Обработчик события не найден.
{Обработка.ОбменСДана.Форма.Форма1.Форма(800)}: ДокументБух = ПоступленияТУБух.СоздатьДокумент();
{Обработка.ОбменСДана.Форма.Форма1.Форма(861)}: ОбменЗаказНаСервере();

по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.19.1522): При подписке ОбсужденияПередЗаписьюДокумента на событие ПередЗаписью произошла ошибка. Обработчик события не найден.

Автор: alex-l1904 06.03.24, 8:54

burza @ Вчера, 18:37 * ,

можливо на модулі не стоїть Зовнішнє з'єднання

Автор: sava1 06.03.24, 9:14

для начала - почистить кеш серверный

Автор: burza 06.03.24, 10:30

alex-l1904 @ Сегодня, 8:54 * ,
это не модуль я обработка там все на форме. точно такая же в Бух БАС выгружает все ок.

sava1 @ Сегодня, 9:14 * ,
ничего


ЗАказ покупателя снял. а ошибка осталась.
burza @ Вчера, 17:37 * ,

Автор: alex-l1904 06.03.24, 11:10

burza @ Сегодня, 11:30 * ,

обробник підписки на подію це експортна процедура загального модуля

перевірте модуль обробника ОбсужденияПередЗаписьюДокумента

Автор: burza 06.03.24, 11:34

alex-l1904 @ Сегодня, 11:10 * ,
Коментував цю строку і нічого. Дивно що в файловій версії все ок, нічого не треба роботи.

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

Автор: burza 06.03.24, 17:21

alex-l1904 @ Сегодня, 8:54 * ,
да вы были правы, не стояло. тупанул не про тот модуль сразу полумал. Не теперь в мутабельность сваливаеться(

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

Автор: AnryMc 07.03.24, 12:46

alex-l1904 @ Вчера, 12:10 * ,
+

Цитата
В версии 8.2 добавился флаг «вызов сервера», который помогает разрулить условия перехода на другую машину. Если модулю назначить этот флаг, то модуль будет виден с клиента, если нет – то попытка вызова с клиента приведет к ошибке. Код модуля виден не будет, как будто его нет совсем.

Таким образом, в обычном толстом клиенте перенести код на сервер можно, только если с клиента вызвать общий модуль, для которого:

Установлен флажок «Сервер»
Установлен флажок «Вызов сервера»
Сняты все «клиентские» флажки

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua