Перевод конфигураций с платформы «1С предприятие 8.1» на платформу «1С предприятие 8.2»

Начну с ответа на вопрос «Зачем вообще надо переводить на новую платформу 8.2»?

1. Возможность использования различных клиентов:

  • Тонкий клиент. Позволяет работать по тонким каналам связям как по протоколу http, так и по протоколу tcp. При использование тонкого клиента можно отказаться от использования терминального сервера windows.
  • web-клиент. Данный клиент позволяет использовать 1с предприятие на компьютерах под управлениям операционных систем Linux (RedHat, Ubuntu) и MacOs.

2. Использование управляемого интерфейса. Что по моему мнению должно улучшить юзабилити пользователей.

3. Быстродействие. В новой платформе переработаны многие алгоритмы и поэтому даже  просто переход в режиме совместимости ускорит быстродействие системы.

4. Использование платформы «1С предприятие 8.2» является более перспективным решением. По последним данным развитие платформу 8.2 движется в сторону облачных технологий.

А сейчас о самом переходе.

Я выделю два способа перехода:

1. Конвертация конфигурации на платформу «1С предприятие 8.2» в режиме «Совместимость с «1С предприятие 8.1», редактирование алгоритмов для работы в новой платформе и перевод в режим «Без совместимости«.

2. Адаптация алгоритмов к работе в платформе «1С предприятие 8.1» и затем сразу перевод на платформу «1С предприятие 8.2» в режиме «Без совместимости«.

Если используется типовая конфигурация последней версии, то она уже адаптирована к переходу на платформу «1С предприятие 8.2», если же конфигурация давно не обновлялась или самописная, то потребуется адаптация алгоритмов.

Рассмотрим ключевые моменты адаптации алгоритмов платформы «1С предприятие 8.1» к работе в новой платформе «1С предприятие 8.2»

Запрос с ключевым словом РАЗЛИЧНЫЕ

Запрос, в котором указано ключевое слово РАЗЛИЧНЫЕ, а в предложении УПОРЯДОЧИТЬ ПО указано выражение, отсутствующее в списке выборки,
считается некорректным. При исполнении такого запроса в 1С:Предприятии 8.2 будет выдана ошибка.
Для устранения несовместимости необходимо:

  • выявить все запросы с РАЗЛИЧНЫЕ и УПОРЯДОЧИТЬ ПО с помощью обработки «ПроверкаКонфигурацииДляПереводаНа82.epf«, которая есть на диске ИТС;
  • дополнить список выражений в ВЫБРАТЬ выражениями из раздела УПОРЯДОЧИТЬ ПО, если требуется;
  • тем самым получим тот же результат, который был в 1С:Предприятии 8.1, но при этом запрос станет синтаксически правильным.

Например, запрос
ВЫБРАТЬ РАЗЛИЧНЫЕ
     Сотрудник,
     ВидРасчета …
УПОРЯДОЧИТЬ ПО
     Сотрудник.Наименование,
     Сотрудник.ДатаРождения,
     ВидРасчета.Код

верен, так как УПОРЯДОЧИТЬ ПО выполняется по полям ссылок Сотрудник и ВидРасчета, а такие ссылки в ВЫБРАТЬ уже есть.

Анализа типа параметра обработчика ОбработкаЗаполнения

В 1С:Предприятии 8.2 обработчик ОбработкаЗаполнения требует анализа типа, приходящего в качестве параметра значения.
Для устранения несовместимости необходимо:

  • выявить все обработчики ОбработкаЗаполнения (поможет вышеуказанная обработка);
  • убедиться в том, что в коде обработчика есть анализ типа параметра;
  • если нет – вставить в код условие вида
    Если ТипЗнч(Основание) = Тип(«…»),
    где Основание – параметр обработчика ОбработкаЗаполнения.

Конфликт имен методов и свойств
Нельзя использовать имена переменных, совпадающие с новыми методами и свойствами, которые появились в 1С:Предприятии 8.2:

  • перечисления ГруппировкаКолонок и ОтображениеКнопки;
  • метод ПроверитьЗаполнение у объектов, манипулирующих данными (СправочникОбъект, НаборЗаписей и т. п.)
  • новые методы глобального контекста:
    • ПредопределенноеЗначение(),
    • СмещениеЛетнегоВремени(),
    • ЗаблокироватьДанныеДляРедактирования(),
    • РазблокироватьДанныеДляРедактирования(),
    • ПолучитьЗначенияОтбораЖурналаРегистрации(),
    • УстановитьПривилегированныйРежим(),
    • ПривилегированныйРежим().

Для устранения несовместимости необходимо найти переменные, процедуры или функции с такими названиями (с помощью вышеуказанной обработки),
переименовать их и исправить все их использования в конфигурации.
Также нельзя использовать имена картинок, совпадающие с новыми картинками из библиотеки картинок:

  • НастройкиОтчета,
  • Форма,
  • ХранилищеНастроек,
  • АктивныеПользователи,
  • ЖурналРегистрации,
  • ЖурналРегистрацииПоПользователю,
  • ПоказатьДанные,
  • Свойства.

Для устранения несовместимости необходимо выявить такие картинки (поможет вышеуказанная обработка), переименовать и исправить все их использования в
конфигурации.

Изменение поведения операции языка запросов ВЫРАЗИТЬ

В 1С:Предприятии 8.2 операция языка запросов ВЫРАЗИТЬ возвращает строку переменной длины (без концевых пробелов) при приведении к типу
СТРОКА. Для устранения несовместимости необходимо:

  • найти запросы с ВЫРАЗИТЬ;
  • проанализировать, является ли получаемое выражение результатом выборки (находится в ВЫБРАТЬ);
  • проверить, как обрабатывается соответствующее поле результата запроса – нет ли там кода, опирающегося на то, что длина получаемой строки равна
    заданной в запросе.

Изменение имен идентификаторов групп полей настройки СКД
В 1С:Предприятии 8.2 идентификаторы групп полей настройки СКД были изменены на русскоязычные:

  • «SystemFields» -> «СистемныеПоля»;
  • «SerialNumber» -> «НомерПоПорядку»;
  • «GroupSerialNumber» -> «НомерПоПорядкуВГруппировке»;
  • «Level» -> «Уровень»;
  • «LevelInGroup» -> «УровеньВГруппировке»;
  • «GroupPercent» -> «ПроцентВГруппе»;
  • «OverallPercent» -> «ПроцентОбщий»;
  • «DataParameters» -> «ПараметрыДанных»;
  • «UserFields» -> «ПользовательскиеПоля».

Для устранения несовместимости необходимо заменить в коде старые идентификаторы на новые. Например,

Если ДоступноеПоле.Поле <> Новый ПолеКомпоновкиДанных(«SystemFields») Тогда
заменить на
Если ДоступноеПоле.Поле <> Новый ПолеКомпоновкиДанных(«СистемныеПоля») Тогда

Ограничение длины реквизита метаданных типа «Строка фиксированной длины»
В 1С:Предприятии 8.2 реквизит метаданных типа «Строка фиксированной длины» не может быть длиной более 100 символов. Для устранения
несовместимости необходимо:

  • выявить все такие реквизиты с помощью вышеуказанной обработки;
  • если такие реквизиты есть, необходимо перепроектировать функционал:
    • заменить на строки переменной длины;
    • и провести анализ использования данных этих реквизитов – нет ли кода, рассчитывающего на фиксированную длину (наличие хвостовых
      пробелов).

Проверка заполнения стандартного реквизита «Наименование»
В 1С:Предприятии 8.2 изменено поведение стандартного реквизита Наименование справочников, планов видов характеристик, планов счетов, планов
видов расчета и задач. По умолчанию свойство «Проверка заполнения» установлено в значение «Выдавать ошибку». Для устранения несовместимости
необходимо:

  • Выявить все формы элементов объектов, в которых реквизит Наименование не редактируется (отсутствует на форме).
  • Убедиться, что реквизиту Наименование устанавливается значение перед записью в форме. Если реквизит Наименование не редактируется
    пользователем, то его следует заполнить из кода на встроенном языке.

Удаление некоторых свойств табличного документа
В 1С:Предприятии 8.2 удалены свойства ЦветФонаГруппировки, ЦветТекстаГруппировки, ЦветФонаЗаголовков и ЦветТекстаЗаголовков
табличного документа. Для устранения несовместимости необходимо:

  • выявить использование таких идентификаторов в текстах модулей (с помощью вышеуказанной обработки);
  • если они есть, необходимо перепроектировать функционал, избавившись от их использования.

Изменения имени класса COM-соединителя
В 1С:Предприятии 8.2 изменено имя класса COM-соединителя – вместо «V81.COMConnector» используется «V82.COMConnector».
Для устранения несовместимости необходимо выявить все вхождения «V81.COMConnector» и заменить их на вызов функции, получающей имя COM-
соединителя универсально:
// Вернуть имя COM-класса для работы с 1С:Предприятием 8 через COM-соединение.
Функция ИмяCOMСоединителя() Экспорт
       СисИнфо = Новый СистемнаяИнформация;
      ПодстрокиВерсии = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок    (СисИнфо.ВерсияПриложения, «.»);
      Возврат «v» + ПодстрокиВерсии[0] + ПодстрокиВерсии[1] + «.COMConnector»;
КонецФункции

Изменение поведения метода «Заблокировать» объекта «БлокировкаДанных»
В 1С:Предприятии 8.2 изменено поведения метода Заблокировать() объекта БлокировкаДанных. Если объект БлокировкаДанных был неправильно
проинициализирован, то возникает ошибка о неверном типе устанавливаемого значения. Ранее в 1С:Предприятии 8.1 в этом случае ошибка не возникала, и
установка управляемой блокировки не производилась.
Например, если блокировка по типу МоментВремени для реквизитов типа Дата ранее игнорировалась, то теперь приводит к ошибке
C релиза 8.2.15 в блокировках запрещено одновременное использование методов «УстановитьЗначение» и «ИспользоватьЗначение»

Изменение поведения свойств «Вывод» и «ОриентацияСтраницы» табличного документа
В 1С:Предприятии 8.2 попытка присвоить некорректные значения свойствам Вывод и ОриентацияСтраницы табличного документа приводит к ошибке.
Ранее в 1С:Предприятии 8.1 в этом случае ошибка не возникала, а некорректное присваивание игнорировалось.

Рассмотрим переход на новую платформу «1С предприятие 8.2»

Способ №1. Конвертация конфигурации на платформу «1С предприятие 8.2» в режиме «Совместимость с «1С предприятие 8.1», редактирование алгоритмов для работы в новой платформе и перевод в режим «Без совместимости»

  1. Конвертируем тестовую базу в режиме совместимости с платформой «1С предприятие 8.1».
  2. Тестируем основные алгоритмы работы. Т.е. те документы на которые приходится большая часть работы пользователей.
  3. Если во время тестирования были доработки, их необходимо перенести в основную базу.
  4. Определяем день перехода. Перед конвертацией необходимо сделать резервную копию, т.к. обратно конвертировать не получится. Конвертируем основную базу.
  5. С помощью обработки «КонвертацияВнешнихОбработок82 .epf«, которая есть на диске ИТС, конвертируем внешние обработки и обработки, которые находятся в справочнике «Внешние обработки«. Если переход проводился на копии, то необходимо не забыть перенести файлы журнала регистрации.
  6. Если используются распределенные базы данных, то необходимо:
  • Отключить все обмены,
  • Конвертировать все узлы на платформу «1С предприятие 8.2»
  • Включить режим обмена.

Если Центральная база небольшого размера, то можно конвертировать сначала основную и затем сделать начальные выгрузки во все узлы.

На этом переход состоялся.

7.  Далее по мере возможности дорабатываем алгоритмы по выше указанным моментам. Когда все будет исправлено можно переводить конфигурацию в режим «Без совместимости» и пользоваться все новыми преимуществами платформы «1С предприятие 8.2»

Способ №2.  Адаптация алгоритмов к работе в платформе «1С предприятие 8.1» и затем сразу перевод на платформу «1С предприятие 8.2» в режиме «Без совместимости».

Способ №2 практически идентичен способу№1, только пункт №7 переносится в пункт №1. Т.е. сначала адаптируем алгоритмы, затем тестируем на копии уже на платформе «1С предприятие 8.2» и только потом переводим основную базу на платформу «1С предприятие 8.2» сразу в режиме «Без совместимости».

Хотелось бы рассмотреть еще один момент. «Одновременное использование 1С предприятие 8.1 и 1С предприятие 8.2»

На многих предприятиях используется не одна, а несколько информационных баз. Например управленческий учет ведется в УПП, а расчет налогов и заполнение деклараций в Бухгалтерии. Допустим мы решили перевести сначала Бухгалтерию, а затем основную базу УПП. Если используются файловые базы, то здесь проблем возникнуть не должно. Платформа «1с предприятие 8.2» устанавливается автономно и с платформой «1С предприятие 8.1» не пересекается.

Если же используется клиент-серверный вариант, то здесь присутствует один момент. При установке сервера «1С предприятие 8.2» по умолчанию он ставится на основной порт 1541. На этом порту так же может работать сервер «1С предприятие 8.1», если же это не так, то дальше ничего делать не надо. Но если все таки сервер 1с 8.1 и сервер 1с 8.2 работают на одном порту, то их необходимо разделить по разным портам.

Проще всего менять порт сервера через реестр. Необходимо найти в реестре строку запуска сервиса «Агент сервера 1С:Предприятия 8.2» и там откорректировать порты.

Популярность: 11%

Рубрика: Настройка и оптимизация, Платформа 1С | Метки: , , , , | Оставить комментарий

Вывод картинки в отчете на СКД

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

Расскажу свой алгоритм на небольшом примере.

Пример.  (Пример вывода картинки в СКД)

Необходимо на базе справочника «Номенклатура» вывести реквизит «Ссылка»  и картинку возле этого реквизита. Вид картинки зависит от свойства «ЭтоГруппа» элемента справочника «Номенклатура».

Программная часть алгоритма оформлена в процедуре модуля отчета «ПриКомпоновкеРезультата«.Пример программного кода

В схеме компоновке данных в «вычисляемые поля» было добавлено поле «ПолеКартинка». В выражение добавлено значение «%Картинка%», поэтому выражению будем искать область ячеек куда необходимо вставить нашу картинку.Настройка вычисляемого поля

В это поле и будет выводится наша картинка.

Создана следующая настройка схемы компоновки данных:Настройка СКД

После вывода отчета получили следующий результат:Результат отчета

 

 

 

 

 

 

 

 

 

 

 

Популярность: 18%

Рубрика: Отчеты (работа СКД) | Метки: , , , , | 2 комментария

Оформление перевода на другое место работы в программе «1С: ЗиУП 8 (редакция 2.5)»

Перевод внутри организации на другое постоянное место работы регистрируется в программе документом Кадровое перемещение организаций.

В шапке документа указываются:

  • в реквизите Организация — организация, внутри которой производится перевод (по умолчанию заполняется из настроек текущего пользователя);
  • в реквизите Ответственный — лицо из справочника Пользователи, ответственное за ввод документа в информационную базу (по умолчанию заполняется из настроек текущего пользователя).

Табличная часть на закладке Сотрудники формы документа заполняется списком работников, которые переводятся на другое рабочее место. Табличная часть может быть автоматически заполнена списком работников, отобранных по каким-либо критериям (по кнопке Заполнить верхней командной панели документа).

В строке табличной части указываются:

  • в колонке Сотрудник — работник организации, для которого регистрируется перевод;
  • в колонке С — дата перевода работника;
  • если работник переводится на другое место работы на определенный срок, то в колонке По указывается окончание периода работы на новом месте.
    Если колонка По заполнена, то при проведении документа будет зарегистрировано «напоминание» (намеченное кадровое событие) оформить обратное кадровое перемещение по окончанию срока перевода. Список намеченных на заданный период времени кадровых событий доступен в обработке Намеченные события по персоналу.
  • в колонках Подразделение и Должность отображаются подразделение и должность, занимаемые работником до перевода. В колонках рядом указываются новые подразделение и должность работника;
  • в колонке Ставка — количество занимаемых ставок по новой должности;
  • в колонке График работы — график работы работника на новом месте работы.

Изменения в системе оплаты труда в связи с переводом регистрируются на закладке Начисления.

Если изменяется размер основного начисления работника (начисление за отработанное в пределах нормы время), или изменяется форма оплаты труда, то в колонке Действие выбирается значение Изменить и задается новый размер начисления (при изменении формы оплаты труда — указывается новый вид расчета).

Если необходимо прекратить плановое начисление, то в колонке Действие выбирается значение Прекратить. При назначении нового начисления — значение Начать.

По кнопке Печать можно сформировать печатную форму приказа о переводе работника на другую работу по формам Т-5 и Т-5а.

Пример

Сотрудник Самойлов Юрий Александрович временно с 05.03.2012 по 30.04.2012 переводится в отдел сбыта с повышением оклада на 10%. Оклад повышается за счет увеличения коэффициента за высокопроизводительный труд.

В программе перевод работника регистрируется документом Кадровое перемещение организаций (рис. 1).

Документ "Кадровое перемещение"

рис. 1

Изменение размера оклада при переводе регистрируется на закладке Начисления (рис. 2).Изменение начислений

рис. 2

Намеченное событие по переводу сотрудника Самойлова Юрия Александровича в отдел снабжения (рис. 3).  Намечанные события

рис. 3

Популярность: 6%

Рубрика: Кадровый учет | Метки: , | Оставить комментарий

Оформление приема на работу в программе «1С:Зарплата и Управление Персоналом 8» (редакция 2.5)

Для регистрации факта приема на работу по трудовому договору и оформления приказа о приеме в программе необходимо:

  1. Зарегистрировать нового сотрудника в справочнике Сотрудники.
  2. Ввести документ Прием на работу в организацию.

1. Регистрация нового сотрудника и оформление трудового договора

В справочнике Сотрудники создается новый элемент, для которого в качестве вида договора указывается Трудовой договор и вводятся данные трудового договора (место работы: организация, подразделение организации и должность; график работы; количество ставок, основной вид оплаты, назначаемый при приеме на работу и персональные надбавки и др. реквизиты).

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

Из формы элемента справочника Сотрудники организаций можно сформировать и вывести на печать типовой трудовой договор организации с сотрудником.

2. Оформление приказа о приеме на работу

Регистрация факта приема на работу и оформление приказа о приеме на работу производится с помощью документа Прием на работу в организацию.

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

Документ можно ввести на одного или нескольких работников сразу.

В шапке документа Прием на работу в организацию указываются:

  • номер и дата документа, дата документа (значение реквизита от) должна соответствовать дате приказа о приеме на работу;
  • в реквизите Организация — организация (или ее обособленное подразделение), прием на работу в которую регистрируется (выбором из справочника Организации);
  • в реквизите Ответственный — лицо из справочника Пользователи, ответственное за ввод документа.

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

  • в реквизите Подразделение указывается структурное подразделение, в которое производится прием работника (из справочника Подразделения организаций);
  • в реквизите Должность — занимаемая должность (из справочника Должности организаций);
  • в реквизите Ставка — количество занимаемых ставок;
  • в реквизите Дата приема — дата приема на работу;
  • если работник принимается на срок, то в реквизите По указывается окончание периода работы;
  • в реквизите Испытательный срок указывается количество месяцев испытательного срока (если испытательный срок трудовым договором не предусмотрен, поле не заполняется);
  • в реквизите График работы — график рабочего времени (выбором из справочника Графики работы).
  • в реквизите Условия приема можно ввести произвольную строку, характеризующую условия приема для отражения в печатной форме Т-1;

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

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

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

По кнопке Печать можно сформировать печатную форму приказа о приеме на работу Т-1 или Т-1а.

Пример

С 01.02.2012 в ЗАО «Стройкомплект» на должность менеджера по продажам в отдел снабжения принимается на работу Самойлов Юрий Александрович. Ему устанавливается повременная форма оплаты труда (исходя из месячного  оклада пропорционально отработанным часам). Размер оклада составляет 1894750 бел. рублей в месяц. Испытательный срок составляет 2 месяца. График работы — пятидневная рабочая неделя с 8-ми часовым рабочим днем.

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

Создание нового элемента в справочнике "Сотрудники"

рис.1

На закладке Трудовой договор вводятся данные трудового договора, заключаемого с сотрудником (рис. 2).

Трудовой договор

рис.2

2. Факт приема на работу регистрируется с помощью документа Прием на работу в организацию, который вводится на основании элемента справочника Сотрудники (рис.3)

Прием на работу

рис.3

В табличной части на закладке Начисления документа указываются начисления, назначаемые работнику при приеме на работу (рис. 4).

Прием на работу (начисления)

рис.4

Популярность: 21%

Рубрика: Кадровый учет, Конфигурации 1С | Метки: , | 2 комментария

Механизм управляемых блокировок

Система «1С:Предприятие» позволяет использовать два режима работы с базой данных: режим автоматических блокировок в транзакции и режим управляемых блокировок в транзакции.

Принципиальное отличие этих режимов заключается в следующем. Режим автоматических блокировок не требует от разработчика каких-либо действий по управлению блокировками в транзакции для того. Эти правила обеспечиваются платформой системы «1С:Предприятие» за счет использования определенных уровней изоляции транзакций в той или иной СУБД. Такой режим работы является наиболее простым для разработчика, однако в некоторых случаях (например, при интенсивной одновременной работе большого количества пользователей) используемый уровень изоляции транзакций в СУБД не может обеспечить достаточной параллельности работы, что проявляется в виде большого количества конфликтов блокировок при работе пользователей.

При работе в режиме управляемых блокировок система «1С:Предприятие» использует гораздо более низкий уровень изоляции транзакций в СУБД, что позволяет значительно повысить параллельность работы пользователей прикладного решения. Однако, в отличие от режима автоматических блокировок, данный уровень изоляции транзакций уже не может сам по себе обеспечить выполнение всех правил работы с данными в транзакции. Поэтому при работе в управляемом режиме от разработчика требуется самостоятельно управлять блокировками, устанавливаемыми в транзакции.

В сводном виде отличия при работе в режиме автоматических блокировок и в режиме управляемых блокировок приведены в следующей таблице:

Вид блокировки Уровень изоляции транзакций
Автоматические блокировки
Файловая БД Таблиц Serializable
MS SQL Server Записей Repetable Read или Serializable
IBM DB2 Записей Repetable Read или Serializable
PostgreSQL Таблиц Serializable
Oracle Database Таблиц Serializable
Управляемые блокировки
Файловая БД Таблиц Serializable
MS SQL Server Записей Read Commited
IBM DB2 Записей Read Commited
PostgreSQL Записей Read Commited
Oracle Database Записей Read Commited

Установка режима блокировок в конфигурации
Конфигурация имеет свойство Режим управления блокировкой данных. Каждый прикладной объект конфигурации также имеет свойство Режим управления блокировкой данных.
Режим управления блокировкой данных для всей конфигурации в целом может быть установлен в значения Автоматический, Управляемый (установлено по умолчанию для новой конфигурации) и Автоматический и управляемый. Значения Автоматический и Управляемый означают, что соответствующий режим блокировки будет использоваться для всех объектов конфигурации, независимо от значений, установленных для каждого из объектов. Значение Автоматический и управляемый означает, что для конкретного объекта конфигурации будет использован тот режим, который указан в его свойстве Режим управления блокировкой данных: Автоматический или Управляемый.
Следует отметить, что режим управления блокировкой данных, указанный для объекта метаданных, устанавливается для тех транзакций, которые инициируются системой «1С:Предприятие» при работе с данными этого объекта (например, при модификации данных объекта).
Если же, например, операция записи объекта выполняется в транзакции, инициированной разработчиком (метод НачатьТранзакцию()), то режим управления блокировкой данных будет определяться значением параметра Режим блокировок метода НачатьТранзакцию(), а не значением свойства объекта метаданных Режим управления блокировкой данных.
По умолчанию параметр Режим блокировок имеет значение РежимУправленияБлокировкойДанных.Автоматический, поэтому для
того, чтобы в явной транзакции использовать режим управляемых блокировок, следует указывать значение этого параметра
РежимУправленияБлокировкойДанных.Управляемый (устанавливать данный параметр имеет смысл, если для свойства конфигурации «Режим управления блокировкой данных» выбрано значение «Автоматический и Управляемый»).

Работа с управляемыми блокировками средствами встроенного языка
Для управления блокировками в транзакции предназначен объект встроенного языка БлокировкаДанных. Экземпляр этого объекта может быть создан с помощью конструктора и позволяет описать необходимые пространства блокировок и режимы блокировок. Для установки всех созданных блокировок используется метод Заблокировать() объекта БлокировкаДанных. Если этот метод выполняется в транзакции (явной или неявной), блокировки устанавливаются и при окончании транзакции будут сняты автоматически. Если метод Заблокировать() выполняется вне транзакции, то блокировки не будут установлены.

Условия задаются на равенство значения поля указанному значению или на вхождение значения поля в указанный диапазон.
Условия могут быть заданы двумя способами:

● с помощью явного указания имени поля и значения (метод УстановитьЗначение() объекта ЭлементБлокировкиДанных);
● с помощью указания источника данных, содержащего необходимые значения (свойство ИсточникДанных объекта ЭлементБлокировкиДанных).

Для каждого элемента блокировки может быть задан один из двух режимов блокировки:

● разделяемый,
● исключительный.

Таблица совместимости управляемых блокировок выглядит следующим образом

Разделяемая Исключительная
Разделяемая +
Исключительная

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

Особенности работы в режиме «Автоматический и управляемый» 

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

● Независимо от режима, указанного для данной транзакции, система будет устанавливать соответствующие управляемые
блокировки.
● Режим управления блокировками определяется транзакцией самого «верхнего» уровня. Другими словами, если к моменту начала транзакции была начата другая транзакция, то начинаемая транзакция может быть выполнена только в том в режиме, который установлен для уже выполняющейся транзакции.

Рассмотрим перечисленные особенности более подробно.
Первая особенность заключается в том, что даже если для транзакции используется автоматический режим управления блокировками, система установит дополнительно и соответствующие управляемые блокировки при записи данных в этой транзакции. Из этого следует, что транзакции, исполняющиеся в режиме управляемых блокировок, могут конфликтовать с транзакциями,
исполняющимися в режиме автоматического управления блокировками.
Вторая особенность заключается в том, что режим управления блокировками, указываемый для объекта метаданных в конфигурации или указываемый при начале транзакции в явном виде (как параметр метода НачатьТранзакцию()), является лишь «желаемым» режимом. Фактический режим управления блокировками, в котором будет исполняться транзакция, зависит от того, является ли данный вызов начала транзакции первым, или к этому моменту уже начата другая транзакция в данной сессии системы «1С:Предприятие».
Например, если требуется управлять блокировками при записи наборов записей регистра, при проведении документа, то управляемый режим блокировок должен быть установлен как для самого регистра, так и для документа, поскольку запись наборов записей регистра будет выполняться в транзакции, открытой при записи документа.

 

Популярность: 18%

Рубрика: Настройка и оптимизация | Метки: , | 3 комментария