Адрес этой странички :
http://doc-prg.narod.ru/art_00102/art_00102.htm
Дата обновления : 08.08.2009
© 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 Сергей Попов