- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя, 2 дня назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С:Предприятие 8.3 (толстый клиент) создать таблицу с разбивкой по месяцам
1с83 толстый клиент есть дата начадьная Дн и Даа конечная Дк . Необходимо создать таблицу значений разбить по месяцам
Да, в 1С:Предприятие 8.3 (толстый клиент) можно создать таблицу значений с разбивкой по месяцам между двумя датами Дн и Дк. Для этого нужно определить первый месяц как начало месяца от Дн, затем в цикле добавлять по одному месяцу, пока не достигнете Дк, и в каждую строку таблицы записывать дату начала месяца.
Если нужно, можно дополнительно добавить в таблицу колонку с представлением месяца в удобном формате.
Пример реализации этого подхода показан ниже.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Исходные даты Дн = '2023-01-15'; // пример начальной даты Дк = '2023-05-10'; // пример конечной даты // Создаем таблицу значений с одним реквизитом "Месяц" ТаблМесяцев = Новый ТаблицаЗначений; ТаблМесяцев.Колонки.Добавить("Месяц", Новый ОписаниеТипов("Дата")); // Начинаем с начала месяца Дн ТекМесяц = НачалоМесяца(Дн); Пока ТекМесяц <= Дк Цикл НоваяСтрока = ТаблМесяцев.Добавить(); НоваяСтрока.Месяц = ТекМесяц; // Переходим к следующему месяцу ТекМесяц = ДобавитьМесяц(ТекМесяц, 1); КонецЦикла; // Теперь ТаблМесяцев содержит строки с датами начала каждого месяца в диапазоне |
Для расширения таблицы и добавления представления месяца используйте следующий код:
|
1 2 3 4 5 6 7 8 9 10 |
Процедура ЗаполнитьТаблицуМесяцев() ТаблМесяцев.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Пока ТекМесяц <= Дк Цикл НоваяСтрока = ТаблМесяцев.Добавить(); НоваяСтрока.Месяц = ТекМесяц; НоваяСтрока.Представление = Формат(ТекМесяц, "ДФ='ММММ гггг'"); ТекМесяц = ДобавитьМесяц(ТекМесяц, 1); КонецЦикла; КонецПроцедуры |
Таким образом, вы получите таблицу значений с разбивкой по месяцам от Дн до Дк.