Адрес этой странички : http://doc-prg.narod.ru/art_00102/art_00102.htm 
Дата обновления : 08.08.2009
 

(c) Sergey Popov, Usinsk, Komi, 2007

© 08.08.2009 Сергей Попов

1Cv7.
Некоторые полезные алгоритмы.
Значения. Таблица значений.

Статью в виде файла (5.2 кб) можно скачать здесь: art_00102.zip

1. Проверить, корректно ли задано значение агрегатного типа
//V - тестируемое значение
//Функция возвращает 1, если значение V имеет агрегатный тип 
//и имеет корректное значение, 0 - в противном случае
Функция сп_ЗначениеАгрегатногоТипаВыбрано(V)
Перем Res;
Res = 0; 
Если ТипЗначения(V)>3 Тогда
    Если V.Выбран()>0 Тогда 
        Res = 1; 
    КонецЕсли;
КонецЕсли;
Возврат Res;
КонецФункции //сп_ЗначениеАгрегатногоТипаВыбрано


2. Возвращает строковое представление значения (простого и агрегатного типов)
//в виде : Справочник.Номенклатура или Строка или еще что-то подобное
Функция сп_Значение_ПолучитьТипВидСтр(X) Экспорт
Перем sRes; //возвр. значение. например, Справочник.Номенклатура или Строка
sRes=СокрЛП(ТипЗначенияСтр(X));
Если ТипЗначения(X)>3 Тогда //агрегатный тип
    Если X.Выбран()>0 Тогда
        sRes=sRes+"."+СокрЛП(X.Вид());
    КонецЕсли;
КонецЕсли;
Возврат sRes;
КонецФункции//сп_Значение_ПолучитьТипВидСтр()

 

3. Существует ли в Таблице Значений колонка с заданным идентификатором
//Определить, существует ли в ТаблицеЗначений (ТЗ) колонка с идентификатором <ИдКолонки>
//Возвращает номер колонки, если она есть или 0 в противном случае
Функция сп_КолонкаТЗсуществует(ТЗ,ИдКолонки)
Перем Res;
Res=0;
Sx=СокрЛП(ИдКолонки);
Если СтрДлина(Sx)>0 Тогда
    Если ВРег(СокрЛП(ТЗ))=ВРег("ТаблицаЗначений") Тогда
        Колво=ЧИСЛО(ТЗ.КоличествоКолонок());
        Если Колво>0 Тогда
            i99=0;
            Пока i99<Колво Цикл
                i99 = i99+1;
                ИдКол=СокрЛП(ТЗ.ПолучитьПараметрыКолонки(ЧИСЛО(i99)));
                Если ВРег(ИдКол) = ВРег(ИдКолонки) Тогда
                    Res = ЧИСЛО(i99);
                    i99=Колво+1;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;
КонецЕсли;
Возврат Res;
КонецФункции //сп_КолонкаТЗсуществует()

 

 

© 08.08.2009 Сергей Попов

 


Hosted by uCoz
-->