Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Работа с Журналом Расчетов (число прочтений - 5082 )
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Работа с Журналом Расчетов
29. Ноября 2007 :: 11:50
Печать  
Перекопал все, но нигде не нашел как средствами 1с++ получить в запросе ссылку на запись журнала расчетов. К примеру типовой запрос 1с:

ТекстЗапроса="
|Период с НачалоМесяца по КонецМесяца;
|ЗаписьЖР = ЖурналРасчетов.Зарплата.ТекущаяЗапись;
|Объект = ЖурналРасчетов.Зарплата.Объект;
|ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;
|Группировка Объект;
|Группировка ВидРасч;
|";

можно перевести в ++


ТекстЗапроса="
|SELECT
|Зарплата.IDS [Объект $Справочник.Сотрудники],
|Зарплата.IDALG [ВидРасч $ВидРасчета],
|Зарплата.ID ЗаписьЖР ---????
|FROM $ЖурналРасчетов.Зарплата AS Зарплата
|WHERE and (Зарплата.period='"+Формат(НачалоМесяца,"Д ГГГГММДД")+"M')
|";

Но подскажите как можно в результате выполнения ++ запроса получить не ID записи, а реальную ссылку на запись.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #1 - 29. Ноября 2007 :: 12:11
Печать  
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #2 - 29. Ноября 2007 :: 12:19
Печать  
berezdetsky писал(а) 29. Ноября 2007 :: 12:11:


Ну по поводу MetaDataWork.ЗначениеИзСтрокиБД я так и не понял как правильно прописать параметры.
Сейчас сделал через ЗначениеИзСтрокиВнутр().
Но весь фокус в том, что реальный запрос 1с большой и тормозит. Переписал на 1с++. Получаю выборку в ТЗ на 10-20 тыс. строк достаточно быстро, но если по каждой записи делать ЗначениеИзСтрокиВнутр(), то скорость выполнения запроса на ++ и дополнительного пробега по ТЗ для заполнения через ЗначениеИзСтрокиВнутр() приводит по времени к тем же затратам, что и запрос на 1с. Так что выигрыша никакого.

Я вообще думал, что можно в самом запросе как-то прописать типизацию поля типа как
Зарплата.IDS [Объект $Справочник.Сотрудники]
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #3 - 29. Ноября 2007 :: 12:33
Печать  
ssv писал(а) 29. Ноября 2007 :: 12:19:
Ну по поводу MetaDataWork.ЗначениеИзСтрокиБД я так и не понял как правильно прописать параметры.

Судя по документации, как-то так:

MDW.ЗначениеИзСтрокиБД("ЗаписьЖурналаРасчетов", "ИдентификаторЖурнала", Зарплата.ID);

ssv писал(а) 29. Ноября 2007 :: 12:19:
Я вообще думал, что можно в самом запросе как-то прописать типизацию поля типа как
Зарплата.IDS [Объект $Справочник.Сотрудники]

Такой возможности нет, насколько я знаю.
  

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



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #4 - 29. Ноября 2007 :: 12:33
Печать  
Так определись - тебе нужен реквизит записи журнала расчетов или сама запись со всеми её атрибутами?
  
Наверх
IP записан
 
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #5 - 29. Ноября 2007 :: 12:40
Печать  
berezdetsky писал(а) 29. Ноября 2007 :: 12:33:
ssv писал(а) 29. Ноября 2007 :: 12:19:
Ну по поводу MetaDataWork.ЗначениеИзСтрокиБД я так и не понял как правильно прописать параметры.

Судя по документации, как-то так:

MDW.ЗначениеИзСтрокиБД("ЗаписьЖурналаРасчетов", "ИдентификаторЖурнала", Зарплата.ID);



Сорри уже тоже нашел в описании
  
Наверх
 
IP записан
 
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #6 - 29. Ноября 2007 :: 12:41
Печать  
leshik писал(а) 29. Ноября 2007 :: 12:33:
Так определись - тебе нужен реквизит записи журнала расчетов или сама запись со всеми её атрибутами?


Вообще нужна сама запись со всеми атрибутами
  
Наверх
 
IP записан
 
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #7 - 29. Ноября 2007 :: 13:38
Печать  
Не знаю куда правильнее написать, но хотелось обратиться к разработчикам:

Нельзя ли расширить возможности прямых запросов по отношению к работе с ЖурналомРасчетов, а именно в рамках запроса добавить возможность получать не физический код записи ЖР, а ссылку на запись,т.е. внутреннюю ссылку 1с как со справочниками и документами.

Сделал замер одного сложного запроса и в результате из 100%
выполнение запроса 1с занимает 48,85%
выполнение аналогичного запроса на ++ с выгрузкой в ТЗ - 6,11%
Проход по ТЗ и заполнение значения методом  
К.ЗаписьЖР1); занимает 45,04%

итого
средствами 1с 48,85%
средствами 1с++ 51,15%

Полагаю, если бы была возможность интерпретировать значение текущей записи в рамках запроса, то прирост будет колосальный
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #8 - 29. Ноября 2007 :: 14:00
Печать  
Если не секрет - а какая цель?
Ведь можно все атрибуты записи вытащить запросом...
  
Наверх
IP записан
 
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #9 - 29. Ноября 2007 :: 14:08
Печать  
leshik писал(а) 29. Ноября 2007 :: 14:00:
Если не секрет - а какая цель?
Ведь можно все атрибуты записи вытащить запросом...


Ну тогда подскажите как вытащить:
ЗаписьЖР.Сторно
ЗаписьЖР.ПериодРегистрации.ДатаНачала
ЗаписьЖР.ПериодДействия.ДатаНачала

  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #10 - 29. Ноября 2007 :: 14:18
Печать  
Таак ну давай попробуем:
1) Период
Код
Выбрать все
LEFT(Журн.Period,8)  [Период $Дата]
 


2) Когда
Код
Выбрать все
Журн.Recalc = 18 


- это сторно
  
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #11 - 29. Ноября 2007 :: 14:19
Печать  
Про сторно посмотри здесь: http://www.1cpp.ru/forum/YaBB.pl?num=1163680392/3#3

ЗаписьЖР.ПериодДействия.ДатаНачала - поле DATEB
ЗаписьЖР.ПериодРегистрации.ДатаНачала - cast(left(PERIOD, 8) as datetime)
или наоборот  Нерешительный
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #12 - 29. Ноября 2007 :: 14:24
Печать  
berezdetsky писал(а) 29. Ноября 2007 :: 14:19:
Про сторно посмотри здесь: http://www.1cpp.ru/forum/YaBB.pl?num=1163680392/3#3

ЗаписьЖР.ПериодДействия.ДатаНачала - поле DATEB
ЗаписьЖР.ПериодРегистрации.ДатаНачала - cast(left(PERIOD, 8) as datetime)
или наоборот  Нерешительный


ПериодДействия и ПериодРегистрации составные, включают ДатаНачала, дата окончания и описатель периода.

Но и это не главное. Все же:

ПериодДействия.ДатаНачала - поле DATEB
ПериодРегистрации.ДатаНачала - cast(left(PERIOD, 8) as datetime)
или наоборот  Нерешительный Нерешительный Нерешительный?????????????????? Плачущий
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #13 - 29. Ноября 2007 :: 14:32
Печать  
Для DATEB дата окончания - в DATEE.
PERIOD задаётся одним полем, описатель периода в нём - последний символ ("M" - месяц и т.п.).
Про наоборот - просто не помню. Проверь 1 раз и нам расскажешь. Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
ssv
Junior Member
**
Отсутствует



Сообщений: 16
Местоположение: Орел
Зарегистрирован: 29. Ноября 2007
Пол: Мужской
Re: Работа с Журналом Расчетов
Ответ #14 - 29. Ноября 2007 :: 14:59
Печать  
Огромное спасибо  за участие  berezdetsky и leshik Улыбка
Да и кстати всегда работал с оперативным контуром и там проблемы не ведал.
А тут приперло переделать свод проводок в ЗиКе, а тут пока я полный ноль.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать