![]() |
|
v7: Запрос OLE и ВходитВГруппу | ☑ | ||
---|---|---|---|---|
0
2S
21.07.15
✎
15:39
|
Баянистый баян, но забыл напроч
Понадобилось в из ЗиК 77 по ОЛЕ тащить данные Запрос = БазаOLE.CreateObject("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ЗП) |С ' " + ДатаНачала + "' по '" + ДатаОкончания + "'; |ФизЛицо = ЖурналРасчетов.Зарплата.Объект.ОсновнойЭлемент; |Расчет = ЖурналРасчетов.Зарплата.ВидРасч; |Результат = ЖурналРасчетов.Зарплата.Результат; |Функция СуммаНачисления = Сумма(Результат) когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1); |Группировка ФизЛицо Без Групп; |Условие(Результат<>0);" ; Падаем тут 1С:Предприятие: Функция СуммаНачисления = Сумма(Результат) когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления <<?>> )=1); Запрос[6] : Ошибка в выражении 'ГруппаРасчетов' И Eval подставлял и БазаOLE.ГруппаРасчетов.ВсеНачисления пробовал, нифига. Погуглил тоже бех результата. Комрады, вспоминаем вместе ) |
|||
1
2S
21.07.15
✎
15:45
|
Чой-то не хочется описывать все виды расчетов в список о_О
|
|||
2
2S
21.07.15
✎
15:51
|
все, ясно, через гланды и метаданные надо список рисовать
Тема закрыта |
|||
3
2S
22.07.15
✎
13:43
|
подниму тему, мозг кипит
Проблема, не работает условие запроса, не пойму проблему (( Сам код БазаOLE.ExecuteBatch("СписокВРДляОтчета[1] = СоздатьОбъект(""СписокЗначений"")"); СписокВР = БазаOLE.EvalExpr("СписокВРДляОтчета[1]"); Для сч=1 по БазаOLE.Метаданные.ГруппаРасчетов() Цикл Если БазаOLE.Метаданные.ГруппаРасчетов(сч).Идентификатор = "ВсеНачисления" Тогда Для СчВр = 1 По БазаOLE.Метаданные.ГруппаРасчетов(сч).ВидРасчета.Количество() Цикл СписокВР.ДобавитьЗначение(БазаOLE.Метаданные.ГруппаРасчетов(сч).ВидРасчета.Получить(СчВр)); КонецЦикла; КонецЕсли; КонецЦикла; Запрос = БазаOLE.CreateObject("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ЗП) |С ' " + ДатаНачала + "' по '" + ДатаОкончания + "'; |Сотрудник = ЖурналРасчетов.Зарплата.Объект; |Расчет = ЖурналРасчетов.Зарплата.ВидРасч; |Результат = ЖурналРасчетов.Зарплата.Результат; |Функция СуммаНачисления = Сумма(Результат); |Группировка Сотрудник Без Групп; |Условие(Расчет В СписокВРДляОтчета[1]);" ; |
|||
4
2S
22.07.15
✎
13:46
|
СписокВР заполняется, проверил по размеру и представлению
|
|||
5
2S
22.07.15
✎
13:49
|
Сообщить(БазаOLE.EvalExpr("СписокВРДляОтчета[1].РазмерСписка()"));
говорит что в списке 236 элементов |
|||
6
2S
22.07.15
✎
13:52
|
так, а БазаOLE.Метаданные.ГруппаРасчетов(сч).ВидРасчета.Получить(СчВр) какой тип возвращает, кто подскажет?
|
|||
7
Ёпрст
гуру
22.07.15
✎
13:52
|
метаданные
|
|||
8
2S
22.07.15
✎
13:54
|
Вооот...
Ёпрст, знаю что знаешь, как вытащить ВидРасч? |
|||
9
Ёпрст
гуру
22.07.15
✎
13:54
|
хотя не, ссылку на вид расчета.
|
|||
10
Ёпрст
гуру
22.07.15
✎
13:54
|
(8) забить на олю :)
|
|||
11
2S
22.07.15
✎
13:55
|
нет, надо олю
|
|||
12
Ёпрст
гуру
22.07.15
✎
13:55
|
или делать запрос в оле базе и возвращать результат
|
|||
13
2S
22.07.15
✎
13:56
|
через ExecuteBatch?
|
|||
14
2S
22.07.15
✎
13:56
|
запрос и так в оле делается, так то
|
|||
15
2S
22.07.15
✎
13:59
|
нихрена не понял
сообщить(типзначения(БазаOLE.Метаданные.ГруппаРасчетов(сч).ВидРасчета.Получить(СчВр))) возвращает 100! |
|||
16
2S
22.07.15
✎
14:00
|
тьфу, OLE это..
|
|||
17
2S
22.07.15
✎
14:02
|
(9) начал сомневаться насчет ссылки
|
|||
18
Serginio1
22.07.15
✎
14:02
|
Используй внешние отчеты. Намного все становится проще.
Оле с условием |
|||
19
Ёпрст
гуру
22.07.15
✎
14:10
|
А так, работает ?
|Функция СуммаНачисления = Сумма(Результат) когда (Расчет.ВходитВГруппу(Группа.ВсеНачисления)=1); |
|||
20
Ёпрст
гуру
22.07.15
✎
14:11
|
только вот Группа нужно определить в оле базе как группа расчета..
|
|||
21
Ёпрст
гуру
22.07.15
✎
14:11
|
можно так же, через массив.
|
|||
22
2S
22.07.15
✎
14:23
|
(19) это в тебе описано, что не работает
(20) не понял |
|||
23
2S
22.07.15
✎
14:24
|
(22) тебе = теме
|
|||
24
Ёпрст
гуру
22.07.15
✎
14:39
|
(22)
|Функция СуммаНачисления = Сумма(Результат) когда (СписокВРДляОтчета[1].ВходитВГруппу(Группа.ВсеНачисления)=1); а СписокВРДляОтчета[1] определишь как группу расчета через ExecuteBatch/EvalExpr |
|||
25
Ёпрст
гуру
22.07.15
✎
14:40
|
пилять
|Функция СуммаНачисления = Сумма(Результат) когда (Расчет.ВходитВГруппу(СписокВРДляОтчета[1].ВсеНачисления)=1); а СписокВРДляОтчета[1] определишь как группу расчета через ExecuteBatch/EvalExpr |
|||
26
2S
22.07.15
✎
14:47
|
БазаOLE.ExecuteBatch("СписокВРДляОтчета[1] = ГруппаРасчетов.ВсеНачисления");
Запрос = БазаOLE.CreateObject("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ЗП) |С ' " + ДатаНачала + "' по '" + ДатаОкончания + "'; |Сотрудник = ЖурналРасчетов.Зарплата.Объект; |Расчет = ЖурналРасчетов.Зарплата.ВидРасч; |Результат = ЖурналРасчетов.Зарплата.Результат; |Функция СуммаНачисления = Сумма(Результат) когда (Расчет.ВходитВГруппу(СписокВРДляОтчета[1])=1); |Группировка Сотрудник Без Групп; |Условие(Результат <> 0);" ; |
|||
27
2S
22.07.15
✎
14:47
|
гуд, сработало
огромное данке шён |
|||
28
Ёпрст
гуру
22.07.15
✎
14:54
|
(26) ага, типа того :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |