Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 ... 81 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 370344 )
Supervisor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #180 - 06. Января 2011 :: 14:54
Печать  
Господа, пытаюсь построить дерево, взял пример дерева значений (Тест дерево значений.ert). Почему-то в ТП нет иерархии. Где копать?
Код
Выбрать все
Процедура ПослеСозданияФормы()
	ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений = "ДеревоЗначений";
	ПоставщикДанных.КонтейнерКоманднойПанели = "ПУ";
	ПоставщикДанных.КонтейнерТабличногоПоля  = "ТП";

	Данные = ПоставщикДанных.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();

	Данные.НоваяКолонка("ИмяУровня","Строка",,,"Имя уровня");
	Данные.НоваяКолонка("НомерУровня","Число",,,"№ уровня");
	Данные.НоваяКолонка("Значение","Число",,,"Значение",,1);

	ДеревоЗначений = Данные.ДеревоЗначений;

	Для Н = 1 По 10 Цикл
		СтрокаН = ДеревоЗначений.НоваяСтрока();
		ДеревоЗначений.ИмяУровня   = "Уровень № "+ДеревоЗначений.Уровень;
		ДеревоЗначений.НомерУровня = ДеревоЗначений.Уровень;
		ДеревоЗначений.Значение    = Н;

		Для Н1 = 1 По 5 Цикл
			СтрокаН1 = ДеревоЗначений.НоваяСтрока(СтрокаН);
			ДеревоЗначений.ИмяУровня   = "Уровень № "+ДеревоЗначений.Уровень;
			ДеревоЗначений.НомерУровня = ДеревоЗначений.Уровень;
			ДеревоЗначений.Значение    = Н1;

			Для Н2 = 1 По 4 Цикл
				СтрокаН2 = ДеревоЗначений.НоваяСтрока(СтрокаН1);
				ДеревоЗначений.ИмяУровня   = "Уровень № "+ДеревоЗначений.Уровень;
				ДеревоЗначений.НомерУровня = ДеревоЗначений.Уровень;
				ДеревоЗначений.Значение    = Н2;
			КонецЦикла;
		КонецЦикла;
	КонецЦикла;

	ПоставщикДанных.Обновить();
КонецПроцедуры
 

  

Tree.jpeg ( 55 KB | Загрузки )
Tree.jpeg
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #181 - 06. Января 2011 :: 17:42
Печать  
В четвертой версии надо указать колонку для отображения системных пиктограмм. Посмотри свойство КолонкаПиктограмм, вроде так называется. По умолчанию вроде он должен был первую выбрать, но может и нет. Укажи принудительно.
  

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #182 - 06. Января 2011 :: 18:08
Печать  
ок, попробую.
И еще вопрос - пытаюсь использовать ЗАГРУЗИТЬПОИЕРАРХИИ в этом же примере вместо ручного заполнения дерева
Код
Выбрать все
	ДеревоЗначений.ЗагрузитьПоИерархии(тзЭлементов,"Номенклатура","МинОстаток",,); 


тзЭлементов это ТЗ с двумя колонками "Номенклатура" и "МинОстаток"
В дерево ничего не попало, что не так делаю?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #183 - 06. Января 2011 :: 18:22
Печать  
А смысл группировать плоскую таблицу по одной колонке. Я уже не помню синтаксис, но вроде там надо передать колонки группировки, и суммирующиеся. А если колонка одна на всю таблицу (т.е. и группировка и строки) вот его и пучит Улыбка. Попробуй сделать МХ + Номенклатура и группировку по МХ
  

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #184 - 06. Января 2011 :: 18:56
Печать  
С пиктограммами разобрался. ЗагрузитьПоИерархии тож заработало, СПАСИБО! Очень довольный
Группировка даж в плоской таблице работает, я просто колонку
Код
Выбрать все
Данные.НоваяКолонка("КолонкаГруппировки",,,,"КолонкаГруппировки"); 

не добавил - поэтому ничего и не видел в дереве  Улыбка
  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #185 - 08. Января 2011 :: 18:31
Печать  
Ошибка
ПоставщикДанных.Справочник
Версия = "4.1.1 01.11.2010"
сборка 4_1_1_002
файл ПоставщикДанных.ВыборГруппы.ert
Процедура ПослеСозданияФормы()

При переносе элемента в другую группу ругается на "НастройкаОтбора.Идентификатор" и "ДанныеСпр.Отбор.НайтиКлюч(НастройкаОтбора.Идентификатор,0)"

Исправил так:
НастройкаОтбора.Идентификатор -> НастройкаОтбора.Имя
ДанныеСпр.Отбор.НайтиКлюч(НастройкаОтбора.Идентификатор,0) -> ДанныеСпр.Отбор.НайтиОтбор(НастройкаОтбора.Имя)
« Последняя редакция: 09. Января 2011 :: 06:08 - Bill »  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #186 - 09. Января 2011 :: 08:25
Печать  
Ошибка
ПоставщикДанных.Справочник
Версия = "4.1.1 01.11.2010"
сборка 4_1_1_002
файл ПоставщикДанных.Справочник.ert
Процедура УдалитьСтроку()

При снятии пометки удаления с элемента возникает ошибка.

Исправил так:
Код
Выбрать все
//Спр//:Справочник
Если ПометкаУдаления = 1 Тогда
	Если МетаСправочник.Владелец.Выбран() = 1 Тогда
		ТекстВопроса = "Подтвердите отмену удаления объекта !";
		Если Вопрос(ТекстВопроса,"Да+Нет") = "Да" Тогда
			СпрВладелец.СнятьПометкуУдаления();
			//Добавления Bill
			ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
							,"справочник"
							,"RefUnmarkDel"
							,СпрВладелец.ТекущийЭлемент()
							,2);
			//Конец добавлений
		Иначе
			Возврат;
		КонецЕсли;
	КонецЕсли;

	//Изменеия Bill
	//Блок ошибочный:
	//ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
	//						,"справочник"
	//						,"RefUnmarkDel"
	//						,СпрВладелец.ТекущийЭлемент()
	//Конец изменений

	Спр.СнятьПометкуУдаления();
	//Добавления Bill
	ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
							,"справочник"
							,"RefUnmarkDel"
							,Спр.ТекущийЭлемент()
							,2);
	//Конец добавлений
	Если Спр.ЭтоГруппа() = 1 Тогда 



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


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #187 - 10. Января 2011 :: 06:16
Печать  
  
Наверх
wwwICQ  
IP записан
 
Supervisor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #188 - 12. Января 2011 :: 17:14
Печать  
Еще вопрос по дереву значений. Необходимо найти значение на нужном уровне в дереве значений. Метода позволяющего это сделать я не нашел. Решил поискать в ИТЗ - источнике данных. Читаю документацию:

Хранение происходит в ИТЗ имеющей структуру

Имя колонки хранилища Наличие в представлении Имя колонки в представлении
rows                               нет                                    -

При этом rows – это объект «ИндексированнаяТаблица» которая не имеет структуры до тех пор пока не будет создано хотя бы одна строка. Структура rows – соответствует структуре головной ИТЗ


Отлично - rows то что мне надо, я по ней поищу методами ИндексированнойТаблицы .... но как до rows достучаться? Смущённый
Код
Выбрать все
	ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений = "ДеревоЗначений";
	ПоставщикДанных.КонтейнерКоманднойПанели = "ПУ";
	ПоставщикДанных.КонтейнерТабличногоПоля  = "ТП";
	Данные = ПоставщикДанных.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();
	Данные.НоваяКолонка("Номенклатура",,,,"Номенклатура");  
        Данные.НоваяКолонка("Цвет",,,,"");
	ДеревоЗначений = Данные.ДеревоЗначений;  
 



Через ДеревоЗначений.rows добраться не могу ....
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #189 - 13. Января 2011 :: 09:42
Печать  
Смотри метод "Выбрать()" который возвращает ИТЗ по вложенному узлу.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Андрей_Минск
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 05. Января 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #190 - 13. Января 2011 :: 09:58
Печать  
Добрый день, подскажите пожалуйста, после метода ЗагрузитьПоИерархии, если ИтогПоПервомуУровню установлен в 0, итоги стразу видны в подвале, если же в 1 по умолчанию, итоги не отображаются пока не развернешь какую нибудь ветку, а если уровень один и разворачивать нечего, тогда хана ))
Когда второй раз заполняю, не закрывая форму отчета, выводятся сразу...
Судя по всему загвоздка где то тут ПоставщикДанных.ДеревоЗначений.ert, ТабличноеПоле.ТекущаяСтрока пустое при первом заполнении
Код
Выбрать все
				Если ИтогПоПервомуУровню = 1 Тогда
					Если ПустоеЗначение(ТабличноеПоле.ТекущаяСтрока) = 1 Тогда
						ЗначениеИтого = 0;
					Иначе
						ЗначениеИтого = ДеревоЗначений.Итог("",Идентификатор);
					КонецЕсли;
				Иначе
					ЗначениеИтого = ТаблицаДанных.Итог(Идентификатор);
				КонецЕсли;
				Подвал.УстановитьЗначение(1,Идентификатор,ЗначениеИтого);
 



Разобрался сам, добавил метод Обновить()
  
Наверх
 
IP записан
 
Supervisor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #191 - 14. Января 2011 :: 10:11
Печать  
Еще вопрос возник - почему при выводе списка ненужные колонки удаляются
Код
Выбрать все
Сервис.ПараметрыВыводаСписка.НеУчитываемые.Добавить("Цвет","Цвет"); 


а при настройке списка только затемняются (становятся недоступными)
Код
Выбрать все
 


Хотелось бы чтоб тоже удалялись (не мозолили глаза пользователю - ведь выбрать их все равно нельзя)
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #192 - 14. Января 2011 :: 11:31
Печать  
Ну так, пускай пользователь видет что еще скрыто от его глаз, вдруг ему это захочется тогда он попросит проггера.
На самом деле не помню, видимо зачем то посчитал нужным.
  

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #193 - 14. Января 2011 :: 13:03
Печать  
vandalsvq писал(а) 14. Января 2011 :: 11:31:
Ну так, пускай пользователь видет что еще скрыто от его глаз, вдруг ему это захочется тогда он попросит проггера.
На самом деле не помню, видимо зачем то посчитал нужным.

Ну на самом деле пользователю  колонки типа "ИндексСтроки" даже в страшном сне не пригодятся  Подмигивание Ну да ладно - выбрать не сможет - уже хорошо.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #194 - 17. Января 2011 :: 13:52
Печать  
пожалуйста выложите простой пример работы с ПоставщикДанных.ИндексированнаяТаблица.

Что- то не могу найти примера.

Хочу переделать старый отчет, где на форме 3 таблицы значений, хотелось бы просто заменить их на табличные поля.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 ... 81
ОтправитьПечать