1с у пространства блокировок не существует поля с именем ведущаязадача

Обновлено: 06.07.2024

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

предоставляет возможность анализа программных лицензий

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

При работе под управлением ОС macOS стало возможно использование системного хранилища сертификатов для организации защищенного соединения

Ошибки, связанные с проверкой сертификата средствами ОС Windows. Такие события могут помочь специалистам в расследовании причин некорректной проверки сертификатов

Событие возникает при срабатывании механизма очистки сеансовых данных

Его имя построено по шаблону: ИмяПроцесса_Релиз_АдресОшибки_ГГГГММДДЧЧММСС_PIDПроцесса.mdmp

В котором ГГГГММДДЧЧММСС – это дата и время падения.

Каждая ошибка, из-за которой происходит падение, имеет свой уникальный АдресОшибки.

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

Обязательно указывайте следующую информацию:

Версию и разрядность серверной ОС
Разрядность сервера 1С
Количество серверов в кластере
Количество запущенных рабочих процессов на сервере 1С
Версию используемой СУБД
Ссылки на архив с дампом и логами для скачивания.

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

Примечание.
UUID информационной базы можно посмотреть в файле
C:\Documents and Settings\<Имя пользователя>\Application Data\1C\1Cv81\ibases.v8i.

Часто программисты не учитывают, что есть список объектов, НЕ доступных для динамического обновления
Регламентные задания
Общие реквизиты
Планы обмена
Реквизиты, предопределенные элементы, иерархия, владельцы, нумерация справочников
Реквизиты, нумерация, движения, последовательности, ввод на основании документов
Перечисления
Тип значений характеристик, реквизиты, нумерация, предопределенные элементы планов видов характеристик
Реквизиты, нумерация, субконто, предопределенные элементы планов счетов
Реквизиты, нумерация, расчет, предопределенные элементы планов видов расчета
Реквизиты, регистраторы регистров сведений, накопления, бухгалтерии, расчета
Реквизиты, нумерация, расчет, предопределенные элементы планов видов расчета
Реквизиты, адресация, нумерация задач
Реквизиты, нумерация, ввод на основании бизнес-процессов

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

Если вы работаете с часто изменяемой печатной формой и не хотите постоянно выгонять пользователей, используйте внешние обработки.
Хорошей практикой считается все плановые изменения вносить например раз в неделю, например во вторник. К этому дню все правки тестируются не только по отдельности, но и в общем взаимодействии. Если во вторник информационная система ухудшила свою работу, значит сразу понятно, что надо откатить последний релиз к предыдущему. А это означает бэкап не только базы, но и бэкап cf перед внесением изменений.

Если Вы словили проблему связанную с динамическим обновлением, то обязательно очистите сеансовые данные с рестартом службы сервера 1С.
Если проблема не ушла, то запускайте сеанс 1С с ключом /ClearCache .

Преодолеть зависимость от динамического обновления мне помогли 12 простых шагов:

12 ШАГОВ , РАЗРАБОТАННЫЕ САМИМИ ДИНАМИЧЕСКИМИ ОБНОВЛЯЛЬЩИКАМИ
1. Признать свое бессилие перед поведением платформы 1с при динамическом обновлении.
2. Согласиться с утверждением, что без посторонней помощи не обойтись.
3. Мысленно перепоручить себя некой Высшей силе, которая поможет.
4. Проанализировать свои поступки.
5. Признать перед собой и кем-то еще свои ошибки.
6. Не сомневаться, что бекап перед динамическим обновлением сработает.
7. Просить высшие силы избавить от недостатков.
8. Составить список всех людей, кому причинили зло, и захотеть загладить свою вину перед ними.
9. Лично возместить этим людям ущерб, нанесенный вами и вашим динамическим обновлением.
10. Продолжать самоанализ и, при малейших ошибках, сразу признавать, что вы их таки совершили.
11. Не переставать размышлять и благодарить помощника из пункта 3.
12. Достигнув пробуждения, благодаря пунктам 1-11, помогать другим динамическообновлялщикам.

Механизм работы обновления:
Процесс динамического обновления (и обновления вообще) происходит следующим образом:

Есть одно не хитрое житейское наблюдение:

Дата выхода (технологическая, а не продажи вам лично) платформы 1С:Предприятия, операционной системы, субд, сопровождающего ПО и ВНИМАНИЕ! железа
должны различаться не больше чем на несколько лет!

Когда у Вас железо десятилетней давности, а платформы только только вышла редко это бывает хорошо. Точно также плохи и другие сочетания, например очень старая ОС и новое железо и т.п.


Почему возникает такая проблема


При этом хранилище доступно по протоколу tcp.

Как устраняется проблема

1. Для решения проблемы надо воспользоваться утилитами Sysinternals REGMON и FILEMON.

Отследить сервис w3wp.exe (IIS) в момент попытки соединится с хранилищем

HKLM\SYSTEM\Services\Winsock\Parameters
HKLM\SYSTEM\Services\TCPIP\Parameters
HKLM\SYSTEM\Services\NetBIOS\Parameters
HKLM\SYSTEM\Services\Gpc\Parameters

В этом случаи потребовалось дать права IUSR_SRVNAME на чтение.

Внимание! Это не стандартная ситуация. Чаще всего это либо не проявится вообще, либо может быть другое приложение.

Даем права на чтение и выполнение IUSR_SRVNAME.

Внимание! Это тоже не стандартная ситуация. Чаще всего это либо не проявится вообще, либо может быть другое приложение.

Даем права на чтение и выполнение IUSR_SRVNAME.

filemon

В данном конкретном примере это оказалось решением.

1. Создаем новую базу с таким же именем и такими же по именам и расположению .mdf и .ldf файлами

2. Останавливаем сервер, подменяем файл .mdf

3. Стартуем сервер, не обращаем внимания на статус базы

4. Там же выполняем:

и запоминаем/записываем значение на случай неудачи ребилда лога.

5. Там же выполняем:

6. Перезапускаем SQL Server.

7. В принципе база должна быть видна (в emergency mode). Можно, например, заскриптовать все объекты.

9. Если все нормально, то там же выполняем:

10. Если все в порядке, то:

Добавлен встроенный веб-сервер (только для одной базы, из командной строки управление).

Реализован упрощенный OLAP . Теперь можно работать на чтение с копией таблицы с ведомой СУБД.
Реализовано событие технологического журнала <DBCOPIES > .Механизм копий базы данных требует лицензию КОРП.

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

Реализован пакетный режим работы тонкого и толстого клиентских приложений. Пакетный режим распространяется от начала запуска клиентского приложения до окончания работы обработчика ПередНачаломРаботыСистемы модуля приложения. После окончания работы обработчика пакетный режим автоматически отключается. В пакетном режиме запуска подавляется вывод любых диалогов системы. Признаком пакетного режима работы клиентского приложения является команда командной строки запуска /DisableStartupDialogs .

Уменьшено время полного пересчета итогов для регистров бухгалтерии и накопления в следующих случаях:

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

    Ускорено выполнение реструктуризации информационной базы при использовании СУБД Microsoft SQL Server и IBM DB2.

    Уменьшилась вероятность одновременного закрытия множества соединений с Microsoft SQL Server, что положительно влияет на производительность работы с TempDB .

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

    В тонком, толстом и веб-клиентах, форма снимает блокировку объекта через 1 минуту после снятия признака модифицированности.(раньше снималась при закрытии формы)При работе под управлением СУБД PostgreSQL, в технологический журнал (событие <plansql> ) помещаются планы запросов для запросов UPDATE , DELETE и INSERT . (Раньше был только SELECT)

    Реализовано отображение критических ошибок оптимизированного механизма обновления конфигурации базы данных в конфигураторе и в событии <EXCP> технологического журнала.

    В технологическом журнале реализованы свойства Dbms , Database , DBCopy для событий обращения к СУБД ( DB2 , DBMSSQL , DBPOSTGRS , DBORACLE ), событий EXCP и SDBL .

    Возникла такая же ошибка. Кто-то может подсказать решение данной проблемы?

    Alexpln Решили ли данную проблему ? У нас такая же проблема. Лишь с несколькими контрагентами

    да, такая же ситуация после обновления появилась. никто не решил?

    Внутри процедуры ОбщегоНазначения.УстановитьУправляемуюБлокировку так и не смотрели?

    Уважаемый IBReiter А можно подробнее. Не совсем понятно мне.

    Если я создаю нового (копию) контрагента, то с новым контрагентом документ проводится.

    Такая же проблема. Копирую договор у контрагента, после этого проводится. В чем может быть проблема?

    Один и тот же контрагент в одном учреждении проводится, в другом нет.

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

    Если поставить галочку не списывать аванс автоматически, то документ проводится. Но это выход если организация одна. А наша организация обслуживает более 50 организаций. Эта проблема возникает только с 206 счетом по предоплате. Надеюсь разработчики как-то отреагируют.

    Установил режим управления блокировок - автоматический, документ провелся.

    А где происходит смена режима блокировок и какой тип стоял по умолчанию?

    В конфигураторе, в свойствах конфигурации. Стоял управляемый.

    Эта проблема действительно существует, и возникает очень выборочно. В ближайшие дни (где-то 23- 24.12.2015) будет еще один плановый релиз с новой структурой бюджетной классификации. В этом релизе эта ошибка будет исправлена. Пока, если у клиентов есть возможность, можно внести исправления самостоятельно. В общем модуле "Бухгалтерский учет" в функции "СформироватьТаблицуЗачетаАвансаВыданного" Код СтруктураИсточникаДанных = Новый Структура( "Счет, КВД, КБК, Баланс", "Счет", "КВД", "КБК", "Баланс"); заменить на СтруктураИсточникаДанных = Новый Соответствие; СтруктураИсточникаДанных.Вставить("Счет", "Счет"); СтруктураИсточникаДанных.Вставить("КВД", "КВД"); СтруктураИсточникаДанных.Вставить("КБК", "КБК"); СтруктураИсточникаДанных.Вставить("Баланс", "Баланс"); Если возможности такой нет, то, т.к. проблема возникает при зачете аванса, можно, пока, не зачитывать документом аванс выданный. Т.е. перед проведением документа покупки, включить флажок "Не производить автоматический зачет аванса".

    Главное не забыть, после обновления на новый релиз, включить в этих документах флажок, и перепровести их.

    Часто возникает необходимость в частичном ограничении доступа к данным. Например, когда пользователь должен видеть документы только своей организации. В таких случаях в 1С используется механизм ограничения доступа на уровне записей (так называемый, RLS – Record Level Securiy).

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

    Для решения задачи будем использовать платформу “1С:Предприятие 8.2″. Создадим новую конфигурацию в свойствах которой в качестве основного режима запуска будет выбран вариант “Управляемое приложение”.


    Далее создадим справочник “Организации” и ещё два справочника – “Контрагенты” и “Пользователи” с реквизитом “Организация”. Кроме справочников нам понадобятся два параметра сеанса – “Организация” и “Пользователь” (соответствующих типов). Значения этих параметров устанавливаются при запуске сеанса работы с конфигурацией и хранятся до его завершения. Именно значения этих параметров мы и будем использовать при добавлении условий ограничения доступа на уровне записей.

    Установка параметров сеанса выполняется в специальном модуле – “Модуль сеанса”


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

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

    В модуле управляемого приложения будем проверять наличие пользователя конфигурации в справочнике “Пользователи” (для простоты будем искать его по наименованию) и завершать работу системы если он не найден. Это необходимо для того, чтобы обеспечить заполнение параметров сеанса.


    Перейдем на закладку “Права” роли “Пользователь” и откроем список прав справочника “Контрагенты”. Будем использовать шаблон ограничений “КонтрагентыЧтениеИзменеие” для прав “Чтение”, “Изменение” и “Доблавление”.


    Для права “Чтение” будем использовать шаблон с параметром “ИЛИ ЭтоГруппа”. При этом пользователям данной роли будет разрешено чтение не только элементов справочника “Контрагенты” своей организации, но и всех групп этого справочника.

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

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

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

    Документ имеет свойство "Движения"="Не удалять автоматически"

    В результате в обработке проведения:

    Процедура ОбработкаПроведения(Отказ, Режим)

    Перем Заголовок, СтруктураШапкиДокумента;

    Если мУдалятьДвижения Тогда
    ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, Истина, Режим);
    КонецЕсли;

    и далее происходит удаления движений по Хозрасчетному в процедуре:

    Процедура ЗаписатьНаборЗаписейНаСервере(ИмяРегистра, Регистратор, ТаблицаДвижений = Неопределено, ТипРегистра = "РегистрНакопления") Экспорт

    Если ТипРегистра = "РегистрНакопления" Тогда
    Набор = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();

    Если ТаблицаДвижений <> Неопределено Тогда
    Набор.мТаблицаДвижений = ТаблицаДвижений;
    ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(Набор);
    КонецЕсли;

    Иначе
    Если ТипРегистра = "РегистрБухгалтерии" Тогда
    Набор = РегистрыБухгалтерии[ИмяРегистра].СоздатьНаборЗаписей();
    ИначеЕсли ТипРегистра = "РегистрСведений" Тогда
    Набор = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
    ИначеЕсли ТипРегистра = "РегистрРасчета" Тогда
    Набор = РегистрыРасчета[ИмяРегистра].СоздатьНаборЗаписей();
    КонецЕсли;

    Если ТаблицаДвижений <> Неопределено Тогда
    Набор.Загрузить(ТаблицаДвижений);
    КонецЕсли;
    КонецЕсли;

    Набор.Отбор.Регистратор.Установить(Регистратор);
    Набор.Записать(); // ТУТ ТАЙМАУТ (Когда "РегистрБухгалтерии.Хозрасчетный" )

    Может не удалять движения по БУ ? Чем это чревато ?

    (1)я понимаю, что у РБ по сути одно измерение "Организация", т.о. выполняя:

    Набор.Записать(); - в начале транзакции мы исключительно блокируем до окончания транзакции!
    В добавок ко всему есть запрос в обработке проведения, который медленно выполняется => длинная транзакция!

    Читайте также: