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

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

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

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

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

И вот это

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

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

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

Справочник.НормыОбмундирования.Форма.Модуль(43)}: Переменная не определена (НаДату)


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

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

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

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

Метаданные.Справочник("СоставНормы").Реквизит("ДатаНачала").Периодический
33 Ёпрст
 
17.06.20
09:45
(31) и ? таб есть создание этой колонки ?
34 Rononoa
 
17.06.20
09:45
(32) 0
35 hhhh
 
17.06.20
09:46
(27) ты это всё в рабочей базе фигачишь?
36 Rononoa
 
17.06.20
09:46
(35) Эммм, а что, с утра делал резервную копию
37 Ёпрст
 
17.06.20
09:49
Покажи код создания колонок таблицы значения..
38 Bigbro
 
17.06.20
09:50
найди
СписокНормы = СоздатьОбъект("ТаблицаЗначений")
и списокнормы.НоваяКолонка(...)
там есть твои новые колонки?
39 Ёпрст
 
17.06.20
09:52
(38) ну, создатьОбъект он не найдёт, ибо это тз на форме
40 Rononoa
 
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) ?
42 Rononoa
 
17.06.20
09:56
(41) Да не туда посмотрел просто
43 Ёпрст
 
17.06.20
09:59
Если что, поставь turbomd и пользуй опенконф+turbomd.vbs, и не придётся никого выгонять из базы, при правке конфы, не затрагивающие сами метаданные
44 Rononoa
 
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 еще можно поставить
47 Rononoa
 
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