Вход | Регистрация

1С:Предприятие ::

Метки: документы

Как получить Представлениевида числового реквизита документа?

Я
   Rider
 
24.05.04 - 10:32
Надеюсь вопрос понятен.
 
  Рекламное место пустует
   SnarkHunter
 
1 - 24.05.04 - 10:33
Неа...
   Rider
 
2 - 24.05.04 - 10:38
В документе есть числовой реквизит. Как получить его пользовательское представление. Для агрегатных типов данных ПредставлениеВида(), а как это получить для числового или текстового реквизита.
   SnarkHunter
 
3 - 24.05.04 - 11:09
Название реквизита? Слово "Число"? Его длину и точность? Что именно?
   Rider
 
4 - 24.05.04 - 11:14
То что пишется в поле синоним или комментарий реквизита документа.
   SnarkHunter
 
5 - 24.05.04 - 11:20
Метаданные.Документ(Ид_Дока_Строка).РеквизитШапки(Ид_Рекв_Строка).Синоним
Метаданные.Документ(Ид_Дока_Строка).РеквизитТабличнойЧасти(Ид_Рекв_Строка).Синоним
Метаданные.ОбщийРеквизитДокумента(Ид_Рекв_Строка).Синоним

Вместо идентификаторов могут использоваться номера...
   Rider
 
6 - 24.05.04 - 11:32
Спасибо конечно, но это очень неудобно. Я хотел написать глобальную процедуру которая бы выводила название реквизита документа, который незаполнен, при проведении документа. а при таком подходе надо знать название документа, табличная это часть или шапка и как получить тотже идентификатор реквизита.
   SnarkHunter
 
7 - 24.05.04 - 11:46
Я ответил на вопрос, поставленный в (0),(2),(4)...
   lexa
 
8 - 24.05.04 - 11:54
//******************************************************************************

// глВсеРеквизитыДокументаЗаполнены(Конт,СписокРеквизитов)
//

// Параметры:
//  Конт             - групповой контекст (контекст документа)

//  СписокРеквизитов - строка, в которой через запятую перечислены идентификаторы 
//  реквизитов (шапки или общие реквизиты документа)

//
// Возвращаемое значение:

//  1 - если все реквизиты заполнены правильно.
//  0 - если какой либо обязательный реквизит не заполнен

//
// Описание:

//  Функция вызывается из модулей проведения документов и предназначена для 
//  проверки полноты заполнения обязательных реквизитов.

//
Функция глВсеРеквизитыДокументаЗаполнены(Конт,СписокРеквизитов) Экспорт
    
    Если Константа.РазрешитьПроводитьБудущейДатой = 0 Тогда
        Если Конт.ДатаДок>РабочаяДата() Тогда
            глНеПроводить(Конт,"Нельзя проводить документ будущей датой!");
            Возврат (0);
        КонецЕсли;                                             
    КонецЕсли;    
                
    Пока СтрДлина(СписокРеквизитов)>0 Цикл
        ПозЗапятой = Найти (СписокРеквизитов,",");
        Если ПозЗапятой = 0 Тогда
            ИдентРеквизита = СписокРеквизитов;
            СписокРеквизитов = "";
        Иначе
            ИдентРеквизита = Сред(СписокРеквизитов,1,ПозЗапятой-1);
            СписокРеквизитов = Сред(СписокРеквизитов,ПозЗапятой+1);
        КонецЕсли;
        Если ПустоеЗначение(Конт.ПолучитьАтрибут(ИдентРеквизита))=1 Тогда
            ВидДок = Конт.Вид();
            Если Метаданные.Документ(ВидДок).РеквизитШапки(ИдентРеквизита).Выбран()=1 Тогда
                Объект = Метаданные.Документ(ВидДок).РеквизитШапки(ИдентРеквизита);     
                
            ИначеЕсли Метаданные.ОбщийРеквизитДокумента(ИдентРеквизита).Выбран()=1 Тогда
                Объект = Метаданные.ОбщийРеквизитДокумента(ИдентРеквизита);
                
            ИначеЕсли Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентРеквизита).Выбран()=1 Тогда
                Объект = Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентРеквизита);
                
            Иначе
                глНеПроводить(Конт,"ВсеРеквизитыДокументаЗаполнены(): Неверный реквизит:"+ИдентРеквизита);
                Возврат (0);
            КонецЕсли;
            ПредставлениеРеквизита = ?(ПустоеЗначение(Объект.Синоним)=0,Объект.Синоним,Объект.Идентификатор);
            глНеПроводить(Конт,"Не заполнен реквизит """+ПредставлениеРеквизита+"""");
            Возврат (0);
        КонецЕсли;
    КонецЦикла;
    
    Возврат (1);
    
КонецФункции// глВсеРеквизитыДокументаЗаполнены()
   427
 
9 - 24.05.04 - 12:06
(6) а ты точно знаешь, что этот реквизит должен быть заполнен?... Логика то в документе лежит...

особенно мне нравится, ... когда ты сообщищь о незаполненности реквизита, которого нет на форме (а такие есть в типовых) ...  

Вот юзер то потрахается.... а потом некоторые особо нервные могут и этих... на букву п... подвесить с нервов то....

Формальный опрос возможен и ответ дал Снарк ....
   Rider
 
10 - 24.05.04 - 12:37
lexa спасибо все работает. Но надо сказать, что если бы был метод ПредставлениеВида() для любого реквизита было бы намного проще.ПОчему такого не сделали?
 
  Рекламное место пустует
   lexa
 
11 - 24.05.04 - 12:38
Это не мне спасибо, а разработчикам типовой ТиС.
   Rider
 
12 - 24.05.04 - 13:07
Я не знаю что это такое ТиС, но у нас в Украине в комплексной конфе если не заполнен нужный реквизит просто пишется "Документ непроведен".


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует