|
Мутабельность при записи документа, через ком соединение | ☑ | ||
---|---|---|---|---|
0
Яжец
11.06.15
✎
15:24
|
Платформа 8.3 управляемое приложение. При проведении через ком вот такая бяка:
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7313)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ОбработкаПроведения': {ОбщийМодуль.УчетНДСБП.Модуль(8699)}: Ошибка при вызове метода контекста (ПолучитьСписокОбособленныхПодразделений): Попытка передачи мутабельного значения результата метода ПолучитьСписокОбособленныхПодразделений (). Кто что подскажет? |
|||
1
стаканыч
11.06.15
✎
15:50
|
Что отладчик говорит? Что передается в ПолучитьСписокОбособленныхПодразделений?
|
|||
2
Aprobator
11.06.15
✎
16:13
|
метод описан который возвращает мутабельное значение - что еще требуется пояснить то?
|
|||
3
hhhh
11.06.15
✎
16:52
|
(0) ПолучитьСписокОбособленныхПодразделений () в студию
|
|||
4
Яжец
11.06.15
✎
17:18
|
(3)
СписокОрганизаций = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьСписокОбособленныхПодразделений(Реквизиты.Организация); - это строка на которой вылетает Это сама функция Функция ПолучитьСписокОбособленныхПодразделений(Организация) Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("Организация", Организация); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Организации.ГоловнаяОрганизация КАК ГоловнаяОрганизация |ПОМЕСТИТЬ ТаблицаГоловнойОрганизации |ИЗ | Справочник.Организации КАК Организации |ГДЕ | Организации.Ссылка = &Организация |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Организации.Ссылка, | Организации.Наименование КАК Наименование |ИЗ | Справочник.Организации КАК Организации | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаГоловнойОрганизации КАК ТаблицаГоловнойОрганизации | ПО Организации.ГоловнаяОрганизация = ТаблицаГоловнойОрганизации.ГоловнаяОрганизация | |УПОРЯДОЧИТЬ ПО | Наименование"; СписокОП = Новый СписокЗначений; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СписокОП.Добавить(Выборка.Ссылка, Выборка.Наименование); КонецЦикла; Возврат СписокОП; КонецФункции |
|||
5
Яжец
11.06.15
✎
17:20
|
В обоих общих модулях флаг внешнее соединение стоит.
Конфа типовая бух корп 3.0.39.67 |
|||
6
Serginio1
11.06.15
✎
17:40
|
||||
7
Serginio1
11.06.15
✎
17:41
|
Реквизиты.Организация случайно не объект?
|
|||
8
Serginio1
11.06.15
✎
17:42
|
Реквизиты.Организация это ссылка на какую базу?
|
|||
9
Яжец
11.06.15
✎
17:58
|
(7) Это ссылка на элемент справочник организации, это по коду функции "ПолучитьСписокОбособленныхПодразделений(Организация)" понятно.
|
|||
10
ssh2006
11.06.15
✎
18:23
|
(0) > Возврат СписокОП;
"Для режима запуска ОбычноеПриложение обмен с сервером невозможен!" |
|||
11
Яжец
11.06.15
✎
20:38
|
(10) А как заставить комконнектор входить в режиме запуска УправляемоеПриложение?
|
|||
12
ДенисЧ
11.06.15
✎
20:41
|
(11) ком-коннектор вход в режиме внешнего соединения, и спасибо за это Аллаху!
|
|||
13
ДенисЧ
11.06.15
✎
20:43
|
Я бы для начала обрезал руки разработчику конфигурации.
Потом разработчику обработки, которая соединяется. И да, вы угадали. По самую голову. |
|||
14
Яжец
11.06.15
✎
21:07
|
(12) Переведите (-: Режим запуска для комконнектора никак нельзя изменить?
(13) А по делу? Что нужно исправить в конфе и в обработке? Обработка (которая соединяется, это типовая V8Exchan82.epf), насколько я понял, и не была предназначена для соединения с 8.3, поскольку в ее интерфейсе нельзя выбрать версию платформы 8.3., поэтому v83.ComConnector в качестве комконнектора я в коде установил напрямую, и все бы хорошо, если бы доки загружались проведенными, но они загружаются непроведенными, при проведении такая вот ошибка. |
|||
15
Serginio1
11.06.15
✎
22:07
|
(14) смотри 6
|
|||
16
Serginio1
11.06.15
✎
22:08
|
||||
17
Яжец
11.06.15
✎
22:35
|
(16) ну и что это за решение "Решение было найдено, переделал обработку на запуск из БП."?
1. Что именно переделал? 2. По сути это неважно, что там переделали, поскольку в моем случае бух корп это приемник по любому, запуска из него не будет. |
|||
18
Serginio1
11.06.15
✎
23:16
|
(17) Почему? Какая разница? Еще одно решение обмен через файлы. Например по схеме
|
|||
19
Яжец
11.06.15
✎
23:33
|
(18) Потому что универсальный обмен данными так сделан, что по ком можно передать выгрузку в базу приемник, но не наоборот (прочитать загрузку из базы источника).
Через файл это крайний вариант, поскольку уже через ком все автоматизировано по расписанию (осталось победить, надеюсь последний дефект), а через файл во первых заново придумывать надо, во вторых это будет сложнее, в третьих жалко уже потраченного времени. |
|||
20
Serginio1
11.06.15
✎
23:55
|
Ну вот в 6 товарищ хотел но не поборол. Или снимать с поддержки.
|
|||
21
eses
12.06.15
✎
00:08
|
(14) http://catalog.mista.ru/public/123256/ это читал?
|
|||
22
TormozIT
гуру
12.06.15
✎
10:29
|
(почти репост http://forum.infostart.ru/forum24/topic58293/message1371643/#message1371643)
В подсистеме Инструменты разработчика (и в ее портативном варианте в сочетании с БСП) http://devtool1c.ucoz.ru реализован кажется наиболее универсальный вариант обхода описанной проблемы. Сама проблема у меня описана тут http://devtool1c.ucoz.ru/forum/2-218-1#866 В общем модуле ирОбщий сделано 2 функции: ЗапистьОбъектЛкс и УдалитьОбъектЛкс, имеющих параметр НаСервере. Эти функции передают почти полное, однако не все, содержимое мутабельного объекта на сервер. Во всех инструментах, выполняющих запись данных, сделан флажок "Запись на сервере" для перенаправления записи объекта на сервер. По сути мутабельностью называют все то, что платформа не умеет сериализовать и десериализовать при вызовах клиент-сервер, однако это еще не значит что сериализовать это невозможно. В случае объектов БД кроме содержимого, имеющего штатную сериализацию, мы имеем еще свойства ОбменДанными типа ПараметрыОбменаДанными и ДополнительныеСвойства типа Структура, но самое главное у объекта имеется модуль, допускающий объявление переменных. Поэтому для полной сериализации такого объекта потребуется сериализовать рекурсивно 1. Данные. Сериализация реализована например методом ЗаписатьXML. 2. Свойство ОбменДанными. Все используемые внутри типы просто сериализуются. 3. Свойство ДополнительныеСвойства. Тут могут быть произвольные значения. Поэтому существует риски зацикливания и прочее. 4. Все переменные модуля объекта. Тут могут быть произвольные значения. Поэтому существует риски зацикливания и прочее. Вот п.4 и есть изначальная причина обзывания объекта данных мутабельным. Потом к нему уже добавился п.3. В моей реализации п.4 не сериализуется, т.к. надежного способа в рантайме перечислить все переменные модуля мне неизвестно. А остальные 3 пункта у меня сериализуются при передаче на сервер и обратно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |