![]() |
|
1с 8.2 Подключаюсь по Com к 7.7. Есть трудности. | ☑ | ||
---|---|---|---|---|
0
bard666
26.06.14
✎
12:13
|
Всем привет! Пытаюсь разобраться как через Com заставить 7.7 выполнить запрос. Получается ошибка
Ошибка при вызове метода контекста (Выполнить): Произошла исключительная ситуация (1С:Предприятие): С <<?>> НачалоГода по КонецПериодаОсмотра; Запрос[2] : Ошибка в выражении 'НачалоГода' Код такой: ЖрнЗарплата = База77.CreateObject("ЖурналРасчетов.Зарплата"); ПервыйМесяц = 1; ПоследнийМесяц = Месяц; НачалоГода = СтрЗаменить(Формат(ЖрнЗарплата.НачалоПериодаПоДате(НачалоГода(ДатаАктуальности)+15*(60*60*24)), "ДФ=yyyy-MM-dd"), "-", ""); КонецПериодаОсмотра = СтрЗаменить(Формат(ДатаАктуальности, "ДФ=yyyy-MM-dd"), "-", ""); Январь=СтрЗаменить(Строка(Год*100+1),Символы.НПП,""); Декабрь=СтрЗаменить(Строка(Год*100 + Месяц),Символы.НПП,""); // запрос к ж.р. по страховым взносам - собираем суммы уже начисленных страховых взносов Состояние("Подготовка данных по суммам уже начисленных страховых взносов"); ЗапросПоВзносам=База77.CreateObject("Запрос"); ТекстЗапроса="//{{ЗАПРОС(ЗапросПоВзносам) |С НачалоГода по КонецПериодаОсмотра; |Объект = ЖурналРасчетов.СтраховыеВзносы.Объект; |ВР = ЖурналРасчетов.СтраховыеВзносы.ВидРасч; |Результат = ЖурналРасчетов.СтраховыеВзносы.Результат; |Регистрация = ЖурналРасчетов.СтраховыеВзносы.ДатаОкончания; |Функция РезультатВР = Сумма(Результат); |Группировка Объект Без Групп Без Упорядочивания; |Группировка Регистрация; |Группировка ВР;"; Если ВсегоСотров = 0 Тогда ИначеЕсли ВсегоСотров = 1 Тогда СотрудникВЗапрос = Сотрудники.ПолучитьЗначение(1); ТекстЗапроса=ТекстЗапроса+" |Условие(Объект = СотрудникВЗапрос);"; Иначе ТекстЗапроса=ТекстЗапроса+" |Условие(Объект в Сотрудники);"; КонецЕсли; ТекстЗапроса=ТекстЗапроса+" |Условие(Результат <> 0); |"//}}ЗАПРОС ; Если ЗапросПоВзносам.Выполнить(ТекстЗапроса)=0 Тогда Возврат 0; КонецЕсли; Как бы так передать даты, чтобы все отработало? |
|||
1
Масянька
26.06.14
✎
12:17
|
НачалоГода что возвращает?
|
|||
2
Рэйв
26.06.14
✎
12:20
|
(0)Подключайся наоборот из 77 к 8. Это намного удобнее и проще.
|
|||
3
bard666
26.06.14
✎
12:23
|
(1) Дату. А именно 01.01.2010 0:00:00.
|
|||
4
Масянька
26.06.14
✎
12:24
|
(3) Уверен?
|
|||
5
Михаил Козлов
26.06.14
✎
12:25
|
При получении бухитогов сработал формат даты:
ДатаКонV7 = ФОРМАТ(тд, "ДФ=dd.MM.yy"). |
|||
6
НеБорис Нуралиев
26.06.14
✎
12:27
|
Попробуй так:
"С "+ Формат(НачалоГода,"ДФ=dd.MM.yyyy") + "по " + Формат(КонецПериодаОсмотра,"ДФ=dd.MM.yyyy") + ";" |
|||
7
bard666
26.06.14
✎
12:30
|
(4) проверял. Потому и засунул в формат.
(5) Моя не понимать (6) Пробовал такой формат. Такая же хрень. |
|||
8
Масянька
26.06.14
✎
12:31
|
(7) Проверял уже в 7.7?
|
|||
9
bard666
26.06.14
✎
12:34
|
(8)
В смысле? Я из 8.2 подключаюсь к 7.7. |
|||
10
НеБорис Нуралиев
26.06.14
✎
12:38
|
(7) Попробуй еще в одинарные кавычки ' ' даты оборачивать в запросе.
"С '"+ Формат(НачалоГода,"ДФ=dd.MM.yyyy") + "' по '" + Формат(КонецПериодаОсмотра,"ДФ=dd.MM.yyyy") + "' ;" |
|||
11
silent person
26.06.14
✎
12:39
|
|Период с '01.01.1980' по '"+Формат(РабочаяДата,"ДФ=dd.MM.yyyy")+"';
все работает |
|||
12
Масянька
26.06.14
✎
12:40
|
(9) Перед строкой Состояние.... добавь строку - Сообщить(Дата - " + НачалоГода); - что выведет?
|
|||
13
НеБорис Нуралиев
26.06.14
✎
12:43
|
Проблема в том, что ты пытаешься работать с запросом так, будто бы ты находишься в 7.7, а не подключаешься через ОЛЕ.
7.7 не понимает откуда брать переменные в тексте запроса, т.к. они не существуют в контексте OLE-сервера. Вместо передачи переменных нужно задавать даты явно в тексте запроса. В принципе ты не сможешь передать в запрос 7.7 никаких переменных. Поэтому твой запрос скорее всего работать не будет даже так. |
|||
14
bard666
26.06.14
✎
13:43
|
Спасибо. Буду пробовать
|
|||
15
bard666
26.06.14
✎
16:55
|
Теперь новая ошибка:
Ошибка при вызове метода контекста (Выполнить): Произошла исключительная ситуация (1С:Предприятие): Условие(Объект в Сотрудники <<?>> ); Запрос[11] : Ошибка в выражении 'Сотрудники' Код такой: Попытка Всего = ОбобщенныйСотрудник.РазмерСписка(); //проверяю переменную ОбобщенныйСотрудник на предмет является ли она списком значений. Сотрудники = ОбобщенныйСотрудник; Исключение Сотрудники=База77.CreateObject("СписокЗначений"); Сотрудники.ДобавитьЗначение(ОбобщенныйСотрудник); КонецПопытки; ВсегоСотров = Сотрудники.РазмерСписка(); // подготовим к сбору данных запросами: начало и окончание периодов // осмотра ж.р. по страховым взносам и ручных корректировок в справочнике ЖрнЗарплата = База77.CreateObject("ЖурналРасчетов.Зарплата"); ПервыйМесяц = 1; ПоследнийМесяц = Месяц; НачалоГода = Формат(ЖрнЗарплата.НачалоПериодаПоДате(НачалоГода(ДатаАктуальности)+15*(60*60*24)), "ДФ=dd.MM.yyyy"); КонецПериодаОсмотра = Формат(ДатаАктуальности, "ДФ=dd.MM.yyyy"); Январь=СтрЗаменить(Строка(Год*100+1),Символы.НПП,""); Декабрь=СтрЗаменить(Строка(Год*100 + Месяц),Символы.НПП,""); // запрос к ж.р. по страховым взносам - собираем суммы уже начисленных страховых взносов Состояние("Подготовка данных по суммам уже начисленных страховых взносов"); ЗапросПоВзносам=База77.CreateObject("Запрос"); ТекстЗапроса="//{{ЗАПРОС(ЗапросПоВзносам) |С '" + НачалоГода + "' по '" + КонецПериодаОсмотра + "'; |Объект = ЖурналРасчетов.СтраховыеВзносы.Объект; |ВР = ЖурналРасчетов.СтраховыеВзносы.ВидРасч; |Результат = ЖурналРасчетов.СтраховыеВзносы.Результат; |Регистрация = ЖурналРасчетов.СтраховыеВзносы.ДатаОкончания; |Функция РезультатВР = Сумма(Результат); |Группировка Объект Без Групп Без Упорядочивания; |Группировка Регистрация; |Группировка ВР;"; Если ВсегоСотров = 0 Тогда ИначеЕсли ВсегоСотров = 1 Тогда СотрудникВЗапрос = Сотрудники.ПолучитьЗначение(1); ТекстЗапроса=ТекстЗапроса+" |Условие(Объект = СотрудникВЗапрос);"; Иначе ТекстЗапроса=ТекстЗапроса+" |Условие(Объект в Сотрудники);"; КонецЕсли; ТекстЗапроса=ТекстЗапроса+" |Условие(Результат <> 0); |"//}}ЗАПРОС ; Если ЗапросПоВзносам.Выполнить(ТекстЗапроса)=0 Тогда Возврат 0; КонецЕсли; Как победить? |
|||
16
Serginio1
26.06.14
✎
17:58
|
||||
17
bard666
27.06.14
✎
10:22
|
(16) Не помогло. Есть ещё варианты?
|
|||
18
Serginio1
27.06.14
✎
10:51
|
(17) Ты неправильно читал.v8: ИспользоватьСубконто() в СОМ-объекте
Делай через внешнюю обработку. Первоначально отладив её в 7.7. А затем ужу используй ком и вызов формы передавая например список значений во втором параметре. |
|||
19
Serginio1
27.06.14
✎
10:53
|
А ОбобщенныйСотрудник откуда берется?
|
|||
20
Михаил Козлов
27.06.14
✎
11:02
|
(15) Можно попробовать получить данные без фильтра и отфильтровать уже потом.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |