Имя: Пароль:
1C
1С v8
Com соединение, обработчик события.
, ,
0 alexandr_87
 
31.08.17
09:25
Через ком соединение пытаюсь создать документ, при создании получаю ошибку "При подписке УстановитьСнятьПометкуУдаленияЗаметок на событие ПриЗаписи произошла ошибка. Обработчик события не найден." в конфе модуль есть и метод есть откуда ошибка не могу понять. Помогите кто чем может...
1 mehfk
 
31.08.17
09:27
(0) Поставь на модуле галку "Внешнее соединение".
2 alexandr_87
 
31.08.17
09:41
Галка внешнее соединение установлена, поэтому и не понятно...
3 lEvGl
 
гуру
31.08.17
10:02
#Если Клиент написано?
4 alexandr_87
 
31.08.17
10:06
нет, сейчас попробую
5 alexandr_87
 
31.08.17
10:10
Добавил "#Если Клиент Тогда процедура....конецроцедуры
конецпроцедуры" #КонецЕсли
в этом модуле, не помогло
6 h-sp
 
31.08.17
10:19
(5) наоборот убери
7 alexandr_87
 
31.08.17
10:38
изначально было без директивы
8 h-sp
 
31.08.17
10:40
(7) параметры проверь этой процедуры
9 alexandr_87
 
31.08.17
10:57
Проверить на что?
10 palsergeich
 
31.08.17
10:57
вызов сервера на модуле....
11 alexandr_87
 
31.08.17
11:12
Галку вызов сервера на модуле установил та же фигня...
12 h-sp
 
31.08.17
11:19
(9) количество параметров совпадает?
13 _Дайвер_
 
31.08.17
11:23
При записи выскакивает ошибка(Документ.Записать();), или все таки при создании(Документ.Создать();) ???
14 alexandr_87
 
31.08.17
11:25
вылетает при создании(СоздатьДокумент())
15 _Дайвер_
 
31.08.17
11:26
Код выложи
16 h-sp
 
31.08.17
11:31
(14) тогда код модуля объекта этого документа, самый низ, может там чего вставили.
17 alexandr_87
 
31.08.17
11:45


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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
        
    Масса = 0;
    КоличествоБутылок = 0;
    
    //Посчитаем массу заказа
    Для каждого ТекСтрокаТовары Из Товары Цикл        
        Масса = Масса + ТекСтрокаТовары.Номенклатура.Вес * ТекСтрокаТовары.Количество;
        Если ТекСтрокаТовары.Номенклатура.СчитатьКоличествоВЗаявке Тогда
            КоличествоБутылок = КоличествоБутылок + ТекСтрокаТовары.Количество;
        КонецЕсли;
    КонецЦикла;
    
    Для каждого ТекСтрокаОборудование Из Оборудование Цикл
        
        Масса = Масса + ТекСтрокаОборудование.Номенклатура.Владелец.Вес;
        
        ТекСтрокаОборудование.Количество = 1;
        
    КонецЦикла;
    
    //Сохраним сумму пробиваемого чека.
    Если ВидОплаты = ПредопределенноеЗначение("Перечисление.ВидыОплаты.Наличные") Тогда
        СуммаКОплате = СуммаДокумента;
    Иначе
        СуммаКОплате = 0;
    КонецЕсли;
    
    Если Константы.ФункциональнаяОпцияИспользоватьОбменССайтами.Получить() Тогда
        Попытка
            ОбменДанными.Получатели.Добавить(Константы.ОбменССайтомПоУмолчанию.Получить());
        Исключение
        КонецПопытки;
    КонецЕсли;
    
КонецПроцедуры

Процедура ПриКопировании(ОбъектКопирования)
    
    КомплектДокументов.Очистить();
    ГорячееВремя = Константы.ГорящийЗаказ.Получить();    
    Если ЗначениеЗаполнено(ГорячееВремя) Тогда
        ГорячаяЗаявка = Час(ГорячееВремя) >= Час(ТекущаяДата());
    Иначе
        ГорячаяЗаявка = Ложь;
    КонецЕсли;
    КоличествоДней = Константы.ПоздняяДоставка.Получить();
    ДатаТ = ?(ГорячаяЗаявка, ТекущаяДата(), ТекущаяДата()+(86400*КоличествоДней));
    ДатаДоставки = ДатаТ;
        
КонецПроцедуры

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

КонецПроцедуры    

Процедура ОбработкаУдаленияПРоведения(Отказ)
    Статус = ОбщиеПроцедурыИФункции.ПолучитьСтатусЗаказа(ЭтотОбъект.Ссылка);
    Если (НЕ Статус = Перечисления.СтатусыЗаказов.Принят) и (НЕ Статус = Перечисления.СтатусыЗаказов.Отмена) Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры
18 alexandr_87
 
31.08.17
12:46
Короче выловил все события к которым привязан документ, установил галку вызов сервера и данная ошибка пропала, но уже появилась другая при записи документа.
Ошибка при выполнении обработчика - 'ПередЗаписью'
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода УстановитьСтатусИзмененияПометкиУдаленияДокумента ().
19 alexandr_87
 
31.08.17
12:47
При чем что в 1с приедприятие все работает нормально, только через ком соединение вот такая фигня.
20 mehfk
 
31.08.17
12:49
Запусти в своей нетленке "Конфигурация" - "Проверка конфигурации" с включенными галками для тех режимов, которые используешь и удивись количеству ошибок.
21 alexandr_87
 
31.08.17
13:00
ошибка "Обработчик события не найден".
появилась
"Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода"
22 h-sp
 
31.08.17
13:25
(21) ну это бывает. Частенько мутабельные объекты суют в процедуру. В чем проблема посмотреть этот параметр?
23 alexandr_87
 
31.08.17
14:32
Модуль защищен, не могу смотреть.