1c Программирование

1. DensenGruvs 16.08.18 19:42 Сейчас в теме
Здравствуйте. Я учусь программированию, и поэтому слишком сложные слова мне пока не понятны. Вопрос вот в чём - я создал документ НедельноеРассписание, в нем все как нужно для учебы .табличные части(пнд, Вт, срд и тд) , в каждой части есть предмет, группа, преподаватель и так далее, это не важно уже. В общем, есть макет, который я уже нарисовал, команда -печать . Все работает как нужно, только вот в печати у меня должна появляться заполненная таблица (ДниНедели), в макете я уже нарисовал, но пока не могу заполнить, не понимаю как. Мне сказали сделать перечисление под названием ДниНедели и в ней значения понедельник, вторник и так до субботы. Как мне написать в модуле менеджера в документе НедельноеРассписание чтобы можно было заполнить все таблицы как надо?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dandykry 9 17.08.18 07:08 Сейчас в теме
Глобальный контекст (Global context)
ДеньНедели (WeekDay)
Синтаксис:

ДеньНедели(<Дата>)
Параметры:

<Дата> (обязательный)

Тип: Дата.
Исходная дата.
Возвращаемое значение:

Тип: Число.
Номер дня недели.
Описание:

Определяет номер дня недели для указанной даты.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:

Сообщить(ДеньНедели(ТекущаяДата()));


Соответственно при вводе можно написать:
День = ДеньНедели(Выбора.Дата);
Если День = 1 Тогда
Область.Параметры.ДеньНедели = "Пн";
ИначеЕсли День = 2 Тогда
Область.Параметры.ДеньНедели = "Вт";
ИначеЕсли 
.................
КонецЕсли;
3. Неопределено 90 17.08.18 07:16 Сейчас в теме
(2)
Если День = 1 Тогда
Область.Параметры.ДеньНедели = "Пн";

По условию должно быть перечисление. Создаём перечисление ДниНедели со значениями День1...День7, где в синонимах указываем названия соответствующих дней недели и код выглядит так:
Область.Параметры.ДеньНедели = Перечисления.ДниНедели["День" + День];

В итоге не требуются условные операторы и всё вмещается в одну строчку.
4. dandykry 9 17.08.18 07:19 Сейчас в теме
(3) Это написать можно как угодно. Моя мысль - донести, что существует функция ДниНедели
5. dandykry 9 17.08.18 07:21 Сейчас в теме
(3) Так то и 6 табличных частей ни к чему и можно сделать все иначе, но человек учится.
6. greatsnake 17.08.18 09:19 Сейчас в теме
Если использовать как указано 6 табличных частей и перечисление, то запрос можно сделать как то так:

ВЫБРАТЬ
	НедельноеРасписаниеПонедельник.Ссылка.От КАК От,
	НедельноеРасписаниеПонедельник.Ссылка.До КАК До,
	НедельноеРасписаниеПонедельник.Ссылка.Дата КАК Дата,
	НедельноеРасписаниеПонедельник.Предмет КАК Предмет,
	НедельноеРасписаниеПонедельник.Группа КАК Группа,
	НедельноеРасписаниеПонедельник.Преподаватель КАК Преподаватель,
	НедельноеРасписаниеПонедельник.Кабинет КАК Кабинет,
	НедельноеРасписаниеПонедельник.Расписание КАК Расписание,
	ЗНАЧЕНИЕ(Перечисление.ДниНедели.Понедельник) КАК ДеньНедели
ИЗ
	Документ.НедельноеРасписание.Понедельник КАК НедельноеРасписаниеПонедельник
ГДЕ
	НедельноеРасписаниеПонедельник.Ссылка = &Ссылка

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	НедельноеРасписаниеВторник.Ссылка.От,
	НедельноеРасписаниеВторник.Ссылка.До,
	НедельноеРасписаниеВторник.Ссылка.Дата,
	НедельноеРасписаниеВторник.Предмет,
	НедельноеРасписаниеВторник.Группа,
	НедельноеРасписаниеВторник.Преподаватель,
	НедельноеРасписаниеВторник.Кабинет,
	НедельноеРасписаниеВторник.Расписание,
	ЗНАЧЕНИЕ(Перечисление.ДниНедели.Вторник)
ИЗ
	Документ.НедельноеРасписание.Вторник КАК НедельноеРасписаниеВторник
ГДЕ
	НедельноеРасписаниеВторник.Ссылка = &Ссылка

ОБЪЕДИНИТЬ ВСЕ

.....
Показать


и при выводе на печать пробежаться по результату запроса.
7. user1031946 19.08.18 11:03 Сейчас в теме
ОООО.... зачем столько табличных частей?
а если будет задача: переместить местами занятия со вторника на среду и с четверга на понедельник? -будете манипулировать данными разных ТЧ? - проще в ОДНОЙ ТЧ, но с днем недели (число 1-7), перечисление.
8. Ilkham 20.08.18 08:27 Сейчас в теме
Да, проще было делать одну табчасть и в ней добавить колонку "ДеньНедели" с типом данных ваше Перечисление "Дни Недели".
Оставьте свое сообщение

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