Версия для печати темы (https://pro1c.org.ua/index.php?s=939425144d8a0b158488cd6776b00bc0&showtopic=42334)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Не находит Реквизит табличной части справочника

Автор: Constantus 30.11.17, 14:42

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Пытаюсь обойти все табличные части справочника и проверить на его изменения:

    Для Каждого ТабЧасть из ЭтотОбъект.Метаданные().ТабличныеЧасти.Водители.Реквизиты.  Цикл
        Если ЭтотОбъект[ТабЧасть.Имя].Количество() > 0 тогда
            Для каждого РеквизитТабЧасти из ТабЧасть.Реквизиты цикл
                Сообщить("" + Ссылка[ТабЧасть.Имя][РеквизитТабЧасти.Имя] + "/" + ЭтотОбъект[ТабЧасть.Имя] + "/" +РеквизитТабЧасти.Имя);
                //Сообщить("" + Ссылка[ТабЧасть.Имя][РеквизитТабЧасти.Имя] + "/" + ЭтотОбъект[ТабЧасть.Имя][РеквизитТабЧасти.Имя]);
                //Если Ссылка[ТабЧасть.Имя][РеквизитТабЧасти.Имя] <>
                //        ЭтотОбъект[ТабЧасть.Имя][РеквизитТабЧасти.Имя] тогда
                //    Сообщить("ДА");
                //КонецЕсли;    
            КонецЦикла;    
        КонецЕсли;    
    КонецЦикла;


Ошибка на [РеквизитТабЧасти.Имя]

{Справочник.АвтопаркПредприятия.МодульОбъекта(54)}: Поле объекта не обнаружено (Регион)
Сообщить("" + Ссылка[ТабЧасть.Имя][РеквизитТабЧасти.Имя] + "/" + ЭтотОбъект[ТабЧасть.Имя] + "/" +РеквизитТабЧасти.Имя);


Если вывести на экран РеквизитТабЧасти.Имя, то на экране четко высвечиваются все реквизиты

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

Автор: salton 30.11.17, 16:22

А можете весь код от первой до 55 строки выложить под спойлер?

Автор: Constantus 30.11.17, 17:18

salton @ Сегодня, 19:22 * ,


Это и есть весь код в модуле объекта при записи документа... Остальное заремачено


Автор: Petre 30.11.17, 17:41

Что это за байда?

ЭтотОбъект.Метаданные().ТабличныеЧасти.Водители.Реквизиты.

Автор: Constantus 30.11.17, 17:51

Petre @ Сегодня, 20:41 * ,

Виноват, снял код с очередного эксперимента

   Для Каждого ТабЧасть из ЭтотОбъект.Метаданные().ТабличныеЧасти  Цикл
        Если ЭтотОбъект[ТабЧасть.Имя].Количество() > 0 тогда
            Для каждого РеквизитТабЧасти из ТабЧасть.Реквизиты цикл
                Сообщить("" + Ссылка[ТабЧасть.Имя][РеквизитТабЧасти.Имя] + "/" + ЭтотОбъект[ТабЧасть.Имя] + "/" +РеквизитТабЧасти.Имя);
                //Сообщить("" + Ссылка[ТабЧасть.Имя][РеквизитТабЧасти.Имя] + "/" + ЭтотОбъект[ТабЧасть.Имя][РеквизитТабЧасти.Имя]);
                //Если Ссылка[ТабЧасть.Имя][РеквизитТабЧасти.Имя] <>
                //        ЭтотОбъект[ТабЧасть.Имя][РеквизитТабЧасти.Имя] тогда
                //    Сообщить("ДА");
                //КонецЕсли;    
            КонецЦикла;    
        КонецЕсли;    
    КонецЦикла;


В Справочнике есть ТЧ "Водители"

Автор: Petre 01.12.17, 9:11

Constantus @ Вчера, 17:51 * ,
Не вижу обхода строк тч.

А потом, как вы собираетесь сравнивать эти строки, если в объекте строка была: а) удалена, б) добавлена, в) сдвинута...

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua