Оптимальные параметры кластера 1С 8.3 Я уже писал несколько статей:
Настройка и оптимизация сервера, кластера 8.3
Добавление, перезапуск, оптимизация рабочих процессов сервера кластера
теперь немного подробнее:
Кластер 1С 8.3
Первым делом, после установки кластера 1С ранее нужно было создать рабочие процессы. Как оказалось, процессы кластера начали создаваться автоматически в зависимости от нагрузки базы.
Пробный запуск фоновых заданий основной базы заставило кластер 1С бесконечно перегружать rphost.exe и дополнительный rphost.exe никак не хотел создаваться. Покопавшись в настройках все стало понятно.
Максимальный объем памяти рабочих процессов - это объем памяти, который могут использовать рабочие процессы вместе. Нужно быть очень внимательными при установке параметра, измеряется в байтах. Если установить неверное значение (недостаточное для нормальной работы пользователей) пользователям будет выдана ошибка "Недостаточно свободной памяти на сервере 1С". Так же эту ошибку можно получить, когда на сервере 1С закончилась квота по памяти.
Безопасный расход памяти за один вызов - позволяет контролировать расход памяти при серверном вызове, измеряется в байтах. Если вызов использует больше памяти чем положено, этот вызов будет завершен в рамках кластера 1С без перезапуска рабочего процесса (rphost.exe). Соответственно "неудачник", который выполнил вызов сервера, утратит сеанс с базой 1С без влияния на работу других пользователей.
в одном ГБ - 1073741824 Байт, следовательно в 2 ГБ - 2147483648 Байта
Объем памяти рабочих процессов, до которого сервер считается производительным - при превышении этого параметра сервер в кластере 1С перестанет принимать новые соединения.
Количество ИБ на процесс - позволяет изолировать информационные базы по рабочим процессам. По умолчанию у текущего кластера 1С было установлено значение - "8", но на протяжении нескольких часов работы сервер себя очень нестабильно, сеансы пользователей зависали. После изоляции каждой информационной базы (значение - "1") проблемы пропали.
Количество соединений на процесс - по умолчанию значение "128". Так как у текущей базы очень большая нагрузка фоновыми заданиями (расчет логистики, анализ прайсов, анализ конкурентов и прочее) было принято решение уменьшить количество до "25".
Немного изменились настройки и самого кластера 1С:
Уровень отказоустойчивости - это количество рабочих серверов, которые могут одновременно выйти из строя, и это не приведет к аварийному завершению работы пользователей. Резервные сервисы запускаются автоматически в количестве, необходимом для обеспечения заданной отказоустойчивости. В реальном режиме времени выполняется репликация активного сервиса на резервные.
Режим распределения нагрузки - есть два варианта параметра: "Приоритет по производительности" - памяти сервера тратится больше и производительность выше, "Приоритет по памяти" - кластер 1С экономит память сервера.
Сервер 8.3 характеризуется переработанным заново внутренним кодом, хотя «снаружи» может показаться что это слега доработанный 8.2.
Сервер стал более «авто настраиваемым», часть параметров типа количества рабочих процессов теперь не создается вручную, а рассчитывается исходя из описаний требований задач по отказоустойчивости и надежности.
Это снижает вероятность неправильной настройки сервера и понижает требования к квалификации админов.
Получил развитие механизм балансировки нагрузки, который можно использовать либо для повышения производительности системы в целом, либо использовать новый режим «экономии памяти», который позволяет работает «с ограниченной памятью» в случаи если используемая конфигурация «любит отъедать память».
Стабильность работы при использовании больших объемов памяти определятся новыми параметрами рабочего сервера.
Особенно интересен параметр «безопасный расход памяти за один вызов». Для тех кто плохо представляет что это такое - лучше не тренируйтесь на «продуктивной» базе. Параметр «Максимальный объем памяти рабочих процессов» позволяет при «переполнении» не обваливать весь рабочий процесс, а только один сеанс «с неудачником». «Объем памяти рабочих процессов, до которого сервер считается производительным» позволяет заблокировать новые соединения как только будет преодолен этот порог памяти.
Рекомендую изолировать рабочие процессы по информационным базам, к примеру указать параметр «Количество ИБ на процесс = 1″. При нескольких высоконагруженных базах это позволит уменьшить взаимное влияние как по надежности, так и по производительности.
Отдельный вклад в стабильность системы вносит «расходование» лицензий/ключей. В 8.3 появилась возможность использования «менеджера программных лицензий» напоминая менеджер «аладина». Цель - возможность вынести ключ на отдельную машину.
Реализован он в виде еще одного «сервиса» в менеджера кластера. Вы можете использовать к примеру «свободный» ноутбук. Добавьте его в кластер 1с 8.3, создайте на нем отдельный менеджер с сервисом «сервис лицензирования». В ноутбук можно воткнуть аппаратных hasp-ключ, или активировать программные лицензии.
Наибольший интерес для программистов должен представлять «Требования назначения функциональности».
Требования назначенной функциональности 1с
Так на ноутбуке с ключом защиты чтобы не запускать пользователей на сервер кластера надо добавить «требования» для объекта требования «Клиентское соединение с ИБ» - «Не назначать», т.е. запретить рабочим процессам данного сервера обрабатывать клиентские соединения.
Еще больший интерес предоставляет возможность запускать «только фоновые задания» на рабочем сервере кластера без сеансов пользователей. Таким образом можно высоконагруженные задачи (код) вынести на отдельный машины. При чем можно одно фоновое задание «закрытия месяца» через «Значение дополнительного параметра» запускать на одном компьютере, а фоновое задание «Обновление полнотекстового индекса» на другом.Уточнение происходит через указание «Значение дополнительного параметра». Например если указать BackgroundJob.CommonModule в качестве значения, то можно ограничить работу рабочего сервера в кластере только фоновыми заданиями с любым содержимым. Значение BackgroundJob.CommonModule.<Имя модуля>.<Имя метода> - укажет конкретный код.
Кластер 1С 8.2
Сеансы позволяют выполнять балансировку загруженности и отказоустойчивости в управляемом приложении.
Менеджер кластера теперь стал сложнее. Часть функций теперь можно выделить в отдельный процесс и даже разместить на другом рабочем сервере кластера. Это позволяет балансировать загруженность сервера.
Отказоустойчивость сервера 8.2 достигается за счет:
- Хранение информации о сеансе работы пользователя.
- Пользователь не привязан больше к рабочему процессу.
- Резервирование рабочих процессов в кластере.
- Должно быть несколько рабочих процессов, в том числе резервируемые
- Резервирование кластеров.
Указывается запасной кластер, при подключении - перечисляются в строке соединения
Это позволяет обеспечить непрерывность работы!
При разрыве физического соединения клиента с кластером (уборщица выдернула кабель, отключилось питание сетевого оборудования, неполадки у провайдера) не приходится заново подключаться к информационной базе и начинать всю работу сначала. После восстановления физического соединения пользователь может продолжить работу с того места, на котором она была прервана.
Если требуется техническое обслуживание компьютеров кластера, их можно выключать прямо во время работы, не останавливая работу пользователей с информационной базой.
При выходе из строя любого сервера кластера работа пользователей не остановится она будет автоматически переведена на резервный кластер и/или на резервные рабочие процессы. Для пользователей такой переход будет незаметным.
Если один из рабочих процессов кластера завершится аварийно, подключенные к нему пользователи будут автоматически переведены на другие или резервные рабочие процессы. Такой переход также будет незаметен для пользователей.
Категория:
Администрирование
Технология восстановления удаленных объектов Статья для версии 7.7, для 8.х смотрите - Битая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID
Введение
Многие из Вас, наверное, сталкивались с такой проблемой как, удаление элементов в справочниках, а значит, знают, какую кучу проблем это приносит. Я видал много способов восстановления порушенного справочника. Все их можно свести к следующему:
Заводится новый элемент справочника, аналогичный удаленному элементу, а потом он заносится во все документы, вместо удаленного элемента. Дальше все различается только способом занесения элемента в документы. Кто все исправляет в руки, кто пишет обработку - все зависит от опыта и
квалификации исполнителя. После чего, необходимо перепровести все измененные документы. В общем, долгая и нудная работа, не всегда дающая 100% результат правильного восстановления. Есть, правда, один быстрый способ, основанный на формате DBF, точнее методах работы с ним.
Вот об этом мы и поговорим. Итак, что нам для этого надо. Иметь голову, наполненную мозгами, умелые ручки, знания основ перевода чисел из одной системы счисления в другую и любой редактор DBF файлов. Я, к примеру, использую winDBFview фирмы "Гэндальф".
Часть 1. Нам повезло.
С начала, собственно, о формате DBF и методах работы с ним. Думаю, рассказывать обо всем формате нет смысла, это тема отдельной статьи, поэтому расскажем о нем вкратце, для понимания тех действий, которые необходимо совершить.
Итак, что такое DBF формат и с чем его едят. Файл DBF можно разделить на две части: заголовок и, собственно, набор данных. В заголовке находится вся служебная информация, показывающая из каких полей состоит запись, типы этих полей, размер данных в полях, количество записей, размер записи, и откуда в файле начинаются записи, но это сейчас ни к чему. В наборе данных находятся, собственно, записи данных. В начале каждой записи стоит специальный байт - признак удаления. То есть когда вы говорите программе удалить запись, она ее фактический не удаляет, а ставит в первый байт записи метку о том, что данная запись удалена.
Отсюда следует, что если найти запись соответствующую удаленному элементу и сбросить признак удаления, переиндексировать базу, то можно обнаружить что, правильно удаленный
элемент будет восстановлен не только в справочнике, но всех документах.
Для тех, кто не знает что почем, показываю на примере:
Рабочая конфигурация ТиС, удалили элемент справочника товаров.
Запускаем winDBFview и выбираем Файл - Открыть. В появившемся окне диалога находим папку, в которую установлена база и открываем там файл. А какой? Вот ведь вопрос: как узнать? Да просто. Запускаем какую-нибудь оболочку, переходим в папку с базой и находим файл"1Cv7.DD". Открываем его для просмотра и находим там следующую строчку - "Справочник Номенклатура" - в нашем случае, у вас, вместо "Номенклатура" ставим название порушенного справочника (как он называется в конфигураторе) . И видим приблизительно следующее (см. рис. 1). То, что у меня выделено под надписью "Name" и есть искомое нами имя файла. Открываем его в редакторе DBF файлов, и смотрим. В поле CODE содержится код элемента справочника, а в поле DESCR наименование элемента. Как будете искать - уже дело техники и возможностей редактора. Найдя нужный элемент, сбрасываем байт пометки на удаления и сохраняем сделанные изменения.
Часть 2. Нам не повезло.
Но может быть, что вы не смогли быстро приехать к месту событий (всякое в жизни бывает). Приступили к восстановлению элемента. Запустили редактор. И начали искать и не нашли удаленный элемент. Куда он делся? Опять вернемся к формату DBF, и посмотрим, что происходит при добавлении новой записи. С начала программа ищет помеченные на удаление записи и если не находит, то добавляет новую запись. А если находит, вы правы, пишет вместо нее. И что делать, неужто опять все в руки?
Внимательно смотрим листинг файла "1Cv7.DD". Видите перед полем CODE поля ID и PARENTID. Для чего они нужны. Из описания поля (см. рис. 1), следует, что это какой-то идентификатор объекта. Оказывается 1С все равно, на тот код, что вы указали в справочнике элементов. Сама для себя она каждому объекту присваивает свой код. Значит, если мы узнаем этот код, то сможем создать запись полный аналог удаленной. Хм.... А как узнать этот код?
Есть много способов. Я, надеюсь, предлагаю вам самый простой. Итак, начнем.
Запускаем 1С. Лезем в Сервис - Монитор пользователей - Журнал регистрации. В появившемся диалоге делаем отбор: "во всем журнале, отбор по признаку удаление элемента справочника", жмем "ОК".
И смотрим журнал (см. рис. 2). Видите, там, где написано "Номенклатура 2258 04 ....", это и есть удаленный элемент справочника, его нам и надо восстановить. Сверху присутствует
строка: "<Объект не найден>(36201/)", 36201 - это и есть ID объекта. Создаем в справочнике новый элемент - полный аналог удаленному элементу. Выходим из 1С. Запускаем редактор, находим созданный нами элемент и поле ID ставим найденный. Внимательный читатель может сразу заметить существенное различие между соседними записями. Вот сейчас мы и переведем найденный идентификатор к нужному виду.
Перевод из одной системы счисления в другую, подробно изучается в школах и институтах, поэтому на этом останавливаться не будем. Изучив весь справочник, замечаем, что в идентификатор состоит из цифр и заглавных букв латинского алфавита. То есть может содержать все цифры от "0" до "9", и буквы от "A" до "Z". Значит, используется тридцати шестеричная система счисления 10 цифр плюс 26 букв. Приступим:
* 36201 делим на 36, получаем 1005 в остатке 21;
* 1005 делим на 36, получаем 27 в остатке 33;
В конце имеем три числа: 27, 33, 21. Заменяем их соответствующими значениями из приведенной ниже таблицы и получаем ID объекта RXL. Записываем его вместо ID созданного нами элемента.
Номер можно получить средствами самой 1С использую функцию _IdToStr() и наоборот получит десятичное число из его тридцати шестеричного представления _StrToId().
Запускаем 1С, индексируем базу и смотрим, что имеем (см. рис. 3)
Что и требовалось получить. Пользуйтесь.
автор:
skunk Категория:
1С Общие вопросы - Обычные формы
Использование RLS Начиная с платформы 8.0 системы 1С Предприятие, существует возможность ограничивать права доступа пользователей на уровне записей. Для этого используется механизм RLS (Record Level Security). Такая «тонкая» настройка может быть полезна для ограничения доступа по организациям, клиентам, номенклатуре и др.
RLS – это возможность разработчика задать условие на таблицы базы данных для тех или иных пользователей (групп пользователей) и не дать им увидеть лишнего. Условие имеет булевый тип. Если значение условия принимает значение «истина», то доступ предоставляется, в противном случае – запрещается.
RLS используется одновременно с настройкой обычных прав доступа. Поэтому прежде чем приступить к настройке RLS, необходимо раздать обычные права на объекты конфигурации.
RLS применяется для следующих видов прав доступа:
* Чтение
* Добавление
* Изменение
* Удаление
Порядок настройки RLS
Рассмотрим простой пример выполнения настройки. Снимки экрана сделаны на версии 1С Предприятие 8.2 (8.2.9.356). Синтаксис шаблонов текстов ограничений описан в документации по 8.2 в книге «Руководство разработчика. Часть 1», поэтому на нем останавливаться не будем.
Итак, первым делом нужно определить шаблоны ограничений для каждой существующей роли.
После этого на основании указанных шаблонов задаются ограничения к необходимым объектам. Для редактирования текста условия можно воспользоваться конструктором ограничений доступа к данным.
Для редактирования нескольких ролей удобно управлять через окно «Все роли».
Для копирования условий в другие роли можно использовать окно «Все ограничения доступа». Шаблоны в другие роли могут копироваться только вручную.
Вот и все. Можно проверить результат.
Недостатки использования RLS:
1. Применение механизма ограничения доступа на уровне записей приводит к неявному увеличению таблиц, участвующих в запросе, что может привести к ошибкам в клиент-серверном режиме работы базы данных.
2. Для контроля записи бывает трудно или невозможно реализовать сложную логику приложения. В таких случаях лучше использовать условия в процедуре ПриЗаписи().
3. Написание условия (запроса) требует определенной
квалификации разработчика.
4. Дополнительные трудности может создать невозможность отладки условия (запроса).
В типовых конфигурациях права на уровне записей могут быть заданы интерактивно для следующих объектов: организации, контрагенты, номенклатура, склады, подразделения, физические лица, заявки кандидатов и другие.
Следует помнить, что ограничения прав доступа на уровне записей довольно ресурсоемкий механизм и чем более сложные ограничения Вы поставите, тем медленнее программа будет работать, особенно при большой базе данных.
Мелкоступов Александр Категория:
Пользователь, роль доступа, интерфейс
Как в ЗУПе продлить срок трудового договора? Расчетчик завела сотрудника со сроками договора с 01.01.09 по 15.06.09
Система попросила уволить данного сотрудника 16.06.09!
Расчетчик ввела новый док прием на работу в организацию 07.07.09 (продлили договор) при этом ввела нового сотрудника и новое физ лицо.
В результате в начисление з.п. за июнь при заполнении попадают оба этих сотрудника.. Как корректно продлить данному сотруднику договор?
Ответ:
Срочный договор по окончании расторгается, т.е сотрудник увольняется.
Если он не расторгнут, считается бессрочным.
Продление срочного ТД - это нарушение ТК РФ
По закону, если не было приказа об увольнении, и сотрудник не был с ним ознакомлен за три дня до окончания срока - то трудовой договор автоматически становится бессрочным. Читайте ТК РФ.
И еще: Обратитесь к судебной практике, а она такова, что два срочных договора, заключенных с работником по одной и той же специальности (профессии, квалификации и т.д.) подряд будут признаны судом, как один бессрочный трудовой договор. И понесутся проверочки: иснпекция, прокуратура и т.д. в результате нахлабучат административку.
Два подряд - вещь опасная, вызывает у проверяющих подозрения в попытке ущемить права работника, со всеми вытекающими последствиями.
У сотрудника нужно просто очистить поле дата окончания Труд. Договора., т.е сделать договор бессрочным.
Категория:
1С Зарплата и Управление Персоналом 2.5