Имя: Пароль:
1C
1С v8
Создание записи регистра сведений через COM соединение
0 gas83
 
30.05.14
10:20
Добрый день!

платформа 8.3

Задача через com-соединение создать запись в регистре сведений в подключенной базе.
Кто-нибудь реализовывал это?Поделитесь примером.
1 butterbean
 
30.05.14
10:25
а какие вообще вопросы?? код такой-же как и в обычном подключении, просто пишешь НовыйНабор = ПодключениеV83.РегистрыСведений.ТвойРегистр.СоздатьНабор... и вся разница
2 Crush
 
30.05.14
10:32
На стороне приёмника сделай процедуру. Передавай туда данные примитивных типов и преобразовывай в ссылки. Там же и записывай.

ПодключениеV83.РегистрыСведений.ТвойРегистр.СделатьЗапись("Иванов","Пекарня",35);
3 gas83
 
30.05.14
10:34
МенеджерЗаписи = СоединениеС_База_УПО.РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Объект = СоединениеС_База_УПО.Справочники.Контрагенты.НайтиПоКоду("812002794");
    МенеджерЗаписи.Тип = СоединениеС_База_УПО.Перечисления.ТипыКонтактнойИнформации.Адрес;
    МенеджерЗаписи.Вид = СоединениеС_База_УПО.Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
    МенеджерЗаписи.Представление = "Россия";
    МенеджерЗаписи.Записать();

Ошибка:Попытка передачи на сервер мутабельного значения 1-го параметра
4 gas83
 
30.05.14
10:35
Crush
а без доработки конфигурации приемника никак?
5 butterbean
 
30.05.14
10:40
(3) делай через НаборЗаписей
6 Crush
 
30.05.14
10:46
(4) Ты в (3) нормально сделал. Я в (2) написал вариант, что б не лезть постоянно в СоединениеС_База_УПО и не искать ссылки.
7 gas83
 
30.05.14
10:49
(5)  КонтрагнетНайден = ПодключениеV83.Справочники.Контрагенты.НайтиПоКоду("812002794");
    
            НаборЗаписей = ПодключениеV83.РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.Объект.Установить(КонтрагнетНайден);
            НаборЗаписей.Прочитать();
            
            НоваяЗапись = НаборЗаписей.Добавить();
            НоваяЗапись.Объект = КонтрагнетНайден;
            НоваяЗапись.Тип = ПодключениеV83.Перечисления.ТипыКонтактнойИнформации.Адрес;
            НоваяЗапись.Вид = ПодключениеV83.Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
            НоваяЗапись.Представление = "Россия";
            //
            НаборЗаписей.Записать();
таже ошибка про мутабельность
8 del123
 
30.05.14
10:51
что такое КонтрагентНайден?
9 del123
 
30.05.14
10:51
А вижу
10 del123
 
30.05.14
10:52
А на какую строку именно ругается?)
11 gas83
 
30.05.14
10:55
(10) на 1-й параметр метода упоПередЗаписьюВРегистрПередЗаписью() метод ничего не делает пустой :) первый параметр Источник.
12 Генератор
 
30.05.14
10:57
наверно подписки, у модуля которых нет галочки на внешнее соединение, нужно попробовать записывать в режиме обмена данными
13 takefive
 
30.05.14
11:00
(4) КД2 такое умеет.
14 gas83
 
30.05.14
11:00
(12) да у модуля Сервер и Клиент(обыч прилож). Как в режиме обмена?
15 Генератор
 
30.05.14
11:01
(14) НаборЗаписей.ОбменДанными.Загрузка = Истина; перед записать
16 gas83
 
30.05.14
11:06
(15) таже ошибка мутабельность!
17 Генератор
 
30.05.14
11:07
(16)да, там была бы другая ошибка
18 gas83
 
30.05.14
11:15
(17) сделал как (15) ошибка мутабельность.
19 gas83
 
30.05.14
11:16
НаборЗаписей.DataExchange = true попробую
20 gas83
 
30.05.14
11:27
НаборЗаписей.DataExchange.Load = Истина; не помогло ошибка повторяется.
21 gas83
 
30.05.14
11:39
Кто-нибудь что то подобное реализовывал?
22 gas83
 
30.05.14
15:33
Всем спасибо! Реализую как в(7). В конфигурации приемнике придется у модуля в свойствах проставить Внешнее соединение .
AdBlock убивает бесплатный контент. 1Сергей