Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) выгрузка из журнала расчетов (число прочтений - 9750 )
SisterHo
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Ноября 2006
Пол: Женский
выгрузка из журнала расчетов
27. Ноября 2006 :: 10:02
Печать  
здравствуйте!не знаю,в какой раздел написать,поэтому решила сюда.делаю запрос к журналу расчетов,далее выгружаю в тз и начинаю ее крутить-
т.е. перебираю построчно для дальнейшего использования в отчете.за месяц еще ничего,а за больший период конечно получается долго.
подскажите,как можно это оптимизировать!!!
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #1 - 27. Ноября 2006 :: 10:08
Печать  
Ну, например, можно, вместо того, чтобы "крутить" ТЗ в 1С, крутить выборку прямыми запросами. А вообще, на такой неконкретный вопрос конкретных ответов дождаться будет сложно Улыбка)
  
Наверх
 
IP записан
 
SisterHo
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Ноября 2006
Пол: Женский
Re: выгрузка из журнала расчетов
Ответ #2 - 27. Ноября 2006 :: 10:30
Печать  
в отчете нужна группировка по порядковому номеру категории (через запрос нельзя,если только через функцию),потом должность-если группа,то брать значение группы,если нет-туда записывать просто элемент.
  
Наверх
 
IP записан
 
SisterHo
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Ноября 2006
Пол: Женский
Re: выгрузка из журнала расчетов
Ответ #3 - 30. Ноября 2006 :: 06:54
Печать  
Подскажите что не так?

     ТекстЗапроса = "
     |SELECT
     |ЖР.ids AS [Объект $Справочник.Сотрудники],
               |ЖР.idalg AS [ВР $ВидРасчета]
               |FROM
     |$ЖурналРасчетов.Зарплата AS ЖР
               |WHERE
               |(ЖР.period='"+Формат(НачМесяца(Текущаядата()),"Д ГГГГММДД")+"M') AND
     |(ЖР.idalg=:ВидРасчета~~)  
               |"//}}ЗАПРОС
     ;  
     RS.УстановитьТекстовыйПараметр("ВидРасчета", ВидРасчета.ОплатаПоОкладу);
пишет
Syntax error converting the varchar value 'A1  Q7    Q7           ' to a column of data type int.
Как исправить?Помогите!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #4 - 30. Ноября 2006 :: 08:15
Печать  
1) Какая у тебя база - ДБФ или Скуль?
2) Ты видел свод по ЗП от Vaicartana, сделанный на прямых запросах для ДБФ.
ИМХО нужно его изучить, многие вопросы отпадут.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
SisterHo
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Ноября 2006
Пол: Женский
Re: выгрузка из журнала расчетов
Ответ #5 - 30. Ноября 2006 :: 08:29
Печать  
База Sql.Свод не видела,где можно посмотреть(или там только для дбф)?Я только начинаю разбираться,поэтому много вопросов.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #6 - 30. Ноября 2006 :: 09:13
Печать  
SisterHo писал(а) 30. Ноября 2006 :: 08:29:
База Sql.Свод не видела,где можно посмотреть(или там только для дбф)?Я только начинаю разбираться,поэтому много вопросов.

У него на страничке много полезного есть. Ещё рекомендую распечатать его статью "В помощь расчетчику" и раздать всем расчетчикам, вопросов на много меньше становится!
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #7 - 30. Ноября 2006 :: 09:19
Печать  
Немного ОФФ: а видел кто-нибудь его статью "Ускоряемся"? А то она у меня не грузится и больше нигде её найти не могу...
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #8 - 30. Ноября 2006 :: 09:26
Печать  
JohnyDeath писал(а) 30. Ноября 2006 :: 09:19:
Немного ОФФ: а видел кто-нибудь его статью "Ускоряемся"? А то она у меня не грузится и больше нигде её найти не могу...

открылась страница на которой:
This ad zapped.
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #9 - 30. Ноября 2006 :: 11:48
Печать  
SisterHo писал(а) 30. Ноября 2006 :: 06:54:
Подскажите что не так?

     ТекстЗапроса = "
     |SELECT
     |ЖР.ids AS [Объект $Справочник.Сотрудники],
               |ЖР.idalg AS [ВР $ВидРасчета]
               |FROM
     |$ЖурналРасчетов.Зарплата AS ЖР
               |WHERE
               |(ЖР.period='"+Формат(НачМесяца(Текущаядата()),"Д ГГГГММДД")+"M') AND
     |(ЖР.idalg=:ВидРасчета~~)  
               |"//}}ЗАПРОС
     ;  
     RS.УстановитьТекстовыйПараметр("ВидРасчета", ВидРасчета.ОплатаПоОкладу);
пишет
Syntax error converting the varchar value 'A1  Q7    Q7           ' to a column of data type int.
Как исправить?Помогите!

Если верить документации, второй модификатор вида расчёта для SQL должен быть int. Однако, это не так (по крайней мере для версий 1.8.1.6 и 2.0.3.1). Т.е. это ошибка метапарсера 1С++ или ошибка документации. Обойти её можно, используя метаимя $ВидРасчета.
Код
Выбрать все
|(ЖР.idalg = $ВидРасчета.ОплатаПоОкладу) 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #10 - 30. Ноября 2006 :: 18:23
Печать  
Я делаю примерно так, лучшего варианта не нашел Улыбка

Код
Выбрать все
	Мета = СоздатьОбъект("MetaDataWork");
	СЗначисления = СоздатьОбъект("СписокЗначений");

	Для Индекс = 1 По ГруппаРасчетов.ВсеНачисления.Количество() Цикл
		еНачисления.ПолучитьРасчет(Индекс)), 27, 13)));
	КонецЦикла;
	СтрокаУсловия1 = Мета.ПолучитьСтрокуИзСЗ(СЗначисления);

	СЗначисления.УдалитьВсе();
	Для Индекс = 1 По ГруппаРасчетов.ВсеУдержания.Количество() Цикл
		еУдержания.ПолучитьРасчет(Индекс)), 27, 13)));
	КонецЦикла;
	СтрокаУсловия2 = Мета.ПолучитьСтрокуИзСЗ(СЗначисления);

	Условие = "";
	ТекстЗапроса = "
		|SELECT
		|	ЖР.ids AS [Объект $Справочник.Сотрудники],
		|   ЖР.IDALG as [ВидРасч $ВидРасчета],
		|	CASE
		|		WHEN ЖР.IDALG IN (" + СтрокаУсловия1 + ") THEN SUM(ЖР.result)
		|		ELSE 0
		|	END AS Приход,
		|	CASE
		|		WHEN ЖР.IDALG IN (" + СтрокаУсловия2 + ") THEN SUM(ЖР.result)
		|		ELSE 0
		|	END AS Расход
		|
		|FROM
		|	$ЖурналРасчетов.Зарплата AS ЖР (NOLOCK)
		|WHERE
		|	:ТекДата BETWEEN ЖР.DATEB AND ЖР.DATEE AND
		|	ЖР.IDALG IN (" + СтрокаУсловия1 + "," + СтрокаУсловия2 + ")
		|";


 

  
Наверх
 
IP записан
 
SisterHo
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Ноября 2006
Пол: Женский
Re: выгрузка из журнала расчетов
Ответ #11 - 05. Декабря 2006 :: 07:06
Печать  
to Arta-сделала как ты написал,ругается на несоответствие типов.Из списка значений (СтрокаУсловия1)- строка,а в запросе вхождение на вид расчета.Как у тебя работает?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #12 - 05. Декабря 2006 :: 08:13
Печать  
Вот СтрокаУсловия1 - '6782','6783','6784','6901','7053'
Предложенный вариант у меня работает.
  
Наверх
 
IP записан
 
SisterHo
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Ноября 2006
Пол: Женский
Re: выгрузка из журнала расчетов
Ответ #13 - 05. Декабря 2006 :: 08:40
Печать  
Все работает.Спасибо. Класс А как получить в  запросе код справочника и наименование группы справочника?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: выгрузка из журнала расчетов
Ответ #14 - 05. Декабря 2006 :: 16:27
Печать  
У... наверное пора в http://www.1cpp.ru/forum/YaBB.pl?num=1148038411 Улыбка

Код
Выбрать все
SELECT
...,
...,
Сотр.CODE
FROM
...
JOIN $Справочник.Сотрудники AS Сотр (NOLOCK) ON Сотр.ID = ЖР.ids
 



Это код. Таким же образом можно заджойнить по Сотр.PARENTID и получить наименование группы.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать