Проблема в том, что программа зацикливается из-за цикла Пока ДеньПервогоПриёма < КоличествоДнейВМесяце Цикл если его вписать выше,а если его оставить на том же месте, то просто не суммируется ДеньНачалаМесяца, он при выводе всех нужных данных, остаётся одинаковый, уже 2 часа бьюсь с кодом, не могу понять, куда мне засунуть этот грёбанный цикл, с другими циклами у меня только 2-3 раза выводит число, не более. Помогите разобраться пожалуйста
Пример:
3 Число (Понедельник): 200
6 Число (Понедельник): 200
9 Число (Понедельник): 200
12 Число (Понедельник): 200
Вплоть до введённого в Реквизите(КоличествоДнейВМесяце)
а должно быть - Пример:
3 Число (Понедельник): 200
6 Число (Четверг): 200
9 Число (Воскресенье): 100
12 Число (Среда): 200
---
Попробуйте такой вариант.
---
Вот под вашу задачу.
---
Число месяца - ДеньПервогоПриема, день недели - эл.Значение.
В цикле число месяца возрастает на ЧастотаПриема, в примере 3. А день недели нет, т.к. для него это цикл верхнего уровня.
Т.е. несоответствие между получение/вычислением дня месяца и дня недели.
---
да, это я знаю, он просто зацикливается, если их поменять местами или поставить выше цикла Для каждого, уже пробовала
---
Поменяйте местами условие:
```1c
    Если эл.Ключ = ДеньНачалаМесяца Тогда
```
и цикл:
```1c
    Пока ДеньПервогоПриема < КоличествоДнейВМесяце Цикл
```
---
Если я поменяю их местами, то цикл зациклится
---
Тогда вместо цикла:

```1c
    Пока ДеньПервогоПриема < КоличествоДнейВМесяце Цикл
```

используйте условие:

```1c
    Если ДеньПервогоПриема > КоличествоДнейВМесяце Тогда
    Прервать;
    КонецЕсли;
```

Но вообще у вас весь приведенный код криво написан. Сначала должен быть цикл смещения по числу месяца, а потом только определение дня недели, а не наоборот.
---
Поменять на условие Если я тоже уже пыталась, выводит только 2 раза, не расчитывает дальше до введённого числа в Реквизит КоличествоДнейВМесяце
---
Могу отправить сам файл с кодом, если так будет проще понять
---
Или так, или запостите код сюда. Со скрина неудобно набирать, да и анализировать тоже.
---
Если человек найден необходимо произвести расчёт принимаемого протеина на месяц и вывести информацию через сообщить.
Что необходимо выводить пользователю:
1. Общее количество принятого протеина в граммах.
2. Количество приемов в днях
3. День недели и количество приема с количеством протеина. (Например: 15 число (среда): 100гр.)

3 Пункт не получается вывести никак
---
А что такое ДеньНачалаМесяца? Каково его назначение?
---
ДеньНачалаМесяца – Число (1, 0)
День недели с которого начался месяц (1 – ПН, 2 – ВТ, 3 – СР …. 7 - ВС)

Там есть соответствие с данными для проверки
---
Попробуйте такой вариант.
---
Да, так всё работает, спасибо, но та форма которая была изначально она обязательна, сейчас попробую разобраться что к чему)
---
А что конкретно в ней обязательно? Я привязал начало приема к реальной дате и убрал "лишние" поля. Также пользоваться проще.
---
Это просто задачка идёт
КоличествоДнейВМесяце – Число (2, 0)
Количество дней в рассчитываемом месяце
200
КоличествоПротеинаВБудни – Число (3, 0)
Количество протеина, принимаемое в будни (ПН-ПТ)
КоличествоПротеинаВВыходные – Число (3, 0)
Количество протеина, принимаемое в выходные (СБ-ВС)

Группа “Информация о человеке” содержит информацию о человеке принимающего протеин.
ФИО – Строка (150)
ФИО человека принимающего протеин
ДеньПервогоПриема – Число (2, 0)
День месяца, с которого человек начал прием протеина (Например, с 15 для месяца)
ЧастотаПриема – Число (2, 0)
Интервал приема протеина в днях
ПриемСПервогоДня– Булево
Признак того, что человек начал прием протеина в день первого приема.

Действие кнопки “Вывести график”
а. Произвести проверку заполнения реквизита ПоискПоФИО, значение не может быть пустым
б. Произвести поиск в таблице по реквизиту ПоискПоФИО, если человек не найден уведомить об этом пользователя. (Например: “Данный человек не найден в таблице”)ц22
в. Если человек найден необходимо произвести расчёт принимаемого протеина на месяц и вывести информацию через сообщить.
Что необходимо выводить пользователю:
1. Общее количество принятого протеина в граммах.
2. Количество приемов в днях
3. День недели и количество приема с количеством протеина. (Например: 15 число (среда): 100гр.)
---
А так это для какого-то теста? Нужно было сразу указать, я бы не менял вводные условия.
---
Извиняюсь, да это задачка, большая часть завершена, осталось только посчитать данные, но у меня не получается расчет 3 пункта произвести никак
---
Тут уже вторую неделю два или три человека протеин считают...
---
Не знаю, кто и что там считает, нужна помощь просто, по какой причине у меня во всех просчетах выдаёт один и тот же день недели, я не могу понять
---
Вот под вашу задачу.
---
Спасибо большое за помощь, а не подскажите, по какой причине у меня зацикливание происходило? если цикл пока поменять местами с Если эл.Ключ = ДеньНачалаМесяца Тогда
---
Потому что после первого срабатывания перестает увеличиваться ДеньПервогоПриема, т.к. условие с Если больше никогда не срабатывает.
---
всё понятно, спасибо большое, теперь немного понятнее стало
---
у вас наверно частотаприёма = 0
попробуйте отладчиком остановиться и посмотреть

и да, вынесите две одинаковые строчки за условие. они же всегда выполняются
---
Вот как выглядят мои реквизиты на форме, если я впишу Частота приёма = 0, то у меня не будет промежутка между датами
---
Давайте-ка угадаю... ЧастотаПриёма = 0, поэтому ДеньПервогоПриёма не увеличивается
---
Не угадали :)
---
Не связывайтесь с человеком, который использует "ё". Это страшный человек. Если ему не лень тянуться до "ё", он и до вас дотянется!
---
Вот что у меня получается на выходе и на скрине так же видно, как заполнены значения