г. Санкт-Петербург
Войти
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Заказать звонок
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности


1
3
4
5
6
7
8
9
10
11
12
Настройка времени на контроллере домена 2012 \ 2008 r2
 

проблема остановки сервиса времени

См. в планировщике \Microsoft\Windows\Time Synchronization

сделано по инструкции из КИ

Все необходимое одной строкой

w32tm.exe /config /manualpeerlist:"time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]"
MaxPosPhaseCorrection"=dword:FFFFFFFF"
MaxNegPhaseCorrection"=dword:FFFFFFFF

Применение внесенных в конфигурацию службы времени измененийw32tm /config /update

Принудительная синхронизация от источника

Код
w32tm /resync /rediscover


Отображение состояния синхронизации контроллеров домена в домене

Код
w32tm /monitor


Отображение текущих источников синхронизации и их статуса

Код
w32tm /query /peers
Скрипт Online реиндексации всех пользовательских баз 1С, Он лайн
 
Скрипт производит он-лоай

(прямо в рабочее время)

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

Время выполнения от нескольких минут до полу-часа, в течении которого возможно замедление производительности изза нагрузки на диск SQL сервера
Код
-- Параметры скрипта
declare @database_names as nvarchar(max) = N''; -- имена баз задавать через запятую, если не заданы, то все несистемные базы
                                -- пока парсер примитивный - строка просто делится по запятым и обрезаются крайние пробелы
                                -- (если в имени базы будет запятая или в начале или конце имени пробел, то система не работает)
                                -- если указано "-ИмяБазы", то база будет исключена, 
declare @index_size_threshhold as int = 1024;   -- минимальный размер в КБ для перестраиваемого индекса. Нет смысла перестраивать индексы на десяток страниц
declare @index_rebuild_threshhold as numeric(5,2) = 15; -- показатель фрагментации, начиная с которого происходит перестроение индекса
declare @index_defrag_threshhold as numeric(5,2) = 105;  -- показатель фрагментации, начиная с которого происходит дефрагментация индекса
declare @index_rebuild_space_used_threshhold as numeric(5,2) = 50; -- процент заполненности страниц меньше которого требуется перестроение индекса
declare @timeout as int = 3600; -- максимальное время работы скрипта
declare @max_size as bigint = 536870912; -- максимальный суммарный обрабатываемый размер в КБ (чтобы не нагенерировать логов на терабайты) -- 512*1024*1024 КБ = 0,5 ТБ
declare @is_emulate as bit = 0; -- 0 - выполнять, 1 - только вывести команды

set nocount on;
use master;

declare @indexes as table (
   database_name nvarchar(128) not null,
   schema_name nvarchar(128) not null,
   table_name nvarchar(128) not null,
   index_name nvarchar(128) not null,
   is_clustered bit not null,
   size_kb bigint not null,
   fragmentation numeric(5,2) not null
   );
declare @database_names_table as table (
   name nvarchar(128) not null primary key
   );
if object_id('tempdb..#index_stats') is not null 
   drop table #index_stats;
create table #index_stats (
   database_id smallint not null,
   object_id int not null,
   index_id int not null,
   index_type_desc nvarchar(60) not null,
   avg_fragmentation_in_percent float not null,
   page_count bigint not null,
   avg_page_space_used_in_percent float not null,
   record_count bigint not null,
   index_name nvarchar(128),
   table_name nvarchar(128),
   schema_name nvarchar(128),
   db_name nvarchar(128)
   )

print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- Поиск баз данных для обслуживания'
declare @timeout_datetime datetime = dateadd(second, @timeout, getdate());


-- Создание списка обслуживаемых БД по @database_names
with database_name_table(database_names_tail, database_name) as 
   (
      select 
         substring(@database_names, nullif(charindex(',', @database_names, 1), 0) + 1, len(@database_names) + 1), 
         rtrim(ltrim(left(@database_names, isnull(nullif(charindex(',', @database_names, 1), 0) - 1, len(@database_names)))))
      where 
         @database_names is not null 
      union all
      select 
         substring(database_names_tail, nullif(charindex(',', database_names_tail, 1), 0) + 1, len(database_names_tail) + 1), 
         rtrim(ltrim(left(database_names_tail, isnull(nullif(charindex(',', database_names_tail, 1), 0) - 1, len(database_names_tail)))))
      from database_name_table db
      where 
         database_names_tail is not null 
   ), 
database_names_with_indicator(database_name, indicator) as
   (
      select
         db_name(db_id(case when database_name like '-%' then rtrim(ltrim(substring(database_name, 2, len(database_name)))) else database_name end)),
         case when database_name like '-%' then 1 else 0 end
      from database_name_table db 
      where db_name(db_id(case when database_name like '-%' then rtrim(ltrim(substring(database_name, 2, len(database_name)))) else database_name end)) is not null
   )
insert @database_names_table (name)
select name 
from sys.databases db
where 
db.name not in ('master', 'model', 'tempdb', 'msdb') -- системные базы данных обычно не требуется переиндексировать
and db.name not in (select dbi.database_name from database_names_with_indicator dbi where indicator = 1)
and ((select top 1 dbi.database_name from database_names_with_indicator dbi where indicator = 0) is null or 
   db.name in (select dbi.database_name from database_names_with_indicator dbi where indicator = 0))
;
print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- найдено ' + convert(nvarchar(max), @@rowcount) + ' баз данных для обслуживания'

print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- Поиск индексов для обслуживания'
-- курсором обходим выбранные БД и ищем индексы и данные по их фрагментации
declare @database_cursor as cursor;
declare @current_database as nvarchar(128);
set @database_cursor = cursor forward_only for
select name from @database_names_table;
open @database_cursor;
fetch @database_cursor into @current_database;

while (@@FETCH_STATUS = 0)
begin
   
   insert #index_stats
      (database_id, object_id, index_id, index_type_desc, avg_fragmentation_in_percent,
      page_count, avg_page_space_used_in_percent, record_count)
   select 
      database_id, object_id, index_id, index_type_desc, max(avg_fragmentation_in_percent),
      sum(page_count), sum(avg_page_space_used_in_percent*page_count)/isnull(nullif(sum(page_count),0),1), sum(record_count)
   from 
      sys.dm_db_index_physical_stats( db_id(@current_database), null, null, null, 'DETAILED') ips
   where 
      ips.index_id>0 -- убираем кучи (heap)
      and ips.index_type_desc in (N'CLUSTERED INDEX', N'NONCLUSTERED INDEX') -- всякие хитрые индексы не обрабатываем
      and ips.alloc_unit_type_desc = N'IN_ROW_DATA' -- обрабатываем только по "обычным" записям
      and ips.index_level = 0
   group by database_id, object_id, index_id, index_type_desc
   having sum(page_count)*8 >= @index_size_threshhold 

   exec ('use [' + @current_database + '];
   update i
   set 
      i.db_name = db_name(),
      i.table_name = t.name,
      i.schema_name = s.name,
      i.index_name = ci.name
   from #index_stats i
   left join sys.tables t on i.object_id = t.object_id
   left join sys.schemas s on t.schema_id = s.schema_id
   left join sys.indexes ci on i.object_id = ci.object_id and i.index_id = ci.index_id
   where 
   i.database_id = db_id();');

   fetch @database_cursor into @current_database;
end;

use master;
close @database_cursor;
deallocate @database_cursor;

declare @WithOptionsRebuild nvarchar(100) = 'WITH (SORT_IN_TEMPDB = ON); '; -- в Enterprise/Developer можно добавить в скобки ", ONLINE = ON"

print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- Обработка найденных индексов'
-- Курсором обходим выбранные индексы и ищем те, которые надо обслуживать в порядке убывания размера (без упорядочнивания по БД!)
declare @index_cursor as cursor;
set @index_cursor = cursor forward_only for
select 
   'ALTER INDEX ' + i.index_name + ' ON [' + i.db_name + '].[' + i.schema_name + '].[' + i.table_name + '] ' + 
   case 
      when @index_rebuild_threshhold <= i.avg_fragmentation_in_percent then 'REBUILD ' + @WithOptionsRebuild
      when @index_rebuild_space_used_threshhold >= i.avg_page_space_used_in_percent then 'REBUILD ' + @WithOptionsRebuild
      when @index_defrag_threshhold <= i.avg_fragmentation_in_percent then 'REORGANIZE '
   end sql_command,
   case -- оценка влияния на журнал транзакций (неточная!)
      when @index_rebuild_threshhold <= i.avg_fragmentation_in_percent then i.page_count*8
      when @index_rebuild_space_used_threshhold >= i.avg_page_space_used_in_percent then i.page_count*8
      when @index_defrag_threshhold <= i.avg_fragmentation_in_percent then i.page_count*8*4*i.avg_fragmentation_in_percent/100
   end size
from #index_stats i
where 
   @index_rebuild_threshhold <= i.avg_fragmentation_in_percent or 
   @index_defrag_threshhold <= i.avg_fragmentation_in_percent or 
   @index_rebuild_space_used_threshhold >= i.avg_page_space_used_in_percent
order by i.page_count desc

declare @database_id as smallint;
declare @object_id as int;
declare @index_id as int;
declare @partition_number as int;
declare @sql nvarchar(max);
declare @size numeric(20,4);

open @index_cursor;
fetch @index_cursor into @sql, @size;

print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- Начало обновления индексов' 

while (@@FETCH_STATUS = 0)
begin
   set @max_size = @max_size - @size;

   print '';
   print '-- ' + convert(nvarchar(max), getdate(), 121);
   print @sql;
   print '-- Размер индекса: ' + cast(@size as nvarchar(max));
   print '-- Остаток @max_size: ' + cast(@max_size as nvarchar(max));

   if (@is_emulate = 0)
      exec(@sql);

   if (@timeout_datetime<getdate())
   begin
      print '-- Выполнение прекращено по таймауту!';
      break;
   end;
   if (@max_size<0) 
   begin
      print '-- Достигнут предел обслуживаемого размера, выполнение прекращено!';
      break;
   end;
      
   fetch @index_cursor into @sql, @size;
end;

print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- Окончание обновления индексов' 

close @index_cursor;
deallocate @index_cursor;

-- обновление частотных статистик
declare @dbstat_cursor as cursor;
set @dbstat_cursor = cursor forward_only for
select 'use [' + d.name + ']; exec sp_updatestats @resample = ''resample'';'
from @database_names_table d

print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- Начало обновления частотных статистик'

open @dbstat_cursor;
fetch @dbstat_cursor into @sql;

while (@@FETCH_STATUS = 0)
begin
   
   print '';
   print '-- ' + convert(nvarchar(max), getdate(), 121);
   print @sql;
      
   if (@is_emulate = 0)
      exec(@sql);

   if (@timeout_datetime<getdate())
   begin
      print '-- Выполнение прекращено по таймауту!';
      break;
   end;
   fetch @dbstat_cursor into @sql;
end;

print '-- ' + convert(nvarchar(max), getdate(), 121) + ' -- Окончание обновления частотных статистик'

if (@is_emulate = 1)
  select * from #index_stats i order by i.avg_fragmentation_in_percent desc
  
  
drop table #index_stats;
Проверка отправки почты Битрикса из консоли BitrixVM, Если при отправке используется msmtp который часто используют вместо sendmail, то можно проверить как проходит отправка из консоли сервера
 
В первую очередь можно посмотреть в админке битрикса:

Раздел настройки производительность- Таблицы

Находим таблицу:
Код
b_event 

http://vash-site.ru/bitrix/admin/perfmon_tables.php?lang=ru (замените имя сайта)



Код
echo -e "test message" | /usr/bin/msmtp --debug -t -i vash@e-mail.ru
в моем случае была настроена яндекс почта.
Код
loaded system configuration file /etc/msmtprc
ignoring user configuration file /root/.msmtprc: No such file or directory
falling back to default account
using account default from /etc/msmtprc
host                  = smtp.yandex.ru
port                  = 587
timeout               = off
protocol              = smtp
domain                = localhost
auth                  = choose
user                  = vash@user
...


<-- 250 2.0.0 Ok: queued on iva1-bc1861525829.qloud-c.yandex.net as 1614238010-Jtoq7IyRGg-QnJ0ToLm
--> QUIT
<-- 221 2.0.0 Closing connection.
Если видим в конце 2.0.0 Ок значит письмо уходит, в противном случае будет четко видно почему не отправляется почта
например для Яндекс аккаунта может потребоваться добавить пароль приложения
и команда будет показывать что логин и пароль не правильный
Exchange 2010 не доходят письма отправителей добавляем в белый список адресов, Если не доходят письма до сотрудников компании exchange как добавить в белый список
 

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

В excahgne managament shell смотрим письма:

в состоянии FAIL - т.е не доставленные:

команда:
смотрим за последние 12 часов по получателю:
Замените в команде poluchatel@* - на нужное значение например: vasya@mail.ru

Код
Get-MessageTrackingLog -Start (Get-Date).AddHours(-12) -ResultSize unlimited | where {[string]$_.recipients -like "poluchatel@*"}

если нужны подробности добавить к команде " | fl sender, recipients, timestamp, recipientstatus, messageinfo"

Код
Get-MessageTrackingLog -Start (Get-Date).AddHours(-12) -ResultSize unlimited | where {[string]$_.recipients -like "poluchatel@*"} | fl sender, recipients, timestamp, recipientstatus, messageinfo

Вот ещё варианты поиска
по отправителю c экспортом в файл

service@emailservice - заменить на отправителя:

Код
Get-MessageTrackingLog -Start (Get-Date).AddHours(-12) -ResultSize unlimited | where {[string]$_.sender -like "service@emailservice"} |export-csv c:\mail-logs.csv -notype

Также для поиска только не доставленных можно добавить : -EventID "FAIL"

РЕШЕНИЕ:

Добавляем фильтр в список белых адресов целиком для домена:
domen_otpravitela.com - замените на домен отправителя

Код
Set-ContentFilterConfig -BypassedSenderDomains domen_otpravitela.com
Работа с разрешениями на папки в Remote Desctop Manager, Как настраивать разрешения для допольнительных пользователей с ограниченными правами в RDM
 
настройка RDM пункт первый относится к верхнему разделу хранилища

1. Запретить в корне Подключение(выполнение);


2. для Дополнительного пользователя с ограниченными правами необходимо использовать "Ограниченного пользователя" или просто "пользователя Только чтение", то что

Конкретные разрешения для пользователей - разрешить в настройках конкретных папок (под папок) в хранилище (первый уровень хранилища);


3. если пользователю доверяем и он может держать пароли в актуальном состоянии и информацию добавлять - то это уровень обычного пользователя. (Т.е администратора или "пользователь")
как создать и продвигать интернет магазин в контакте, Курс описывающий как продвигать и создать магазин в контакте
 
О чем этот курс?С помощью этого курса вы создадите свой магазин ВКонтакте. Настроите способы оплаты и доставки, автоматизируете процессы и узнаете, как продвигать товары в пару кликов.
Курс подойдет как опытным игрокам рынка e-commerce, так и новичкам — тем, кто только собирается запустить свой бизнес.
Часть 1. Как запустить магазин ВКонтакте

УРОК 1

Возможности магазина ВКонтакте

УРОК 2

Как создать магазин

УРОК 3

Настройка оплаты

УРОК 4

Доставка: как отправлять клиентам заказы
Часть 2. Как продвигать и автоматизировать магазин ВКонтакте

УРОК 1

Настройка автоматизации магазина

УРОК 2

Бесплатные инструменты продвижения

УРОК 3



Автопродвижение товаров с компьютера и мобильного

Ссылка на курс: https://vk.com/biz/edu?section=market&utm_source=vk&utm_medium=cpc&utm_campa...
Поступление оперативной памяти DDR3 12800 / 14900 PC3 RDIMM (ECC REG) серверная
 
Внимание, память регистровая, работает только с материнскими платами поддерживающие регистровую.



подробней информация в каталоге: https://s-alpha.ru/catalog/operativnaya_pamyat/
Заполнение заказа поставщикам по нескольким заказам покупателей под 1С: Комплексная автоматизация 2.4, Заполнение заказов поставщику по 2 и более заказам покупателей в КАА 2.4
 
https://infostart.ru/public/1209850/ За основу взята разработка Инфостарт позволяющая на конфигурации КАА 2.4 заполнять заказы поставщику по двум и более заказам покупателя В типовой версии КАА 2.4 предусмотрено заполнение обработкой формирования по потребностям но иногда функционал слишком грамоздкий и требуется просто заполнить заказ поставщику по 2-м или более заказам покупателя В заказе поставщику появится следующий фукнционал:
4G модем ZTE MF79RU, Модем WIFI роутер ZTE
 
Поступили в продажу недорого

Модем, роутер - USB с выходами на антенны

Прошивка штатная, поддержка всех операторов и мобильных тарифово.

Подробней:https://s-alpha.ru/catalog/modemy_3g_4g_lte/4g_modem_zte_mf79ru/

Формирование документов с использованием реквизитов Битрикс - 24, Б24,
 
Используем конструктор документов

https://www.youtube.com/watch?v=3k7CYH1G_yw&feature=emb_logo
1
3
4
5
6
7
8
9
10
11
12