helpf.pro
Регистрация

v8: НеделяГода() В День

DJ_Serega
07.04.2012 15:19Прочитано: 2442
В 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
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
07.04.2012 19:15Ответ № 1
чего-то не понял *09
НеделяГода или НачалоГода?
DJ_Serega
07.04.2012 20:52Ответ № 2
(1) E_Migachev, исправил ;) неделя года
Изменено 07.04.12 20:53:07
E_Migachev
08.04.2012 02:01Ответ № 3
(2) DJ_Serega, это!? Как по Номеру Недели Года получить Дату?
DJ_Serega
08.04.2012 03:51Ответ № 4
(3) E_Migachev, спс. посмотрю когда проснусь ;)
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.