Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.