|
Как переделать из таблицы значений массив | ☑ | ||
---|---|---|---|---|
0
ice123
30.11.13
✎
17:54
|
Из базы 77, подключаемой на OLE на обычных формах бралась ТЗ.
На управляемом приложении подключение по OLE осуществляется на клиенте, а на клиенте таблицы значений нет. Как сформировать массив аналогичный таблице значений? |
|||
1
MKZM
30.11.13
✎
18:05
|
Пиши в дбф и читай.
|
|||
2
ice123
30.11.13
✎
18:13
|
(1)а можно поподробнее....
|
|||
3
MKZM
30.11.13
✎
18:21
|
набери с поисковой системе 1с и дбф
|
|||
4
MKZM
30.11.13
✎
18:24
|
обычных формах бралась
а на клиенте таблицы значений нет |
|||
5
MKZM
30.11.13
✎
18:25
|
4 - не посмотрел, что на упр. ф.
|
|||
6
ice123
30.11.13
✎
18:27
|
(4)Поэтому и пытаюсь сформировать двумерный массив аналогичный ТЗ, только не пойму как...
|
|||
7
Wobland
30.11.13
✎
18:28
|
а зачем клиенту ТЗ?
|
|||
8
m-serg74
30.11.13
✎
18:28
|
(6) массив элементы которого структуры с ключами такими как названия колонок у табл. знач.
|
|||
9
MKZM
30.11.13
✎
18:30
|
Если тз типизирована и првильные типы - проблем не должно быть вроде.
|
|||
10
m-serg74
30.11.13
✎
18:31
|
(9) проблем с чем?
|
|||
11
ice123
30.11.13
✎
18:32
|
(9)т.е. я правильно понимаю, что надо прописать все типы колонок?
|
|||
12
ice123
30.11.13
✎
18:32
|
(8) можно примерчик, хоть в 2 элемента...
|
|||
13
m-serg74
30.11.13
✎
18:33
|
(11) лучше расскажи откуда в 77 берется ТЗ? может как то подругому оттуда данные брать?
|
|||
14
MKZM
30.11.13
✎
18:33
|
Вроде в тонком нет возможности передать просто так. Нужен реквизит.
|
|||
15
m-serg74
30.11.13
✎
18:33
|
(12) можно только скажи где подгатавливать в 77 или в УФ
|
|||
16
m-serg74
30.11.13
✎
18:34
|
(14) Вы кому адресуете свои сообщения:-) неясно, может укажите
|
|||
17
MKZM
30.11.13
✎
18:36
|
(16) Не вам. Это даже никому :)
(15) Из базы 77 |
|||
18
m-serg74
30.11.13
✎
18:38
|
||||
19
ice123
30.11.13
✎
18:38
|
(16)данные из 77 берутся по OLE-соединению, в обычных формах все загонялось в ТЗ, которое потом обрабатывалось...
сейчас надо куда-то получить данные, полученные OLE соединением, чтобы потом передать на сервер, т.к. там есть еще одна ТЗ, которая в свою очередь берется из базы 8.2, данные которой сравниваются с ТЗ, полученной из 77 |
|||
20
ice123
30.11.13
✎
18:39
|
(18) не я сам по себе...
|
|||
21
MKZM
30.11.13
✎
18:40
|
(18) Нет. Я просто напомнил заголовок.
|
|||
22
MKZM
30.11.13
✎
18:41
|
(18) Вдруг мой текст понятнее будет. )
|
|||
23
ice123
30.11.13
✎
18:42
|
(0) как вообще можно правильней реализовать следующую задачу: надо сравнить данные базы 77 и данные 8.2(управляемое приложение), наверное так правильней будет сформулировать
|
|||
24
m-serg74
30.11.13
✎
18:42
|
(20) (21) как то думаю так:
ИсхТЗ = СоздатьОбъект("ТаблицаЗначений"); ИсхТЗ.НоваяКолонка("Колонка1"); ИсхТЗ.НоваяКолонка("Колонка2"); НовТЗ = СоздатьОбъект("СписокЗначений"); ИсхТЗ.ВыбратьСтроки(); Пока ИсхТЗ.ПолучитьСтроку() = 1 Цикл НовСтр = СоздатьОбъект("СписокЗначений"); НовСтр.ДобавитьЗначение(ИсхТЗ.Колонка1, "Колонка1"); НовСтр.ДобавитьЗначение(ИсхТЗ.Колонка2, "Колонка2"); НовТЗ.ДобавитьЗначение(НовСтр, "Строка" + ИсхТЗ.НомерСтроки); КонецЦикла; |
|||
25
m-serg74
30.11.13
✎
18:44
|
(23) так тогда получайте данные из 77 запоминайте, а на сервере сравнивайте с данными УФ
|
|||
26
m-serg74
30.11.13
✎
18:47
|
(17) /(15) Из базы 77/
обманщик))) (19) говорит: /данные из 77 берутся по OLE-соединению, в обычных формах все загонялось в ТЗ/ втаком случае на клиенте делайте массив, а данные из 77 укладывайте в Структура с нужными названиями ключей, потом все это на сервер и проверяйте |
|||
27
ice123
30.11.13
✎
18:48
|
(26) тогда получается массив не нужен?
|
|||
28
m-serg74
30.11.13
✎
18:52
|
(27) Вы все так абстрактно описываете что я не знаю нужен или нет))) но если нужен то примерно так:
НовТЗ = Новый Массив; Для Сч = 1 По СколькоНужно Цикл НовСтр = Новый Структура; НовСтр.Вставить("Колонка1", ЗначениеКолонки1Из77); НовСтр.Вставить("Колонка2", ЗначениеКолонки2Из77); НовТЗ.Добавить(НовСтр); КонецЦикла; ПровериитьНаСервере(НовТЗ); |
|||
29
ice123
30.11.13
✎
18:56
|
(28) вот что-то подобное я и писал, а вот значение строки в этом массиве как записываться будет?
|
|||
30
ice123
30.11.13
✎
18:57
|
(28) т.е. в массиве НовТЗ
|
|||
31
m-serg74
30.11.13
✎
18:59
|
(29) что значит:
/а вот значение строки в этом массиве как записываться будет?/ НовСтр = Новый Структура; НовСтр.Вставить("Колонка1", ЗначениеКолонки1Из77); НовСтр.Вставить("Колонка2", ЗначениеКолонки2Из77); это типа строка НовТЗ.Добавить(НовСтр); а это типа добавили строку в ТЗ, которая на самом деле массив |
|||
32
ice123
30.11.13
✎
19:01
|
т.е. сперва в массив пишутся заголовки столбцов, а потом сами строки? или же сразу пишутся строки без заголовков, что-то я совсем запутался...
|
|||
33
ice123
30.11.13
✎
19:03
|
(31) наверное, судя по коду заголовки столбцов не надо писать...
|
|||
34
m-serg74
30.11.13
✎
19:03
|
(32) да что там путаться 5 строк кода
НовТЗ = Новый Массив; //создаем массив вместо ранешней ТЗ Для Сч = 1 По СколькоНужно Цикл НовСтр = Новый Структура; //типа создаем строку ТЗ // типа заполняем поля строки НовСтр.Вставить("Колонка1", ЗначениеКолонки1Из77); НовСтр.Вставить("Колонка2", ЗначениеКолонки2Из77); НовТЗ.Добавить(НовСтр); // типа добавляем строку в ТЗ КонецЦикла; // типа отправляем типа ТЗ на проверку на сервер ПровериитьНаСервере(НовТЗ); |
|||
35
m-serg74
30.11.13
✎
19:04
|
(33)
/наверное, судя по коду заголовки столбцов не надо писать.../ как на сервере определять будешь где что? можно конечно по номерам обращаться |
|||
36
ice123
30.11.13
✎
19:05
|
(35)ВСЕ ДОШЛО!!! СПАСИБО ОГРОМНОЕ!!!!!!!!!!
|
|||
37
m-serg74
30.11.13
✎
19:06
|
(36) Слава Создателю!!! :-)
|
|||
38
ice123
30.11.13
✎
19:06
|
(1)ХОТЯ И ЭТО ПРЕДЛОЖЕНИЕ НЕ ЛИШЕНО СМЫСЛА, СПАСИБО ВСЕМ!!!
|
|||
39
m-serg74
30.11.13
✎
19:20
|
(38) тогда добавлю еще 5 копеек
COMОбъект (COMObject) COMОбъект (COMObject) Конструкторы: По имени приложения Описание: Создает COM-объект (например, Word, Excel и т.д.). Методы и свойства СОМ-объектов в дальнейшем становятся доступными через данный объект. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. доступность на сервере!!! читай данные из 77 сразу на сервере там и ТЗ можно делать и проверять сразу можно клиенту только вернешь результат проверки и все |
|||
40
ice123
30.11.13
✎
19:30
|
(39) вот тоже напоролся на эти грабли... потом где-то на просторах интернета нашел, что OLE только на клиенте исполняется
|
|||
41
ice123
30.11.13
✎
19:31
|
(39) кстати переписывал уже НаСервере вызов 77 и получение данных, выдавалась ошибка
|
|||
42
m-serg74
30.11.13
✎
19:31
|
(40) /вот тоже напоролся на эти грабли/
не работает? |
|||
43
ice123
30.11.13
✎
19:34
|
(40) не работает...
у меня вылетало на этих строках: в7 = Новый COMОбъект("V1CEnterprise.Application"); _открыта = в7.initialize(в7.RMTrade, СокрЛП(ПараметрыПодключения.ПараметрыБД), "NO_SPLASH_SHOW"); |
|||
44
ice123
30.11.13
✎
19:35
|
(43)если я ничего не путаю...
|
|||
45
m-serg74
30.11.13
✎
19:40
|
(44) наверное потому что у 7ки нет коннектора а только аппликэйшн((( это с 8ка с 8кой наверное можно с сервера соединяться
|
|||
46
m-serg74
30.11.13
✎
19:44
|
не правильно
Новый COMОбъект("V1CEnterprise.Application"); |
|||
47
m-serg74
30.11.13
✎
19:45
|
вот пишут что соединяется просто в другом месте накосячено
http://forum.infostart.ru/forum26/topic92516/ |
|||
48
m-serg74
30.11.13
✎
19:47
|
(43) + к (46)
База=Новый COMОбъект("V77.Application"); СтрокаПодключения = "/D"""+СокрЛП("\\server\1C\")+""" /N"""+СокрЛП("user")+""" /P"""+СокрЛП("pass")+""""; Открыта=База.Initialize(База.RMTrade,СтрокаПодключения,"NO_SPLASH_SHOW"); |
|||
49
ice123
30.11.13
✎
19:50
|
вот блин, а мне попалось другое обсуждение...http://www.1c-pro.ru/topic25236.html
(48)СПАСИБО! ПОПРОБУЮ ПОПРАВИТЬ, МОЖЕТ И ПРАВДА ЗАРАБОТАЕТ! |
|||
50
m-serg74
30.11.13
✎
19:52
|
(49) ну чувак пишет что у него работает
|
|||
51
m-serg74
30.11.13
✎
19:53
|
(49) так правильно зачем сом создавать на клиенте и передавать на сервер, если можно сразу и создать и пользовать на сервере
|
|||
52
ice123
30.11.13
✎
19:55
|
(50) мне по тексту этого обсуждения http://www.1c-pro.ru/topic25236.html попалась фраза, что это соединение не выполняется на сервере...
|
|||
53
m-serg74
30.11.13
✎
19:57
|
(52) надо будет на всякий случай завтра тоже ради знаний попробовать)))
|
|||
54
ice123
30.11.13
✎
20:04
|
(53) еще раз спасибо за помощь, а то последнее время во что-нибудь упрешься с управляемыми формами и никто на форуме не хочет помочь, обхамят и все...
|
|||
55
ice123
30.11.13
✎
20:35
|
в7 = Новый COMОбъект("V1CEnterprise.Application"); поправил на "V77.Application" перенес все процедуры и функции связанные с вызовом базы 77 на сервер, все заработало, так что действительно COMОбъекты работают и на клиенте и на сервере!!!
|
|||
56
m-serg74
30.11.13
✎
21:02
|
(55) я тоже проверил))) пашет))) правда все таки почитал и получается клиент с комом + передача полученных данных на сервер все ж более надежно, так как сервер может быть не виндовым, там говорят СОМ+ может не быть, х64 тоже вроде может косячиться... и т.п. неизвестность
а еще заметил что лучше потратить время на Выгрузить в файл из 7ки(ХМЛ или другой какой), а потом его Загрузить в 8ку и делай что хочешь... |
|||
57
ice123
30.11.13
✎
21:37
|
(56)Спасибо, тоже буду иметь ввиду по поводу выгрузить и загрузить заново
|
|||
58
hhhh
30.11.13
✎
22:32
|
(57) лучше всё-таки не мудрить, создать тз на форме, а на клиенте она будет видна как ДанныеФормыКоллекция. И вот в эту коллекцию на клиенте всё из 7.7 переписать. И никаких файлов не надо.
|
|||
59
m-serg74
01.12.13
✎
14:21
|
(58) /И никаких файлов не надо./
я писал "универсально", а не "всегда надо делать только так" бывает что одна база в одном месте, а другая совсем в другом, например Центр и Филиал, КОМ будет через инет работать? А файл будет точно... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |