|
Создание документа в другой базе | ☑ | ||
---|---|---|---|---|
0
Gobo
30.06.13
✎
17:26
|
Доброе время суток !
Существует 2 базы: 1) База Производства (БП) 2) База Бухгалтерии (ББ) В БП в документе по кнопке "СчетФактура" необходимо подключиться к ББ и там создать документ "СчетФактура". Я в семерке подобную задачу с помощью OLE решал. Как это лучше реализовать ? |
|||
1
kosts
30.06.13
✎
17:26
|
(0) см. com-соединение
|
|||
2
Gobo
30.06.13
✎
17:59
|
Для Управляемого Приложения доступно COM соединение ?
СП не нашел: COMObject |
|||
3
Gobo
30.06.13
✎
18:03
|
Наверное - COMОбъект.
|
|||
4
Gobo
30.06.13
✎
18:05
|
{Документ...Форма.ФормаДокумента.Форма(279)}: Ошибка при вызове конструктора (COMОбъект)
V8 = Новый COMОбъект ("V8.COMConnector"); по причине: Недопустимая строка с указанием класса |
|||
5
hhhh
30.06.13
✎
18:14
|
не 8, а 82. Или 83.
|
|||
6
ДенисЧ
30.06.13
✎
18:15
|
НаСервере делай
|
|||
7
Gobo
05.07.13
✎
22:09
|
Спасибо (5), (6)
Теперь возник другой вопрос. На своей базе ссылка на этот через COM созданный документ как сохранить ? Чтобы потом можно было найти переписать. |
|||
8
Пеппи
05.07.13
✎
22:13
|
(7) по номеру документа и дате наверное или хочешь именно ссылку в реквизите сохранять? тогда уид.
|
|||
9
Gobo
05.07.13
✎
22:26
|
Есть риск что в той базе вручную поменяют номер или дату.
GUID или UUID ? |
|||
10
Gobo
06.07.13
✎
08:13
|
Не понял как мне сохранить УникальныйИдентификатор другой базы.
Сделал так: Создал в своей базы в документе реквизит - ДокБух с типом УникальныйИдентификатор. Потом делаю следующее: V8 = Новый COMОбъект ("V82.COMConnector"); СтрСоед="File=""D:\1C82\Typic_2.0.8.17""; Usr =""Бухгалтер"";"; База82 = V8.Connect (СтрСоед); НовыйДокумент = База82.Документы.РеализацияТоваровУслуг.СоздатьДокумент(); НовыйДокумент.Дата = ТекущаяДата(); НовыйДокумент.Записать(); ГУИД=ЗначениеВСтрокуВнутр(НовыйДокумент.Ссылка.УникальныйИдентификатор()); Объект.ДокБух=ГУИД; Но ДокБух все равно равен пустому идентификатору вида 00000000-0000-0000-0000-000000000000 Почему ? |
|||
11
hhhh
06.07.13
✎
11:28
|
Объект.Записать()
|
|||
12
George Wheels
06.07.13
✎
13:08
|
Сначала записать документ, потом получать идентификатор.
|
|||
13
Gobo
06.07.13
✎
13:40
|
(12) - Записать документ который в другой базе ?
Тогда так и сделано. А попытка записать документ в текущей базе не получается. У меня процедура находится в модуле формы: V8 = Новый COMОбъект ("V82.COMConnector"); СтрСоед="File=""D:\1C82\Typic_2.0.8.17""; Usr =""Бухгалтер"";"; База82 = V8.Connect (СтрСоед); НовыйДокумент = База82.Документы.РеализацияТоваровУслуг.СоздатьДокумент(); НовыйДокумент.Дата = ТекущаяДата(); НовыйДокумент.Записать(); ГУИД=ЗначениеВСтрокуВнутр(НовыйДокумент.Ссылка.УникальныйИдентификатор()); Сообщить("ГУИД="+ГУИД); Объект.ДокБух=ГУИД; Объект.Записать(); Результат: ГУИД={"#",2319dcf1-f4ee-438d-b16f-6a145d6b9422} Метод объекта не обнаружен (Записать) |
|||
14
Cyberhawk
06.07.13
✎
13:42
|
Запиши на сервере
|
|||
15
Gobo
06.07.13
✎
13:46
|
Это имелось введу ?
&НаСервере Процедура СоздCOMдок() |
|||
16
Cyberhawk
06.07.13
✎
14:09
|
А на какую строку он ругается?
|
|||
17
Cyberhawk
06.07.13
✎
14:09
|
На "НовыйДокумент.Записать();" или на "Объект.Записать();"?
|
|||
18
Defender aka LINN
06.07.13
✎
14:50
|
(13) За "Объект.Записать();" в модуле формы - пойди и сам прострели себе коленку
|
|||
19
Gobo
06.07.13
✎
16:07
|
(18) Ваша рекомендация ?
|
|||
20
Gobo
06.07.13
✎
16:08
|
Тут была рекомендация записать Объект (11)
|
|||
21
Gobo
06.07.13
✎
16:17
|
Метод Записать думаю тут не по теме.
Меня интересует больше этот вопрос. ГУИД=ЗначениеВСтрокуВнутр(НовыйДокумент.Ссылка.УникальныйИдентификатор()); Сообщить("ГУИД="+ГУИД); НовыйGUID = Новый УникальныйИдентификатор(ГУИД); ДокТМЗ=База82.Документы.СчетФактураВыданный.ПолучитьСсылку(НовыйGUID); Пишет: ГУИД={"#",2319dcf1-f4ee-438d-b16f-6a145d6b9422} {Документ.МойДок.Форма.ФормаДокумента.Форма(371)}: Ошибка при вызове конструктора (УникальныйИдентификатор) НовыйGUID = Новый УникальныйИдентификатор(ГУИД); по причине: Недопустимое значение параметра (параметр номер '1') |
|||
22
Gobo
06.07.13
✎
16:34
|
И всегда возвращает одинаковое значение
ГУИД=ЗначениеВСтрокуВнутр(НовыйДокумент.Ссылка.УникальныйИдентификатор()); Хотя создан через COM другой документ. |
|||
23
mikeA
06.07.13
✎
17:25
|
(21) ГУИД=Строка(НовыйДокумент.Ссылка.УникальныйИдентификатор());
|
|||
24
Gobo
06.07.13
✎
18:21
|
Сообщить показывает
ГУИД=COMОбъект |
|||
25
kosts
06.07.13
✎
19:02
|
Через COM можно протащить гуид в строковом формате.
|
|||
26
Gobo
07.07.13
✎
06:49
|
Вот так правильно ?
ГУИД=База82.String(НовыйДокумент.Ссылка.УникальныйИдентификатор()); |
|||
27
Defender aka LINN
07.07.13
✎
08:54
|
(19) ЭтаФорма.Записать(), очевидно же
|
|||
28
Gobo
07.07.13
✎
21:26
|
(27) , на клиенте написал:
Записать(); А я ранее пытался делать на сервере. На счет (26), правильно ? |
|||
29
mikeA
07.07.13
✎
21:47
|
(28) если новый документ в базе 82, так правильно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |