Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Примеры использования класса "ПоставщикДанных" (число прочтений - 15147 )
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Примеры использования класса "ПоставщикДанных"
09. Апреля 2012 :: 03:15
Печать  
Цель данной темы - облегчить новичкам быстрый старт в работе с классом "ПоставщикДанных".
Прошу всех, кто пользуется ПД прикреплять примеры использования, чтоб можно было посмотреть реализацию, ибо порой тяжело разобраться в документации, отсутствуют примеры конкретных действий в демоконфе и в общем обсуждении класса сложно найти подходящее.
З.Ы. Примеры не обязательно выкладывать в конфигурации, в которой они работают. Достаточно будет обработки, в которой верно происходит работа с классом, т.е. можно посмотреть синтаксис и т.д..
Буду очень благодарен модераторам, если они тему закрепят в шапке.  
 
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #1 - 09. Апреля 2012 :: 04:18
Печать  
В последней сборке (и далее) буду прикладывать обработки на которых тестирую поведение класса. Соответственно можно кое-что взять оттуда. Конкретно сейчас не уверен что там нет ошибок, но в будущем они будут исправлены.
Сейчас не совсем корректно работают отборы, но когда класс будет доделан полностью все будет очень корректно Улыбка

Обновление: 10.04.2012
« Последняя редакция: 10. Апреля 2012 :: 05:02 - vandalsvq »  

Classes__accs__001.rar ( 82 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #2 - 09. Апреля 2012 :: 09:15
Печать  
Очень нужная тема,спасибо, будем ждать примеров Улыбка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #3 - 10. Апреля 2012 :: 05:02
Печать  
А как вам такой журнал операций?
Сборку обработок брать - тут (во втором сообщении буду обновлять)
  

_______________.JPG ( 99 KB | Загрузки )
_______________.JPG

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #4 - 11. Апреля 2012 :: 06:02
Печать  
Пожалуйста киньте пример с использованием сворачивающимися группировками в отчете
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #5 - 11. Апреля 2012 :: 07:42
Печать  
dimm73 писал(а) 11. Апреля 2012 :: 06:02:
Пожалуйста киньте пример с использованием сворачивающимися группировками в отчете

Про какой отчет идет речь?
  
Наверх
IP записан
 
novichek
Экс-Участник


Re: Примеры использования класса "ПоставщикДанных"
Ответ #6 - 11. Апреля 2012 :: 08:58
Печать  
vandalsvq писал(а) 10. Апреля 2012 :: 05:02:
А как вам такой журнал операций?
Сборку обработок брать - тут (во втором сообщении буду обновлять)

в очередной раз впечатлил. Жаль я бухию не пользую.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #7 - 12. Апреля 2012 :: 08:40
Печать  
leshik писал(а) 11. Апреля 2012 :: 07:42:
dimm73 писал(а) 11. Апреля 2012 :: 06:02:
Пожалуйста киньте пример с использованием сворачивающимися группировками в отчете

Про какой отчет идет речь?



имеется в виду группировать текстовом отчете как в 8-ке  и сворачивать группировку по не обходимости. С возможностью сохранения в эксель в группировок (это нужно для прайса).
  

1_010.jpg ( 16 KB | Загрузки )
1_010.jpg
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #8 - 12. Апреля 2012 :: 09:37
Печать  
Обрати внимание - вот здесь все подробно описано.
http://infostart.ru/public/18380/
  
Наверх
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Примеры использования класса "ПоставщикДанных"
Ответ #9 - 30. Апреля 2012 :: 18:38
Печать  
Удалено. Разобрался.
« Последняя редакция: 02. Мая 2012 :: 10:36 - Kurya »  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #10 - 30. Октября 2012 :: 07:47
Печать  
Совсем недавно начал использовать ПоставщикДанных (причем сейчас жалею, что руки не доходили до него раньше). Соответственно столкнулся с тем, что отсутствует связка ПоставщикДанных.ИндексированнаяТаблица и ПоставщикДанных.Отбор. Хотя может быть плохо искал, но поиск давал только ссылки на подобные вопросы. В результате допилил отчет уважаемого Dolly_EV, который и прикладываю - надеюсь поможет кому-нибуть. Вообще данная обработка - неплохой инструмент для анализа/обработки каких либо табличных данных.
Плюсы:
+ в обработку можно отправлять СЗ, ТЗ, ИТЗ, имя файла с сохраненной ИТЗ;
+ при наличии имени файла во вх. параметрах - сохранение из обработки идет обратно в файл;
+ отбор работает довольно шустро, для отбора "в списке"/"не в списке" применен спец. алгоритм по улучшению быстродействия;
+ работает на довольно больших объемах - есть опыт редактирования таблиц в 300т.строк*30 колонок (примерно 300Мб файл);
Однако есть и минусы:
- пришлось модифицировать класс ПоставщикДанных.ИндексированнаяТаблица для получения доступа к атрибуту ПоставщикДанныхИТ - именно на него накладывается индекс по отбору;
- при активном отборе не изменяются суммы в "подвале" - пока не разбирался в чем там дело - возможно все тривиально;
- при активном отборе при интерактивной сортировке по какой либо колонке - данные из табличного поля пропадают - тоже надо смотреть в чем там дело может быть;
- отбор по строкам сделан стандартно - думаю что при больших объемах будут проблемы с быстродействием;

Вообще, думаю, имеет смысл включить функционал по отбору в сам класс ПоставщикДанных.ИндексированнаяТаблица. И уже при этом решать проблемы в "подвалом" и сортировкой. Перенести функционал отбора в класс достаточно просто.

  

_________________________001.JPG ( 170 KB | Загрузки )
_________________________001.JPG
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #11 - 30. Октября 2012 :: 08:03
Печать  
Простейший пример использования:

[code]      
     ТЗ = СоздатьОбъект("ТаблицаЗначений");
     Рег = СоздатьОбъект("Регистр.ОстаткиТоваров");
     Рег.ВыгрузитьИтоги(ТЗ);
     
     ИТЗ = СоздатьОбъект("ИндексированнаяТаблица");
     ИТЗ.Загрузить(ТЗ);
     
     СЗ = СоздатьОбъект("СписокЗначений");
     СЗ.ДобавитьЗначение(ИТЗ,"Объект_");
     СЗ.ДобавитьЗначение("D:\пример1.txt","ПутьФайл_");
     СЗ.ДобавитьЗначение("Остатки товаров","ЗаголовокОбъекта_");
     
     ОткрытьФорму("Отчет",СЗ,КаталогИБ() + "Report\ПросмотрИТЗ.ert");
[/code]

Чтобы отбор заработал, необходимо в файле класса "[b]ПоставщикДанных.ИндексированнаяТаблица.ert[/b]" в определении реквизита [b][i]ПоставщикДанныхИТ[/i][/b] добавить "[b][i]Экспорт[/i][/b]".

Сама обработка во вложении
« Последняя редакция: 02. Ноября 2012 :: 07:52 - zar »  

____________008.ert ( 207 KB | Загрузки )
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #12 - 27. Ноября 2012 :: 09:17
Печать  
zar писал(а) 30. Октября 2012 :: 07:47:
[skip]
Цитата:
Однако есть и минусы:
- пришлось модифицировать класс ПоставщикДанных.ИндексированнаяТаблица для получения доступа к атрибуту ПоставщикДанныхИТ - именно на него накладывается индекс по отбору;

Это делать не обязательно! Доступ к нужному реквизиту можно было получить следующим образом
Код
Выбрать все
	ПоставщикДанныхИТ = ПоставщикДанных.ТабличноеПоле.ПоставщикДанных; 


Цитата:
- при активном отборе не изменяются суммы в "подвале" - пока не разбирался в чем там дело - возможно все тривиально;

Таки да - тривиально Улыбка Но на этот раз таки придется править класс "ПоставщикДанных.ИндексированнаяТаблица". Обратная совместимость присутствует. Т.е. при отсутствии фильтра все работает как и раньше.
Код
Выбрать все
Процедура ЗаполнитьПодвал()
	Если Подвал.КоличествоКолонок() = 0 Тогда
		Возврат;
	КонецЕсли;
	Подвал.УдалитьСтроки();
	Если СтруктураИтогов.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	Подвал.НоваяСтрока();
	Для НомерКолонки = 0 По СтруктураИтогов.Количество()-1 Цикл
		ИмяКолонки = СтруктураИтогов.Получить(НомерКолонки);
		, 2010-11-23 10:12:57
		//		Подвал.УстановитьЗначение(1,ИмяКолонки,Таблица.Итог(ИмяКолонки));
		// -------- заменено на:
		// Лигично при установленном фильтре видеть итог с учетом этого фильтра!
		Подвал.УстановитьЗначение(1,ИмяКолонки,Таблица.Итог(ИмяКолонки, ПоставщикДанных.Индекс));
		//\, 2010-11-23 10:12:57
	КонецЦикла;
КонецПроцедуры 


Цитата:
- при активном отборе при интерактивной сортировке по какой либо колонке - данные из табличного поля пропадают - тоже надо смотреть в чем там дело может быть;

Вот с этим пока не разбирался. У меня в данном случае зачастую вообще 1С падает!

Цитата:
- отбор по строкам сделан стандартно - думаю что при больших объемах будут проблемы с быстродействием;

Вообще, думаю, имеет смысл включить функционал по отбору в сам класс ПоставщикДанных.ИндексированнаяТаблица. И уже при этом решать проблемы в "подвалом" и сортировкой. Перенести функционал отбора в класс достаточно просто.

Можешь создать свой класс-наследник, например "ПоставщикДанных.ИндексированнаяТаблицаСОтбором" и там извращаться как хочешь Улыбка Я так сделал например класс "ПоставщикДанных.ТабличнаяЧастьСЗакладкамиОтбора" (оттуда кстати и наработки с фильтрами ИТЗ)
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #13 - 23. Декабря 2012 :: 03:53
Печать  
vandalsvq писал(а) 10. Апреля 2012 :: 05:02:
А как вам такой журнал операций?

Почему-то жутко тормозит у мну такой журнал операций Печаль
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Примеры использования класса "ПоставщикДанных"
Ответ #14 - 23. Декабря 2012 :: 08:42
Печать  
Dolly_EV, отдельно проверь поставщика операций и проводок. На отдельных формах.
На поставщике проводок попробуй поставь отбор по документам, посмотри насколько будет тормозить или не будет.
Все наблюдения напиши, подумаем вместе. У меня баз 7.7 уже давно нет чтобы проверить Улыбка
  

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