Ошибка Поле объекта не обнаружено (ДанныеПосещений)

1. G_101821925179404875930 21.01.25 03:36 Сейчас в теме
у меня есть кусок кода в котором я не могу разобраться, я только учусь программированию на 1с и вот такая ошибка всё прикрепил ниже. у меня есть структура ток же прикрепил в скриншоте и ДанныеПосещений определенны как тип хранилеще значения
&НаКлиенте
Процедура ЗаполнитьДанныеПосещаемости()
	// Получаем таблицу дат тренировок
	ТаблицаДаты = Объект.ДатыТренеровок;

    Для Каждого СтрокаПосещаемость Из Объект.Посещаемость Цикл
        СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
		Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
        	ДатаТренировки = СтрокаДаты.Дата;
			СтрокаПосещаемость.ДанныеПосещений.Вставить(ДатаТренировки, Ложь); //значение по умолчанию
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры
Показать


Ошибка
Поле объекта не обнаружено (ДанныеПосещений)
{Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма(18)}:СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
{Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма(8)}:ЗаполнитьДанныеПосещаемости();
{Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма(3)}:ОбновитьДанныеПосещаемости();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Прикрепленные файлы:
Найденные решения
35. antz 22.01.25 12:54 Сейчас в теме
(29) Короче, как-то так.
Только хранилище значения - изврат конечно, ни запросом туда постучаться, ни отбор установить.
Прикрепленные файлы:
1Cv8.dt
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. user2107191 21.01.25 08:01 Сейчас в теме
(1)
я только учусь программированию на 1с
Какие источники и ресурсы используешь для обучения?
8. G_101821925179404875930 21.01.25 13:16 Сейчас в теме
(4) конкретных пока нет, просто по интернету лажу, ютуб, нейросети ну и вот сейчас нашёл этот форум где мне уже помогли однажды разобраться.
12. user2107191 21.01.25 13:22 Сейчас в теме
(8)
нейросети ну и вот сейчас нашёл этот форум
Понятно. Делаешь вид, что учишься.
14. G_101821925179404875930 21.01.25 13:24 Сейчас в теме
(12) тот факт что я начал изучать эту тему дня 2 назад не значит что я делаю вид
15. user2107191 21.01.25 13:27 Сейчас в теме
(14) Тот факт, что ты начал изучать медицину не с биологии, а с просмотра видео готовых операций (включая сгенерированные нейросетями) - говорит о том, что ты нифига не учишься, а так, интересуешься.
16. G_101821925179404875930 21.01.25 13:29 Сейчас в теме
(15) Ну мне дали задание в универе на которое у меня 14 дней, уже 12 мне нужно в этот срок успеть его сделать, не уверен что изучая всё по шагово я успею, потому и приходится в ускоренном темпе что то откуда то хватать.
17. user2107191 21.01.25 13:33 Сейчас в теме
(16) Ну тогда не надо говорить, что "я учусь программированию 1С". Или надо учиться базовым понятиям у преподавателя, а не на форумах и нейросетях.
18. G_101821925179404875930 21.01.25 13:36 Сейчас в теме
(17) К сожалению, у нас всего 1 пара в неделю, ну, может, я не полноценно учусь, как вы и говорите, а так, поверхностно изучаю, но так или иначе мне нужна помощь, так как пока что того, что успел посмотреть за эти пару дней, недостаточно для понимания того, почему я не могу так сделать и как правильно нужно сделать, раз уж вы такой умный, могли бы и подсказать, а не кидаться странными обвинениями, что я не учусь и т. д.
6. LeeAreHim 21.01.25 12:51 Сейчас в теме
(1)
СтрокаПосещаемость.ДанныеПосещений = Новый Структура();

А так можно было?
7. user2107191 21.01.25 12:56 Сейчас в теме
(6) Ну если ошибки не выскочило (автор скромно о них умалчивает) - значит можно ))
9. G_101821925179404875930 21.01.25 13:17 Сейчас в теме
(7) ошибка выскочила и я к сожалению когда писал тему, накосячил и не указал ошибку (
(6)
(7)
10. G_101821925179404875930 21.01.25 13:18 Сейчас в теме
(7) Вот я и не знаю может и нельзя, но если нельзя то как по другому это прописать ? Может вы знаете ?
19. G_101821925179404875930 21.01.25 13:37 Сейчас в теме
(6) ошибку добавил если что в тему
2. nekiilik1c 11 21.01.25 04:02 Сейчас в теме
Привет, на клиенте не сможешь получить табличную часть
Прикрепленные файлы:
3. nekiilik1c 11 21.01.25 04:03 Сейчас в теме
(2) делай серверную процедуру и уже в ней работай с таблицей
Serishev1s; +1 Ответить
13. G_101821925179404875930 21.01.25 13:23 Сейчас в теме
(3) У меня как я понимаю проблема в этой сроке
СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
5. antz 21.01.25 09:20 Сейчас в теме
(2) Он работает не с табличной частью прикладного объекта, а с ДанныеФормыКоллекция. Другое дело, что реквизит с типом хранилище значения в данных формы недоступен, с ним надо работать, например, в процедуре ПередЗаписьюНаСервере, обращаясь к ТЧ, полученной через ТекущийОбъект.
11. G_101821925179404875930 21.01.25 13:20 Сейчас в теме
(5) А можно не много по подробнее ? если есть вариант как исправить мой код был бы очень признателен если бы вы мне продемонстрировали.
20. antz 21.01.25 13:43 Сейчас в теме
21. G_101821925179404875930 21.01.25 13:47 Сейчас в теме
(20) задача что бы когда пользователь вводит дату в в документе, а именно показываю на скриншотах первый скрин сам документ второй уже зашли в него, после выбора даты эта дата должна создаваться в посещаемость со значением булево. полностью код выглядит вот так:
&НаКлиенте
Процедура ДатыТренеровокПриИзменении(Элемент)
	ОбновитьДанныеПосещаемости();
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьДанныеПосещаемости()
    ЗаполнитьДанныеПосещаемости();
    СформироватьКолонкиПосещаемости();
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьДанныеПосещаемости()
	// Получаем таблицу дат тренировок
	ТаблицаДаты = Объект.ДатыТренеровок;

    Для Каждого СтрокаПосещаемость Из Объект.Посещаемость Цикл
        СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
		Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
        	ДатаТренировки = СтрокаДаты.Дата;
			СтрокаПосещаемость.ДанныеПосещений.Вставить(ДатаТренировки, Ложь); //значение по умолчанию
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()


	ТаблицаДаты = Объект.ДатыТренеровок;
	Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
    	ДатаТренировки = СтрокаДаты.Дата;
		ИмяКолонки = "Дата_" + Формат(ДатаТренировки, "ДФ=dd_MM_yy");
		НоваяКолонка = ЭлементФормыПосещаемость.СоздатьКолонку(ИмяКолонки);
		НоваяКолонка.Данные = "ДанныеПосещений[" + Строка(ДатаТренировки) + "]";
		НоваяКолонка.Ширина = 50;
    	УстановитьРежимРедактированияКолонки (НоваяКолонка, "КакФлажок");
	КонецЦикла;
КонецПроцедуры  

&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
	Если Режим = "КакФлажок" Тогда
		Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
	ИначеЕсли Режим = "КакТекст" Тогда
        Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
   ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
       Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
	КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
22. user2107191 21.01.25 13:51 Сейчас в теме
(21)
полностью код выглядит вот так:
Кто его написал?
23. antz 21.01.25 14:20 Сейчас в теме
(21)
после выбора даты эта дата должна создаваться в посещаемость со значением булево


тут недопонял
24. G_101821925179404875930 21.01.25 14:26 Сейчас в теме
(22) ну вот смотрите, в даты тренировок нажимается кнопка добавить, после чего выбирается дата и вот после того как она выбрана, мы можем перейти в посещаемость и там у нас должен создаться столбик имя которого будет как раз датой, а значение тип булево. на втором скриншоте колонка должна появится после К посещению. на третьем скриншоте наглядно показал как должно получится
Прикрепленные файлы:
25. user2107191 21.01.25 14:37 Сейчас в теме
(24) Я не об этом спрашивал.
26. G_101821925179404875930 21.01.25 14:39 Сейчас в теме
(23) Возможно есть другой вариант как добиться нужного результата, извиняюсь что перепутал немного, ответил не тому но чуть ниже описал более подробно (24)
27. G_101821925179404875930 21.01.25 14:57 Сейчас в теме
(23) В общем, Подскажите у вас есть идея как можно это реализовать ? допустим если прописать это по другому, так как я сейчас понял что понаписал уже всякой фигни(
28. antz 21.01.25 15:02 Сейчас в теме
(27) Это вам в универе такое дают?

То есть, правильно ли я понимаю: при добавлении дат тренировок на вкладке "Посещаемость" должны добавиться колонки с типом булево в количестве, равном количеству добавленных дат и все эти флажки еще надо сохранить?
29. G_101821925179404875930 21.01.25 15:05 Сейчас в теме
(28) Да, я учусь в УрГЭУ. Насчёт сохранить не совсем вас понял, но если вы про то что они должны остаться на форме то да, если всё правильно понимаю
35. antz 22.01.25 12:54 Сейчас в теме
(29) Короче, как-то так.
Только хранилище значения - изврат конечно, ни запросом туда постучаться, ни отбор установить.
Прикрепленные файлы:
1Cv8.dt
36. G_101821925179404875930 22.01.25 12:57 Сейчас в теме
(35) Огромное спасибо сегодня посмотрю что да как. если буду вопросы напишу сюда в ответы. очень помогли!
38. G_101821925179404875930 22.01.25 13:14 Сейчас в теме
(35) Есть нюанс у меня учебная версия, и как я понимаю в неё я не могу загружать конфигурации с расширением dt, я могу только загружать конфигурации с расширением cf
39. G_101821925179404875930 22.01.25 13:18 Сейчас в теме
(35) Извините за такую просьбу, но нет ли у вас возможности переделать его в cf расширении ? так как если у этого файла просто заменить расширение то он не будет работать
40. G_101821925179404875930 22.01.25 13:32 Сейчас в теме
(35) о чудо, я смог загрузить. Простите за столько сообщений!
31. Serishev1s 22.01.25 06:50 Сейчас в теме
&НаКлиенте
Процедура ЗаполнитьДанныеПосещаемости()
	ЗаполнитьДанныеПосещаемостиНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьДанныеПосещаемостиНаСервере()
    // Получаем таблицу дат тренировок
    ТаблицаДаты = Объект.ДатыТренеровок;

    Для Каждого СтрокаПосещаемость Из Объект.Посещаемость Цикл
        СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
        Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
            ДатаТренировки = СтрокаДаты.Дата;
            СтрокаПосещаемость.ДанныеПосещений.Вставить(ДатаТренировки, Ложь); //значение по умолчанию
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры
Показать


Только в реквизит документа занести структуру невозможно. Предлагаю в табличную часть "Посещаемость" добавить реквизит "ДатаТренировки" с типом "Дата". Когда галочка устанавливается, в ТЧ "Посещаемость" добавляется запись с датой в реквизите "ДатаТренировки" из текущей колонки. Когда галочка снимается - запись удаляется.
32. antz 22.01.25 07:44 Сейчас в теме
(31) Вообще-то возможно, если реквизит - хранилище значения, что мы здесь и наблюдаем, просто при работе с ним есть кое-какие тонкости. Набросаю пример сегодня.
37. G_101821925179404875930 22.01.25 12:59 Сейчас в теме
(32) Буду очень ждать, интересно как можно с этим поработать!
30. пользователь 21.01.25 15:34
Сообщение было скрыто модератором.
...
33. пользователь 22.01.25 08:12
Сообщение было скрыто модератором.
...
34. пользователь 22.01.25 08:42
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот