10 дек. 2016 г.

Медленно работает blogger

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


Несколько месяцев я замечал как виснет страница браузера при доволе мощном компьютере моем, когда открыта страница перечня написанных публикаций. Все лучи поноса были в сторону "гугла". И тут до меня дошло, что когда то я выбрал показ публикаций на странице в размере 100шт.


Поставил на 10-чку показ и страничка без проблем грузиться быстро.

Установить фокус на поле ввода 7.7

На форме есть элемент Поле ввода, туда вводиться штрих код товара кассиром. Задача при каждом вводе штрих кода фокус (курсор) не переносился на другой элемент формы, а оставался в Поле ввода штрих кода.

Казалось бы, все просто, ввел в процедуру или функцию вызываемую в Поле ввода на вкладке Дополнительно
Активизировать(ПолеВвода);
и все, но при тестировании у нас появилась ошибка
Активизировать(ПолеВвода,); {D:\1CTEST\1C\EXTFORMS\РАБОЧЕЕМЕСТОКАССИРА1.ERT(737)}: В данной формуле не может быть вызвана эта процедура(функция)
поэтому один умный человек порекомендовал использовать "фиктивное" закрытие формы и вот как это работает.

В модуле формы пишем
Перем ПередатьФокус;

Процедура ИзмШКТов()
 ПоискНоменклатуры(СокрЛП(ШКтов),1);
 ПередатьФокус = "ШКтов"; 
 Форма.Закрыть(0); 
КонецПроцедуры    

Процедура ПриЗакрытии()        
 Если ПустоеЗначение(ПередатьФокус) = 0 тогда 
  Активизировать(ПередатьФокус); 
  СтатусВозврата(0); 
  ПередатьФокус = ""; 
  Возврат; 
 КонецЕсли; 
КонецПроцедуры
Поясню...
Объявили глобальную переменную, по которой будет проверять в последующем, закрывается ли, так сказать, по настоящему форма или это мы "фиктивно" используем закрытие, что бы фокус передать на наше Поле ввода.
В Поле ввода на вкладке Дополнительно мы вызываем процедуру ИзмШКТов(в ней моя лабуда обработки штрих кода, а далее мы присваиваем нашей глобальной переменной имя Поле ввода (в моем случаи называется поле ввода ШКтов) и через Форма.Закрыть(0)закрываем нашу форму для того, что бы в обработчике события ПриЗакрытии(проверить, закрывается ли форма стандартным способом или фиктивно и если фиктивно тогда методом Активизировать(ПередатьФокусуже удачно, без ошибок установиться фокус (курсор) на Поле ввода. Далее делаем глобальную переменную пустой, что бы в следующий раз сделать тоже, что и выше описано, а в конце Возвратнам не дает закрыть наше фиктивное закрытие формы.

6 дек. 2016 г.

Информация о жестком диске

Для получения информации о жестком диске в командной строке нужно выполнить
wmic diskdrive get Name, Manufacturer, Model, InterfaceType, MediaType, SerialNumber

Включенные групповые политики

А точнее подробные отчет о включенных \ отключенных групповых политиках можно получить в командной строке выполнив
GPResult /h C:\GPResult.html

Сбросить локальные политики безопасности

Для сброка выполним в командной строке
secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose
а далее
shutdown /r 

Сбросить локальные политики

Что бы сбросить локальные политики на компьютере выполним в командной строке
rd /s /q "%windir%\System32\GroupPolicyUsers"
а далее
gpupdate /force 
ну а далее
shutdown /r

Узнать информацию о материнской плате

Скудную, но все же информацию о материнской плате можно получить выполнив
wmic baseboard get Manufacturer, Model, Name, PartNumber, serialnumber
в командной строке

Сохранить Восстановить записки Sticky

Для сохранения записок Windows 10 нужно скопировать все содержимое папки
%HOMEPATH%\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe

Соответственно, для восстановление, все скопированное замещаем возвращаем назад в папку
%HOMEPATH%\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe
согласившись на замену

Обновить форму автоматически 7.7

Вообще то, речь будет идти о Обработчике ожидания формы.
В задаче было поставлено обновление формы списка справочника каждые 1сек., для того, что бы "онлайн" видеть установленные фильтры на форме списка
фильтр1, фильтр2

Сначала напишем процедуру в модуле формы списка справочника, которая будет вызываться каждую 1сек. и обновлять форму списка
Процедура ПроцедураОбработчикаОжидания()
        Форма.Обновить();
КонецПроцедуры
А теперь после всех процедур и функций, выше модуля, запустим обработчик ожидания формы, который будет вызывать процедуру ПроцедураОбработчикаОжидания каждые 1сек
Форма.ОбработкаОжидания("ПроцедураОбработчикаОжидания",1);  


Отбор в списке Справочника 7.7

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

+ это будет как бы еще один вариант "множественного" фильтра в списке справочника.

Данная методика будет проста до безобразия.
Мы будем при каждом снятии или установке флажка обходить все флажки и для каждого установленного флажка будем искать в списке справочника соответствующий элемент справочника. Найденный элемент справочника мы помещаем в СписокЗначений, а далее этот перечень нужных нам элементов справочника в списке значений мы отправим в метод ИспользоватьСписокЭлементов()
Функция ПолучитьСписокДокументовФильтров()       
 
 АрхивТТН = СоздатьОбъект("Справочник.АрхивТТН");     
 СписокСТатусов = СоздатьОбъект("СписокЗначений");        
 СписокДокументов = СоздатьОбъект("СписокЗначений");
 
 Если Новый = 1 Тогда       
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.Новый);       
 КонецЕсли;
 
 Если Отправлен = 1 Тогда        
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.Отправлен);                  
 КонецЕсли;
 
 Если Закрыт = 1 Тогда   
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.Закрыт);   
 КонецЕсли;
 
 Если Отмена = 1 Тогда        
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.Отмена);   
 КонецЕсли;
 
 Если ПрибылоНаСкладПокупателя = 1 Тогда    
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.ПрибылоНаСкладПокупателя);   
 КонецЕсли;
 
 Если ЦПОтправлено = 1 Тогда   
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.ЦПОтправлено);      
 КонецЕсли;
 
 Если ФПОтправлено = 1 Тогда  
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.ФПОтправлено);     
 КонецЕсли;
 
 Если ВозвратТовара = 1 Тогда  
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.ВозвратТовара);   
 КонецЕсли;
 
 Если М1 = 1 Тогда    
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.М1);   
 КонецЕсли;
 
 Если М2 = 1 Тогда                        
  СписокСТатусов.ДобавитьЗначение(Перечисление.СтатусДокумента.М2);      
 КонецЕсли;    
 
 СписокСТатусов.Сортировать(0,);
  
 Для Индекс = 1 По СписокСТатусов.РазмерСписка() Цикл       
  АрхивТТН.ВыбратьЭлементыПоРеквизиту("Статус",СписокСТатусов.ПолучитьЗначение(Индекс),,0);      
  Пока АрхивТТН.ПолучитьЭлемент() = 1 Цикл     
   СписокДокументов.ДобавитьЗначение(АрхивТТН.ТекущийЭлемент());
  КонецЦикла;    
 КонецЦикла;
                         
 СписокДокументов.Сортировать(0,);
 Возврат СписокДокументов;     
 
КонецФункции    
Функция УстановитьФильтры()                                 
        СписокДокументов = ПолучитьСписокДокументовФильтров();     
        ИспользоватьСписокЭлементов(СписокДокументов);                   
        Форма.Обновить(1);
КонецФункции    
На вкладке Дополнительно наших флажков нужно поместить вызов функции УстановитьФильтры().
Сортировать список значений имеет смысл, так как если будем отключать\включать
фильтры не с лева на право, а наоборот или как то хаосно то увидите не приятный
результат.
 

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