Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) ИТЗ: СуществуетКолонка(ИмяНомерКолонки) (число прочтений - 2165 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
19. Сентября 2008 :: 08:16
Печать  
Узнать, существует или нет колонка в ИТЗ можно только через попытку-исключение?
Если да, то можно добавить метод: СуществуетКолонка(ИмяНомерКолонки), которая бы возвращала 1 или 0? А то как-то некрасиво получается, да и не совсем универсально.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #1 - 19. Сентября 2008 :: 10:35
Печать  
Буквально сегодня писал:

Код
Выбрать все
Функция КолонкаСуществует(оИТЗДанные,Знач сИмяКолонки)
	Перем чКолКолонок, сч;

	чКолКолонок = оИТЗДанные.Количествоколонок();
	Для сч = 1 По чКолКолонок Цикл
		Если Врег(СокрЛП(сИмяКолонки)) = Врег(оИТЗДанные.ИмяКолонки(сч)) Тогда
			Возврат 1;
		КонецЕсли;
	КонецЦикла;
	Возврат 0;
КонецФункции // КолонкаСуществует
 

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #2 - 19. Сентября 2008 :: 10:54
Печать  
Эт теперь эту ф-ию надо везде писать, либо делать наследника ИТЗ.  Печаль
Ещё можно как-нить так:
Код
Выбрать все
//------------------------------------ ------------------------------------
Функция СуществуетКолонка(ИТЗ, ИмяКолонки)
	Попытка
		ИТЗ.ИмяКолонки(ИмяКолонки);
		Возврат 1;
	Исключение
		Возврат 0;
	КонецПопытки;
КонецФункции	// СуществуетКолонка 


Можно ещё парочку придумать. Но хотелось бы иметь в составе компоненты.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #3 - 19. Сентября 2008 :: 11:04
Печать  
Это понятно, просто народу пока даже релиз сделать некогда, ни то что хотелки реализовывать Печаль
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #4 - 19. Сентября 2008 :: 11:09
Печать  
Nick писал(а) 19. Сентября 2008 :: 11:04:
Это понятно, просто народу пока даже релиз сделать некогда, ни то что хотелки реализовывать Печаль

Ну я не думаю, что эта задача из разряда труднореализуемых. Но и настаивать не смею. Не захотят/не смогут/не будет времени - пойму и даже не обижусь  Подмигивание
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #5 - 19. Сентября 2008 :: 11:12
Печать  
Хорошо бы, ведь конструкция Попытка-Исключение тормозная до жути  Улыбка
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #6 - 19. Сентября 2008 :: 11:16
Печать  
PVR писал(а) 19. Сентября 2008 :: 11:12:
Хорошо бы, ведь конструкция Попытка-Исключение тормозная до жути  Улыбка

Да тут дело даже не в тормозах, а в том, что ошибка может возникнуть и по другой причине, а мы будем наивно думать(=догадываться), что она возникла потому что нет такой колонки.

Неужели Попытка-Исключение будет дольше работать, чем код Nick-а с перебором и обращением к каждой колонке?
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #7 - 19. Сентября 2008 :: 11:43
Печать  
JohnyDeath писал(а) 19. Сентября 2008 :: 11:16:
Да тут дело даже не в тормозах, а в том, что ошибка может возникнуть и по другой причине, а мы будем наивно думать(=догадываться), что она возникла потому что нет такой колонки.

Неужели Попытка-Исключение будет дольше работать, чем код Nick-а с перебором и обращением к каждой колонке?

Вроде ошибка в твоем коде может возникнуть только по одной причине Подмигивание
Я имел ввиду что Попытка в цикле тормозная. А вот что тормознутей Цикл или Попытка, интересно, может потестируеш ?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #8 - 19. Сентября 2008 :: 11:47
Печать  
Вообще-то, по моему мнению, НомерКолонки() не должен генерировать исключений.
Посмотрите, плз, как там у нас сейчас сделано?
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #9 - 19. Сентября 2008 :: 11:51
Печать  
kms писал(а) 19. Сентября 2008 :: 11:47:
Вообще-то, по моему мнению, НомерКолонки() не должен генерировать исключений.
Посмотрите, плз, как там у нас сейчас сделано?

Точно! Всё нормально. Спасибо.
А я посмотрел на метод "ИмяКолонки" - оно выдаёт исключение, подумалось, что так везде.
Улыбка
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТЗ: СуществуетКолонка(ИмяНомерКолонки)
Ответ #10 - 19. Сентября 2008 :: 12:03
Печать  
Смех посмотрел у самого такой код:
Код
Выбрать все
	Если тз.НомерКолонки("Документ_вид")>0 Тогда
	   тз.УдалитьКолонку("Документ_вид");
	КонецЕсли; 


  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать