Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Введение в Табличное Поле (ТП) (число прочтений - 13393 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #15 - 29. Марта 2008 :: 13:25
Печать  
не тот поставщик данных
  

1&&2&&3
Наверх
 
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #16 - 29. Марта 2008 :: 13:25
Печать  
Bagirius писал(а) 29. Марта 2008 :: 13:15:
Как в ТП загнать ТЗ

Делаю:

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

Процедура ПриОткрытии()
Источник2 = СоздатьОбъект("ODBCDataProvider.MSSQL");      
База = СоздатьОбъект("ODBCDatabase");
ТЗТП2 = СоздатьОбъект("ТаблицаЗначений");
ТЗТП2.НоваяКолонка("Фирма");
ТЗТП2.НоваяКолонка("Тип");
ТЗТП2.НоваяКолонка("Цена");
Источник2.БазаДанных = База;
КонецПроцедуры

Что не так


Разрулил

ТабличноеПоле2.ПоставщикДанных = СоздатьОбъект("ПоставщикДанныхТЗ");;
ТабличноеПоле2.ПоставщикДанных.УстТаблицуЗначений(ТЗТП2);
ТабличноеПоле2.ОбновитьСтроки();
  
Наверх
ICQ  
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #17 - 29. Марта 2008 :: 15:47
Печать  
Как запретить перетаскивать колонки?
У меня на форме Три ТП (Основная и 2 дополнительные), если я начинаю перетаскивать колонку из дополнительных ТП, 1С может вылетить, зависает на некоторое время, хотя никаких обработок не прописано.
При замере - выдает что выполняется больше 100 раз процедура ПриАктивацииСтроки, как раз эта процедура и обновляет дополнительные ТП.
Где связь?
Как лечить?
  
Наверх
ICQ  
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #18 - 29. Марта 2008 :: 15:55
Печать  
Bagirius писал(а) 29. Марта 2008 :: 15:47:
Как запретить перетаскивать колонки?
У меня на форме Три ТП (Основная и 2 дополнительные), если я начинаю перетаскивать колонку из дополнительных ТП, 1С может вылетить, зависает на некоторое время, хотя никаких обработок не прописано.
При замере - выдает что выполняется больше 100 раз процедура ПриАктивацииСтроки, как раз эта процедура и обновляет дополнительные ТП.
Где связь?
Как лечить?


В принципе, сделал кнопки недоступными, и все ок, мне дополнительные ТП нужны только для инфы, но вобще интересно, в чем проблемо все же?

И еще есть такой вопрос, а как скрыть курсор выделенной ячейки в дополнительных, недоступных ТП?
  
Наверх
ICQ  
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #19 - 02. Апреля 2008 :: 11:04
Печать  
Что делает ТаймаутОбновления?
Выполняет заново запрос SQL?

Заметил такой глюк.
Запрос выводит в ТП остатки Товаров, детализированные по Партиям, т.е. каждая позиция может быть представлена в нескольких строках, в зависимости от того в скольких париях остались остатки, т.е. сколько партий - столько строк этого товара.
Так вот, как только выполняется обновление, то активная строка перескакикавает на первую запись этого товара.
Т.е. есть три строки одного и того же товара, выбираем первую, все нормально, выбираем вторую, через определенный интервал курсор перескакивает на первую, выбираем третию строку, курсор перескакивает, через определенное время, на первую строку.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Введение в Табличное Поле (ТП)
Ответ #20 - 02. Апреля 2008 :: 11:13
Печать  
group by в запросе есть?
  
Наверх
ICQ  
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #21 - 02. Апреля 2008 :: 11:15
Печать  
vip писал(а) 02. Апреля 2008 :: 11:13:
group by в запросе есть?

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



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #22 - 02. Апреля 2008 :: 11:17
Печать  
Вот запрос

SELECT Номенклатура.ID as [Товар $Справочник.Номенклатура]
     , Номенклатура.IsMark as IsMark
     , Номенклатура.IsFolder as IsFolder
     , Номенклатура.CODE as Код
     , Номенклатура.DESCR as Наименование
     , $Номенклатура.Артикул as Артикул
     , $Номенклатура.ОригинальныйНомер as [ОЕ $Справочник.OE_Номера]
     , $Номенклатура.БазоваяЕдиницаИзмерения as [ЕдИзм $Перечисление.ЕдиницыИзмерения]
     , ПартииТоваровОстатки.Партия as [Партия $Документ]
     , (ПартииТоваровОстатки.СебестоимостьОстаток / ПартииТоваровОстатки.ОстатокТовараОстаток) as ЦЗ
     , (ПартииТоваровОстатки.ОстатокТовараОстаток) as Остаток
     , (РезервыТоваровОстатки.РезервТовараОстаток) as Резерв
FROM $Справочник.Номенклатура AS Номенклатура
     LEFT OUTER JOIN $РегистрОстатки.ПартииТоваров(,
           RIGHT OUTER JOIN $Справочник.Номенклатура AS Номенклатура
     ON Номенклатура.ID = Товар,(Склад = :ВыбСклад) AND (Фирма = :ВыбФирма)
     ,
           (Фирма, Товар, Склад, Партия),) AS ПартииТоваровОстатки
     ON Номенклатура.ID = ПартииТоваровОстатки.Товар
     LEFT OUTER JOIN $РегистрОстатки.РезервыТоваров(,
           RIGHT OUTER JOIN $Справочник.Номенклатура AS Номенклатура ON Номенклатура.ID = Товар,,
           (Фирма, Товар, Склад, Партия),) AS РезервыТоваровОстатки
     ON Номенклатура.ID = РезервыТоваровОстатки.Товар
     AND ПартииТоваровОстатки.Фирма = РезервыТоваровОстатки.Фирма
     AND ПартииТоваровОстатки.Склад = РезервыТоваровОстатки.Склад
     AND ПартииТоваровОстатки.Партия = РезервыТоваровОстатки.Партия
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #23 - 02. Апреля 2008 :: 11:43
Печать  
Bagirius писал(а) 02. Апреля 2008 :: 11:04:
Что делает ТаймаутОбновления?
Выполняет заново запрос SQL?

Заметил такой глюк.
Запрос выводит в ТП остатки Товаров, детализированные по Партиям, т.е. каждая позиция может быть представлена в нескольких строках, в зависимости от того в скольких париях остались остатки, т.е. сколько партий - столько строк этого товара.
Так вот, как только выполняется обновление, то активная строка перескакикавает на первую запись этого товара.
Т.е. есть три строки одного и того же товара, выбираем первую, все нормально, выбираем вторую, через определенный интервал курсор перескакивает на первую, выбираем третию строку, курсор перескакивает, через определенное время, на первую строку.

У тебя скорее всего в методе УстИДПоле() стоит "Товар". А т.к. в этих строках у тебя товар одинаковый, то ТП и принимает первый попавшийся за нужный. Тебе нужно какое-нибудь поле, которое однозначно идентифицирует твою строку (например, "Товар"+"Партия")
  
Наверх
 
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #24 - 02. Апреля 2008 :: 11:51
Печать  
А как в ячейке ТП задать формат числа "Ч-0.2, ".
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #25 - 02. Апреля 2008 :: 11:54
Печать  
Bagirius писал(а) 02. Апреля 2008 :: 11:51:
А как в ячейке ТП задать формат числа "Ч-0.2, ".

Обрабатывай всё в "ПриВыводеСтроки" и устанавливай текст в ячейке какой хочешь
  
Наверх
 
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #26 - 02. Апреля 2008 :: 11:54
Печать  
JohnyDeath писал(а) 02. Апреля 2008 :: 11:43:
Bagirius писал(а) 02. Апреля 2008 :: 11:04:
Что делает ТаймаутОбновления?
Выполняет заново запрос SQL?

Заметил такой глюк.
Запрос выводит в ТП остатки Товаров, детализированные по Партиям, т.е. каждая позиция может быть представлена в нескольких строках, в зависимости от того в скольких париях остались остатки, т.е. сколько партий - столько строк этого товара.
Так вот, как только выполняется обновление, то активная строка перескакикавает на первую запись этого товара.
Т.е. есть три строки одного и того же товара, выбираем первую, все нормально, выбираем вторую, через определенный интервал курсор перескакивает на первую, выбираем третию строку, курсор перескакивает, через определенное время, на первую строку.

У тебя скорее всего в методе УстИДПоле() стоит "Товар". А т.к. в этих строках у тебя товар одинаковый, то ТП и принимает первый попавшийся за нужный. Тебе нужно какое-нибудь поле, которое однозначно идентифицирует твою строку (например, "Товар"+"Партия")


А у меня его нет Улыбка
попробую завести
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #27 - 02. Апреля 2008 :: 12:00
Печать  
Видать я тебе не то посоветовал, но всё равно попробуй  Подмигивание
Скорее всего всё в "УстКлючПорядка". Что у тебя там?
  
Наверх
 
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #28 - 02. Апреля 2008 :: 12:09
Печать  
JohnyDeath писал(а) 02. Апреля 2008 :: 12:00:
Видать я тебе не то посоветовал, но всё равно попробуй  Подмигивание
Скорее всего всё в "УстКлючПорядка". Что у тебя там?


У меня в зависимости от выбранных параметров, но к примеру КОД - это уникальный код справочника товары.
Если по партиям - то он равный

А на счет твоего совета - не могу сцеписть в запроса Товар и Партию, не подскажешь как?

Делаю, но дает ошибку (ПартииТоваровОстатки.Партия & Номенклатура.ID) as Инд
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Введение в Табличное Поле (ТП)
Ответ #29 - 02. Апреля 2008 :: 12:19
Печать  
Bagirius писал(а) 02. Апреля 2008 :: 12:09:
У меня в зависимости от выбранных параметров, но к примеру КОД - это уникальный код справочника товары.
Если по партиям - то он равный

ну так попробуй, чтоб был не только код, а код с партией
Цитата:
А на счет твоего совета - не могу сцеписть в запроса Товар и Партию, не подскажешь как?

Делаю, но дает ошибку (ПартииТоваровОстатки.Партия & Номенклатура.ID) as Инд

вместо "&" - "+" поставь - это строковые поля ( но скорее всего это от ИД поля не зависит, а зависит от ключа порядка)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать