Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Интересно, делал кто класс "регистрSQL" в плане получения остатко (число прочтений - 7414 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Интересно, делал кто класс "регистрSQL" в плане получения остатко
10. Февраля 2009 :: 21:44
Печать  
Может есть у кого?
Функционал приблизительно тот же что и у СоздатьОбъект("Регистры"). т.е.
УстановитьЗначениеФильтра("Товар",СписокТоваров,2);
да РассчитатьРегистрыНа()
Текст запроса думается гененируется достаточно просто.
ы?
Или вопрос дурацкий?
« Последняя редакция: 12. Февраля 2009 :: 11:15 - trdm »  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатков?
Ответ #1 - 11. Февраля 2009 :: 06:33
Печать  
А чем ВТ не утроили? http://www.1cpp.ru/docum/icpp/html/ODBC.html#id34
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатко
Ответ #2 - 11. Февраля 2009 :: 08:32
Печать  
Устраивает. Его и использую.
Просто маленькая процедурка разрослась втрое.
Посмотрел на неё и увидел, что действия практически тривиальные, генерация запроса хорошо формализуется, так почему бы их не завернуть в класс. По этому и спросил.
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатко
Ответ #3 - 12. Февраля 2009 :: 10:19
Печать  
Вижу никого это не чешет.
А так хотелось автоматизировать эти действия для простых случаев.
Конкретно хотелось бы автоматизировать генерацию запроса и установку фильтров.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатков?
Ответ #4 - 12. Февраля 2009 :: 10:44
Печать  
Там же вроде бы ничего сложного нет. Просто каждому - своё. Вот пример реализации ВТ на 1sqlite http://www.1cpp.ru/forum/YaBB.pl?num=1216729138/30#32 . Можно кое-что взять за основу.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатко
Ответ #5 - 12. Февраля 2009 :: 11:14
Печать  
У меня скуль.
просто хотел генерацию текста запроса вынести в класс.
лана, в принцыпе уже работаю сам над этим.
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатко
Ответ #6 - 12. Февраля 2009 :: 13:58
Печать  
Идея отличная.
как-то подобное надо было, но лень делать было.

выкрутился перепиской модуля
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатко
Ответ #7 - 12. Февраля 2009 :: 14:15
Печать  
Да я просто припарился для каждого запроса писать тривиальные тексты.
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатко
Ответ #8 - 20. Марта 2009 :: 12:07
Печать  
trdm писал(а) 12. Февраля 2009 :: 14:15:
Да я просто припарился для каждого запроса писать тривиальные тексты.

представляю чего получилось:

Код
Выбрать все
/// для глобальника
Перем глРекордСет Экспорт;
Перем глПустаяДатаSQL Экспорт;
Перем глСписРегистровSQL Экспорт;



// глСоздатьРегистрSQL( псИдРегистра ) © trdm 2008
Функция глСоздатьРегистрSQL( псИдРегистра ) Экспорт

	Если глЭтоСкуль = 0 Тогда
	    Сообщить("Функция глСоздатьРегистрSQL - только для SQL!");
		Возврат 0;
	КонецЕсли;

	ЗначВозврата = глСписРегистровSQL.Получить(Нрег(псИдРегистра));
	Если ПустоеЗначение(ЗначВозврата) = 1 Тогда
	    ЗначВозврата = СоздатьОбъект("РегистрОстаткиSQL");
		ЗначВозврата.инициализация(псИдРегистра);
		глСписРегистровSQL.ДобавитьЗначение(ЗначВозврата,Нрег(псИдРегистра));
	КонецЕсли;
	ЗначВозврата.сброситьДанные();

	Возврат ЗначВозврата;
КонецФункции // глСоздатьРегистрSQL()


/// после загрузки 1С++
		глРекордСет 		= СоздатьОбъект("ODBCRecordset");
///конец ГМ опре

глПустаяДатаSQL = Дата("01.01.1753");
глСписРегистровSQL = СоздатьОбъект("СписокЗначений");
 



для DefCls
в
Код
Выбрать все
//класс РегистрОстаткиSQL = ExtForms\РегистрОстаткиSQL.ert
класс РегистрОстаткиSQL = РегистрОстаткиSQL@MD
{
	void ВременныйРасчет( число псРасчитывать = 1);
	Неопределено получитьИтоги(псСписИзмерений = "*", псСписИтогов = "*") Экспорт
}
//класс РегистрыSQL = ExtForms\РегистрыSQL.ert
класс РегистрыSQL = РегистрыSQL@MD
{
}
 


+ классы вттачменте.
  

ExtForms.zip ( 35 KB | Загрузки )
Наверх
IP записан
 
layman
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Местоположение: smr
Зарегистрирован: 18. Июля 2013
Пол: Мужской
Re: Интересно, делал кто класс "регистрSQL" в плане получения остатко
Ответ #9 - 04. Сентября 2013 :: 07:58
Печать  
Поясни как пользоваться твоим классом.

Вот код Реализации из типовой ТИС
Код
Выбрать все
ВремРегистры 					= СоздатьОбъект("Регистры");
	ВремЗаявки                      = ВремРегистры.Заявки;
	ВремЗаказыЗаявки                = ВремРегистры.ЗаказыЗаявки;
	ВремОстаткиТМЦ  				= ВремРегистры.ОстаткиТМЦ;
	ВремРезервыТМЦ  				= ВремРегистры.РезервыТМЦ;
	ВремПартииНаличие 				= ВремРегистры.ПартииНаличие;
	ВремПокупатели 					= ВремРегистры.Покупатели;
	    
	ФильтрЗаявок         (          ТаблицаТМЦ, ТаблицаУслуг,     	ВремЗаявки,    ВремЗаказыЗаявки);
	глФильтрОстатковТМЦ  (Контекст, ТаблицаТМЦ, СписокПараметров, 	ВремОстаткиТМЦ,ВремРезервыТМЦ  );
	глФильтрПартийТМЦ    (Контекст, ТаблицаТМЦ, СписокПараметров, 	ВремПартииНаличие              );    
	Если КодОперации=Перечисление.КодыОпераций.Продажа Тогда
		глФильтрДолгов   (Контекст, Договор, 	СписокПараметров, 	ВремПокупатели                 );
	КонецЕсли;                  

	Если ИтогиАктуальны()=0 Тогда

		ВремРегистры.Актуальность(1);
		ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());

	КонецЕсли; 


Меняю
     
Код
Выбрать все
Если ИтогиАктуальны()=0 Тогда
		ВремРегистры.Актуальность(1);
	ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
	КонецЕсли; 

на              
     
Код
Выбрать все
Если ИтогиАктуальны()=0 Тогда
		ВремРегистры.инициализация(ВремЗаявки);
		ВремРегистры.инициализация(ВремЗаказыЗаявки);
		ВремРегистры.инициализация(ВремОстаткиТМЦ);
		ВремРегистры.инициализация(ВремРезервыТМЦ);
		ВремРегистры.инициализация(ВремПартииНаличие);
		ВремРегистры.инициализация(ВремПокупатели);
		ВремРегистры.расчитыватьРегистр(ТекущийДокумент(), 1, 1);
КонецЕсли; 


Этого достаточно для правильного проведения???                  
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать