|
Получить итоги из 8.2 в базе 7.7 | ☑ | ||
---|---|---|---|---|
0
first_may
31.08.15
✎
16:23
|
Добрый день.
1 из 8.2 подключаюсь к 7.7 ВнешнийОбъект = Новый COMОбъект("V77.Application"); Попытка Открыта = ВнешнийОбъект.Initialize(ВнешнийОбъект.RMTrade(), "/D""" + СокрЛП(ЗУП) + """ /N""" + СокрЛП(Пользователь) + """ /P""" + СокрЛП(Пароль) + """", "NO_SPLASH_SHOW"); //Сообщить("Соединение установлено ..."); Если Открыта Тогда ЕстьПодключение = Истина; //Сообщить("База успешно подключена."); Иначе ЕстьПодключение = Ложь; Сообщить("Ошибка при подключении!"); КонецЕсли; Исключение ЕстьПодключение = Ложь; Сообщить("Не удалось подключиться к внешней базе ..."); КонецПопытки; 2 затем пытаюсь получить итоги БухИт = ВнешнийОбъект.CreateObject("БухгалтерскиеИтоги"); БухИт.ВыполнитьЗапрос(ДатаНач, ДатаКон, "44.1.1", "71.1", , , "Проводка", "С"); БухИт.ВыбратьПериоды(1); Пока БухИт.ПолучитьПериод() = 1 Цикл Но получаю ошибку в строке БухИт.ВыполнитьЗапрос... Подскажите пожалуйта, как правильно получить итоги? |
|||
1
ДенисЧ
31.08.15
✎
16:24
|
все значения укажи.
По оле нельзя использовать значения по умолчанию |
|||
2
first_may
31.08.15
✎
16:26
|
(1) а как валюту указать?
|
|||
3
ДенисЧ
31.08.15
✎
16:26
|
(2) найти там и указать...
|
|||
4
Михаил Козлов
31.08.15
✎
16:28
|
(0) Давно было (нюанс с датами):
ДатаНачV7 = ФОРМАТ(начДата, "ДФ=dd.MM.yy"); ДатаКонV7 = ФОРМАТ(конДата, "ДФ=dd.MM.yy"); Ит.ВыполнитьЗапрос(ДатаНачV7, ДатаНачV7, Счет); Ит.ВыбратьСубконто(1,0,0,0,0,"",0); |
|||
5
first_may
31.08.15
✎
16:36
|
Получил валюту
Спр = ВнешнийОбъект.CreateObject("Справочник.Валюты"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.Код = "643" Тогда Прервать; КонецЕсли; КонецЦикла; Преобразовал даты ДатаНачV7 = Формат(ДатаНач, "ДФ=dd.MM.yy"); ДатаКонV7 = Формат(ДатаКон, "ДФ=dd.MM.yy"); Получаю итоги БухИт = ВнешнийОбъект.CreateObject("БухгалтерскиеИтоги"); БухИт.ВыполнитьЗапрос(ДатаНачV7, ДатаКонV7, "44.1.1", "71.1", Спр, 1, "Проводка", "С"); БухИт.ВыбратьПериоды(1); Пытаюсь перебрать в цикле Пока БухИт.ПолучитьПериод() = 1 Цикл Но данных нет. Ошибки тоже. А если сформировать ОСВ в 7.7, то за этот период данные есть. |
|||
6
aka AMIGO
31.08.15
✎
16:42
|
А даты - точно передаются?
|
|||
7
first_may
31.08.15
✎
16:44
|
(6) Да
ДатаНачV7 = "01.01.15" ДатаКонV7 = "31.08.15" |
|||
8
aka AMIGO
31.08.15
✎
16:49
|
ФОРМАТ(начДата, "ДФ=dd.MM.yyyy"); - может так?
|
|||
9
first_may
31.08.15
✎
16:53
|
(8) Нет, не влияет :(.
|
|||
10
aka AMIGO
31.08.15
✎
16:54
|
+8 кстати, можно в 7.7 попробовать выполнить запрос
БухИт.ВыполнитьЗапрос(ДатаНачV7, ДатаКонV7, "44.1.1", "71.1", Спр, 1, "Проводка", "С"); и посмотреть: выдаст/нет результаты |
|||
11
first_may
31.08.15
✎
16:54
|
Когда в отладчике смотрю
БухИт.ВыбратьПериоды(1) то получаю значение 0, поэтому и цикл не проходит. Значит ошибка в БухИт.ВыполнитьЗапрос(ДатаНачV7, ДатаКонV7, "44.1.1", "71.1", Спр.ТекущийЭлемент(), 1, "Проводка", "С"); |
|||
12
first_may
31.08.15
✎
16:55
|
(10) в отладчике строка
БухИт.ВыполнитьЗапрос(ДатаНачV7, ДатаКонV7, "44.1.1", "71.1", Спр.ТекущийЭлемент(), 1, "Проводка", "С") возвращает значение 1 |
|||
13
hhhh
31.08.15
✎
17:12
|
а БухИт.ВыбратьПериоды(1) что возвращает?
|
|||
14
first_may
31.08.15
✎
17:21
|
(13) ВыбратьПериоды(<?>,,,)
Синтаксис: ВыбратьПериоды(<ФлагВсе>,<ФлагДК>,<Номер>,<РазвСальдо>) Назначение: Открывает выборку периодов. Эту строку убирал БухИт.ВыбратьПериоды(); Результат тот же. |
|||
15
kubik_live
31.08.15
✎
21:02
|
Грабли...
Надо обязательно позиционировать счета OLE: "44.1.1" и "71.1" не прокатит. Надо через: СчетВн= БухИт = ВнешнийОбъект.CreateObject("ПланСчетов.Основной"); СчетВн4411=СчетВн.НайтиПоКоду("44.1.1"); СчетВн711=СчетВн.НайтиПоКоду("71.1"); и их вставлять в бухзапрос. |
|||
16
kubik_live
31.08.15
✎
21:02
|
Сорри..
СчетВн= ВнешнийОбъект.CreateObject("ПланСчетов.Основной"); |
|||
17
GreyK
31.08.15
✎
21:42
|
(15) Издеваешься? По ОЛЕ передаются текст, число и дата..
|
|||
18
kubik_live
31.08.15
✎
21:45
|
(17) Это правда.
Но... Счета не передаются. Юзай СП 77 |
|||
19
first_may
31.08.15
✎
21:48
|
(18) сделал вот так
СчетВн4411 = ВнешнийОбъект.CreateObject("Счет"); СчетВн4411.НайтиПоКоду("44.1.1"); СчетВн711 = ВнешнийОбъект.CreateObject("Счет"); СчетВн711.НайтиПоКоду("71.1"); передал вот так БухИт = ВнешнийОбъект.CreateObject("БухгалтерскиеИтоги"); БухИт.ВыполнитьЗапрос(ДатаНачV7, ДатаКонV7, СчетВн4411, СчетВн711, Спр, 1, "Проводка", "С"); - в отладчике значение 1 здесь Пока БухИт.ПолучитьПериод() = 1 Цикл ничего не получается, так как БухИт.ПолучитьПериод() = 0 - в отладчике |
|||
20
first_may
31.08.15
✎
21:49
|
может уже проще документы перебрать? Мне нужны только авансовые отчеты (табличная часть).
|
|||
21
kubik_live
31.08.15
✎
21:49
|
СчетВн4411 = ВнешнийОбъект.CreateObject("Счет");
СчетВн4411.НайтиПоКоду("44.1.1"); СчетВн711.НайтиПоКоду("71.1"); А так почему не сделать? |
|||
22
kubik_live
31.08.15
✎
21:51
|
Сорри...
СчетВн = ВнешнийОбъект.CreateObject("Счет"); СчетВн4411=СчетВн.НайтиПоКоду("44.1.1"); СчетВн711=СчетВн.НайтиПоКоду("71.1"); Так сделай! |
|||
23
first_may
31.08.15
✎
21:51
|
(21) потому что
СчетВн4411.НайтиПоКоду("44.1.1") - возвращает значение 1, то есть нашел, а надо же сам объект. А я же так и сделал. |
|||
24
kubik_live
31.08.15
✎
21:52
|
СчетВн= ВнешнийОбъект.CreateObject("ПланСчетов.Основной");
|
|||
25
first_may
31.08.15
✎
21:54
|
(24) тут
СчетВн = ВнешнийОбъект.CreateObject("Счет"); СчетВн4411 = СчетВн.НайтиПоКоду("44.1.1"); - значение 1 СчетВн711 = СчетВн.НайтиПоКоду("71.1"); - значение 1 тут ВнешнийОбъект.CreateObject("ПланСчетов.Основной") - значение {(1)}: Ошибка при вызове метода контекста (CreateObject) |
|||
26
first_may
31.08.15
✎
21:54
|
поэтому правильно вот
СчетВн4411 = ВнешнийОбъект.CreateObject("Счет"); СчетВн4411.НайтиПоКоду("44.1.1"); СчетВн711 = ВнешнийОбъект.CreateObject("Счет"); СчетВн711.НайтиПоКоду("71.1"); |
|||
27
Фокусник
31.08.15
✎
22:02
|
(26) имхо, передать в бухзапрос в параметр нужно так: СчетВн711.ТекущийСчет()
|
|||
28
first_may
31.08.15
✎
22:06
|
(27) пробовал - ошибка.
В итоге написал вот БухИт.ВыполнитьЗапрос(ДатаНачV7, ДатаКонV7, "44.1.1", "71.1", "руб", 1, "Проводка", "С"); БухИт.ВыбратьПериоды(1); Пока БухИт.ПолучитьПериод() = 1 Цикл ФизЛицо = Строка(БухИт.Операция.Кредит.Сотрудники); Сообщить(ФизЛицо); получилось, что выводится всегда COMОбъект COMОбъект COMОбъект ... как привести к "человеческому" виду? |
|||
29
first_may
31.08.15
✎
22:07
|
Аналогичный код в обработке 7.7
БухИт=СоздатьОбъект("БухгалтерскиеИтоги"); БухИт.ВыполнитьЗапрос('01.07.2015', '30.07.2015', "44.1.1", "71.1", , 1, "Проводка", "С"); БухИт.ВыбратьПериоды(1); Пока БухИт.ПолучитьПериод() = 1 Цикл ФизЛицо = Строка(БухИт.Операция.Кредит.Сотрудники); Сообщить(ФизЛицо); выводит красиво фамилии... |
|||
30
GreyK
31.08.15
✎
22:10
|
(18) Параметр Счет у функции ВыполнитьЗапрос() по БухИтогам может быть текстовым, не ко сну будет сказано :)
|
|||
31
first_may
31.08.15
✎
22:13
|
Получилось. Вот текст
ДатаНачV7 = Формат(ДатаНач, "ДФ=dd.MM.yy"); ДатаКонV7 = Формат(ДатаКон, "ДФ=dd.MM.yy"); БухИт = ВнешнийОбъект.CreateObject("БухгалтерскиеИтоги"); БухИт.ВыполнитьЗапрос(ДатаНачV7, ДатаКонV7, "44.1.1", "71.1", "руб", 1, "Проводка", "С"); БухИт.ВыбратьПериоды(1); Пока БухИт.ПолучитьПериод() = 1 Цикл ФизЛицо = Строка(БухИт.Операция.Кредит.Сотрудники.Наименование); Сообщить(ФизЛицо); |
|||
32
Злопчинский
01.09.15
✎
03:06
|
Сверху кое-кто гонит пургу
. СтрокаСчетов = "60.1,60.2,62.1,62.2,76.5"; Ит = Оле.CreateObject("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(Оле.EvalExpr("ВидыСубконто.Контрагенты")); Ит.ИспользоватьСубконто(Оле.EvalExpr("ВидыСубконто.Договоры")); Ит.ВыполнитьЗапрос(ДатаАнализа,ДатаАнализа,СтрокаСчетов); . Прекрасно выполняется... счета строками передаются... |
|||
33
first_may
01.09.15
✎
13:26
|
Всем спасибо. Работу сдал :).
|
|||
34
Злопчинский
01.09.15
✎
13:28
|
.. отдыхаю на Багамах..? ;-)
Успехов! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |