Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 ... 20 ОтправитьПечать
Очень популярная тема (более 25 ответов) Начну пожалуй потихоньку постить баги 1cpp-tf (число прочтений - 86287 )
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #180 - 18. Марта 2008 :: 06:33
Печать  
kms писал(а) 18. Марта 2008 :: 06:04:
Леша, как раз пытаюсь уйти от жесткой последовательности действий.

Не, это-то я понял.  Просто добиться стабильной и непротиворечивой работы связки ТП+Поставщик можно двумя способами: а) учесть все возможные последовательности манипуляций; б) запретить "неправильные" последовательности.  Вот и решил осветить вариант б)  Улыбка
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #181 - 18. Марта 2008 :: 06:47
Печать  
Salimbek писал(а) 18. Марта 2008 :: 05:53:
Ну тогда может лучше добавить новый метод, типа УстановитьПараметрыТП(ТекстЗапроса,ИДПоле,КлючПорядка), а в нем в нужной последовательности вызывать методы УстИДПоле и т.д. Было бы неплохо и скрыть эти методы в приват, но людям при этом придется переписывать много существующего кода, так что...


А что мешает создать класс, унаследовав его от табличного поля, и в нем самому один раз написать этот метод?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #182 - 18. Марта 2008 :: 07:39
Печать  
Цитата:
1. отключаем поставщика
2. устанавливаем текст запроса
3. устанавливаем кп
4. устанавливаем ид поле
5. подключаем поставщика

Все хорошо в этой схеме, но надо кое-что добавить.
Если все колонки в ТП видимые, то больше ничего делать не надо.
Если в ТП есть невидимые колонки и к ним идет обращение в ПриВыводеСтроки, то нужно такое изменение:

1. отключаем поставщика
2. устанавливаем текст запроса
3. подключаем поставщика
4. добавляем поля поставщика, соответствующие невидимым полям ТП 
5. устанавливаем данные невидимых колонок ТП, т.к. автоматом они не заполнятся
6. устанавливаем кп
7. устанавливаем ид поле

Если устанавливать данные невидимых колонок после выполнения первой схемы, то в ПриВыводеСтроки будет обращение к колонке ТП, которой еще нет.

Если кому нужен пример Тогда
    Нарисую;
КонецЕсли;
  
Наверх
ICQ  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #183 - 18. Марта 2008 :: 08:02
Печать  
Цитата:
1. отключаем поставщика 
2. устанавливаем текст запроса 
3. подключаем поставщика
4. добавляем поля поставщика, соответствующие невидимым полям ТП 
5. устанавливаем данные невидимых колонок ТП, т.к. автоматом они не заполнятся
6. устанавливаем кп 
7. устанавливаем ид поле

Не соглашусь.  Во первых, подключаем поставщика всегда д.б. самым последним. Во вторых, при выводе строки надо просто проверять видимость колонки, и если она невидима, то и не рыпаться.  Если же от поставщика всегда нужны какие-то данные, то тогда конечно надо этип полям выключить автоудаление.
Думаешь почему я Михаила терзал с видимостью колонок, и передачи этой видимости в поставщика? Да потому что на скорость это влияет прямо таки нипадецки.  Когда запустишь скулёвый Profiler, да посмотришь на запросы - так мозги прочищает...
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #184 - 18. Марта 2008 :: 08:32
Печать  
ADirks писал(а) 18. Марта 2008 :: 08:02:
Цитата:
1. отключаем поставщика  
2. устанавливаем текст запроса  
3. подключаем поставщика
4. добавляем поля поставщика, соответствующие невидимым полям ТП  
5. устанавливаем данные невидимых колонок ТП, т.к. автоматом они не заполнятся
6. устанавливаем кп  
7. устанавливаем ид поле

Не соглашусь.  Во первых, подключаем поставщика всегда д.б. самым последним. Во вторых, при выводе строки надо просто проверять видимость колонки, и если она невидима, то и не рыпаться.  Если же от поставщика всегда нужны какие-то данные, то тогда конечно надо этип полям выключить автоудаление.
Думаешь почему я Михаила терзал с видимостью колонок, и передачи этой видимости в поставщика? Да потому что на скорость это влияет прямо таки нипадецки.  Когда запустишь скулёвый Profiler, да посмотришь на запросы - так мозги прочищает...

И я уже с собой не соглашусь. Очень довольный

Вот так окончательно.

0. расписываем параметры колонок ТП
1. отключаем поставщика
2. устанавливаем текст запроса
3. устанавливаем кп
4. устанавливаем ид поле
5. подключаем поставщика
6. добавляем поля поставщика, соответствующие невидимым полям ТП
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #185 - 18. Марта 2008 :: 09:05
Печать  
vip писал(а) 18. Марта 2008 :: 08:32:
0. расписываем параметры колонок ТП
1. отключаем поставщика
2. устанавливаем текст запроса
3. устанавливаем кп
4. устанавливаем ид поле
5. подключаем поставщика
6. добавляем поля поставщика, соответствующие невидимым полям ТП


vip, а почему ты не хочешь внять нашим рекомендациям опытных собаководов и не сделаешь как-то так:

Цитата:
0. отключаем поставщика
1. расписываем параметры колонок ТП
2. устанавливаем текст запроса
3. устанавливаем кп
4. устанавливаем ид поле
5. добавляем поля поставщика, соответствующие невидимым полям ТП
6. подключаем поставщика


ИД поле можно ставить и при подключенном поставщике, это безопасно.

Я почему твой вчерашний вопрос хотел скорее закрыть - только по соображениям безопасности использования.
Но в плане эффективности - Леша здесь совершенно прав, эффективная последовательность в основном фиксирована.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #186 - 18. Марта 2008 :: 09:12
Печать  
kms писал(а) 18. Марта 2008 :: 09:05:
vip писал(а) 18. Марта 2008 :: 08:32:
0. расписываем параметры колонок ТП
1. отключаем поставщика
2. устанавливаем текст запроса
3. устанавливаем кп
4. устанавливаем ид поле
5. подключаем поставщика
6. добавляем поля поставщика, соответствующие невидимым полям ТП


vip, а почему ты не хочешь внять нашим рекомендациям опытных собаководов и не сделаешь как-то так:

Цитата:
0. отключаем поставщика
1. расписываем параметры колонок ТП
2. устанавливаем текст запроса
3. устанавливаем кп
4. устанавливаем ид поле
5. добавляем поля поставщика, соответствующие невидимым полям ТП
6. подключаем поставщика



Параметры колонок ТП у меня расписаны заранее.

5. добавляем поля поставщика, соответствующие невидимым полям ТП
6. подключаем поставщика

Так не пойдет, т.к. перед подключением поставщика нету такой коллекции, как Поля
Согласен?

5. подключаем поставщика
6. добавляем поля поставщика, соответствующие невидимым полям ТП

А вот так пойдет.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #187 - 18. Марта 2008 :: 09:15
Печать  
vip писал(а) 18. Марта 2008 :: 09:12:
5. добавляем поля поставщика, соответствующие невидимым полям ТП
6. подключаем поставщика

Так не пойдет, т.к. перед подключением поставщика нету такой коллекции, как Поля
Согласен?

И я уже с собой тобой не соглашусь. Очень довольный

Поля - это ж коллекция, принадлежащая поставщику, независимо от его подключения к ТП.
Угу? Подмигивание
  

De quelle planète es-tu?
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #188 - 18. Марта 2008 :: 09:18
Печать  
kms писал(а) 18. Марта 2008 :: 09:15:
vip писал(а) 18. Марта 2008 :: 09:12:
5. добавляем поля поставщика, соответствующие невидимым полям ТП
6. подключаем поставщика

Так не пойдет, т.к. перед подключением поставщика нету такой коллекции, как Поля
Согласен?

И я уже с собой не соглашусь. Очень довольный

Поля - это ж коллекция, принадлежащая поставщику, независимо от его подключения к ТП.
Угу? Подмигивание

Угу Улыбка
С собой не согласен, а со мной согласен?
Угу? Улыбка
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #189 - 18. Марта 2008 :: 09:24
Печать  
Опс. Что-то я не то прицепил. Улыбка

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

De quelle planète es-tu?
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #190 - 18. Марта 2008 :: 09:34
Печать  
Цитата:
Поля можешь тоже ставить без подключения провайдера к ТП.

Нет, не могу.
Тест прилагаю.
  

_testTF02.ert ( 14 KB | Загрузки )
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #191 - 18. Марта 2008 :: 09:36
Печать  
vip писал(а) 18. Марта 2008 :: 09:12:
5. добавляем поля поставщика, соответствующие невидимым полям ТП
6. подключаем поставщика

Так не пойдет, т.к. перед подключением поставщика нету такой коллекции, как Поля
Согласен?

Сейчас еще раз глянул: коллекция сразу после установки текста запроса, конечно есть, но пустая.
Несмотря на это, можно устанавливать параметры полей, например так:
Код
Выбрать все
	оПоставщикДанных.УстТекстЗапроса(ТекстЗапроса());
	оПоставщикДанных.Поля.Добавить("IsFolder").Автоудаление = 0;
 


Только не через Получить(), а через Добавить().
И оно будет работать, чего мы собственно и добивалсь. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #192 - 18. Марта 2008 :: 09:38
Печать  
vip писал(а) 18. Марта 2008 :: 09:34:
Цитата:
Поля можешь тоже ставить без подключения провайдера к ТП.

Нет, не могу.
Тест прилагаю.

Небольшая поправочка
Код
Выбрать все
	Источник.Поля.Добавить("Проба1");
	Источник.Поля.Добавить("Проба2");
	Источник.Поля.Добавить("Проба3");

	ТабПоле.ПоставщикДанных = Источник;
	ТабПоле.ОбновитьСтроки();
 

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #193 - 18. Марта 2008 :: 09:39
Печать  
vip писал(а) 18. Марта 2008 :: 09:34:
Цитата:
Поля можешь тоже ставить без подключения провайдера к ТП.

Нет, не могу.
Тест прилагаю.

Ну, дядька, здесь совсем просто

Надо не
Код
Выбрать все
ТабПоле.ПоставщикДанных.Поля.Добавить("Проба1");
ТабПоле.ПоставщикДанных = Источник;
 



а
Код
Выбрать все
Источник.Поля.Добавить("Проба1");
ТабПоле.ПоставщикДанных = Источник;
 


Ну теперь, точно угу? Подмигивание
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Начну пожалуй потихоньку постить баги 1cpp-tf
Ответ #194 - 18. Марта 2008 :: 09:40
Печать  
ADirks писал(а) 18. Марта 2008 :: 09:38:
Небольшая поправочка

Улыбка Улыбка
  

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