№118 На позицию: Программист 1С Вопрос: Пользователи жалуются, что при проведении документа возникают отрицательные остатки, хотя есть код где «всё проверяется». В коде он выглядит так: ВЫБРАТЬ ОстаткиТоваров.Номенклатура, ОстаткиТоваров.Склад, ОстаткиТоваров.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментВремени, Номенклатура В (&СписокНоменклатуры)) КАК ОстаткиТоваров ДЛЯ ИЗМЕНЕНИЯ Конфигурация работает в режиме управления блокировками «Управляемый». Что не так с этим кодом и как сделать правильно? Ответ: В управляемом режиме конструкция ДЛЯ ИЗМЕНЕНИЯ в языке запросов не работает — она тихо игнорируется платформой. Разработчик ничего не блокирует, и между чтением остатка и записью движений другой сеанс успевает списать тот же товар. Отсюда и «плавающие» отрицательные остатки. В автоматическом режиме ДЛЯ ИЗМЕНЕНИЯ действительно повышает уровень изоляции на СУБД до Serializable. Но в управляемом режиме блокировки на уровне СУБД минимальные (Read Committed), а
❓ Рубрика: Вопросы на собеседовании #вопросынасобесах
3 дня назад3 дня назад
1 мин