Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Текст в ОформлениеЯчейки (число прочтений - 7144 )
Утюг
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Ростов-на-Дону
Зарегистрирован: 25. Июля 2006
Пол: Мужской
Текст в ОформлениеЯчейки
13. Мая 2008 :: 08:06
Печать  
Начал осваивать ТП и столкнулся вот с этим:
Код
Выбрать все
Процедура ТабличноеПолеПриВыводеСтроки(ТабличноеПоле, ОформлениеСтроки, ДанныеСтроки)

	Если ПустоеЗначение(ВыбТипЦены) = 0 Тогда
		Номенклатура = ДанныеСтроки.Номенклатура;
		Цена = ПолучитьЦену(Номенклатура);
		ОформлениеЯчейки = ОформлениеСтроки.Ячейки.Получить("Цена");
		ОформлениеСтроки.Ячейки.Цена.Текст = Строка(Цена);
		ОформлениеЯчейки.ОтображатьТекст = 1;
		Сообщить(ОформлениеСтроки.Ячейки.Цена.Текст);
	КонецЕсли;

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



Сообщить(ОформлениеСтроки.Ячейки.Цена.Текст) - выводится пустая строка, хотя в ТП текст есть. Как получить текст из ячейки?
  
Наверх
 
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Текст в ОформлениеЯчейки
Ответ #1 - 13. Мая 2008 :: 08:14
Печать  
Цитата:
Начал осваивать ТП и столкнулся вот с этим:
Код
Выбрать все
Процедура ТабличноеПолеПриВыводеСтроки(ТабличноеПоле, ОформлениеСтроки, ДанныеСтроки)

	Если ПустоеЗначение(ВыбТипЦены) = 0 Тогда
		Номенклатура = ДанныеСтроки.Номенклатура;
		Цена = ПолучитьЦену(Номенклатура);
		ОформлениеЯчейки = ОформлениеСтроки.Ячейки.Получить("Цена");
		ОформлениеСтроки.Ячейки.Цена.Текст = Строка(Цена);
		ОформлениеЯчейки.ОтображатьТекст = 1;
		Сообщить(ОформлениеСтроки.Ячейки.Цена.Текст);
	КонецЕсли;

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



Сообщить(ОформлениеСтроки.Ячейки.Цена.Текст) - выводится пустая строка, хотя в ТП текст есть. Как получить текст из ячейки?


Зачем? у тебя уже есть значение "Цена" - что ты еще хочешь получить?!
"текст" - это не значение - данное поле заполняется постоянно в момент показа строк т.е. ты сам его заполняешь так зачем тебе его получать?
  
Наверх
wwwICQ  
IP записан
 
Утюг
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Ростов-на-Дону
Зарегистрирован: 25. Июля 2006
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #2 - 13. Мая 2008 :: 08:21
Печать  
Сообщить(ОформлениеСтроки.Ячейки.Цена.Текст) - это для примера.

Но есть процедура:
Код
Выбрать все
Процедура ТабличноеПолеВыбор()
	Перем Количество;

	Товар = ТабличноеПоле.ТекущиеДанные.Номенклатура;
	Остаток = ТабличноеПоле.ТекущиеДанные.Остаток;
	Единица = ТабличноеПоле.ТекущиеДанные.Ед;

	Цена = АКакЕеВытащитьИзЯчейкиНеЗнаю;


	// формируем список параметров для передачи в обработку
	Параметр	= СоздатьОбъект("СписокЗначений");
	Параметр.ДобавитьЗначение(Товар	    , "Номенклатура");
	Параметр.ДобавитьЗначение(1				, "Количество");
	Параметр.ДобавитьЗначение(Единица	    , "Единица");
	Параметр.ДобавитьЗначение(Цена				, "Цена");

	// открываем форму обработки
	ОткрытьФормуМодально("Обработка.ВводКоличества", Параметр);

	// получаем параметр возврата.
	Если Параметр.Получить("СтатусВозврата") = 0 Тогда
	    Возврат;
	КонецЕсли;

	Количество = Параметр.Получить("Количество");
	Единица    = Параметр.Получить("Единица");
	Цена	   = Параметр.Получить("Цена");

	ДобавитьОднуПозицию(Товар, Количество, Единица, Цена);

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



Хотелось бы заполнять цену при выводе строки, сейчас использую подзапрос в запросе для ТП.
  
Наверх
 
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Текст в ОформлениеЯчейки
Ответ #3 - 13. Мая 2008 :: 08:26
Печать  
Так ты сейчас заполняешь цену именно при выводе строки, если ты хочешь заполнить цену сразу так и делай это в момент формирования ТП, тогда при выводе строки уже ничего делать не надо будет.

Р.S. у меня такое ощущение что я просто чего то не совсем понимаю.
  
Наверх
wwwICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #4 - 13. Мая 2008 :: 08:27
Печать  
Кури метод УстановитьТекст:

Цитата:
ДанныеСтроки.Ячейки.Партия_Брутто.УстановитьТекст("Мой текст");
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #5 - 13. Мая 2008 :: 08:28
Печать  
Только мо моему ты какую-то фигню делаешь. У тебя провайдер для ТП какого типа?
  
Наверх
ICQ  
IP записан
 
Утюг
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Ростов-на-Дону
Зарегистрирован: 25. Июля 2006
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #6 - 13. Мая 2008 :: 08:37
Печать  
Провайдер - ODBCDataProvider.MSSQL, но колонка "Цена" получена не из запроса.
УстановитьТекст - ничего не изменяет, вывести текст в ячейку я могу, а как его потом получить при тычке по ТП, т.е., при выборе?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #7 - 13. Мая 2008 :: 08:49
Печать  
Цитата:
Провайдер - ODBCDataProvider.MSSQL, но колонка "Цена" получена не из запроса.
УстановитьТекст - ничего не изменяет, вывести текст в ячейку я могу, а как его потом получить при тычке по ТП, т.е., при выборе?


Вот, а где будет хранится твоя новая цена? Т.е. откуда ты будешь брать новую цену при повторном выводе строки?
  
Наверх
ICQ  
IP записан
 
Утюг
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Ростов-на-Дону
Зарегистрирован: 25. Июля 2006
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #8 - 13. Мая 2008 :: 08:57
Печать  
Nick писал(а) 13. Мая 2008 :: 08:49:
Вот, а где будет хранится твоя новая цена? Т.е. откуда ты будешь брать новую цену при повторном выводе строки?

А нет никакой новой цены, т.е., однажды полученная при выводе строки функцией ПолучитьЦену(Номенклатура), она таковой и останется. При клике (выборе) по ТП мне надо ТекущиеДанные + текст из колонки "Цена" отправить дальше в ТЗ.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #9 - 13. Мая 2008 :: 09:00
Печать  
А нельзя эту цену вычислять прямо в запросе?, чего там таково сложного в этой функции?
  
Наверх
ICQ  
IP записан
 
Утюг
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Ростов-на-Дону
Зарегистрирован: 25. Июля 2006
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #10 - 13. Мая 2008 :: 09:06
Печать  
Nick писал(а) 13. Мая 2008 :: 09:00:
А нельзя эту цену вычислять прямо в запросе?, чего там таково сложного в этой функции?

Можно, я так и делаю. Но скорость при этом ниже.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #11 - 13. Мая 2008 :: 09:08
Печать  
Цитата:
Можно, я так и делаю. Но скорость при этом ниже.

Значит что-то не так делаешь!
Показывай полный текст запроса
  
Наверх
ICQ  
IP записан
 
Утюг
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Ростов-на-Дону
Зарегистрирован: 25. Июля 2006
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #12 - 13. Мая 2008 :: 09:13
Печать  
Что обидно: в доке по ТП.ОформлениеЯчейки написано, что свойство Текст доступно как для записи, так и для чтения. Но как его прочитать - я не понял.
  
Наверх
 
IP записан
 
Утюг
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Ростов-на-Дону
Зарегистрирован: 25. Июля 2006
Пол: Мужской
Re: Текст в ОформлениеЯчейки
Ответ #13 - 13. Мая 2008 :: 09:18
Печать  
Nick писал(а) 13. Мая 2008 :: 09:08:
Значит что-то не так делаешь!
Показывай полный текст запроса

Код
Выбрать все
SELECT
DESCR AS DESCR,
Код AS Код,
Номенклатура AS [Номенклатура $Справочник.Номенклатура],
Упак AS Упак,
Остаток AS Остаток,
Ед AS [Ед $Справочник.Единицы],
Цена AS Цена
FROM(
SELECT
Спр.descr AS DESCR,
Спр.code AS Код,
Номенклатура,
$Спр.КолВУпак AS Упак,
SUM(Колич) - SUM(Резерв) AS Остаток,
$Спр.ОсновнаяЕдиница AS Ед,
$ПоследнееЗначение.Цены.Цена(Цены.id, :Дата) AS Цена
FROM(
SELECT
Номенклатура,
КоличествоОстаток AS Колич,
0 AS Резерв
FROM $РегистрОстатки.ОстаткиТМЦ(:Дата~, ,,Номенклатура,Количество) SQL1

UNION ALL

SELECT
Номенклатура,
0 AS Колич,
КоличествоОстаток AS Резерв
FROM $РегистрОстатки.РезервыТМЦ(:Дата~, ,,Номенклатура,Количество) SQL2
) SQL
INNER JOIN $Справочник.Номенклатура AS Спр (NOLOCK) ON Спр.id = Номенклатура
LEFT JOIN $Справочник.Цены AS Цены (NOLOCK)
ON $Цены.ТипЦен=:ТипЦены AND Цены.parentext = Номенклатура
GROUP BY Спр.descr, Спр.code, Номенклатура, $Спр.КолВУпак, $Спр.ОсновнаяЕдиница, Цены.id
HAVING SUM(Колич) - SUM(Резерв) <> 0) SQL 


  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Текст в ОформлениеЯчейки
Ответ #14 - 13. Мая 2008 :: 09:24
Печать  
В icpp/3.0 оформления ячеек заполняются ДО вызова события.
Можно попробовать.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать