Поиск по блогу

вторник, 24 мая 2016 г.

Обновление прошивки WD My Cloud экстренным способом

Использование старого роутера как Wi-Fi модуль для стационарного ПК на примере DIR320NRU

Случилась как-то беда, файловое хранилище WD My Cloud на 2 терабайта отказывалось обновляться как онлайн, так и в ручном режиме. В онлайн режиме вываливалась ошибка про недоступность сервера с обновлениями (возможно проблемы у провайдера были), а в ручном режиме ошибка с нехваткой места (на устройстве недостаточно свободного пространства для обновления) (см. рисунок 1).
Рисунок 1. Ошибка обновления WD My Cloud
Погуглив как следует, решение проблемы нашлось на одном из технических форумов, описание действие было очень скудное и не сразу было понятно что делать. Руки дрожали, а обновиться хотелось. Приступим к обновлению прошивки в ручном режиме кустарным методом...
ВСЕ ДЕЙСТВИЯ ВЫ ВЫПОЛНЯЕТЕ НА СВОЙ СТРАХ И РИСК

среда, 18 мая 2016 г.

Разность дат, а как быстрее?

Определение пересечения периодов (числовых множеств)
Супер-пупер быстрая конкатенация(сложение) строк

Я думаю, каждый разработчик сталкивался с вычислением разности дат в днях, минутах или секундах. На платформе 1С существует два способа вычисления разности дат:
  • С помощью языка запросов;
  • С помощью арифметических операций.
Разберем первый способ. Для вычисления разности дат используется стандартная функция языка запросов РАЗНОСТЬДАТ, она имеет три параметра: первый параметр - вычитаемая дата; второй параметр - исходная дата; третий параметр - тип разности, одно из: СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД. Но помним, что функция рассчитывает календарную разницу между двумя датами, поэтому ее нельзя использовать в местах, где необходимо рассчитать количество банковских или рабочих дней между двумя датами.

Напишем функцию:
Функция ПолучитьРазностьДатВДняхЗапрос(НачалоПериода, КонецПериода)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РАЗНОСТЬДАТ(&ДатаНачалаПериода, &ДатаОкончанияПериода, ДЕНЬ) КАК Результат";

Запрос.УстановитьПараметр("ДатаНачалаПериода", НачалоДня(НачалоПериода));
Запрос.УстановитьПараметр("ДатаОкончанияПериода", НачалоДня(КонецПериода));

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

КоличествоДней = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КоличествоДней = ВыборкаДетальныеЗаписи.Результат;
КонецЦикла;

Возврат КоличествоДней;

КонецФункции