пятница, 24 ноября 2023 г.

Получить все таблицы в базе MS SQL, в которых есть колонка с определенным названием

Для автоматизации задачи получения информации о периодах хранения данных в базе 1С.

Решение здесь.

select table_name 
from information_schema.columns
where column_name='_Period'

вторник, 19 сентября 2023 г.

Отключение промежуточных задач ознакомления для комплексных процессов в 1С Документооборот 2.1

Задача:

В 1С Документооборот 2.1 отключить создание задачи ознакомления после каждого этапа комплексного процесса (вложенный процесс согласования).

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

 
Идеи:
https://its.1c.ru/db/metod8dev#content:5874:hdoc - процессы и задачи
https://infostart.ru/1c/tools/1161532/ - Отключение создания задачи ознакомления для бизнес-процесса "Согласование" в 1С: Документооборот

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

понедельник, 19 июня 2023 г.

Переименование БД MS SQL Server

Дано: База с неправильным именем не на том диске.

Надо: Переименовать и перенести.

Решение:

1. Меняем имя базы:

sp_renamedb 'старое' , 'новое'

 

2. Меняем логические и физические имена файлов:

ALTER DATABASE имя_базы MODIFY FILE (NAME = 'старое_data', NEWNAME = 'новое_data')
ALTER DATABASE имя_базы MODIFY FILE (NAME = 'старое_log', NEWNAME = 'новое_log')

 

3. Отключаем базу командой detach

4. Переименовываем файлы

5. Переносим в правильное расположение

6. Присоединяем командой attach, указывая правильные ссылки на файлы 

7. Возвращаем правильного владельца через sp_changedbowner (от чьего имени с базой работает 1С)

суббота, 17 июня 2023 г.

Как узнать, кто перезагрузил (выключил) сервер Windows?

Источник: https://winitpro.ru/index.php/2022/02/16/kto-perezagruzil-vyklyuchil-windows-server/ 

Решение: Информация об учетной записи, которая отправила команду перезагрузки Windows сохраняется в журнал событий.

  1. Открыть консоль Event Viewer ( eventvwr.msc ),  перейти в раздел Windows Logs -> System;
  2. Включить фильтр журнала событий, выбрав в контекстном меню пункт Filter Current Log
  3. В поле фильтра указать EventID 1074;  
  4. В журнале событий останутся только события выключения (перезагрузки);
  5. В событии от источника User32 будет указан пользователь, который инициировал перезагрузку Windows.

Можно получить информацию с помощью PowerShell. Следующая команда выберет все события с EventID 1074:

Get-WinEvent -FilterHashtable @{logname=’System’;id=1074}|ft TimeCreated,Id,Message 

 Если Windows была перезагружена нештатно (например, при потере электропитания, или появления BSOD), нужно искать события с EventID 6008.

 


Ошибка "Изменение конфигурации заблокированы средствами управления распределенными ИБ"

Проблема:

Надо повозиться с копией БД, но дереве метаданных объекты заблокированы, всплывает указанная в теме подсказка. Также заблокирована загрузка конфигурации из файла.

 

Решение:  

Выполнить обработку с командой:

ПланыОбмена.УстановитьГлавныйУзел(Неопределено); 

Отключить отслеживание телеметрии Nvidia в Windows

Источники:

https://spy-soft.net/otklyuchit-telemetriyu-nvidia/

https://ru.railstoolkit.com/otklyuchit-otslezhivanie-nvidia-telemetry-v-windows

https://bauinvest.su/otkljuchit-otslezhivanie-telemetrii-nvidia-v/

 

Утилитой Autoruns от Марка Русиновича

Запускаем от имени администратора. После чего в строке «Filter» делаем поиск по слову «nvidia». Когда программа отобразит результаты, убираем галочки с чекбоксов:

  • NvTmMon
  • NvTmRep
  • NvTmRepOnLogon

 

Планировщиком задач 

Запускаем планировщик задач и находим NvTmMon. После чего правым кликом мышки вызываем контекстное меню, в котором выбираем пункт «Отключить». Тоже самое с файлами NvTmRepOnLogon и NvTmRep. 

Список может отличаться, в зависимости от версии драйвера и компонентов:

  • NvTmMon — Монитор телеметрии Nvidia — запускает C: \ Program Files (x86) \ NVIDIA Corporation \ Update Core \ NvTmMon.exe
  • NvTmRep — Сбой Nvidia и Telemetry Reporter — запускает C: \ Program Files (x86) \ NVIDIA Corporation \ Update Core \ NvTmRep.exe
  • NvTmRepCR * — Задача аварийного репортера. Обнаружен трижды с числами 1-3 в тестовой системе после установки последней версии драйвера.
  • NvProfileUpdaterDaily — Программа обновления профиля NVIDIA — C: \ Program Files \ NVIDIA Corporation \ Update Core \ NvProfileUpdater64.exe
  • NvProfileUpdaterOnLogon — Программа обновления профиля NVIDIA — C: \ Program Files \ NVIDIA Corporation \ Update Core \ NvProfileUpdater64.exe

Прочие задачи

  • NvTmRepOnLogon — Nvidia Profile Updater — запускает C: \ Program Files (x86) \ NVIDIA Corporation \ Update Core \ NvTmRep.exe —logon
  • NvDriverUpdateCheckDaily — Контейнер Nvidia — C: \ Program Files \ nvidia corporation \ nvcontainer \ nvcontainer.exe
  • NvNodeLauncher — Программа запуска NVIDIA NvNode — C: \ Program Files (x86) \ NVIDIA Corporation \ NvNode \ nvnodejslauncher.exe