|
v8: Получение данных из 7.7 в 8.1 | ☑ | ||
---|---|---|---|---|
0
Uchenica74
15.11.13
✎
07:18
|
Доброе утро! Подключаюсь к 7.7 из 8.1, хочу получить данные из двух документов, но на строке "Если Д.ВыбратьДокументы(ДатаНач, ДатаКон)=1 Тогда" спотыкаюсь (метод не существует), подскажите пожалуйста, как правильно получить данные из документов.
ДатаНач = НачалоМесяца(Дата); ДатаКон = КонецМесяца(Дата); ТЗ = Новый ТаблицаЗначений; Т = Новый ТаблицаЗначений; V7=""; V7=Новый COMОбъект("V77s.Application"); Попытка strApp = "/D"""+ИмяКаталога+""" /N"""+ПользовательOLE+""" /P"""+Пароль+""""; Открыта=V7.Initialize(V7.RMTrade,strApp,"NO_SPLASH_SHOW"); Если Открыта Тогда Д = V7.CreateObject("Документ.aЗакрытиеПЛ_ГАс"); Пл = V7.CreateObject("Документ.aПЛ_ГАс"); Если Д.ВыбратьДокументы(ДатаНач, ДатаКон)=1 Тогда Пока Д.ПолучитьДокумент()=1 Цикл Если Д.Проведен()<>1 Тогда Продолжить; КонецЕсли; Если Д.ПЛ.Выбран()=0 Тогда Сообщить("Для документа "+Д.ТекущийДокумент()+" не указан путевой лист"); Продолжить; КонецЕсли; новстр = ТЗ.Добавить(); новстр.ДатаПЛ=Д.ПЛ.ДатаДок; новстр.НомерПЛ=Д.ПЛ.НомерДок; новстр.Автомобиль=Д.ПЛ.Авто.Наименование; КонецЦикла; КонецЕсли; Иначе Сообщить("Ошибка подключения к базе " + ИмяКаталога + " под пользователем " + ПользовательOLE); КонецЕсли; Исключение Сообщить("Ошибка подключения к базе " + ИмяКаталога + " под пользователем " + ПользовательOLE); КонецПопытки; V7=""; |
|||
1
Wobland
15.11.13
✎
07:22
|
не делай такую здоровую попытку
|
|||
2
Wobland
15.11.13
✎
07:23
|
+(1) и не скрывай фото
|
|||
3
Uchenica74
15.11.13
✎
07:32
|
подкорректировала:
Попытка strApp = "/D"""+ИмяКаталога+""" /N"""+ПользовательOLE+""" /P"""+Пароль+""""; Открыта=V7.Initialize(V7.RMTrade,strApp,"NO_SPLASH_SHOW"); Исключение Сообщить("Ошибка подключения к базе " + ИмяКаталога + " под пользователем " + ПользовательOLE); КонецПопытки; Если Открыта Тогда Д = V7.CreateObject("Документ.aЗакрытиеПЛ_ГАс"); Пл = V7.CreateObject("Документ.aПЛ_ГАс"); Если Д.ВыбратьДокументы(ДатаНач, ДатаКон)=1 Тогда Пока Д.ПолучитьДокумент()=1 Цикла Все равно ругается Метод объекта не обнаружен |
|||
4
ЧессМастер
15.11.13
✎
07:56
|
так подает на чем ? на Пока Д.ПолучитьДокумент()=1 Цикла ?
вообще то Пока Д.ПолучитьДокумент()=1 ЦикЛ может в этом ошибка ? :) |
|||
5
George Wheels
15.11.13
✎
08:00
|
Попробуй v77.Application.
v77s для SQL. |
|||
6
Uchenica74
15.11.13
✎
08:03
|
(4) при копировании наверно ЦиклА получилось(( в коде все норм.
|
|||
7
Uchenica74
15.11.13
✎
08:04
|
(5) такой вариант пробовала, не цепляется к базе((
|
|||
8
ЧессМастер
15.11.13
✎
08:17
|
(6) попробуй что-то сделать с объектом Д - например создай его и запиши - то есть проверь создался у тебя вообще этот объект или нет
|
|||
9
Wobland
15.11.13
✎
08:17
|
(3) возврат не хочешь сделать при неудачном подключении?
|
|||
10
George Wheels
15.11.13
✎
08:17
|
Не надо Открыта=V7.Initialize(V7.RMTrade,strApp,"NO_SPLASH_SHOW");
Попробовал у себя Открыта = Ложь, но подключение к базе есть и всё работает. Убери проверку Открыта. |
|||
11
George Wheels
15.11.13
✎
08:18
|
(10) + Поэтому Д = Неопределено.
|
|||
12
ЧессМастер
15.11.13
✎
08:20
|
(6) и кстати - Открыта или нет ты сможешь отследить по монитору пользователей
|
|||
13
Uchenica74
15.11.13
✎
08:24
|
(9) да точно Возврат здесь гуманнее использовать
проверку на Открыта тоже убрала - от нее действительно нет смысла, тем более с Возвратом))) (10) |
|||
14
Uchenica74
15.11.13
✎
08:26
|
после подключения я создаю объекты Д = V7.CreateObject("Документ.aЗакрытиеПЛ_ГАс");
Пл = V7.CreateObject("Документ.aПЛ_ГАс"); их значение COMобъект |
|||
15
George Wheels
15.11.13
✎
08:28
|
ВыбратьДокументы это Процедура, а не Функция.
|
|||
16
George Wheels
15.11.13
✎
08:32
|
(15) + Не надо так
Если Д.ВыбратьДокументы(...) = 1 Тогда Напиши просто Д.ВыбратьДокументы(...); это откроет выборку документов. |
|||
17
Uchenica74
15.11.13
✎
08:42
|
Вроде получилось ребят. Большое спасибо!!!
|
|||
18
ЧессМастер
15.11.13
✎
08:48
|
(17) сработало (16) ?
|
|||
19
Uchenica74
15.11.13
✎
09:00
|
Сработало Д.ВыбратьДокументы(ДатаНач, ДатаКон);
со всеми поправками (3)(10) |
|||
20
Uchenica74
15.11.13
✎
09:02
|
Еще как я поняла основная моя проблема заключалась в том что при исполнении кода, если в методах(синтаксис) я допускала ошибки, то 7.7. закрывалась аварийно, поэтому повторно я не помогла подключиться к ней.
|
|||
21
ЧессМастер
15.11.13
✎
09:03
|
(19) я думаю у тебя вызывало ошибку
Если Д.ВыбратьДокументы(...) = 1 Тогда по причине того что в контексте 82 Истина это не 1 а -1. а Ложь это 0. потому что в контексте 77 код Если Д.ВыбратьДокументы(...) = 1 Тогда прекрасно отрабатывает |
|||
22
Uchenica74
15.11.13
✎
09:06
|
(21)а в контексте 8.1 Истина это 1, а Ложь это 0? Тогда не эта причина у меня ж 8.1
|
|||
23
ЧессМастер
15.11.13
✎
09:09
|
(22) думаю в контексте 8.1 тоже Истина это -1, а Ложь это 0.
я делал обмен 77-82 поэтому могу точно про 82 говорить главное у тебя заработало |
|||
24
Uchenica74
15.11.13
✎
09:13
|
Нет, снова сломалось все. Сейчас делаю индексацию.
Понять не могу, что блокирует подключение. я подключаюсь успешно, налетаю на синтаксическую ошибку, после этого делаю индексацию, и вот уже после индексации не могу подключиться к самой базе. |
|||
25
ЧессМастер
15.11.13
✎
09:22
|
(24) посмотри в мониторе пользователей - остается ли подключение после вылета. и убери NO_SPLASH_SHOW - подключись так чтобы видеть весь процесс
|
|||
26
Uchenica74
15.11.13
✎
09:31
|
Да, поняла, при аварийном завершении остается подключение к 7.7 пока не закрою 8.1
|
|||
27
George Wheels
15.11.13
✎
09:34
|
(0) Если Д.ПЛ.Выбран()=0 Тогда
Здесь ПЛ - это реквизит Д? (26) В Исключение добавь V7 = ""; |
|||
28
Uchenica74
15.11.13
✎
09:36
|
(27) Да, ПЛ - это реквизит Д
|
|||
29
George Wheels
15.11.13
✎
09:37
|
(27) + И там же в Исключение используй ИнформацияОбОшибке()
|
|||
30
Uchenica74
15.11.13
✎
09:40
|
(29) Хорошо, спасибо!!!
|
|||
31
Мыш
15.11.13
✎
09:42
|
(26) Чтоб 77 в памяти не оставалась делай обработку исключений:
Исключение V7 = Неопределено; КонецПопытки; |
|||
32
Uchenica74
15.11.13
✎
09:50
|
Всем еще раз огромное спасибо! Хорошие советы! Очень помогли!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |