Показать сообщение отдельно
Старый 15.02.2013, 08:16   #2  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
В вашем варианте не корректно будут выводиться поля-массивы (например набор фин. аналитик), более правильно будет так:
X++:
static void testFields(Args _args)
{
    InventTable                 inventTable;
    DictTable                   dt;
    SysDictField                df;
    SysDictField                dfExt;
    Counter                     idx;
    Counter                     arrayIdx;
    ;

    select firstonly inventTable;
    
    dt = new DictTable(tablenum(InventTable));

    for (idx = 1; idx <= dt.fieldCnt(); idx++)
    {
        df = new SysDictField(dt.id(), dt.fieldCnt2Id(idx));

        if (df.isSql())
        {
            for (arrayIdx = 1; arrayIdx <= df.arraySize(); arrayIdx++)
            {
                dfExt = new SysDictField(dt.id(), df.id(), arrayIdx);

                info(strFmt("%1: %2", dfExt.label(), inventTable.(dfExt.id())));
            }
        }
    }
}
Насчет передачи таблицы из грида, если используете для кнопки MenuItem смотрите его свойство DataSource и класс Args, на что-то подобное уже отвечал тут
__________________
Кононов Пётр
За это сообщение автора поблагодарили: morza (1).