5 сентября 2020 г.

Проект #32 Домофон, кодовая панель и замок

Проект в офисном здании. Имеем 3 двери, нужно установить "кодовый замок". Предложил электро-механический замок с кодовой панелью (совмещена с контроллером). Две двери рядом, поэтому имеет один блок резервного питания. Заказывать двери с кабель-каналом отказались, поэтому было решено устанавливать контактную группу. Замок для двери оказался толстоват. Замок специально выбирали нормально-закрытый электро-механический, чтобы в случае выключения электроэнергии замок оставался закрытым (возможность открытия ключом имеется). 

24 августа 2020 г.

CMD Удаляем и подключаем шару

 Когда нет GPO, приходится довольствоваться руками и собственной автоматизацией. Чтобы не ходить по пользователям можно подготовить пачку батников и попросить их запустить их.

cmdkey /add:nas /user:USERNAME /pass:USER_PASS
net use /DELETE Z:
net use /DELETE Y:
net use Z: \\nas\SharedFolder /persistent:yes
net use Y: \\nas\Skan /persistent:yes

Совсем простенько, первая строка добавляет запись в "Учетные данные Windows", если у пользователя локального имя и пароль совпадают с шарой, то необязательно.

Вторая и третья удаляют текущие занятые диски, можно использовать net use /DELETE *

Последние добавляют шары, можно использовать имя ресурса, а не IP.

IP привязывать на роутере. У Mikrotik для этого нужно использовать домен (иначе не будет резловить за пределами роутера):

Если речь идет о сервере (я подключал NAS через туннель), то сопоставить можно в файле hosts

23 августа 2020 г.

1С Открыть значение поля динамического списка

 У полей динамического списка нет события Выбор, что иногда очень неудобно.

Данное событие есть у строки, а также имеются соответствующие реквизиты ТекущиеДанные, единственный момент - как получить значение именно выбранного поля? На входе события есть параметр "Поле" содержащий склеенное имя (если в авто режиме создавались элементы формы), поэтому расклеиваем и получаем значение вот так:

  
Элемент.ТекущиеДанные[СтрЗаменить(Поле.Имя,Элемент.имя,"")]
  
 

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

  
&НаКлиенте
Процедура КомплектующиеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
  ОткрытьЗначение(Элемент.ТекущиеДанные[СтрЗаменить(Поле.Имя,Элемент.имя,"")])
КонецПроцедуры;
  
  

Поэтому такой вариант лучше. ФормаОбъекта - стандартная форма, даже если ее нету

  
&НаКлиенте
Процедура КомплектующиеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	СсылкаДляОткрытия=Элемент.ТекущиеДанные[СтрЗаменить(Поле.Имя,Элемент.имя,"")];
	ПараметрыФормы = Новый Структура("Ключ", СсылкаДляОткрытия);
	Если ТипЗнч(СсылкаДляОткрытия)=тип("СправочникСсылка.Спр1") Тогда
		ИмяФормыСправочника="Справочник.Спр1.ФормаОбъекта";
	ИначеЕсли ТипЗнч(СсылкаДляОткрытия)=тип("СправочникСсылка.Спр2") Тогда
		ИмяФормыСправочника="Справочник.Спр2.ФормаОбъекта";
	Иначе
		Возврат;
	КонецЕсли;
	ОткрытьФорму(ИмяФормыСправочника, ПараметрыФормы);
КонецПроцедуры;
  
  

14 июля 2020 г.

1С Удалить до числа включительно в строке

Задача:

В строке "Лот ..12345... Новая облицовка" удалить число и все что перед ним.

Задача слегка расплывчата, т.к. первая реализация столкнулась с тем, что первое число может быть и не в начале и не подпадать под определение. Поэтому решил сделать так:
  1. Функция имеет два параметра: строка и длина предполагаемого числа
  2. Функция ищет первое вхождение числа в обрезанной строке
  3. Если число найдено, то ищет первое вхождение буквы после первого числа в обрезанной строке
  4. Обрезает строку
  5. Проверяет наличие в начале строки не букв (пробелы, точки, запятые и т.д.)
  6. Возвращает новую строку

1 июля 2020 г.

1С УПП Печать кодов номенклатуры в УПД

Задали вопрос - "Можно ли печатать код в УПД, контрагент требует именно так".
УПП сама по себе штука массивная, поэтому я открыл Макет (ОбщиеМакеты.УниверсальныйПередаточныйДокумент) и глянул, есть ли параметр в поле, да он есть.

28 июня 2020 г.

Zabbix active check is not supported: Timeout while executing a shell script

Есть ip камера, которая не умеет SNMP и находится за NAT`ом. В сети есть виндовая машинка, которая мониторится системой заббикс, стоит задача хотя бы пинговать камеру и сообщать о ее недоступности.