Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Конфликт блокировок
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Vidocq05
Конфигурация доработанная УТП 1.2 Платформа 8.3.8.2442.

После перехода с 8.2 на 8.3 часто начали появляться ошибки конфликта блокировок.
В часности при прокрутке в форме списка документа "Поступление товаров и услуг" в событии "ПриВыводеСтроки" на строчке кода:
Если НЕ ПустаяСтрока(ДанныеСтроки.Ссылка.НомерВМагазине) Тогда

Пользователи жалуются, что работать стало намного хуже.
8.3 ставилась поверх 8.2.
Кто что подскажет?
Пока в планах выгрузка в dt и потом последующая загрузка с нее. Может поможет.
andr_andrey
Цитата(Vidocq05 @ 08.08.18, 15:29) необходимо зарегистрироваться для просмотра ссылки
Пока в планах выгрузка в dt и потом последующая загрузка с нее. Может поможет.

Какой смысл в этом действии? С чего вдруг исчезнет конфлик блокировок?
Совет: зовите доступного вам специалиста, или начинайте с матчасти, или хотябы с необходимо зарегистрироваться для просмотра ссылки?
Zaval
Цитата(Vidocq05 @ 08.08.18, 15:29) необходимо зарегистрироваться для просмотра ссылки
Кто что подскажет?

Дело не в версии платформы. Доработка корявая, почти диверсия.
Vidocq05
Цитата(Zaval @ 08.08.18, 22:31) необходимо зарегистрироваться для просмотра ссылки
Дело не в версии платформы.

Почему тогда проявилось при переходе на 8.3?
Цитата(Zaval @ 08.08.18, 22:31) необходимо зарегистрироваться для просмотра ссылки
Доработка корявая, почти диверсия.

Хотя доработка не моя, но можно подробней? Что в ней настолько критичного?
andr_andrey
Цитата(Zaval @ 08.08.18, 22:31) необходимо зарегистрироваться для просмотра ссылки
Доработка корявая, почти диверсия.

Есть подозрение, что она не единственная, так как автор спокойно смотрит на это.
Vidocq05
А более конкретный ответ кто-то даст?

Что такое блокировки, я знаю. Но скорее всего не в полной мере понимаю этот процесс. Уточняю вопрос: Почему происходит конфликт блокировок конкретно при выполнении данной строчки кода?
sava1
Что есть Ссылка в данных строки?
Vidocq05
sava1 @ Сегодня, 10:46 необходимо зарегистрироваться для просмотра ссылки ,
Ссылка на документ "Поступление товаров и услуг".
andr_andrey
sava1 @ Сегодня, 10:46 необходимо зарегистрироваться для просмотра ссылки ,
Автор же указал "в форме списка документа "Поступление товаров и услуг" в событии "ПриВыводеСтроки"

Цитата(Vidocq05 @ 09.08.18, 10:42) необходимо зарегистрироваться для просмотра ссылки
Почему происходит конфликт блокировок конкретно при выполнении данной строчки кода?

Если грубо, то "ДанныеСтроки.Ссылка.НомерВМагазине" вызывает неявный запрос для каждой строки на форме.
При каждом запросе в базу 1С накладывает либо автоматические блокировки, либо указанные в коде разработчиком.
Далее умножаете количество неявных запросов на количество одновременно открывающих эту форму и делаете выводы -
Цитата(Zaval @ 08.08.18, 22:31) необходимо зарегистрироваться для просмотра ссылки
почти диверсия.
Vidocq05
Цитата(andr_andrey @ 09.08.18, 11:57) необходимо зарегистрироваться для просмотра ссылки
При каждом запросе в базу 1С накладывает либо автоматические блокировки, либо указанные в коде разработчиком.

В коде не указаны блокировки, во всяком случае в данной процедуре.
Я наверное что-то не знаю. Разве в данном случае накладываются автоматические блокировки?
Есть похожий код в другой базе, только модуле формы списка "Реализация товаров и услуг". Документов там набивается больше, пользователей тоже больше, но конфликта блокировок никогда не было, только тормаза при отображении списка документов (ну это и понятно). Почему здесь возникает конфликт блокировок?
sava1
пропустил "в форме списка".
попробуйте использовать ПриПолученииДанных ?
Petre
Удивительно, что все заговорили о неоптимальности кода. Но то, что это произошло просто при переходе на другую платформу, никого не смущает...
Vidocq05, расскажите лучше порядок действий. Только ли платформу меняли? Что со старой? Клиент-сервер, СУБД? Архитектура, инфраструктура?
Vidocq05
Petre @ Сегодня, 12:34 необходимо зарегистрироваться для просмотра ссылки ,
Данный код существует уже давно, но ошибки посыпались резко при переходе на 8.3. Меняли только платформу. Админ установил ее поверх 8.2. База серверная - SQL Server 2005.
Petre
СУБД (не версия, а экземпляр) не менялась? База данных в СУБД? Параметры запуска (клиента / сервера)? Конфигурация не редактировалась (в т. ч. и режим совместимости)? Выполнялись ли рекомендации при переходе на новую платформу (перестроение полнотекстового индекса и прочее)?
andr_andrey
Цитата(Petre @ 09.08.18, 12:34) необходимо зарегистрироваться для просмотра ссылки
Удивительно, что все заговорили о неоптимальности кода. Но то, что это произошло просто при переходе на другую платформу, никого не смущает...

8.3 от 8.2 отличается множеством переделок в доступе к данным (можете проверить в необходимо зарегистрироваться для просмотра ссылки поиском строки "Работа с СУБД").
Нельзя быть уверенным, что ничего не ухудшили в "устаревших" автоматических блокировках. А кто тут без - греха? 44000000.gif
Автору остается только смотреть запросы в СУБД и какие блокировки конфликтуют, либо силой мысли искать огрехи в коде.
Petre
QUOTE (andr_andrey @ 09.08.18, 12:54) необходимо зарегистрироваться для просмотра ссылки
можете проверить в Изменениях платформы поиском строки "Работа с СУБД"

Какие ваши подозрения? Я, кроме пунктов об улучшении планов и уменьшении блокировок ничего не нашел...

Уверенным никогда нельзя быть. Возможно даже, что простое изменение платформы на какой-нибудь 8.3.10 релиз исправит ситуацию. В 8.3.8 на багтреке - более шестиста ошибок!
Vidocq05
Цитата(Petre @ 09.08.18, 13:10) необходимо зарегистрироваться для просмотра ссылки
СУБД (не версия, а экземпляр) не менялась? База данных в СУБД? Параметры запуска (клиента / сервера)? Конфигурация не редактировалась (в т. ч. и режим совместимости)?

С СУБД ничего не делали, параметры запуска не менялись, конфигурация не менялась.
Цитата(Petre @ 09.08.18, 13:10) необходимо зарегистрироваться для просмотра ссылки
Выполнялись ли рекомендации при переходе на новую платформу (перестроение полнотекстового индекса и прочее)?

Нет, просто установили платформу и все.


Цитата(andr_andrey @ 09.08.18, 13:54) необходимо зарегистрироваться для просмотра ссылки
8.3 от 8.2 отличается множеством переделок в доступе к данным (можете проверить в Изменениях платформы поиском строки "Работа с СУБД").

Навряд ли дело в версии платформы, т.к. я писал выше:
Цитата(Vidocq05 @ 09.08.18, 12:20) необходимо зарегистрироваться для просмотра ссылки
Есть похожий код в другой базе, только модуле формы списка "Реализация товаров и услуг". Документов там набивается больше, пользователей тоже больше, но конфликта блокировок никогда не было, только тормаза при отображении списка документов (ну это и понятно).

Там стоит такая же версия платформы.
Vidocq05
В общем, победить не удалось. Вернул назад 8.2 и все нормально заработало. Пока нет времени более глубоко с этим разбираться. Возможно нужно 8.3 установить в чистом виде, а не поверх 8.2.
Но пока так...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.