|
v7: Как передать СписокЗначений в базе через OLE? | ☑ | ||
---|---|---|---|---|
0
evgpinsk_
01.04.21
✎
11:35
|
Стоит задача из текущей 1с запустить обработку другой базы 1с, при этом передав ей в качестве параметра список значений /пусть это будет несколько строк/
Прог =СоздатьОбъект("v77.Application"); Прог.Initialize(...); перПараметры=СоздатьОбъект("СписокЗначений"); команда="ОткрытьФорму(""Обработка.ИмпортСчетов"","+ КАК ЗДЕСЬ УКАЗАТЬ СПСИОК ЗНАЧЕНИЕ В КАЧЕСТВЕ ПАРАМЕТРА?? +")"; Прог.ExecuteBatch(команда); |
|||
1
Mikeware
01.04.21
✎
11:36
|
не нужно так делать.
|
|||
2
Провинциальный 1сник
01.04.21
✎
11:37
|
Сериализуй
|
|||
3
acanta
01.04.21
✎
11:39
|
Список значений требуется создать в контексте вызываемой базы данных Прог.createobject()
И заполнить его значениями базовых типов или типов контекста вызываемой базы. |
|||
4
Mikeware
01.04.21
✎
11:40
|
(2) а откуда "та" форма знает, что нужно будет десериализовывать
или ты про ЗначениеИзСтрокиВнутр-ЗначениевСТрокуВнутр |
|||
5
Bigbro
01.04.21
✎
11:42
|
Прог.CreateObject()
|
|||
6
Bigbro
01.04.21
✎
11:43
|
Прог.EvalExpr()
а в базе подключения создать в глобальнике функции которые выполнят все что надо. |
|||
7
Провинциальный 1сник
01.04.21
✎
11:53
|
(4) Вообще считаю что всё через оле надо передавать лишь сериализованным. Иначе потери точности могут вылезти на числах, потому что в оле они преобразуются в float.
|
|||
8
evgpinsk_
01.04.21
✎
12:43
|
(1) а как нужно. Задача передать вид и номер документа, для дальнейшего его импорта
|
|||
9
evgpinsk_
01.04.21
✎
12:44
|
Сейчас пока передается только номер документа, нужно доапгрейдить - чтобы ещё передавать и вид документа
|
|||
10
evgpinsk_
01.04.21
✎
12:45
|
(3) ок, попробую так
|
|||
11
Builder
01.04.21
✎
12:50
|
(9) В чем проблема передать такие простые типы данных как число и строка?
Сделай хоть текст, заполни номером и типом и передавай его. |
|||
12
evgpinsk_
01.04.21
✎
12:52
|
Стоп. Я ведь вызываю открытие формы через Прог.ExecuteBatch(команда)
И мне в открытой форме нужно прочитать два параметра. Разве (3) поможет? |
|||
13
evgpinsk_
01.04.21
✎
12:54
|
(11) да, соединить в одну строку два параметра можно, но как-то не очень красиво. Красивей через список значений. В другом варианте их например может быть разное количество
|
|||
14
Mikeware
01.04.21
✎
12:56
|
(12) это можно сделать разными методами. но передавать тетей олей _принято_ простые типы
|
|||
15
Bigbro
01.04.21
✎
12:56
|
Перем СписокДляОЛЕ Экспорт;
Функция глВернутьСписокДляОЛЕ() список = СоздатьОбъект("СписокЗначений"); Возврат список; КонецФункции и Прог.EvalExpr(@@) |
|||
16
Builder
01.04.21
✎
12:57
|
(13) Чем красивей?
Тебе шашечки или ехать? Многострочный текст по сути точно такой же список значений. |
|||
17
evgpinsk_
01.04.21
✎
12:59
|
(16) если в другой задаче будет разное количество параметров, числа целые или с запятой, строки. Куча кода написать придется чтобы универсально обрабатывать это
|
|||
18
evgpinsk_
01.04.21
✎
13:02
|
(15) точно, затупил я. Создать во внешней базе глобальный список значений и его заполнять.
|
|||
19
azernot
01.04.21
✎
13:49
|
Много всякой инфы о работе с 7.7 по OLE
Основы работы с V7 через OLE http://my1c-archive.narod.ru/knowhow/v7_OLE.html |
|||
20
Mikeware
01.04.21
✎
13:54
|
(19) ойзря...
|
|||
21
Mikeware
01.04.21
✎
13:54
|
а хотя пофиг..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |