10 мая 2016 г.

Конфигурация "Спортзал"

!!!Конфигурация на украинском языке, но, если есть желание, переведу на любой интересующий.

Данное прикладное решение имеет всего 4 вида объектов, это:

  • 4 справочника (Абонемент (вид тренировки), Карта (ориентир скидок), Клиент (список клиентов)
  • 1 отчет (по данным отчета можно узнать информацию о клиенте (когда, сколько и какого вида занятия брал клиент, а также баланс, скидка и долг по конкретному занятию).

  • 1 регистр сведений (этим объектом реализовано сохранение и повторное использование одной и той же карточки клиента много раз, т.е., если срок действия абонемента закончился, то не надо создавать еще один элемент справочника для того самого клиента, ранее созданная карточка клиента может обновлять предыдущий вид абонемента).
  • 1 обработка (осуществляет поиск клиента по индивидуально выданной карте для каждого клиента.

Описание объектов:

Абонемент или вид тренировки дает возможность выбрать тренировку или количество занятий (например, клиент может купить 50 занятий и заниматься только с тренером, а может посещать занятие за период, с 10 по 20 число месяца апрель и хоть ночевать в тренажерном зале). Также в окне абонемента можно и нужно указать как название, так и стоимость абонемента.

В карте клиента можно создать вид карты (по данному справочнику можно делать ориентир, например, создать карту «Универсальная», которая выбирается для всех клиентов, а «Скидочная», которая только для выборочных клиентов)

Главное окно карты клиента:

В карточке клиента нужно:

  • Указать фотографию клиента
  • Задать № карты, которая индивидуально выдается для каждого клиента администратором зала при создании карточки клиента в программе
  • Указать Контактные данные, такие как:
    • Ф.И.О.
    • Дата рождения (если клиент не достиг 18 лет, тогда нужно добавить контактные данные родителей)
    • Номер телефона клиента
    • Адрес клиента
    • Если требуется, можно задать скидку клиенту (*скидка задается в валюте, а не в %)
    • Для информации можно задать начальный вес клиента (до занятий)
    • Абонемент
    • Карта

Порядок работы с созданием карточки клиента:

  • Заполняем № карты и выдаем карту клиенту (например, пластиковую карту с набитым индивидуальным штрих-кодом или номером для каждого клиента)
  • Заполняем Ф.И.О.
  • Д\Р и если нужно информацию о родителях
  • Номер телефона
  • Адрес
  • Начальный вес
  • Выбираем абонемент (при изменении поля абонемент автоматически стоимость абонемента записывается в долг клиенту и показывается в информативном окне по центру карточки клиента, а также в зависимости от вида абонемента будет показано или первоначальное количество дней, выбранных клиентом из абонемента или дата начала и дата окончания, то есть период оплаченных тренировок).

                Если, в типе абонемента стоит «Посещение» тогда при каждом приходе клиента на занятие, администратор зала должен открыть карточку клиента и нажать кнопку «Отчислить тренировку» где должен ввести (или просканировать, используя сканер штрих-кодов, штрих-код карты) № карты клиента

                и если, № карты будет соответствовать карте клиенту то будет списано - 1 занятие.

                Если, в типе абонемента стоит «Срок», тогда при каждом открытии карточки клиента будет показано, сколько дней еще осталось до конца оплаченного периода занятий по абонементу.

  • Нужно заполнить поле Карта, которая в функционале не играет роли, а просто информативно отображает, к какой категории относится данный клиент («скидочный», «универсальный», например).
  • Заполнить скидку (скидка заполняется в валюте, например, клиенту даем скидку на 10 грн.)
  • Нажимаем «Изменить данные» (После нажатия происходит пересчет Стоимость абонемента – Скидка, например, 2500 – 10 = 2490 – это является долгом клиента, который он должен оплатить. 
  • Этот долг помещается в информативное поле + в это же поле помещается информация о скидке. А также, в зависимости от типа абонемента, в моем случае тип (вид) «Посещение», а значит, первоначальное количество посещений переместилось в карточку клиента для дальнейшего информационного указание о выборе дней по данному абонементу. Так же, автоматически рассчитывается остаток дней тренировок + активируется кнопка «Внести средства», если клиент «созрел» оплатить выбранный абонемент.
  • Кнопка «Внести средства», во-первых, показывает информацию о текущем балансе клиента, да, клиент может «дать» администратору зала деньги, которые будут находиться на его виртуальном счете, во-вторых в данной форме есть возможность оплатить как наличными за выбранный абонемент, так и балансом.

                Мы видим, что клиент наличными оплачивает администратору зала 3000 грн., а стоимость абонемента 2490, тогда разница в 510 грн. попадет клиенту на баланс.

                И в последующем балансовые 510 грн. клиент может оплатить за следующий абонемент.

                На этом создание и оплата клиентом выбранного абонемента окончена. Можно нажимать ЗаписатьИЗакрыть.

Порядок работы с продлением абонемента:

После окончания абонемента, нужно или перевыбрать существующий абонемент или выбрать новый, этим самым будет перестроено долг клиента, но данные еще не будут сохранены, а значит, в любой момент можем отказаться от изменений, закрыв карточку клиента, не соглашаясь на сохранение данных.

После изменения абонемента опять же, если нужно, указать скидку, а потом нажать кнопку «Изменить данные», этим самым «ПЕРЕЗАПИСЫВАЕМ» текущие данные на форме карточки клиента на новые данные по скидке, долгу, количеству дней или периоду посещения по абонементу.

! Бывает, что при создании карточки клиента, клиент не готов сразу оплатить выбранный абонемент, тогда создаем, описанным выше способом карточку клиента и тем самым по клиенту образуется долг и если клиент в будущем «созреет» оплатить свой долг тогда, как в карточке клиента, так и на форме отчета «Клиенты» есть кнопка «Корректировка долга»

после нажатия которой откроется список записей, где нужно отыскать запись (запись – это один цикл выбранного абонемента), по которой клиент хочет оплатить долг (ведь может быть, клиент задолжал еще и по предыдущему выбранному абонементу), открыть запись и в поле «Долг»

вписать результирующий долг после оплаты (например, осталось оплатить 100 грн., тогда в поле «Долг» пишем 100 грн).


Основные формы задокументированы нажатие F1

Тестировалось на релизе платформы 1С:Предприятие 8.3 (8.3.7.2008).

Только управляемые формы.

Конфигурация работает под «Толстый, Тонким, Web" клиентами.

Работает как локально, по сети, так и через интернет, используя веб-браузер.

Скачать конфигурацию можете по этой ссылке.

6 мар. 2016 г.

Обработка Новая почта

Замечание! Обработка работает только под «Толстым клиентом».
*Обновлено 20.04.2016 - теперь работает как под «Толстым клиентом» так и под «Тонким клиентом».

Реализованы некие функции создания электронной накладной, а именно, создания накладной типа «Склад-Склад», с формой оплаты «Наличные», с типом груза «Груз», с плательщиком «Отправитель\Получатель» и типом контрагента «Частное лицо».
Реализовано создание получателя с типом контрагента «Частное лицо».
Реализовано возможность получения на дату списка электронных накладных с возможностью печати этих накладных.

Ниже пару скриншотов:










Порядок работы с обработкой такой:

Заходим на https://my.novaposhta.ua, вводим логин и пароль, переходим в «Настройки», с левой стороны выбираем «API 2.0», создаем ключ, если он не создан, внизу среди списка ключей берем и копируем этот «Ключ» и вставляем в обработку. 

Теперь все кнопки и поля будут автоматически подгружать информацию из сервиса «Новой почты», узнавая вас по ключу.

Скачать обработку можем по этому адресу, а если у вас нет стартмани то пишите в комментариях, поделюсь бесплатно отправив по эл. почте.

19 февр. 2016 г.

ФИФО в запросе

Оказывается метод списания ФИФО можно получить перебирая запросом только Документы, а не городить все это дело через РегистрыНакопления, вот нашел, где то на инфостарте (спасибо автору)
ВЫБРАТЬ
ВложенныйЗапрос.Ссылка,
ВложенныйЗапрос.СуммаДокумента,
ВЫБОР
  КОГДА ВложенныйЗапрос.СуммаДокументаИтог <= &Оплата
   ТОГДА ВложенныйЗапрос.СуммаДокумента
  ИНАЧЕ ВложенныйЗапрос.СуммаДокумента + &Оплата - ВложенныйЗапрос.СуммаДокументаИтог
КОНЕЦ КАК Оплата
ИЗ
(ВЫБРАТЬ
  РасходнаяНакладная.Ссылка КАК Ссылка,
  РасходнаяНакладная.СуммаДокумента КАК СуммаДокумента,
  СУММА(РасходнаяНакладная1.СуммаДокумента) КАК СуммаДокументаИтог
ИЗ
  Документ.РасходнаяНакладная КАК РасходнаяНакладная
   ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная1
   ПО РасходнаяНакладная.МоментВремени >= РасходнаяНакладная1.МоментВремени
СГРУППИРОВАТЬ ПО
  РасходнаяНакладная.Ссылка,
  РасходнаяНакладная.СуммаДокумента) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.СуммаДокументаИтог - ВложенныйЗапрос.СуммаДокумента < &Оплата
УПОРЯДОЧИТЬ ПО
ВложенныйЗапрос.Ссылка.МоментВремени

Получить дату и время из строки

Типовая каша показывает как получить из “2016.19.02” и “23:03:00” значения Типа Дата, а именно 2016.19.02 23:03:00
ДокументОбъект.Дата = ПолучитьДатуВремяИзСтроки(ДокументXDTO.Дата, ВремяСтрока);
Функция ПолучитьДатуВремяИзСтроки(ДатаСтрока, ВремяСтрока = "")
ДатаВремя = Дата(1,1,1);
Попытка
Если ТипЗнч(ДатаСтрока) = Тип("Дата")
И ТипЗнч(ВремяСтрока) = Тип("Дата") Тогда
ДатаВремя = Дата(Формат(ДатаСтрока, "ДФ=dd.MM.yyyy") + " " + Формат(ВремяСтрока, "ДЛФ=T"));
КонецЕсли;
Если ДатаВремя = Дата(1,1,1) Тогда
Если ЗначениеЗаполнено(ВремяСтрока) Тогда
Время = СтрЗаменить(ВремяСтрока, ":", "");
ДатаВремя = Дата(СтрЗаменить(ДатаСтрока, "-", "") + Время);
Иначе
ДатаВремя = Дата(СтрЗаменить(ДатаСтрока, "-", "") + "000000");
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
Возврат ДатаВремя;
КонецФункции

Срез последних с физической таблицы регистра сведений

Создали не периодический регистр сведений и в одной из задач нужно все же получить .СрезПоследних() из этого регистра запросом?
Вот пример получения
ВЫБРАТЬ
ВложенныйЗапрос.Период,
ВложенныйЗапрос.Номенклатура,
ЦеныНоменклатуры.Цена
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
ЦеныНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Номенклатура) КАК ВложенныйЗапрос
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВложенныйЗапрос.Период = ЦеныНоменклатуры.Период
И ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура

Удалить элемент дерева значений

Есть реквизит формы ДеревоЗначений соответственно оно отображено и на форме как Элементы.Дерево, есть так же ТабличныйДокумент на форме в который из Дерево перемещаются элементы дерева.
Документ1
Товар1
Товар2
Документ2
Товар1
Товар2
Товар3
задача при перетаскивании Элементов из дерева (Товар1, Товар2 и т.д.), что бы эти элементы удалялись из дерева.
Выполняем
Если Элементы.Дерево.ТекущиеДанные=Неопределено Тогда
                    Возврат;
КонецЕсли;
ЭлементыТекущегоУровняИерархии=?(Элементы.Дерево.ТекущиеДанные.ПолучитьРодителя()=Неопределено, 
ДеревоОтгрузка.ПолучитьЭлементы(), Элементы.Дерево.ТекущиеДанные.ПолучитьРодителя().ПолучитьЭлементы());
 
ТекИндекс=0;
 
Пока ЭлементыТекущегоУровняИерархии[ТекИндекс]<>Элементы.Дерево.ТекущиеДанные Цикл
ТекИндекс=ТекИндекс+1;
КонецЦикла;

ЭлементыТекущегоУровняИерархии.Удалить(ТекИндекс);

Сообщение пользователю 1С

Понадобилось при разработке управляемой формы уведомить пользователя не только сообщением о ошибке, а и указать на поле где содержит ошибка? Для этих целей подойдет объект СообщениеПользователю.
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Обрати внимание!";
если на клиенте
Сообщение.Поле = "Объект.Контрагент";
Сообщение.Сообщить();
или
Сообщение.Поле = "Контрагент";
Сообщение.ПутьКДанным= "Объект";
Сообщение.Сообщить();
если на сервере
Сообщение.Поле = "Контрагент";
Сообщение.УстановитьДанные(РеквизитФормыВЗначение("Объект"));
Сообщение.Сообщить();
или
Сообщение.Поле = "Контрагент";
Сообщение.ПутьКДанным = "Объект"; // нюанс в том, что на сервере очень часто не известно, что такое "Объект" поэтому лучше использовать .УстановитьДанные()
Сообщение.Сообщить();
А вот пример где нужно указать на поле в Табличной части
Объект.Запасы – Табличная часть
Номенклатура – поле, на которое хочу установить активность
Индекс  - в данном случаи нужно обращаться по индексу, а не по Номеру строки
Для Каждого Строка Из Объект.Запасы Цикл 
  Сообщение = Новый СообщениеПользователю;
   Индекс = Объект.Запасы.Индекс(Строка);
   Сообщение.Текст = "Пользователь, обрати внимание "+Строка.Номенклатура+" на это поле";
   Сообщение.Поле = "Объект.Запасы["+Индекс+"-1].Номенклатура";
   Сообщение.Сообщить();
КонецЦикла;

9 февр. 2016 г.

Программное удаление реквизитов и элементов формы

Например, есть на управляемой форме программно добавленные реквизиты и соответственно элементы формы (колонки). Программным методотом нужно эти реквизиты и элементы формы удалить.
УдаляемыеРеквизитыТЗ = Новый Массив;
ТЗ = СтрокиРабочийТабель.Выгрузить();  // СтрокиРабочийТабель – это ТаблицаЗначений на форме
УдаляемыеРеквизитыТЗ.Добавить(СтрокиРабочийТабель.Линия1);  // добавляемв массив сначала реквизиты, который нужно удалить
Элементы.Удалить(Элементы[Линия1]);  // теперь добавляем в массив элементы формы, которые нужно удалить
ЭтаФорма.ИзменитьРеквизиты(, УдаляемыеРеквизитыТЗ);  //  непосредственное удаление реквизитов с помощью метода управляемой формы

Транслит в 1С

Нужно кириллические  буквы переобразовать в латыньские? Например из “Иван” получить “Ivan”? Тогда на вход ниже функции передавай кириллическое слово в итоге получишь отформатированное латыньское
Функция Транслит(КириллическоеСлово)
    Рез = СокрЛП(КириллическоеСлово);  
    Рез = СтрЗаменить(Рез,"а","a");
    Рез = СтрЗаменить(Рез,"б","b");
    Рез = СтрЗаменить(Рез,"в","v");
    Рез = СтрЗаменить(Рез,"г","g");
    Рез = СтрЗаменить(Рез,"д","d");
    Рез = СтрЗаменить(Рез,"е","e");
    Рез = СтрЗаменить(Рез,"ё","e");
    Рез = СтрЗаменить(Рез,"ж","zh");
    Рез = СтрЗаменить(Рез,"з","z");
    Рез = СтрЗаменить(Рез,"и","i");
    Рез = СтрЗаменить(Рез,"к","k");
    Рез = СтрЗаменить(Рез,"л","l");
    Рез = СтрЗаменить(Рез,"м","m");
    Рез = СтрЗаменить(Рез,"н","n");
    Рез = СтрЗаменить(Рез,"о","o");
    Рез = СтрЗаменить(Рез,"п","p");
    Рез = СтрЗаменить(Рез,"р","r");
    Рез = СтрЗаменить(Рез,"с","s");
    Рез = СтрЗаменить(Рез,"т","t");
    Рез = СтрЗаменить(Рез,"у","u");
    Рез = СтрЗаменить(Рез,"ф","f");
    Рез = СтрЗаменить(Рез,"х","h");
    Рез = СтрЗаменить(Рез,"ч","ch");
    Рез = СтрЗаменить(Рез,"ш","sh");
    Рез = СтрЗаменить(Рез,"щ","sch");
    Рез = СтрЗаменить(Рез,"ъ","");
    Рез = СтрЗаменить(Рез,"ь","");
    Рез = СтрЗаменить(Рез,"э","e");
    Рез = СтрЗаменить(Рез,"ю","yu");
    Рез = СтрЗаменить(Рез,"й","i");
    Рез = СтрЗаменить(Рез,"ц","c");
    Рез = СтрЗаменить(Рез,"я","ya");
    Рез = СтрЗаменить(Рез,"ы","i");
    Рез = СтрЗаменить(Рез,"А","A");
    Рез = СтрЗаменить(Рез,"Б","B");
    Рез = СтрЗаменить(Рез,"В","V");
    Рез = СтрЗаменить(Рез,"Г","G");
    Рез = СтрЗаменить(Рез,"Д","D");
    Рез = СтрЗаменить(Рез,"Е","E");
    Рез = СтрЗаменить(Рез,"Ё","E");
    Рез = СтрЗаменить(Рез,"Ж","ZH");
    Рез = СтрЗаменить(Рез,"З","Z");
    Рез = СтрЗаменить(Рез,"И","I");
    Рез = СтрЗаменить(Рез,"К","K");
    Рез = СтрЗаменить(Рез,"Л","L");
    Рез = СтрЗаменить(Рез,"М","M");
    Рез = СтрЗаменить(Рез,"Н","N");
    Рез = СтрЗаменить(Рез,"О","O");
    Рез = СтрЗаменить(Рез,"П","P");
    Рез = СтрЗаменить(Рез,"Р","R");
    Рез = СтрЗаменить(Рез,"С","S");
    Рез = СтрЗаменить(Рез,"Т","T");
    Рез = СтрЗаменить(Рез,"У","U");
    Рез = СтрЗаменить(Рез,"Ф","F");
    Рез = СтрЗаменить(Рез,"Х","H");
    Рез = СтрЗаменить(Рез,"Ч","CH");
    Рез = СтрЗаменить(Рез,"Ш","SH");
    Рез = СтрЗаменить(Рез,"Щ","SCH");
    Рез = СтрЗаменить(Рез,"Ъ","");
    Рез = СтрЗаменить(Рез,"Ь","");
    Рез = СтрЗаменить(Рез,"Ы","I");
    Рез = СтрЗаменить(Рез,"Ц","C");
    Рез = СтрЗаменить(Рез,"Э","E");
    Рез = СтрЗаменить(Рез,"Ю","YU");
    Рез = СтрЗаменить(Рез,"Я","YA");
    Рез = СтрЗаменить(Рез,"Й","I");
    Возврат(ЛатыньскоеСлово);
КонецФункции

Передать в параметр Таблицу значений

Есть управляемая форма, на ней кнопка которая открывает другую форму этого же объекта. На форме источнике есть ТабличнаяЧасть, которую нужно в точности передать в форму Приемник. 
  • значит на кнопке, формы источника:
&НаКлиенте
Процедура ПрайсЛистПоставщика(Команда)
Массив = Новый Массив;
Массив.Добавить(Объект.СписокЗагрузки);
ОткрытьФорму("Обработка.ЗагрузкаИзЭлектроннойТаблицы.Форма.ПрайсЛистПоставщика",Новый Структура("ТЗ",Массив));
КонецПроцедуры
!Во всякие там ХранилищаЗначений и ВременноеХранилище нельзя передавать ТаблицуЗначений поэтому поместили в Массив ТаблицуЗначений, а на форме это ДанныеФормыКоллекция, а потом этот Массив завернули в Структуру, а этот уже объект без проблем передается в качестве параметра открываемой форме.
  • а на форме, в которую нужно получить Табличку
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.ПрайсПоставщика.Загрузить(параметры.ТЗ[0].Выгрузить());
КонецПроцедуры
!Тут мы обращаемся к Параметрам управляемой формы где уже в списке будем иметь возможность получить нашу Структуру переданную ранее, а в ней Массив, а в Массиве ТаблицаЗначений 

28 дек. 2015 г.

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию

Нужно реализовать отправку СМС с помощью сервиса ТурбоСМС в 1С.

Есть несколько строк кода, которые это делают но при подключении к сервису получаю
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ДополнительныеМеханизмы.Модуль(62)}: Ошибка при вызове метода контекста (Open)
Connection.Open(СокрЛП(СтрокаСоединения));
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
все, что нужно это зайти на сайт MySQL и скачать версию MySQL Connector/ODBC 3.51.30 для 32-битных систем. Именно на этой версии у меня удачно отправилось СМС.

!Всякое может быть, поэтому свою ссылку на "коннектор" так же оставляю здесь.

24 дек. 2015 г.

Выключить компьютер удаленно

Вот здесь я писал как включить компьютер удаленно, например с помощью андроид устройства, а теперь же надо его и выключить, да бы не прибегать к выключение с помощью rdp соединение и всяких других заморочек.

Для начала нам нужно установить что то, что поможет нам выполнять различные команды с удаленного устройства, это будет FreeSSHd + вот есть ссылка у меня решение некой проблемы по работе с этой программой.

После установки создаем .bat файл, например на диску С:\ под названием sleep.bat, где пишем
C:\PSTools\psshutdown.exe -d -t 05
 PSTools качаем вот здесь и распаковываем в корень диска C:\, после распаковки нужно единажды запустить файл psshutdown.exe и согласиться с лицензией.

Значит выше команда означает, запустить файл psshutdown.exe который расположен по пути C:\PSTools с параметрами, а именно этот файл, точнее утилита дает возможность выключать, перезагружать и т.д. компьютер, параметр -d означает "сон",, а -t 05 означает выполнение команды через 5 секунд.

Теперь на андроид устройстве нужно установить программу SSH button и настроить


где:
  • Label - наименование подключения
  • Command - будет запущен файл, в котором у нас прописано моментальный перевод компьютер в режим "сна"
  • SSH hostname - IP адрес компьютера, на котором установлен FreeSSHd
  • SSH username - пользователь, который был создан при установке сервера FreeSSHd
  • SSH password - пароль, который был создан при установке сервера FreeSSHd
  • SSH port - порт по умолчанию 22-ой, на нем работает наш FreeSSHd сервер
! Имейте ввиду, что в настройках SSH Button в поле SSH hostname можно вводить айпишник внешний или если его нет, можно воспользовать сервисом http://www.noip.com/, таким образом и через интернет будет у вас возможность выключать удаленно свой компьютер. Проверено! Работает!

Freesshd The specified address is already in use

При запуске  Freesshd сервера


получил 
The specified address is already in use
Думал занят 22 порт, проверил
netstat -ano
но нет, порт никакой программой не занятый, но оказуется не программа затрудняла запуск сервера, а служба, которая установилась вместе с программой, а значит заходим в services.msc ищем службу FreeSSHDService, останавливаем ее, а теперь уже запускаем сервер, а уже после запуска сервера можем запускать и службу.

22 дек. 2015 г.

Разбудить компьютер через интернет

Для пробуждения компьютера через Интернет нам понадобиться

  • Включить в BIOS параметр, отвечающий за "пробуждения компьютера через lan" 
    • это в основному вкладка Power (в гугле картинок введите "wol bios") может наведет на мысль
  • В настройках сетевой карты, через Диспетчер устройств включаем заветные галки
  • В брандмауэре добавляем Входящее правило UDP с портом 9
  • На роутере делаем проброс портов аналогично, с UDP пртоколом, 9 порт с перенаправлением на компьютер, который нужно разбудить
  • Нужен статичный айпишник, если его нет, регистрируемся на http://www.noip.com/, добавляем host (теперь по этому хосту мы сможем постоянно обращаться к своему компьютеру через интернет, даже не имея статичного ip адреса)
  • Загружаем утилиту от сервиса, устанавливаем ее на компьютер, которій нужно пробуждать, в запущенной утилите авторизацию проходим и после этого
  • Открываем, например на андроид устройстве любую из программ для Wake On Lam, в место айпи адреса вводим хост, полученный через no-ip сервис и жмакаем "пробудить".

!!! Имейте ввиду, что если хотим протестировать "пробуждения", компьютер и мобилка должна быть не в одной локальной сети ибо скорее всего, ничего не получиться, а значит, отключаем вай-фай на мобилке и проверяем!
!!! Имейте ввиду, что для ОС 8 и выше в настройках электропитания отвечающая за выключение, должно быть не гибридное выключение, а значит снимаем галку ибо если компьютер будет в гибридно-выключенном состоянии пробудить его не получиться, а так то с режима "Сон" компьютер без проблем можно разбудить.
!!! Так же я не смог "разбудить" компьютер когда был установлен виртуальный драйвер hyper-v.

21 дек. 2015 г.

Очистить папку рекурсивно

Хочу, что бы раз в неделю содержимое папки Загрузки удалялось.
Открываю Планировщик заданий, добавляю Задание с выполнением команды
powershell.exe Remove-Item C:\Users\Ярослав\Downloads\* -Recurse

с регулярностью раз в 7 дней.

15 дек. 2015 г.

(COMОбъект): Invalid class string

Если делаем 
Соединение = Новый ComОбъект;
и получаем 
(COMОбъект): Invalid class string
тогда, в Командной строке выполняем с правами администратора
regsvr32 "C:\Program Files (x86)\1cv8\8.3.7.1776\bin\comcntr.dll"
соответственно подставить свой путь к библиотеке .dll нужно + я перезагрузил пк

9 дек. 2015 г.

Ошибка HTTP 401.3 - Unauthorized

На IIS публикую базу 1С Предприятие и при переходе в браузере по адресу публикации получаю

"Ошибка HTTP 401.3 - Unauthorized Вы не имеете разрешения на просмотр этого каталога или страницы в связи с конфигурацией списка управления доступом (ACL) или с настройками шифрования для данного ресурса на веб-сервере."

"Лечиться" эта ошибка установкой "Полный доступ" для пользователя IIS_USERS на папку C:\Program Files (x86)\1cv8\8.3.7.1776 или куда там была установлена у вас платформа 1С Предприятие.


30 окт. 2015 г.

Удаление root LG L70 (325)

Однажды, для любопытства
открыл доступ к системным файлам моей официальной прошивки, другими словами
получил на телефоне root права.

Лично для себя так я и не заметил преимущества редактирования системных файлов + установкой софта, который требует суперправа.

Так вот после получения суперпользователя через некоторое время я посредством «воздуха» получил обновление своей официальной прошивки, но после пробы обновить новую прошивку я получал уведомлении, что подальше обновление не может быть
установлено потому что есть root.

Ну, что ж, придется удалить рутовские права, ибо, если честно они мне и так уже не нужны.

Значит, для того, что бы удалить root права + последующее обновление нормально установилось, которые были
получены первым способом по этой ссылке нужно взять с официального сайта программу LG Mobile Support и ею обновить платформу.
После запуска обновление данной утилитой и последующей перезагрузки телефона на телефоне показало уведомление о невозможности обновлении платформы ибо установлены рут права но все же, после включении телефона и повторного запуска
платформы выше утилитой уже успешно было обновлено системную платформу телефона + я после включение телефона смог без проблем удалить программу Su, которая была установлена при получении супер прав.

25 окт. 2015 г.

Server_addr этот хост неизвестен

Данное сообщение я получил когда хотел с клиента удаленно подключиться к кластеру серверов 1С предприятие. СУБД PostgreSQL, платформа  Windows Server 2012r2. Рабочая группа используется, без домена.
Порты 1541, 1560 были открыты как на роутере так и брандмауэром сервера.

Так вот оно это сообщение во всей красе


это означает, что клиентской машине не понятно, "кто такой" ws, а это ж имя нашего удаленного сервера, а значит клиентскую машину нужно "познакомить" с имям сервера и "знакомтсво" будет происходить в файле hosts, который находиться по адресу в проводнике %WinDir%\System32\Drivers\Etc
Откроем этот файл и добавим строку
192.168.1.111 ws
это означает, что имя ws принадлежит адресу 192.168.1.111

Server_addr tcp 1560

На решение этой ошибки у меня ушло не один день, поэтому с радостью хочу поделиться с вами ее решением.

И так, имеется связка PostgreSQL + Сервер 1С Предприятие, все это находиться на Windows Server 2012 r2, без домена.

Открыты 1541 и 1560 порты как на брандмауэре сервера, так и на роутере. 
Выделенный ip адрес присутствует.

По локальной сети подключение к кластеру серверов пользователями не имеет никаких проблем, но когда нужно подключиться к серверу 1С из интернета с настройками типа


получали сообщение 


так вот, первоначально нужно 
  • на клиенте, с которого подключаемся удаленно к серверу 1С, в файле %WinDir%\System32\Drivers\Etc прописать строку
77.121.199.91 ws
где 77.121.199.91 это внешний айпишник, а ws это имя сервера, к которому подключаемся

  • и тут еще один нюанс, без которого все же, постоянно получал выше ошибку, а значит еще на том же клиенте открываем файл nethasp.ini который находиться по пути C:\Program Files (x86)\1cv8\conf ищем параметр 
NH_SERVER_ADDR
в которого нужно удалить комментарии «;;» и вместо <Addr1> вписать наш внешний айпишник


И теперь, на том же клиенте, с теми же настройками подключения к информационной базе мы получили результат удовлетворительный 

Параметр задан неверно

И так, в удаленных клиентов перестала загружаться ОС Windows XP. После загрузки получали ошибку синего экрана с неизвестным мне кодом.

Так как главное в данной ситуации было быстро вытянуть очень нужные документы из системного раздела люди отключили жесткий диск и подключили его к другой рабочей машинке.

Подключили, жесткий диск определился и показало два раздела, не системный открывался нормально, а при открытии системного раздела получали «Параметр задан неверно».

Долго не думая выполнили
chkdsk A: /f – где А это буква раздела, в нашем случаи системного
В итоге после сообщений о ошибках типа
Код типа: 144, файл: 9.
Удаление поврежденного элемента списка атрибутов.
Код типа: 144, файл: 9.
Удаление поврежденного элемента списка атрибутов.
Код типа: 160, файл: 9.
Удаление поврежденного элемента списка атрибутов.
Код типа: 160, файл: 9.
Удаление поврежденного элемента списка атрибутов.
Код типа: 176, файл: 9.
Удаление поврежденного элемента списка атрибутов.
Код типа: 176, файл: 9.
Удаление поврежденной записи атрибута (144, $SDH)
из сегмента 15598 записи о файле.
Удаление поврежденной записи атрибута (160, $SDH)
из сегмента 15598 записи о файле.
Удаление поврежденной записи атрибута (176, $SDH)
из сегмента 15598 записи о файле.
Сбойный раздел нормально заработал.

23 окт. 2015 г.

Не удалось получить метаданные с сервера из-за следующей ошибки: Клиенту WinRM не удается обработать запрос

Название заметки лишь описывает сообщение о ошибке, а ниже находиться перечень нюансов, которые затрагивают как выше ошибку, так и некоторые другие.
  • И так, первоначально, в настройках удаленного сервера должно быть разрешено удаленное управление 
 
  • Далее на удаленной стороне открыть порт 5985 как на роутере, так и в брандмауэре, входящем подключении.
  • А также на удаленном сервере нужно включить в брандмауэре уже готовые правила входящих подключений:
Доступ к сети COM+ (DCOM — входящий трафик)Удаленное управление журналом событий (именованные каналы — входящий)Удаленное управление журналом событий (RPC)Удаленное управление журналом событий (RPC-EPMAP)
  • Далее, на сервера с которого нужно подключаться нужно выполнить в cmd команду
winrm set winrm/config/client @{TrustedHosts="*"}
это нужно сделать, потому что будет ошибка при подключении удаленного сервера в Диспетчере серверов о том, что типа 
«Ошибка gurt-jabber: не удалось обновить конфигурацию. Ошибка: Не удалось получить метаданные с сервера из-за следующей ошибки: Клиенту WinRM не удается обработать запрос. Если применяемая схема проверки подлинности отличается от Kerberos или компьютер клиента не входит в домен, необходимо использовать транспорт HTTPS или добавить компьютер назначения к значениям параметра конфигурации TrustedHosts. Чтобы настроить TrustedHosts, используйте winrm.cmd. Обратите внимание, что в списке TrustedHosts могут находиться компьютеры, не прошедшие проверку подлинности. Чтобы получить дополнительные сведения об этом, выполните следующую команду: winrm help config.  23.10.2015 10:15:56»
  • *Еще есть нюанс, который точно не проверенный, это то, что на обоих серверах, пользователь Администратор должен иметь одинаковый пароль. 
После данных манипуляций я получил


И все же, как написал я в начале, мы то добавили удаленный сервер в диспетчер серверов, но нам еще предстоит открытия множество портов как на роутере, так и готовых правилах брандмауэра что бы, например, иметь доступ к оснастке Управления компьютером удаленного сервера или же открыть Диспетчер устройств удаленного сервера, но это уже отдельная история + рекомендую в брандмауэре использовать Фильтры для группировки групп связанных с той или иной службой.

22 окт. 2015 г.

Opening ASCII mode data connection

После поднятия ftp сервера на iis с платформой windows 2012 r2 и последующем подключении к фтп серверу через cmd, типа 
ftp name_ftp_server.com.ua 
все проходило нормально. 

Были открытые порты как на роутере, так и брандмауэром, но, если выполнить команды типа
ls 
или 
dir 
получал сообщение «Opening ASCII mode data connection» и все, никакого действия подальше не происходило.

Оказывается, при вводе в cmd команду ftp мы этим самым запускаем консольную утилиту C:\windows\system32\ftp.exe, которую так же нужно разрешить брандмауэру на входящие соединения, а значит, в брандмауэре добавил входящее правило на разрешения C:\windows\system32\ftp.exe я больше не видел выше сообщения, а выше команды успешно выполнялись.

Кстати, иногда брандмауэр сам определяет входящее соединение и автоматически показывает уведомление о разрежённости ftp.exe



но в моем случаи это не произошло

21 окт. 2015 г.

FTP IIS Windows Server 2012r2 с авторизацией

Хочу привести, как всегда, некие нюансы настройки и подключение выше роли на упомянутой платформе.
  • Сначала нужно создать пользователя, например, с именем ftpuser, в системе виндовс, через которого будем подключаться к фтп серверу
!Имейте ввиду, имя пользователя должно быть не "ftp".

  • После установки Роли IIS и компоненты FTP, для подключения к фтп папке через интернет и локально с авторизацией нужно указать пользователя через которого будем подключаться к фтп + права


  • В итоге должно выйти что-то такое

  • Брандмауэром + на роутере нужно открыть 21 порт.
  • Подключаться к фтп папке можно и через проводник указав настройки

Примечание:
  • Если нужно иметь доступ к данному фтп по локальной сети тогда в брандмауэре нужно добавить два исходящих правила на диапазон портов 50000-65500 по TCP и UDP протоколах.


18 окт. 2015 г.

После переименования сервера не запускается кластер серверов 1С

Установил сервер 1С, установил СУБД и потом решил переименовать сервер (компьютер), который находиться обычной рабочей группе, без какого-либо домена и т.д., все штатно по умолчанию.

Переименовал и наткнулся на то, что 1С-ка перестала видеть кластер серверов. При подключении к кластеру появлялось сообщение о том, что кластер не найден или другое аналогичное сообщение, которое я уже не запоминал.

Так вот, после переименование сервера нужно открыть файл
C:\Program Files (x86)\1cv8\srvinfo\1cv8wsrv.lst
И заменить старое имя на новое, в моем случаи 
Было 
{{1,{8c7eb951-211a-457b-9cce-907e486821a8,"Локальный кластер",1541,"WIN-TFLGSTDLO7L",0,0,0,0,0,0,0,{1,{"WIN-TFLGSTDLO7L",1541}},0,0,0}},{0},0,1}
Стало
{{1,{8c7eb951-211a-457b-9cce-907e486821a8,"Локальный кластер",1541,"ws",0,0,0,0,0,0,0,
{1,{"ws",1541}},0,0,0}},{0},0,1}

Аналогично и с файлами 1CV8Clst и 1CV8Clsto, которые находятся по пути
C:\Program Files (x86)\1cv8\srvinfo\reg_1541
нужно найти и заменить все строки где упоминается старое наименование сервера на новое.

+ для надежности, я зашел в свойства Центрального кластера в оснастку Администрирования серверов 1С и так же поменял из старого на новое имя



Перезагрузил службу 1C:Enterprise 8.3 Server Agent и все заработало.

16 окт. 2015 г.

Восстановить панель инструментов Gimp

Самому навряд ли додумаешься каким образом восстановить случайно закрытую Вкладку, например, Панели инструментов в гимпе, поэтому сначала приведу пример полного сброса настроек панелей


а теперь как без сброса добавить панельку, видео к сожалению не получается заснять поэтому два скриншота



18 сент. 2015 г.

Подключение к ftp через cmd

Не хотелось использовать сторонние утилиты, поэтому, с интернета по кусочку вышел такой способ резервного копирования, в моем случаи, файловой базы данных 1С на резервный ftp-сервер.

!В удаленного фтп сервера серый, динамический айпи, поэтому я использовал сервис https://www.noip.com/ для постоянного доступа к серверу.

Значит, поехали. Создаем и сохраняем файл с именем ftp_backup_DB_1C.bat

С содержимым

:: кодировка, если все норм у вас то не нужна эта строчка
@chcp 1251
:: «убить» процесс 1С
taskkill /IM 1cv8.exe /F /T
:: перейти в дирректорию «винрар-архиватора», который будет архивировать папку,                 :: естественно, архиватор должен уже быть установлен
cd "C:\Program Files\WinRar\"
:: архивируем папку d:\Base_1C\WorkDB в папку C:\db\, не забудьте создать папку db по пути :: C:\ с результирующим именем  WorkDB-Год_Месяц_День_Часы_Минуты 
::  в итоге выходит наименование файла типа «WorkDB-2014-03-07_00-32.rar»
Rar a -agYYYY-MM-DD_HH-MM C:\db\WorkDB- "d:\Base_1C\WorkDB"
:: подключиться к фтп серверу ftpserver.no-ip.biz с настройками с файла Connect.txt, который   :: лежит по локальному адресу C:
ftp -n -s: C:\Connect.txt -i ftpserver.no-ip.biz
:: удалить уже не нужный нам архив с папки
del /f /q C:\db\*.*
А теперь создаем по пути C:\ файл Connect.txt с содержимым
:: Логин и пароль
USER Логин Пароль
:: перейти в папку 1C_DB_Sklad на фтп сервере
cd 1C_DB_Sklad
:: скопировать с локального компьютера на фтп сервер все, что находиться по пути C:\db\, а у нас там :: архив базы данных
mput C:\db\*.*
:: закрыть фтп соединение
Quit
Далее, в Планировщике заданий (например, в моем случаи виндовс платформы) я создал задачу где в выборе Действия выбрал батник, а в рабочей папке я указал C:\


все!

!В прикрепленных файлах, на всякий случай, примеры батника + настроек.

8 сент. 2015 г.

Не доходят сообщения Openfire + Miranda

Есть сервер с Openfire, клиент подключаются по Miranda и да, кстати, не важно, как клиенты подключаются, пробовал разные jabber клиенты.
Так вот одному из подключаемых юзеров не доходят первые сообщение, т.е., если юзер отправил исходящее сообщения, то последующие входящие доходят, а вот первые входящие не доходят.
В интернете всякие советы, а на момент написании поста их и так не много было, ничего не давали.
Решение было супер мудрое, перестаем использовать для общения того проблемного юзера, создаем аналогичного с аналогичными данными типа Имя, Почта ну и что бы логин был максимально похож и все, теперь онлайн пользователям не заметят отличие от
удаленного и нового пользователя ведь мы создали почти копию глючного
пользователя.
Если у вас есть более мудрое решение, будьте добры, не ленитесь, поделитесь со мной :)

30 авг. 2015 г.

Не запускается cd-rom при установке windows

! Это один из частных случаев и скорее всего, читатель, у тебя иная проблема, но прочитать, для общего познания, естественно можно.

Вчера попал на установку операционки на старый – старый компьютер с естественно старыми комплектующими. Решил поставить туда Windows XP, что в итоге было оправданное решение.

О установке винды с флешки даже речи не могло идти.

И вот тут, потратив не мало времени я методом «тыка» все же смог добиться первичной загрузки с cd-диска, потому как постоянно первым загружался HDD.
Оказывается, в моем случаи нужно было, не только в разделе, Boot BIOS-а выбрать приоритет загрузки, а и на главном разделе, первом разделе BIOS, вроде как Main он назывался, короче там, где часы показывает отключить в None жёсткий диск. И после отключения, загрузка пошла с сиди диска и при установке без проблем был обнаружен hdd и в последующем установка прошла успешно.

! Можно прокомментировать, что мол нужно было джамперами на HDD, CD-ROM поиграться и добиться, что бы cd-юшник стал первичным, но почему-то после некоторого времени этого же играния ничего не вышло, поэтому пришлось выкручиваться выше способом.
 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07