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.ФормаОбъекта";
	Иначе
		Возврат;
	КонецЕсли;
	ОткрытьФорму(ИмяФормыСправочника, ПараметрыФормы);
КонецПроцедуры;