Переключение на Главную Страницу Страницы: 1 ... 60 61 [62] 63 64 ... 81 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 379154 )
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #915 - 18. Июня 2013 :: 05:56
Печать  
ANik писал(а) 17. Июня 2013 :: 02:50:
Еще вопрос по поставщику данных (Справочник)
1. Можно ли сделать часть колонок недоступными для редактирования?

Ага, тоже сильно этим интересуюсь. Если кто в теме - отзовитесь плиз.
  
Наверх
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #916 - 18. Июня 2013 :: 08:06
Печать  
accuman писал(а) 18. Июня 2013 :: 05:56:
ANik писал(а) 17. Июня 2013 :: 02:50:
Еще вопрос по поставщику данных (Справочник)
1. Можно ли сделать часть колонок недоступными для редактирования?

Ага, тоже сильно этим интересуюсь. Если кто в теме - отзовитесь плиз.

Разобрался. метод табличного поля ТППередНачаломИзменения(ТП,Флаг) Флаг в 0 для недоступных колонок. Оно конечно работает. Теперь ясно - юзать методы табличного поля а поставщик только для автоматической связки
  
Наверх
 
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #917 - 18. Июня 2013 :: 12:12
Печать  
ANik писал(а) 18. Июня 2013 :: 08:06:
accuman писал(а) 18. Июня 2013 :: 05:56:
ANik писал(а) 17. Июня 2013 :: 02:50:
Еще вопрос по поставщику данных (Справочник)
1. Можно ли сделать часть колонок недоступными для редактирования?

Ага, тоже сильно этим интересуюсь. Если кто в теме - отзовитесь плиз.

Разобрался. метод табличного поля ТППередНачаломИзменения(ТП,Флаг) Флаг в 0 для недоступных колонок.

О, очень спасибо. А то я час ухайдокал, пока понял, чего мне не хватает.
  
Наверх
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #918 - 19. Июня 2013 :: 09:36
Печать  
Понадобилось при редактировании одного реквизита обнулять другой - не получается. кучу вариантов перепробовал
Процедура ТПМатериалыПослеРедактированияЗначения(ТП, стр, кол, рег)
     Если кол.Имя = "ВидНорматива" Тогда
           ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
           Если стр.Норматив.Вид()<>ВидСправочника Тогда
                 ТП.ТекущиеДанные.ТекущийЭлемент.Норматив="";
                 ПоставщикДанныхМатериалы.Обновить();
           КонецЕсли;
     КонецЕсли;
КонецПроцедуры // ПослеРедактированияЗначения(ТабличноеПоле, стр, кол, рег)
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #919 - 19. Июня 2013 :: 11:14
Печать  
ANik писал(а) 19. Июня 2013 :: 09:36:
Понадобилось при редактировании одного реквизита обнулять другой - не получается. кучу вариантов перепробовал
Процедура ТПМатериалыПослеРедактированияЗначения(ТП, стр, кол, рег)
     Если кол.Имя = "ВидНорматива" Тогда
           ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
           Если стр.Норматив.Вид()<>ВидСправочника Тогда
                 ТП.ТекущиеДанные.ТекущийЭлемент.Норматив="";
                 ПоставщикДанныхМатериалы.Обновить();
           КонецЕсли;
     КонецЕсли;
КонецПроцедуры // ПослеРедактированияЗначения(ТабличноеПоле, стр, кол, рег)


Код
Выбрать все
Процедура ТПМатериалыПередОкончаниемРедактирования(ТП, стр, кол, рег, лЗначение, ФСО)
	Если кол.Имя = "ВидНорматива" Тогда
		ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
		Если стр.Норматив.Вид()<>ВидСправочника Тогда
			стр.Норматив="";
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры // ПередОкончаниемРедактирования
 



Ну или стр.Норматив=ПолучитьПустоеЗначение("Справочник."+ВидСправочника);
Но, имхо, как-то с логикой изменения тут не так...
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #920 - 19. Июня 2013 :: 12:13
Печать  
Если надо "при редактировании одного реквизита обнулять другой", то все просто, пишете в базу, откуда берутся данные - пустоту Подмигивание Ну и, для меньшей перерисовки, визуально очищаете соответствующее поле.
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #921 - 20. Июня 2013 :: 02:40
Печать  
Получился такой код:
Процедура ТПМатериалыПослеРедактированияЗначения(ТП, стр, кол, рег)
     Если кол.Имя = "ВидНорматива" Тогда
           ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
           Если стр.Норматив.Вид()<>ВидСправочника Тогда
                 ТемпСпр=СоздатьОбъект("Справочник.ПроектНорм");
                 ТемпСпр.НайтиЭлемент(Стр.ТекущийЭлемент());
                 ТемпСпр.Норматив="";
                 ТемпСпр.Записать();
                 ПоставщикДанныхМатериалы.Обновить();
           КонецЕсли;
     КонецЕсли;
КонецПроцедуры // ПослеРедактированияЗначения(ТабличноеПоле, стр, кол, рег)
Мда - кривенько
Можно ли используя Поставщик.Справочник отображать с группировками по определенному полю в иерархическом виде?
То ли все-таки в Йокселе надо было рисовать...
Так ведб поставщик освоить охота, чтобы меньше телодвижений делать.
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #922 - 20. Июня 2013 :: 11:58
Печать  
Пожалуйста приведите пример можно ли сделать таблицу значений или табличное поле источником данных. спасибо за ранее.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #923 - 20. Июня 2013 :: 12:20
Печать  
По последним вопросам:

1. Чтобы указывать виды для выбора, родителей или владельцев см. в документации ПоставщикДанных.ТабличноеПоле.Реквизиты. В кратце: в коллекции хранятся все колонки, в них можно задать настройки. Только просмотр туда не добавлял, но в принципе через нее можно сделать много чего.
2. ANik, если источником данных является запрос (справочники, документы, журналы и т.п.) то как изволите понимать команду ТекущиеДанные.ТекущийЭлемент.Норматив = ""? Ни 8-ка, ни 7-ка так не умеют. Так что менять надо источник, а поставщик лишь вызывать перечитывание строк. Собственно не кривенько это, а вполне нормально.
И кстати лучше использовать не метод "Обновить", а метод "ОбновитьСтрокиТабличногоПоля". Обновить вызывает полное перестроение и запроса и табличного поля и вообще много чего служебного. А Обновить строки лишь перечитывание текущей порции данных + пересчет подвала если он есть. Что во много раз эффективнее.
3. Табличное поле - это визуальный элемент, и источником данных выступать не может. А ТаблицаЗначений может, см. в документации расширение "ИндексированнаяТаблица". В ИТ выгружай свою ТЗ и все.
  

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #924 - 24. Июня 2013 :: 09:57
Печать  
vandalsvq писал(а) 20. Июня 2013 :: 12:20:
3. Табличное поле - это визуальный элемент, и источником данных выступать не может. А ТаблицаЗначений может, см. в документации расширение "ИндексированнаяТаблица". В ИТ выгружай свою ТЗ и все.

И в процессе правки этой индексированной таблицы записывать изменения в справочник?
  
Наверх
 
IP записан
 
DenisShiln
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 26. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #925 - 26. Июня 2013 :: 17:20
Печать  
Есть реквизит справочника Имя: "Счет" Тип: "Документ.Счет", как вывести Счет.Контрагент.Наименование ?
  
Наверх
 
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #926 - 26. Июня 2013 :: 18:28
Печать  
DenisShiln писал(а) 26. Июня 2013 :: 17:20:
Есть реквизит справочника Имя: "Счет" Тип: "Документ.Счет", как вывести Счет.Контрагент.Наименование ?

ДобавитьСоединениеДанных
Синтаксис: ДобавитьСоединениеДанных(ИмяСоединения,ТекстЗапроса)
Параметры:
•      ИмяСоединения – имя соединения по которому будет происходить дальнейшая идентификация.
•      ТекстЗапроса – текст запроса в синтаксисе КОП «ПрямойЗапрос» для добавления к запросу поставщика данных. Например: «left join Справочник.Договоры as СпрДог $nolock on $ТекущийОбъект.Договор = $СпрДог.ТекущийЭлемент».
  
Наверх
IP записан
 
DenisShiln
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 26. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #927 - 27. Июня 2013 :: 08:10
Печать  
accuman писал(а) 26. Июня 2013 :: 18:28:
DenisShiln писал(а) 26. Июня 2013 :: 17:20:
Есть реквизит справочника Имя: "Счет" Тип: "Документ.Счет", как вывести Счет.Контрагент.Наименование ?

ДобавитьСоединениеДанных
Синтаксис: ДобавитьСоединениеДанных(ИмяСоединения,ТекстЗапроса)
Параметры:
•      ИмяСоединения – имя соединения по которому будет происходить дальнейшая идентификация.
•      ТекстЗапроса – текст запроса в синтаксисе КОП «ПрямойЗапрос» для добавления к запросу поставщика данных. Например: «left join Справочник.Договоры as СпрДог $nolock on $ТекущийОбъект.Договор = $СпрДог.ТекущийЭлемент».


Сделал так6
Код
Выбрать все
	ТекстСоединения = "
	|left join
	|	Документ_ЗаявкаПокупателя as Заявка
	|on
	|	$ТекущийОбъект.Счет = Заявка.IDDOC
	|
	|left join
	|	Справочник_Контрагенты as Контрагент
	|on
	|	Заявка.Контрагент = Контрагент.ID
	|
	|left join
	|	Журнал as Журнал
	|on
	|	$ТекущийОбъект.Счет = Журнал.IDDOC
	|
	|left join
	|	Справочник_Проекты as Менеджер
	|on
	|	Журнал.Проект = Менеджер.ID
	|";
  Данные.ДобавитьСоединениеДанных("ДопПоля",ТекстСоединения);
 



все работает. Верен ли подход? или можно проще?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #928 - 27. Июня 2013 :: 08:40
Печать  
Имхо, проще уже не можно и подход верен))
  
Наверх
ICQ  
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #929 - 28. Июня 2013 :: 17:45
Печать  
Улыбка Я, как апологет "правильных подходов", разделил бы каждый join на отдельное соединение. Ну так, для профилактики. Но раз работает - лучше не трогать Подмигивание
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 60 61 [62] 63 64 ... 81
ОтправитьПечать