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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #150 - 17. Декабря 2010 :: 12:23
Печать  
Уважаемый vandalsvq, спасибо за помощь, я не такой специалист по черным запросам как вы, и не знал, что туда можно вставить значение внешней функции, попробую почитать мануал. ПриВыводеСтроки - знаю такой способ, но чтобы он работал - нужна колонка, а ведь ее сначала надо создать через запрос?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #151 - 17. Декабря 2010 :: 12:59
Печать  
Просто через этоти методы добавь колоку, пусть она будет пустая

Код
Выбрать все
Данные.ДобавитьКолонкуДанных("ИмяКолонки", "Заголовок", ""'", "строка", 50, , 0);
Данные.ДобавитьКолонку("ИмяКолоки"); 



В процедуре

Код
Выбрать все
ПриВыводеСтроки(ТП, ОформлениеСтроки, ДанныеСтроки, ТипРегиона)

	Если ТипРегиона = 3 Тогда
		//Что то считаешь....
		ОформлениеЯчейки = ОформлениеСтроки.Ячейки.Получить("ИмяКолонки");
		ОформлениеЯчейки.Текст = "То что ты вычислял выше...";
	КонецЕсли; 


  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #152 - 17. Декабря 2010 :: 13:45
Печать  
Большое спасибо за помощь, но тут выдается ошибка: пробовал параметр РеквизитЗапроса = ""'" или "'" - ругаются оба.

p.s. Я правильно понимаю, что применение таб.поля с одним и тем именем в разных внешних обработках делает сохранение их параметров под одним и тем же именем, например ВнешнийОтчеттпДок.txt? Есть ли возможность изменить это имя?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #153 - 17. Декабря 2010 :: 14:28
Печать  
Попробуй "$ПустоеЗначение"

Изменять Имя Файла нельзя
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #154 - 17. Декабря 2010 :: 14:44
Печать  
ПоставщикДанных.Документы::УстановитьПоставщикаДанных() : no such column: $ПустоеЗначение
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ."+ВидДокумента+"]");
879) }
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #155 - 17. Декабря 2010 :: 15:03
Печать  
В общем смотри, делаешь колонку с ":ПустойИД" или "' '" (суть в принципе не важно, можно даже из родного запроса код, наименование или что угодно). А далее как тебе подсказали "ПриВыводеСтроки" через УстановитьТекст() или присвоение Текст = ... . НО: учти что добавленная колонка появится в отборе, но работать он не будет, потому что в запросе пустота. А значит лучше его скрыть начисто от пользователей. Отбор.ИмяКолонки.Видимость = 0. Как то так...
Пы.сы. а то что нельзя просто добавить колонку - это баг. Вылечим в следующем году Подмигивание
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #156 - 17. Декабря 2010 :: 15:07
Печать  
добавляется пустая колонка, бага нет, и в отборе не появится, последний параметр ведь 0

Код
Выбрать все
	ДН.ДобавитьКолонкуДанных("ИмяКолонки", "Заголовок", "''", , , , 0);
	ДН.НоваяКолонка("ИмяКолонки"); 



я не совсем верно написал... а ildary видимо прокопипастил...
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #157 - 17. Декабря 2010 :: 16:01
Печать  
Я, конечно же скопипастил, так как Вам целиком доверяю + в черных запросах я новичек (не допер, что завершающего знака нет).

Большое спасибо за подсказку по отбору, обязательно учту. Ну а то, что свои колонки появятся в будущем - это вообще праздник, буду ждать.


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #158 - 20. Декабря 2010 :: 10:34
Печать  
Так неловко беспокоить уважаемых людей, но опять рискну спросить - в Таб поле добавлена  колонка "Пометка", тип - число, выводится в виде флажка. При попытке изменить значение выводится ошибка: Попытка присвоить значение недоступной для записи переменной (Пометка), как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).

Само действие происходит так:

Процедура ИзменитьФлажок( ТабПоле )
     
     ТекДанные = ТабПоле.ТекущиеДанные;
       ТекДанные.Пометка = 1 - ТекДанные.Пометка;

КонецПроцедуры

и еще: хочется сделать удобные отборы - т.е. например на форме 2 даты и документы отбираются по этим датам. Сам отбор создан, но как правильнее сделать перерисовку таб поля при смене даты? Сейчас сделано вот так:

ТекОтбор = ТабПоле.Отбор.Получить( ИмяОтбора );
ТекОтбор.Значение = НовЗнач;

ТабПоле.Обновить();

Но вдруг есть более простой способ привязать отбор не к статическому значению, а к контролу на форме?




« Последняя редакция: 20. Декабря 2010 :: 12:41 - ildary »  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #159 - 20. Декабря 2010 :: 12:54
Печать  
ildary писал(а) 20. Декабря 2010 :: 10:34:
Так неловко беспокоить уважаемых людей, но опять рискну спросить -


хватит уже загогяться



ildary писал(а) 20. Декабря 2010 :: 10:34:
как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).


вот в индексированной таблице и надо менять

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #160 - 20. Декабря 2010 :: 12:58
Печать  
ildary писал(а) 20. Декабря 2010 :: 10:34:
и еще: хочется сделать удобные отборы - т.е. например на форме 2 даты и документы отбираются по этим датам. Сам отбор создан, но как правильнее сделать перерисовку таб поля при смене даты? Сейчас сделано вот так:

ТекОтбор = ТабПоле.Отбор.Получить( ИмяОтбора );
ТекОтбор.Значение = НовЗнач;

ТабПоле.Обновить();

Но вдруг есть более простой способ привязать отбор не к статическому значению, а к контролу на форме?



у ПоставщикДанных.Сервис есть метод ВыполнитьНастройкуОтбора, собственно после того как окно закрылось обновляй данные
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #161 - 20. Декабря 2010 :: 13:37
Печать  
Anatol писал(а) 20. Декабря 2010 :: 12:54:
ildary писал(а) 20. Декабря 2010 :: 10:34:
как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).



вот в индексированной таблице и надо менять



Извиняюсь, что не уточнил: для таб поля из индексированной таблицы все уже работает.  Вопрос возник для таб. поле по документу.

у ПоставщикДанных.Сервис есть метод ВыполнитьНастройкуОтбора, собственно после того как окно закрылось обновляй данные

Уточняю - речь идет не об отборе через большое окно сервиса отборов. Оно, конечно работает, но хочется упростить работу пользователя и не требовать открытие этого окна. Над таб полем документов висят две даты - ограничения для таб поля. человек выбирает другую дату - и таб поле перерисовывается. Сейчас я сделал вручную и это работает (описал выше), но вдруг есть метод проще.

И еще вопросы:

1) колонки добавленные вручную, по вашему способу, вот так:

Данные.ДобавитьКолонкуДанных( "РеалДокВид", "Реал", "''", "Строка", 6, , 0 );
Данные.НоваяКолонка( "РеалДок"        );

- есть ли возможность по ним делать отборы?

2) Как выгрузить все выведенные в таб поле (ТипЗначений = Документ.Заявка ) данные в таблицу значений? Если ТипЗначений = Индексированная таблица, то все выгружается через Выгрузить(), а тут? Или хотя бы как перебрать все значения видимые значения в табполе (чтобы их вручную выгрузить)? Простого ТекущиеДанные не хватает - т.к. это одна строка, а нужны все.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #162 - 20. Декабря 2010 :: 14:50
Печать  
1. Отборы по ним делать не получится, потому что данные в запросе = ''. Их попросту нет, поэтому я и говорю что надо бы эти данные рассчитывать в самом запросе.
2. Для выгрузки есть метод, вроде "Выбрать()" называется или как то так, смотри расширение табличного поля "ПоставщикДанных.Документы".

Привязки к контролам твоей формы нет. Вроде даже в 1С 8.х такого нет Улыбка сколько работаю все вручную описываю.
Кстати почему "Получить()" а не просто через точку?
  

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #163 - 20. Декабря 2010 :: 15:24
Печать  
vandalsvq писал(а) 20. Декабря 2010 :: 14:50:
1. Отборы по ним делать не получится, потому что данные в запросе = ''. Их попросту нет, поэтому я и говорю что надо бы эти данные рассчитывать в самом запросе.
2. Для выгрузки есть метод, вроде "Выбрать()" называется или как то так, смотри расширение табличного поля "ПоставщикДанных.Документы".

Привязки к контролам твоей формы нет. Вроде даже в 1С 8.х такого нет Улыбка сколько работаю все вручную описываю.
Кстати почему "Получить()" а не просто через точку?


1. Спасибо, я так и думал, но решил уточнить.
2. Большое спасибо, не обратил внимания на этод метод - из-за названия (в 1С обычно он вызывает окно выбора одной позиции из списка).
3. Просто подумалось - было бы классно указать в качестве значения отбора не фиксированное значение, а видимый контрол в котором юзер может это значение менять, и при каждом изменении в этом контроле, автоматически бы обновлялся и  отбор, и само табличное поле. Я понимаю, что подобные плюшки треубют времени и сил и не прошу Вас беспокоиться, все уже работает и так, я просто уточнял - вдруг уже сделано Улыбка

p.s.  и вдогонку - скажите пожалуйста, есть ли возможность менять данные в табличном поле (я выше писал - про поле Пометка). Я хочу попробовать принудительно вызвать ПриВыводеСтроки  - сработает ли этот фокус?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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