Изобретать велосипед неохота никому, но то ли я гуглом пользоваться не умею, то ли авторы статью пишут не с теми ключевыми словами.
Один из хороших вариантов решения описан в статье Номер дня недели в месяце.
Мой вариант выглядит следующим образом
// Функция - Получить день недели в месяце
//
// Параметры:
// Неделя - Число - Порядковый номер недели в месяце (1, 2, 3, 4)
// ДеньНедели - Число - День недели, где 1 - Понедельник, ..., 7 - Воскресенье
// ЗаданнаяДатаМесяца - Дата - Дата месяца, для которой необходимо получить дату дня
//
// Возвращаемое значение:
// Дата - Если она существует или Неопределено
//
Функция ПолучитьДеньНеделиВМесяце(Неделя, ДеньНедели, ЗаданнаяДатаМесяца)
Результат = Неопределено;
ПервыйДеньМесяца = НачалоМесяца(ЗаданнаяДатаМесяца); // 11.09.17 - > 01.09.17
ПервыйДеньНеделиМесяца = ДеньНедели(ПервыйДеньМесяца); // 01.09.17 - > 5 (Пятница)
СмещениеДняНеделиМесяца = ДеньНедели - ПервыйДеньНеделиМесяца; // 1 - 5 = -4 (Смещение для понедельника)
Если СмещениеДняНеделиМесяца < 0 Тогда
СмещениеДняНеделиМесяца = 7 + СмещениеДняНеделиМесяца; // если получили отрицательное значение, то прибавляем неделю 7-4=3
КонецЕсли;
ИскомаяДатаДня = 7*(Неделя-1) + СмещениеДняНеделиМесяца + 1; // Находим день 7*(1-1) + 3 + 1 = 4
Попытка
Результат = Дата(Год(ЗаданнаяДатаМесяца), Месяц(ЗаданнаяДатаМесяца), ИскомаяДатаДня); // Пытаемся преобразовать
Исключение
Результат = Неопределено; // такой даты не существует (Например 7ой понедельник месяца)
КонецПопытки;
Возврат Результат;
КонецФункции