Особенности поведения системы при записи объекта Вид расчета

В данном разделе рассматриваются особенности поведения системы при записи вида расчета, т.е. при выполнении метода Записать() объекта ПланВидовРасчетаОбъект или записи из формы этого объекта. Будут рассмотрены проверки, которые выполняет при этом система, и сообщения об ошибках, которые в результате таких проверок можно встретить.

Общие проверки вида расчета

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

При записи предопределенного вида расчета проверяется значение свойств ПометкаУдаления и ПериодДействияБазовый. Установить эти свойства для предопределенного объекта можно только из языка. Интерактивно, при работе с формой объекта, эти свойства не изменяются. Если предопределенному объекту выставлено свойство ПометкаУдаления, выдается сообщение об ошибке "Пометка на удаление предопределенного вида расчета". Если для свойства ПериодДействияБазовый изменено значение, установленное при конфигурировании, выдается сообщение "Изменены свойства предопределенного вида расчета".

Проверки предопределенных табличных частей

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

1) В предопределенных табличных частях не должны присутствовать строки с повторяющимся значением в колонке ВидРасчета (выдается, например, сообщение "Дублирование базовых видов расчета").

2) В предопределенных табличных частях не допускается модификация тех строк, которые заданы при конфигурировании (см. рисунок)

При этом не допускается удаление предопределенных строк и ввод новых строк с признаком Предопределенный. Такую модификацию табличных частей можно выполнить, например, из языка. Это обстоятельство важно помнить при работе с такими методами табличных частей, как Вставить(), Удалить(), Очистить(), Сдвинуть(), Загрузить(), ЗагрузитьКолонку() и т.д. В случае любой модификации предопределенных строк табличных частей при записи объекта выдается сообщение "Недопустимая модификация объекта".

Проверки табличной части вытесняющих видов расчета

Результатом проверки вытесняющих видов расчета может оказаться сообщение "Вытесняющий вид расчета вытесняется текущим!". Такое сообщение возникает как результат проверки табличных частей с ведущими видами расчета для всей совокупности видов расчета одного плана видов расчета. Смысл проверки в том, чтобы не допустить такой настройки, когда в списке вытесняющих видов расчета присутствует такой, который в свою очередь вытесняется текущим (записываемым) видом расчета. Эта проверка выполняется "рекурсивно", т.е. проверяется сколь угодно длинная цепочка вытеснений. Не допустима, например ситуация, изображенная на схеме.

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

При записи также выполняется проверка полноты списка вытесняющих видов расчета (сообщение об ошибке "Неполный список вытесняющих видов расчета"). Система контролирует то, что если для записываемого объекта в список вытесняющих видов расчета включен вид расчета А и он в свою очередь вытесняется видом расчета Б, то вид расчета Б должен также присутствовать в списке вытеснения записываемого объекта. Например, не допустима приведенная ниже ситуация.

Система в приведенном случае "требует" включить виды расчета Б1 и Б2 в список вытеснения для вида расчета А так как в этот список включен вид расчета А2.

Проверки табличной части ведущих видов расчета

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

Особенности записи предопределенных видов расчета при реструктуризации конфигурации

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

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

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

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


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

Текст сообщения Описание
Пометка на удаление предопределенного вида расчета Возникает при попытке записи предопределенного объекта, которому установлено свойство ПометкаУдаления. Установить это свойство для предопределенного объекта можно только из языка. Интерактивно, при работе с формой объекта, это свойство изменить нельзя.
Изменены свойства предопределенного вида расчета Возникает в том случае, если для предопределенного объекта из языка изменено свойство ПериодДействияБазовый.  Изменить это свойство для предопределенного объекта можно только из языка.
Недопустимая модификация объекта Возникает в том случае, если у предопределенного объекта тем или иным образом модифицированы предопределенные строки табличных частей.
Дублирование базовых видов расчета В табличной части базовых видов расчета обнаружены строки с повторяющимся значением в колонке ВидРасчета.
Дублирование вытесняющих видов расчета В табличной части вытесняющих видов расчета обнаружены строки с повторяющимся значением в колонке ВидРасчета.
Дублирование ведущих видов расчета В табличной части ведущих видов расчета обнаружены строки с повторяющимся значением в колонке ВидРасчета.
Вытесняющий вид расчета вытесняется текущим! В табличных частях видов расчета "зациклены" вытесняющие виды расчета.
Неполный список вытесняющих видов расчета Требуется дополнить табличную часть видами расчета, которые в свою очередь являются вытесняющими для вытесняющих видов расчета записываемого объекта.
Неполный список ведущих видов расчета Требуется дополнить табличную часть видами расчета, которые в свою очередь являются ведущими для ведущих видов расчета записываемого объекта.