Переключение на Главную Страницу Страницы: 1 2 [3] 4 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс AccntQuery (число прочтений - 30065 )
sd
1c++ power user
Отсутствует



Сообщений: 30
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #30 - 01. Июля 2006 :: 11:11
Печать  
sserg писал(а) 23. Июня 2006 :: 09:13:
на документ за 01.01.06 Выскакивает ошибка:

Запрос.ВыполнитьИнструкцию("set nocount on
{D:\471_SQL\КЛАССЫ\ACCNTQUERY.ERT(4931)}: State 42000, native 156, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'end'.

Если дата документа - не начало года, то ошибки нет.



Подтверждаю. Исправлено: http://bueno.newmail.ru/AccntQuery/AccntQuery.2.3.zip

Спасибо.

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


Здесь вам не тут

Сообщений: 3
Зарегистрирован: 22. Мая 2006
Ошибка с Планом счетов
Ответ #31 - 26. Июля 2006 :: 10:18
Печать  
Класс привязан к плану счетов с именем "Основной"
ИспользоватьПланСчетов("Основной"); 

В украинских конфигурациях план счетов называется обычно "НСБУ"

При этом возникает ошибка
Код
Выбрать все
Ит.ВыполнитьЗапрос(Дата1,Дата2,Счет,,,РежимЗапроса);
{C:\DELETE\SPDTST.ERT(173)}: Значение не представляет агрегатный объект

===========================================================================
БыстрыеИтоги::ПолучитьКодСчета(Счет Стр=	  77   )
Пока (Сч <= Список.РазмерСписка()) и (Сч <= __СписокПоМаске.РазмерСписка()) Цикл
{D:\Database\Buch\Classes\AccntQuery.ert(294) }
=========================================================================== 



Просьба привязать план счетов не по идентификатору, а по порядковому номеру, т.к. обычно основной идет первым.
  
Наверх
ICQ  
IP записан
 
sd
1c++ power user
Отсутствует



Сообщений: 30
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка с Планом счетов
Ответ #32 - 27. Июля 2006 :: 09:42
Печать  
PostoronnimV писал(а) 26. Июля 2006 :: 10:18:
Класс привязан к плану счетов с именем "Основной"
ИспользоватьПланСчетов("Основной");  

В украинских конфигурациях план счетов называется обычно "НСБУ"


Просьба прислать полный текст запроса, вызывающего ошибку - от создания объекта класса до вызова процедуры ВыполнитьЗапрос(). Помимо этого, прошу привести маску используемого плана счетов (как она задана в плане счетов в конфигураторе).

Цитата:
Просьба привязать план счетов не по идентификатору, а по порядковому номеру, т.к. обычно основной идет первым.


Принято.
  
Наверх
ICQ  
IP записан
 
mab
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 28. Июля 2006
Re: Класс AccntQuery
Ответ #33 - 04. Августа 2006 :: 08:52
Печать  
Подскажите чайнику, что можно с этим сделать?

BIi=СоздатьОбъект("БыстрыеИтоги");
BIi.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
BIi.ВыполнитьЗапрос(НачГода(ВыбНачПериода),ВыбКонПериода,Сч62,,,,"Проводка");

BIi.ВыбратьСубконто(1);
{E:\!TEST!\ОТЧЕТЫ\test.ERT(80)}: Error! Cannot allocate memory block

===========================================================================
БыстрыеИтоги::ПрочитатьРезультатыЗапроса()
ТЗ_КэшЗапроса.Загрузить(Запрос.ВыполнитьИнструкцию(ТекстЗапроса));
{e:\!Test!\Klass\AccntQuery.ert(1484) }
===========================================================================
« Последняя редакция: 04. Августа 2006 :: 19:46 - mab »  
Наверх
 
IP записан
 
PostoronnimV
YaBB Newbies
*
Отсутствует


Здесь вам не тут

Сообщений: 3
Зарегистрирован: 22. Мая 2006
Не отбирает пустые партии
Ответ #34 - 22. Августа 2006 :: 13:29
Печать  
Ит.ИспользоватьСубконто(ВидыСубконто.Запасы,ОтборПоЗапасам,1);
Ит.ИспользоватьСубконто(ВидыСубконто.МестаНахождения,ОтборПоСкладу,1);
Ит.ИспользоватьСубконто(ВидыСубконто.ПартииЗапасов,,1);
Ит.ХарактеристикаСубконто(ВидыСубконто.ПартииЗапасов, "ДатаПартии");

Не отбирает остатки с пустыми партиями
А хотелось бы.
  
Наверх
ICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #35 - 29. Августа 2006 :: 10:44
Печать  
В мануале ты привел пример выборки документов с проводками
Код
Выбрать все
	Ит.ВыбратьДокументы();
	Пока Ит.ПолучитьДокумент() = 1 Цикл
		Документ = Ит.ТекущийДокумент();
		ОборотыДокумента = Ит.ДО()-Ит.КО();

		Ит.ВыбратьПроводки();
		Пока Ит.ПолучитьПроводку() = 1 Цикл
			НомерПроводки = Ит.НомерПроводки();
			ОборотыПроводки = Ит.ДО()-Ит.КО();
		КонецЦикла;
	КонецЦикла;
 


Вопрос:
можно ли в данной выборке сразу обратится к реквизитам проводки, что бы узнать текущий счет по дебету / кредиту, субконто и т.д. ?
Пытался писать Ит.Дебет.Счет=Ошибка
если ИТ.Счет= -возвращаяет пустое значение

  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #36 - 29. Августа 2006 :: 11:03
Печать  
Последний вопрос снят,
нужно использовать Опер.ПолучитьПроводкуПоНомеру(БухИт.НомерПроводки());


  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #37 - 29. Августа 2006 :: 11:46
Печать  
Еще вопрос:
при использовании
     Ит.ВыбратьДокументы();
     Пока Ит.ПолучитьДокумент() = 1 Цикл
выборка происходит по видам документов попавшим в выборку, а уже внутри вида сортируется по дате. Нужно, что бы сортировка по дате была сквозной для всех видов.
Что не правильно у меня ?:
Код
Выбрать все
	БухИт = СоздатьОбъект("БыстрыеИтоги");
	БухИт.ИспользоватьРазделительУчета(Фирма);
	БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКлиент,1);
	БухИт.ВыполнитьЗапрос(ДатаНач,ДатаКон,"60,62",,,1,"Проводка","С");
	БухИт.СоздатьИндекс("Счет,Период");

	БухИт.ВыбратьСчета();
	Пока БухИт.ПолучитьСчет()=1 Цикл
		Если БухИт.Счет.ЭтоГруппа()=0 Тогда
			Если БухИт.Счет=СчетПоКоду("62.2") Тогда
				к=1.18;
			Иначе
				к=1;
			КонецЕсли;
			СНД=СНД+БухИт.СНД(1)*к;
			СНК=СНК+БухИт.СНК(1)*к;
		КонецЕсли;
	КонецЦикла;
	БухИт.ВыбратьДокументы();
	Пока БухИт.ПолучитьДокумент()=1 Цикл
		Отсрочка=0;
		Если ПустоеЗначение(БухИт.Документ)=1 Тогда
			Продолжить;
		КонецЕсли;
		Док = БухИт.Документ;
		Если БухИт.ДО()+БухИт.КО()=0 ТОгда
			Продолжить;
		КонецЕсли;
		Опер= Док.Операция;
		БухИт.ВыбратьПроводки();
		Пока БухИт.ПолучитьПроводку()=1 Цикл
				 Опер.ПолучитьПроводкуПоНомеру(БухИт.НомерПроводки());
			//что-то считатем

			КонецЦикла;
		КонецЦикла;
 


Пробовал изменять индекс на
БухИт.СоздатьИндекс("Период");
без результата.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #38 - 01. Сентября 2006 :: 13:11
Печать  
Проблема до сих пор не решена. Пытался получить результат другим способом
используя выгрузку в ТЗ,
ТЗ = БухИт.ВыгрузитьИтоги(,"Период,Счет,КорСчет,Субконто1,КорСубконто1")
а затем перебирая строки группировать по документам проводки
Но результат все равно не устраивает. Большая часть документов отсортирована как надо по дате, но есть документы (их немного) которые выпадают из сортировки по дате.
На всякий случай:
использую 1С++ 1.8.1.6
AccntQuery 2.2
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #39 - 11. Сентября 2006 :: 06:01
Печать  
Если проблемотично исправить недочет в классе, то подскажите как в результирующую таблицу значений вытащить поле с датой документа? Что бы произвести дополнительную сортировку
  
Наверх
 
IP записан
 
tav13
1c++ donor
Отсутствует



Сообщений: 108
Местоположение: Donetsk
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #40 - 11. Сентября 2006 :: 07:33
Печать  
Воспользуйся методом ВыполнитьИнструкцию класса
  
Наверх
ICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #41 - 11. Сентября 2006 :: 08:33
Печать  
А можно по подробнее, как для моего случая?

В предыдущих постах видел пример выгрузки дополнительного поля, но для конкретного вида документа, у меня их может быть много.
  
Наверх
 
IP записан
 
tav13
1c++ donor
Отсутствует



Сообщений: 108
Местоположение: Donetsk
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #42 - 11. Сентября 2006 :: 08:46
Печать  
Код
Выбрать все
БухИт = СоздатьОбъект("БыстрыеИтоги");
	БухИт.ИспользоватьРазделительУчета(Фирма);
	БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКлиент,1);
	БухИт.ВыполнитьЗапрос(ДатаНач,ДатаКон,"60,62",,,1,"Проводка","С"); 


Код
Выбрать все
ТекстЗапроса="SELECT * FROM $ТаблицаИтогов";
БухИт.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ); 


Проанализируй что у тебя будет в ТЗ
  
Наверх
ICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #43 - 11. Сентября 2006 :: 09:48
Печать  
Здорово!
Только маленькая проблема:
Если стипизацией Документов и Субконто все ясно, то как типисировать Счеи и КорСчет?
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс AccntQuery
Ответ #44 - 11. Сентября 2006 :: 10:16
Печать  
Тормознул я с ленца.
Твой совет я воспринял слишком буквально, ведь поле Дата присутствует в таблице по умолчанию. Достаточно было включить его в процедуру ВыгрузитьИтоги.
Т.е. нужно было писать вместо
ВыгрузитьИтоги("Период,Счет,КорСчет,Субконто1,КорСубконто1")
ВыгрузитьИтоги("Дата,Счет,КорСчет,Субконто1,КорСубконто1")
в этом случае сортировка по дате прокатывает нормально

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 
ОтправитьПечать