|   |   | 
| 
 | Универсальный обмен через com-соединение. Не получается провести документ | ☑ | ||
|---|---|---|---|---|
| 0
    
        Ymryn 26.08.15✎ 09:17 | 
        Мое почтение. Что-то начинаю уже душевно так буксовать, прошу помощи. Осуществляю обмен c помощью com-соединения по правилам. На выходе стабильно получаю документ с галочкой - проведен, но без движений. Стандартная ситуация для записи в режиме обмена данных. При обмене через файл, я это решал проверкой в после записи, что если проведен. то записать с проведением. Аналогичный код при com-соединении не работает. Подозреваю, что связано с тем, что выполнение идет в внешнем соединении. Есть подозрение, что создание общего модуля с процедурой проведения и вызовом этой процедуры - решит проблему, но мне не хочется модифицировать конфигурацию базы приемника. Может кто-то подскажет другие варианты решения проблемы?     | |||
| 1
    
        ДенисЧ 26.08.15✎ 09:25 | 
        Для начала - код нужен.
 И записи ЖР, связанные с этим событием. Без этого могу посоветовать только лист бумаги А4 и шариковую ручку | |||
| 2
    
        Ymryn 26.08.15✎ 09:26 | 
        (1) код.
 Если Объект.Проведен Тогда Попытка Объект.Записать(РежимЗаписиДокумента.Проведение); Исключение Сообщить("Не удалось провести " + Объект); Объект.Проведен = Ложь; Объект.Записать(); КонецПопытки; Иначе Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения); КонецЕсли; Записи ЖР, чуток позднее будут. | |||
| 3
    
        Альбатрос 26.08.15✎ 09:29 | 
        А если внаглую, убрать все условия и написать: Объект.Записать(РежимЗаписиДокумента.Проведение);. Проведется?     | |||
| 4
    
        Ymryn 26.08.15✎ 09:31 | 
        (3) если честно, делал только до уровня
 Если Объект.Проведен Тогда Объект.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; В этом случае не проводился. Вообще без условий не пробовал, сейчас для чистоты эксперимента попробую. | |||
| 5
    
        Cyberhawk 26.08.15✎ 09:33 | 
        Ставлю на то, что процедуры проведения в общих модулях не компилируются для внешнего соединения     | |||
| 6
    
        ДенисЧ 26.08.15✎ 09:34 | 
        (5) а ты думаешь, почему я просил записи ЖР? 
 Это я так тонко намекал... | |||
| 7
    
        Альбатрос 26.08.15✎ 09:35 | 
        (5) Очень похоже     | |||
| 8
    
        Ymryn 26.08.15✎ 09:36 | 
        (5) да я тоже про это думаю. Вопрос, как это обходить :)     | |||
| 9
    
        ДенисЧ 26.08.15✎ 09:37 | 
        (8) обходить можно разными путями. Например - отойти от 1с километров на 5....     | |||
| 10
    
        Ymryn 26.08.15✎ 09:37 | 
        (9) неплохой способ, но к сожалению не подходит.     | |||
| 11
    
        Ymryn 26.08.15✎ 09:40 | 
        (3) да, провел чистый эксперимент. Вообще без условий не срабатывает. По логике, из внешки для проведения надо писать ВнешнееПодключение.РежимЗаписиДокумента.Проведение, но в процедуре ПослеЗаписи даже намека нет на ВнешнееПодключение, хотя одна мысль есть, будем её рыть, если других идей никто не накидает.     | |||
| 12
    
        Альбатрос 26.08.15✎ 09:41 | 
        (11) Как насчет поставить галочку в конфигураторе?     | |||
| 13
    
        Ymryn 26.08.15✎ 09:43 | 
        (12) поточнее на счет галочки? Отладка имеется в виду?     | |||
| 14
    
        olegves 26.08.15✎ 09:44 | 
        (0) в модуле проведения базы, к которой цепляешься сом-конектором, поищи, где есть Сообщить и пропиши директивы препроцессора на внещнее соединение     | |||
| 15
    
        hhhh 26.08.15✎ 09:44 | 
        (13) а это что за фигня?
 РежимЗаписиДокумента.Проведение это же не из той базы константа, вообще должно вылететь с таким бредом. | |||
| 16
    
        Ymryn 26.08.15✎ 09:46 | 
        (15) должна, но не вылетает. Сам удивился, что кушает, когда первый раз понял ситуацию. Видимо универсальный обмен, что-то с этим делает. Пока хотел обойтись малой кровью и не рыться непосредственно в том, что универсальный обмен делает с этим кодом. похоже придется.     | |||
| 17
    
        Альбатрос 26.08.15✎ 09:47 | 
        (15) Почему?     | |||
| 18
    
        Ymryn 26.08.15✎ 09:48 | 
        (17) ну при нормальном вызове com-соединения - это действительно должно вызывать ошибку, если пытаться так провести.     | |||
| 19
    
        hhhh 26.08.15✎ 09:49 | 
        (17) ну надо по идее
 Объект.Записать(КакоеТоКомСоединение.РежимЗаписиДокумента.Проведение); если объект из того соединения? | |||
| 20
    
        Альбатрос 26.08.15✎ 09:51 | 
        (19) Ну так обработка вроде как и преобразует...     | |||
| 21
    
        Альбатрос 26.08.15✎ 09:52 | 
        (13) http://savepic.su/6052846.jpg
 или (14) | |||
| 22
    
        Ymryn 26.08.15✎ 09:53 | 
        (20) я не уверен, что она этот код преобразует. Там же именно все-таки код выполняется. Вот почему она не падает, я не понимаю. При попытке написать ВнешнееСоединение.РежимЗаписиДокумента.Проведение (так сказать на пофиг, а вдруг угадаю) - она начала ругаться. Т.е. все-таки какая-то проверка там выполняется.     | |||
| 23
    
        Альбатрос 26.08.15✎ 09:54 | 
        (22) То, что ты не уверен - ничего не значит. Другого логичного объяснения нет. Если не лень - залезь и посмотри.     | |||
| 24
    
        Ymryn 26.08.15✎ 09:55 | 
        (23) как раз сейчас лажу и смотрю :)     | |||
| 25
    
        slavik013 26.08.15✎ 10:08 | 
        (15) С чего оно должно вылетать, если все обработчики правил выполняются в базе-приемнике через Выполнить()?     | |||
| 26
    
        Ymryn 26.08.15✎ 10:12 | 
        (25) а вот и ответ, почему не вылетает. Спасибо.     | |||
| 27
    
        Альбатрос 26.08.15✎ 10:12 | 
        (26) попробовал (21)?     | |||
| 28
    
        Ymryn 26.08.15✎ 10:14 | 
        (27) я не представляю у чего это ставить. Я не вызываю никаких общих модулей самостоятельно. Видимо я где-то туплю.     | |||
| 29
    
        Альбатрос 26.08.15✎ 10:21 | 
        (28) Jnrhjq vjlekm ljrevtynf? rjnjhsq [jxtim ghjdtcnb b cvjnhb? rfrbt vjlekb jy dspsdftn ghb ghjdtltybb/     | |||
| 30
    
        Альбатрос 26.08.15✎ 10:21 | 
        млять     | |||
| 31
    
        Альбатрос 26.08.15✎ 10:22 | 
        ОбработкуПроведения смотри у документа     | |||
| 32
    
        Ymryn 26.08.15✎ 10:24 | 
        (31) увы, мне крайне неудобно менять базу приемник. Даже если я там, что-то найду или решу изменить - это не то решение, которое я сейчас ищу. Хочется решить проблему изменениями в правилах, ну или в крайнем случае изменениями в базе источнике.     | |||
| 33
    
        Альбатрос 26.08.15✎ 10:27 | 
        (32) ааа... Ну удачи     | |||
| 34
    
        Ymryn 26.08.15✎ 10:28 | 
        (33) спасибо )     | |||
| 35
    
        Лефмихалыч 26.08.15✎ 10:38 | 
        (0) а не пробовал после записи
 ДокументОбъект.ОбменДанными.Загрузка = Ложь; ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение); ? первое, что в голову пришло | |||
| 36
    
        Ymryn 26.08.15✎ 10:42 | 
        (35) пробовал. Не помогает.     | |||
| 37
    
        ssh-2013 26.08.15✎ 10:45 | 
        (0) Есть параметры Обработчика Перед загрузкой
 РежимЗаписи - Строка. Режим записи документа. Имеет смысл только если тип объекта приемника "Документ". Возможные значения "Запись", "Проведение", "ОтменаПроведения" РежимПроведения - Строка. Режим проведения документа. Имеет смысл только если тип объекта приемника "Документ". Возможные значения "Неоперативный", "Оперативный" | |||
| 38
    
        Ymryn 26.08.15✎ 10:50 | 
        (37) это еще не пробовал. Благодарю.
 Вообще сейчас наконец-то отфильтровался ЖР. По документам любопытная картина. Есть зафиксированная транзакция по проведению, следом зафиксированная транзакция по изменению. Уж не чистит ли у меня обычная запись движения. | |||
| 39
    
        Ymryn 26.08.15✎ 10:53 | 
        (37) неа. Тоже мимо.     | |||
| 40
    
        ssh-2013 26.08.15✎ 10:57 | 
        (39) отладил бы уже как нибудь     | |||
| 41
    
        Ymryn 26.08.15✎ 10:59 | 
        (40) это последнее средство, когда закончатся все идеи. Слишком много  дополнительных работ надо делать, чтобы отладку включить.     | |||
| 42
    
        Альбатрос 26.08.15✎ 11:00 | 
        (41) Млять, открой модуль документа и посмотри, обращается ли он в общие модули и доступны ли эти модули для внешнего соединения!     | |||
| 43
    
        ДенисЧ 26.08.15✎ 11:01 | 
        (41) Есть очень простой способ отладки - на каждый чих писать в ЖР.     | |||
| 44
    
        Ymryn 26.08.15✎ 11:11 | 
        (42) проверил. Все общие модули, вызываемые в теле проведения,  имеют эту галочку. 
 (43) не без этого. Меня смущает, что я пользуюсь типовым функционалом. Обработке универсального обмена дофига лет. Да и база приемник не так уж переписана, чтобы в ней было особенное. Все должно же просто быть :) | |||
| 45
    
        ДенисЧ 26.08.15✎ 11:15 | 
        (44) Тебе точно 28 лет?
 А по разговору - не больше 11... Потом уже такая наивность как-то сама собой проходит... | |||
| 46
    
        ssh-2013 26.08.15✎ 11:20 | 
        (44) (     | |||
| 47
    
        Ymryn 26.08.15✎ 17:19 | 
        Ну что я могу сказать, попробовал и так и эдак. Сделал отдельно процедуры проведения в общем модуле и пробовал вызывать их. Наставил записей в журнал регистрации. По ним могу сказать, что ПослеЗагрузки выполняется, в собственную процедуру заходит, ОбменДанными.Загрузка = Ложь. В процедуры передЗаписью и ОбработкаПроведения не заходит. Вообще. Даже при Объект.Записать(); Довольно неплохо. Чую на сегодня я уже выдохся, буду еще что-нибудь придумывать завтра. Ну должно же это хоть как-то работать.     | |||
| 48
    
        olegves 26.08.15✎ 17:43 | 
        (47) проверь модули документов на синтаксис с включенной только 1 галкой: Внешнее соединение     | |||
| 49
    
        Cyberhawk 26.08.15✎ 18:57 | 
        Кроме флагов компиляции модулей надо еще в документе в модуле объекта и модуле менеджера посмотреть директивы компиляции #Если Клиент ИЛИ бла-бла-бла     | |||
| 50
    
        Рэйв 26.08.15✎ 19:07 | 
        (0)Вот уж на что на что....А уж на их COM я бы точно не положился и от греха бы написал свой...     | |||
| 51
    
        Ymryn 27.08.15✎ 09:05 | 
        (48), (49) Спасибо, вот сюда я и не посмотрел в свое время. Причина в директивах была. Большое спасибо откликнувшимся.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |