Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Поле агрегатного объекта не обнаружено

v7: Поле агрегатного объекта не обнаружено
Я
   Rononoa
 
17.06.20 - 04:29
Есть справочник НормаОбмундирования, на него ссылается другой справочник НормыОбмундирования и документ РасчетКомпенсации.
Для уточнения расчета для некоторой номенклатуры я указал в какой период она действует, чтобы в документе считалось все верно. Т.е создал новые реквизиты ДатаНачала и ДатаОкончания.
В справочнике НормыОбмундирования есть такая процедура
Процедура ЗаполнитьСоставНормы()
    Если Выбран()=0 Тогда
        Возврат;
    КонецЕсли;
    СписокНормы.УдалитьСтроки();
    Состав = СоздатьОбъект("Справочник.СоставНормы");
    Состав.ИспользоватьВладельца(ТекущийЭлемент());
    Состав.ПорядокНаименований();
    Состав.ВыбратьЭлементы();
    Пока Состав.ПолучитьЭлемент() = 1  Цикл
        Если Состав.ПометкаУдаления() = 1 Тогда
            Продолжить;
        КонецЕсли;
        СписокНормы.НоваяСтрока();
        СписокНормы.Ссылка=Состав.ТекущийЭлемент();
        СписокНормы.Обмундирование = Состав.Обмундирование;
        СписокНормы.ТипОбмундирования = Состав.ТипОбмундирования;
        СписокНормы.ДатаНачала = Состав.ДатаНачала; //добавлено мной
        СписокНормы.ДатаОкончания = Состав.ДатаОкончания; //добавлено мной
        СписокНормы.Количество = Состав.КоличествоНаОдного;
        СписокНормы.СрокНоски = Состав.СрокНоски;
        СписокНормы.СуммаКомпенсации = Состав.СуммаКомпенсации.Получить(РабочаяДата());
    КонецЦикла;
КонецПроцедуры
Эта процедура заполняет табличную часть, которая на вкладке СписокНормы
Также я ссылаюсь на эти новые реквизиты справочника в документе, код

НормаОбмундирования.НоваяСтрока();
НормаОбмундирования.Обмундирование = СоставНормы.Обмундирование;
НормаОбмундирования.ЭтоГруппа      = СоставНормы.Обмундирование.ЭтоГруппа();
НормаОбмундирования.Количество     = СоставНормы.КоличествоНаОдного;
НормаОбмундирования.СрокНоски      = СоставНормы.СрокНоски;
НормаОбмундирования.ДатаНач           = СоставНормы.ДатаНачала;  //добавлено мной
НормаОбмундирования.ДатаОконч      = СоставНормы.ДатаОкончания; //Добавлено мной

Но при добавлении этих новых реквизитов ругается, что справочник, что документ, пишет, что Поле агрегатного объекта не обнаружено. Отладчик пишет тоже самое, просто не идет дальше, а доходит до этих строк, выдает насчет поле агрегатного объекта и пропускает всю процедуру, переходя к следующей. Вот как тут
   Rononoa
 
1 - 17.06.20 - 04:31
Добавлю, что справочник НормыОбмундирования вообще не запускает
   Bigbro
 
2 - 17.06.20 - 04:47
ну если реквизиты добавил верно, то значит где-то объект не выбран.
проверь копированием имя реквизита перенеси, я как то наступал на грабли в упор не видел что буквы были перепутаны в реквизите ("пр"->"рп", или что то типа того), копирование спасло).
   big
 
3 - 17.06.20 - 04:50
Если НормаОбмундирования это справочник, то вот это 

НормаОбмундирования.НоваяСтрока()

к 7.7 не относится. У справочников нет такого метода.

И вот это 

НормаОбмундирования.ЭтоГруппа      = СоставНормы.Обмундирование.ЭтоГруппа()

тоже бессмысленная конструкция.
   Rononoa
 
4 - 17.06.20 - 04:53
(3) Это стояло уже, я просто новую строку с реквизитами добавлял, но другие работали
   victuan1
 
5 - 17.06.20 - 04:53
(0) Задача описана не полно - помочь (ответить) невозможно.
У вас три вида справочников: НормаОбмундирования, НормыОбмундирования и СоставНормы?

"пишет, что Поле агрегатного объекта не обнаружено"
Нужен полный точный текст ошибки.
   victuan1
 
6 - 17.06.20 - 04:56
(3) НормаОбмундирования это наверное, ТаблицаЗначений, а не Справочник.
Задача в (0) сформулирована не адекватно.
   Rononoa
 
7 - 17.06.20 - 05:04
(5) СписокНормы.ДатаНачала = Состав.ДатаНачала;
{Справочник.НормыОбмундирования.Форма.Модуль(42)}: Поле агрегатного объекта не обнаружено (ДатаНачала)
Да 3 справочника
   Rononoa
 
8 - 17.06.20 - 05:05
(6) Нет, это именно отдельный справочник
   big
 
9 - 17.06.20 - 05:24
(7) В тексте (0) нет ни одного упоминания про НормыОбмундирования. Или я чего-то всё же не увидел?
   big
 
10 - 17.06.20 - 05:26
(9) Пардон, виноват. Скорее всего ДатаНачала периодический, надо использовать метод Состав.ДатаНачала.Получить(НаДату)
   Rononoa
 
11 - 17.06.20 - 05:36
Попробую, спасибо за подсказку. Но смогу только завтра утром, так как у нас любят сидеть до талого
   Bigbro
 
12 - 17.06.20 - 05:37
(7) ну так в список нормы то кто будет добавлять новые колонки? это видимо отдельная ТЗ, где то в другом месте определенная, ей нужны колонки.
   Rononoa
 
13 - 17.06.20 - 05:38
(12) Там одна колонка СоставНормы, а видимо остальное это ТЗ
   Rononoa
 
14 - 17.06.20 - 06:11
(10) Хмммм
Справочник.НормыОбмундирования.Форма.Модуль(43)}: Переменная не определена (НаДату)


А просто
СписокНормы.ДатаНачала = Состав.ДатаНачала.Получить();

Опять поле агрегатного объекта не обнаружено
   Bigbro
 
15 - 17.06.20 - 07:14
тащите скрины в тему.
со всеми причастными объектами.
   2S
 
16 - 17.06.20 - 07:15
(14) научитесь пользоваться отладчиком
   big
 
17 - 17.06.20 - 07:58
(14) РукаЛицо! ))))
   Rononoa
 
18 - 17.06.20 - 07:59
(17) Ну чтож поделать, я новичок
   Менталист
 
19 - 17.06.20 - 08:33
(18)Для того что бы получать ответы надо сначала научиться задавать правильные вопросы.И в процессе формирования правильных вопросов - большинство из них отпадет.
   Ёпрст
 
20 - 17.06.20 - 08:59
(0)
ДатаНачала и ДатаОкончания - эти реквизиты ты куда добавил ? Просто положил на форму справочника, или всё же сделал их Реквизитами самого справочника в дереве метаданных ?
   Rononoa
 
21 - 17.06.20 - 09:28
(20) Указал в качестве реквизитов справочника и добавил на форму

(14) А все туплю, поставил Получить(ДатаДок) так как вот, но суть та же
   Ёпрст
 
22 - 17.06.20 - 09:36
(21) Прям вот в дереве метаданных добавил ?
   Ёпрст
 
23 - 17.06.20 - 09:36
и сохранил конфу потом ?
   Rononoa
 
24 - 17.06.20 - 09:38
(22) Вот этот момент не понял, тупо в "Реквизиты" справочника добавил
   Ёпрст
 
25 - 17.06.20 - 09:39
Открой Табло в режиме предприятия (Меню-Сервис-Табло), и напиши туда следующее:

Метаданные.Справочник("СоставНормы").Реквизит("ДатаНачала").Выбран()
   Ёпрст
 
26 - 17.06.20 - 09:40
результат в студиб
   Rononoa
 
27 - 17.06.20 - 09:42
Ну пока поставилось = 1 на ДатаНачала и ДатаОкончания. Сейчас попрошу выйти, отккоменчу код с этим моментом и проверю
   Ёпрст
 
28 - 17.06.20 - 09:43
(27)
в СписокНормы добавлена новая колонка ДатаНачала и ДатаОкончания ?
   Ёпрст
 
29 - 17.06.20 - 09:43
это, по-ходу, таблица значений на форме
   Rononoa
 
30 - 17.06.20 - 09:44
(28) Угу
 
 Рекламное место пустует
   Rononoa
 
31 - 17.06.20 - 09:45
(29) Ну да таблица значений и есть, так как на форме колонок нету, ТЗ значится только одна колонка, а остальное прописано в модуле формы
   Ёпрст
 
32 - 17.06.20 - 09:45
Вот это что возвращает еще ?

Метаданные.Справочник("СоставНормы").Реквизит("ДатаНачала").Периодический
   Ёпрст
 
33 - 17.06.20 - 09:45
(31) и ? таб есть создание этой колонки ?
   Rononoa
 
34 - 17.06.20 - 09:45
(32) 0
   hhhh
 
35 - 17.06.20 - 09:46
(27) ты это всё в рабочей базе фигачишь?
   Rononoa
 
36 - 17.06.20 - 09:46
(35) Эммм, а что, с утра делал резервную копию
   Ёпрст
 
37 - 17.06.20 - 09:49
Покажи код создания колонок таблицы значения..
   Bigbro
 
38 - 17.06.20 - 09:50
найди
СписокНормы = СоздатьОбъект("ТаблицаЗначений")
и списокнормы.НоваяКолонка(...)
там есть твои новые колонки?
   Ёпрст
 
39 - 17.06.20 - 09:52
(38) ну, создатьОбъект он не найдёт, ибо это тз на форме
   Rononoa
 
40 - 17.06.20 - 09:53
(38) СписокНормы = СоздатьОбъект("ТаблицаЗначений")
Ни такого, ни иного, что напоминало бы о создании ТЗ нет, но

Аааа стоп, я в ТЗ не добавил эти колонки
вот сейчас код

    Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение("Общие","Общие реквизиты");
    Форма.Закладки.ДобавитьЗначение("СоставНормы","Состав нормы");
    Форма.ИспользоватьСлой("Основной, Наименование ",2);

    СписокНормы.НоваяКолонка("Ссылка","Справочник.СоставНормы");
    СписокНормы.НоваяКолонка("Обмундирование","Справочник.Обмундирование",,,"Обмундирование");
    СписокНормы.НоваяКолонка("ТипОбмундирования","Перечисление.ТипОбмундирования",10,0,"Тип обмундирования");
    СписокНормы.НоваяКолонка("Количество","Число",8,0);
    СписокНормы.НоваяКолонка("СрокНоски","Число",8,0,"Срок носки"); 
    СписокНормы.НоваяКолонка("СуммаКомпенсации","Число",15,2,"Сумма компенсации");
    СписокНормы.ВидимостьКолонки("Ссылка",0);
   Ёпрст
 
41 - 17.06.20 - 09:55
(40) а как же (28) и (30) ?
   Rononoa
 
42 - 17.06.20 - 09:56
(41) Да не туда посмотрел просто
   Ёпрст
 
43 - 17.06.20 - 09:59
Если что, поставь turbomd и пользуй опенконф+turbomd.vbs, и не придётся никого выгонять из базы, при правке конфы, не затрагивающие сами метаданные
   Rononoa
 
44 - 17.06.20 - 10:06
(43) Вот тут можно подробнее, так как сейчас всяких правок будет куча, хорошо что в всязи с короновирусом не так много людей то торчит. Да и к тому же техзадание я формирую сам, как понял так и сделал (наполовину обычный сотрудник, наполовину в 1С вот), поэтому доработок будет уйма
   Ёпрст
 
45 - 17.06.20 - 10:15
(44)
ставиш опенконф
http://www.1cpp.ru/forum/YaBB.pl?num=1150707341

качаешь turbomd.dll
http://www.1cpp.ru/forum/YaBB.pl?num=1160630298

Далее прописываешь в приНачалеРаботыСистемы загрузку турбомд

ЗагрузитьВнешнююКомпоненту("turbomd.dll")

В самом пофигураторе, пользуешься скриптом turbomd.vbs (Ctrl+M и выбрать из списка, или назначить хот кей скрипту) и там, выгрузить в файлы/загрузить.. результат сразу виден в предприятии
   Ёпрст
 
46 - 17.06.20 - 10:15
Ну и для красоты, SciColorer еще можно поставить
   Rononoa
 
47 - 17.06.20 - 10:16
(46) А этот че делает
   Ёпрст
 
48 - 17.06.20 - 10:16
ну или на нимфостарте готовую сборку опенконфа скачать ( правда, там много лишнего)
   Ёпрст
 
49 - 17.06.20 - 10:16
(47) подсветка текста и сворачивание модуля + поиск + ..еще кучка всего
http://www.1cpp.ru/forum/YaBB.pl?num=1197864156


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