Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) вопрос по Класс AccountsRecordset (число прочтений - 5460 )
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
вопрос по Класс AccountsRecordset
21. Марта 2008 :: 09:53
Печать  
При попытке задания периодичности "Документ" - вываливается ошибка "Invalid column name 'Период'."
в остальных случаях работает нормально.
В инфе написано, что должно работать, что я делаю не так?


Код
Выбрать все
		|	SELECT
		|	  ОсновнойОборотыДтКт.Период
		//|	, ОсновнойОборотыДтКт.ПозицияДокумента
		//|	, ОсновнойОборотыДтКт.ВидДокумента
		|	, ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
		|	, ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Основной]
		//|	, ОсновнойОборотыДтКт.Валюта [Валюта $Справочник.Валюты]
		|	, ОсновнойОборотыДтКт.СубконтоДт1 [СубконтоДт1 $Субконто]
		|	, ОсновнойОборотыДтКт.СубконтоДт1_вид
	//	|	, ОсновнойОборотыДтКт.СубконтоДт2 [СубконтоДт2 $Субконто]
		//|	, ОсновнойОборотыДтКт.СубконтоДт2_вид
		|	, ОсновнойОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]
		|	, ОсновнойОборотыДтКт.СубконтоКт1_вид
		|	, ОсновнойОборотыДтКт.СуммаОборот
		//|	, ОсновнойОборотыДтКт.ВалютнаяСуммаОборот
		|	, ОсновнойОборотыДтКт.КоличествоОборот
		| FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~, Документ,
		|		,
		|		(СчетДт = :ВыбСчет1) ,
		|		(СтатьиЗатрат),,
		|		,
		|
		|		(РазделительУчета = :ВыбФирма)
		|	) AS ОсновнойОборотыДтКт
		|	LEFT OUTER JOIN _1SACCS AS ПланСчетовДт (NOLOCK) ON ОсновнойОборотыДтКт.СчетДт = ПланСчетовДт.ID
		|	LEFT OUTER JOIN _1SACCS AS ПланСчетовКт (NOLOCK) ON ОсновнойОборотыДтКт.СчетКт = ПланСчетовКт.ID
//		| ORDER BY ОсновнойОборотыДтКт.Период
		| ORDER BY
		|	 ПланСчетовДт.SCHKOD
		|	, ПланСчетовКт.SCHKOD
    |";
	 

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #1 - 21. Марта 2008 :: 11:16
Печать  
Цитата:
Поля:
...
     Период
                 
           Существует при установке периодичности в День | Неделя | Месяц | Квартал | Год.

     ПозицияДокумента
     ВидДокумента

           Существуют только в том случае, если указана периодичность Документ.
...
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #2 - 21. Марта 2008 :: 11:30
Печать  
А как теперь получить сам документ
имея его позицию и вид?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #3 - 21. Марта 2008 :: 11:34
Печать  
select right(ПозицияДокумента, 9) [doc $Document], ВидДокумента doc_kind
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #4 - 21. Марта 2008 :: 11:50
Печать  
Спасибо
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #5 - 26. Марта 2008 :: 12:59
Печать  
Аналогичный вопрос, но уже по БИДвиженияССубконто
не получается получить документ, пробовал:
Код
Выбрать все
	|SELECT
//	|	   right(БИ.ПозицияДокумента, 9) [doc $Document], БИ.ВидДокумента doc_kind
	|	   Документ [doc $Document] , ВидДокумента doc_kind
	|		, СчетДт [СчетДт $Счет.Основной]
	|		, СчетКт [СчетКт $Счет.Основной]
	|		, Валюта [Валюта $Справочник.Валюты]
	|		, СубконтоДт1 [СубконтоДт1 $Субконто]
	|		, СубконтоДт1_вид
	|		, СубконтоКт1 [СубконтоКт1 $Субконто]
	|		, СубконтоКт1_вид
	|		, Сумма
	|	FROM $БИДвиженияССубконто.Основной(:НачДата, :КонДата ~,,
	|			 ((СубконтоДт1 = :Контра) OR (СубконтоКт1 = :Контра))
	|			 AND ((СчетДт IN (SELECT Val FROM #ВыбГруппаСчетов)) OR (СчетКт IN (SELECT Val FROM #ВыбГруппаСчетов)))
	|			AND (Активность = '')
	|			AND (РазделительУчета = :ВыбФирма)
	|		) БИ
	|	ORDER BY ПозицияДокумента
	|";
 


вываливается "Invalid column name 'ВидДокумента'
причем этаже конструкция "right(БИ.ПозицияДокумента, 9) [doc $Document], БИ.ВидДокумента doc_kind" для БИОборотыДтКт - работает нормально, а в этом запросе нет. Пробовал писать
Документ [doc $Document] , ВидДокумента doc_kind - но результат такой же

Что опять не так? или я снова туплю?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #6 - 26. Марта 2008 :: 13:15
Печать  
У ВТ БИДвиженияССубконто нет поля ВидДокумента. Для его получения нужно соединение с _1SJOURN.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #7 - 26. Марта 2008 :: 13:47
Печать  
Все понял.
Еще раз спасибо за подсказку
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #8 - 31. Марта 2008 :: 05:48
Печать  
Переделал отчет Акт сверки, уже хотел закончить проверку как вдруг обнаружилать ошибка в результатах запроса (пока только у одной организации) . В результирующую таблицу попала 1 проводка с совершенно другим контрагентом, а все остальные обороты (проводки ) правильные. Конечно эту ошибку можно будет отчеять условием при переборе ТЗ, но все же....
Код
Выбрать все
	|SELECT
  |     БИ.ПозицияДокумента,
	|     Журн.IDDOC [Док $Документ],
	|     Журн.IDDocDef as Док_вид
	|		, БИ.СчетДт [СчетДт $Счет.Основной]
	|		, БИ.СчетКт [СчетКт $Счет.Основной]
	|		, БИ.Валюта [Валюта $Справочник.Валюты]
	|		, БИ.СубконтоДт1 [СубконтоДт1 $Субконто]
	|		, БИ.СубконтоДт1_вид
	|		, БИ.СубконтоКт1 [СубконтоКт1 $Субконто]
	|		, БИ.СубконтоКт1_вид
	|		, БИ.Сумма
	|	FROM $БИДвиженияССубконто.Основной(:НачДата, :КонДата ~,,
	|			 ((СубконтоДт1 = :Контра) OR (СубконтоКт1 = :Контра))
	|			 AND ((СчетДт IN (SELECT Val FROM #ВыбГруппаСчетов)) OR (СчетКт IN (SELECT Val FROM #ВыбГруппаСчетов)))
	|			AND (Активность = '')
	|			AND (РазделительУчета = :ВыбФирма)
	|		) БИ
	| INNER JOIN _1SJourn  Журн(nolock) on Журн.[IDDOC] = right(БИ.ПозицияДокумента, 9)
	|	ORDER BY ПозицияДокумента
	|";



	RS.УстановитьТекстовыйПараметр("НачДата", ДатаНач);
	RS.УстановитьТекстовыйПараметр("КонДата", ДатаКон);
	RS.УстановитьТекстовыйПараметр("ВыбФирма", Фирма);
	RS.УстановитьТекстовыйПараметр("Контра", ВыбКлиент);
	RS.УложитьСписокОбъектов(СписокСчетов, "#ВыбГруппаСчетов","Основной");
	ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
 



сдесь ВыбГруппаСчетов - списокЗначений со счетами : 60, 62

Может быть что-то в запросе у меня не так?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #9 - 31. Марта 2008 :: 06:23
Печать  
Попробуй так:
Код
Выбрать все
|	  (((СубконтоДт1 = :Контра) AND (СчетДт IN (SELECT Val FROM #ВыбГруппаСчетов)))
|	OR ((СубконтоКт1 = :Контра) AND (СчетКт IN (SELECT Val FROM #ВыбГруппаСчетов)))) 


И, возможно, стоит добавить условие по виду субконто.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #10 - 31. Марта 2008 :: 10:27
Печать  
Спасибо
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #11 - 01. Апреля 2008 :: 08:02
Печать  
Еще вопрос:
возможно ли вытащить номер строки документа записавшего проводку?
в 1sentry - есть под это отдельное поле.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #12 - 01. Апреля 2008 :: 09:42
Печать  
Озадачен У БИДвиженияССубконто есть поля НомерСтроки, НомерПроводки и НомерКорреспонденции.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #13 - 01. Апреля 2008 :: 11:18
Печать  
С номером строки все нормально, спасибо.

Был замечен, такой неприятный момент:
Допустим в первой строке результирующей ТЗ счете по дебету 60 и есть СубконтоДб = КакойтоКонтрагент
а во второй строке по дебету допустим 90 счет у которого нет аналитик в поле СубконтоДб будет отражаться предыдущее значение СубконтоДб = КакойтоКонтрагент. И так в каждой последующей строке пока снова по дебету не пройдет счет с аналитикой. Смотри скрин.

Код
Выбрать все
	|SELECT
  |     БИ.ПозицияДокумента
	|   , Журн.IDDOC [Док $Документ]
	|   , Журн.IDDocDef as Док_вид
	|		, БИ.СчетДт [СчетДт $Счет.Основной]
	|		, БИ.СчетКт [СчетКт $Счет.Основной]
	|		, БИ.Валюта [Валюта $Справочник.Валюты]
	|		, БИ.СубконтоДт1 [СубконтоДт1 $Субконто]
	|		, БИ.СубконтоДт1_вид
	|		, БИ.СубконтоКт1 [СубконтоКт1 $Субконто]
	|		, БИ.СубконтоКт1_вид
	|		, БИ.Сумма
	|		, БИ.СодержаниеПроводки as СодержаниеПроводки
	|		, БИ.НомерСтроки as НомерСтрокиДокумента
	|	FROM $БИДвиженияССубконто.Основной(:НачДата, :КонДата ~,,
  |   (((СубконтоДт1 = :Контра) AND (СчетДт IN (SELECT Val FROM #ВыбГруппаСчетов))
	|   and (СубконтоДт1_вид = $ВидСубконто.Контрагенты))
  |	  OR ((СубконтоКт1 = :Контра) AND (СчетКт IN (SELECT Val FROM #ВыбГруппаСчетов)))
	|   and (СубконтоКт1_вид = $ВидСубконто.Контрагенты))
	|			AND (Активность = '')";
	Если ПустоеЗначение(Фирма)=0 Тогда
		ТекстЗапроса = ТекстЗапроса +
		"
		|			AND (РазделительУчета = :ВыбФирма)";
	КонецЕсли;
	ТекстЗапроса = ТекстЗапроса + "
	|		) БИ
	| INNER JOIN _1SJourn  Журн(nolock) on Журн.[IDDOC] = right(БИ.ПозицияДокумента, 9)
	|	ORDER BY ПозицияДокумента
	|";

 

  

22.JPG ( 56 KB | Загрузки )
22.JPG
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по Класс AccountsRecordset
Ответ #14 - 01. Апреля 2008 :: 11:30
Печать  
Типизацию субконто выполняет 1С++. Похоже, баг где-то там..
Можешь сделать тестовую базу?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать