В 1С есть удивительная функция НеделяГода(). Которая вычисляет неделю года от отпределенной даты.
Вопрос: Как можно Неделю перевести в дату?
История: Строю диаграмму (СКД) по продажам за период с периодичностью Неделя. Пользователю необходимо устанавливать нач пер или кон пер меняя Недели (тоесть 12 или 24 или 27 и тд).
Попробовал следующим кодом извратится, но чтото не получилось
Код 1C v 8.х
ДатаДляПоиска = НеделяДляПоиска * 7;
ИндМесяцев = 0;
Пока ДатаДляПоиска >= Число(СЗМесяцы[ИндМесяцев].Представление) Цикл
ОбработкаПрерыванияПользователя();
ДатаДляПоиска = ДатаДляПоиска - Число(СЗМесяцы[ИндМесяцев].Представление);
ИндМесяцев = ИндМесяцев + 1;
КонецЦикла;
Возврат ДатаДляПоиска;
ну и эта часть:
Код 1C v 8.х
СЗМесяцы = Новый СписокЗначений;
СЗМесяцы.Добавить("Январь", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),01,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),01,15))) / 3600 / 24));
СЗМесяцы.Добавить("Февраль", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),02,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),02,15))) / 3600 / 24));
СЗМесяцы.Добавить("Март", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),03,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),03,15))) / 3600 / 24));
СЗМесяцы.Добавить("Апрель", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),04,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),04,15))) / 3600 / 24));
СЗМесяцы.Добавить("Май", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),05,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),05,15))) / 3600 / 24));
СЗМесяцы.Добавить("Июнь", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),06,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),06,15))) / 3600 / 24));
СЗМесяцы.Добавить("Июль", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),07,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),07,15))) / 3600 / 24));
СЗМесяцы.Добавить("Август", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),08,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),08,15))) / 3600 / 24));
СЗМесяцы.Добавить("Сентябрь", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),09,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),09,15))) / 3600 / 24));
СЗМесяцы.Добавить("Октябрь", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),10,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),10,15))) / 3600 / 24));
СЗМесяцы.Добавить("Ноябрь", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),11,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),11,15))) / 3600 / 24));
СЗМесяцы.Добавить("Декабрь", Окр((КонецМесяца(Дата(Год(ТекущаяДата()),12,15)) - НачалоМесяца(Дата(Год(ТекущаяДата()),12,15))) / 3600 / 24));
з.ы.: Дело только в математике или я чегото не доганяю ;)Изменено 07.04.12 20:56:08