у меня есть кусок кода в котором я не могу разобраться, я только учусь программированию на 1с и вот такая ошибка всё прикрепил ниже. у меня есть структура ток же прикрепил в скриншоте и ДанныеПосещений определенны как тип хранилеще значения

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

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

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

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
---
Короче, как-то так.
Только хранилище значения - изврат конечно, ни запросом туда постучаться, ни отбор установить.
---
я только учусь программированию на 1с Какие источники и ресурсы используешь для обучения?
---
конкретных пока нет, просто по интернету лажу, ютуб, нейросети ну и вот сейчас нашёл этот форум где мне уже помогли однажды разобраться.
---
нейросети ну и вот сейчас нашёл этот форум Понятно. Делаешь вид, что учишься.
---
тот факт что я начал изучать эту тему дня 2 назад не значит что я делаю вид
---
Тот факт, что ты начал изучать медицину не с биологии, а с просмотра видео готовых операций (включая сгенерированные нейросетями) - говорит о том, что ты нифига не учишься, а так, интересуешься.
---
Ну мне дали задание в универе на которое у меня 14 дней, уже 12 мне нужно в этот срок успеть его сделать, не уверен что изучая всё по шагово я успею, потому и приходится в ускоренном темпе что то откуда то хватать.
---
Ну тогда не надо говорить, что "я учусь программированию 1С". Или надо учиться базовым понятиям у преподавателя, а не на форумах и нейросетях.
---
К сожалению, у нас всего 1 пара в неделю, ну, может, я не полноценно учусь, как вы и говорите, а так, поверхностно изучаю, но так или иначе мне нужна помощь, так как пока что того, что успел посмотреть за эти пару дней, недостаточно для понимания того, почему я не могу так сделать и как правильно нужно сделать, раз уж вы такой умный, могли бы и подсказать, а не кидаться странными обвинениями, что я не учусь и т. д.
---
СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
А так можно было?
---
Ну если ошибки не выскочило (автор скромно о них умалчивает) - значит можно ))
---
ошибка выскочила и я к сожалению когда писал тему, накосячил и не указал ошибку (
(6)
(7)
---
Вот я и не знаю может и нельзя, но если нельзя то как по другому это прописать ? Может вы знаете ?
---
ошибку добавил если что в тему
---
Привет, на клиенте не сможешь получить табличную часть
---
делай серверную процедуру и уже в ней работай с таблицей
---
У меня как я понимаю проблема в этой сроке
СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
---
Он работает не с табличной частью прикладного объекта, а с ДанныеФормыКоллекция. Другое дело, что реквизит с типом хранилище значения в данных формы недоступен, с ним надо работать, например, в процедуре ПередЗаписьюНаСервере, обращаясь к ТЧ, полученной через ТекущийОбъект.
---
А можно не много по подробнее ? если есть вариант как исправить мой код был бы очень признателен если бы вы мне продемонстрировали.
---
Задача-то какая?
---
задача что бы когда пользователь вводит дату в в документе, а именно показываю на скриншотах первый скрин сам документ второй уже зашли в него, после выбора даты эта дата должна создаваться в посещаемость со значением булево. полностью код выглядит вот так:

```1c
    &НаКлиенте
    Процедура ДатыТренеровокПриИзменении(Элемент)
    ОбновитьДанныеПосещаемости();
    КонецПроцедуры

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

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

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

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

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

    &НаСервере
    Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
    Если Режим = "КакФлажок" Тогда
    Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
    ИначеЕсли Режим = "КакТекст" Тогда
    Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
    ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
    Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
    КонецЕсли;
    КонецПроцедуры
```
---
полностью код выглядит вот так: Кто его написал?
---
после выбора даты эта дата должна создаваться в посещаемость со значением булево

тут недопонял
---
ну вот смотрите, в даты тренировок нажимается кнопка добавить, после чего выбирается дата и вот после того как она выбрана, мы можем перейти в посещаемость и там у нас должен создаться столбик имя которого будет как раз датой, а значение тип булево. на втором скриншоте колонка должна появится после К посещению. на третьем скриншоте наглядно показал как должно получится
---
Я не об этом спрашивал.
---
Возможно есть другой вариант как добиться нужного результата, извиняюсь что перепутал немного, ответил не тому но чуть ниже описал более подробно (24)
---
В общем, Подскажите у вас есть идея как можно это реализовать ? допустим если прописать это по другому, так как я сейчас понял что понаписал уже всякой фигни(
---
Это вам в универе такое дают?

То есть, правильно ли я понимаю: при добавлении дат тренировок на вкладке "Посещаемость" должны добавиться колонки с типом булево в количестве, равном количеству добавленных дат и все эти флажки еще надо сохранить?
---
Да, я учусь в УрГЭУ. Насчёт сохранить не совсем вас понял, но если вы про то что они должны остаться на форме то да, если всё правильно понимаю
---
Короче, как-то так.
Только хранилище значения - изврат конечно, ни запросом туда постучаться, ни отбор установить.
---
Огромное спасибо сегодня посмотрю что да как. если буду вопросы напишу сюда в ответы. очень помогли!
---
Есть нюанс у меня учебная версия, и как я понимаю в неё я не могу загружать конфигурации с расширением dt, я могу только загружать конфигурации с расширением cf
---
Извините за такую просьбу, но нет ли у вас возможности переделать его в cf расширении ? так как если у этого файла просто заменить расширение то он не будет работать
---
о чудо, я смог загрузить. Простите за столько сообщений!
---
```1c
    &НаКлиенте
    Процедура ЗаполнитьДанныеПосещаемости()
    ЗаполнитьДанныеПосещаемостиНаСервере();
    КонецПроцедуры

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

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

Только в реквизит документа занести структуру невозможно. Предлагаю в табличную часть "Посещаемость" добавить реквизит "ДатаТренировки" с типом "Дата". Когда галочка устанавливается, в ТЧ "Посещаемость" добавляется запись с датой в реквизите "ДатаТренировки" из текущей колонки. Когда галочка снимается - запись удаляется.
---
Вообще-то возможно, если реквизит - хранилище значения, что мы здесь и наблюдаем, просто при работе с ним есть кое-какие тонкости. Набросаю пример сегодня.
---
Буду очень ждать, интересно как можно с этим поработать!
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.