Версия для печати темы (https://pro1c.org.ua/index.php?s=48a47831cc9990c16d52bc9f8f8ec5ab&showtopic=67238)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Не записався регістр при проведенні документа

Автор: zay 02.05.23, 12:57

Доброго дня
Управління торговим підприємством для України 1.2.69.1
SQL Server 2019

  1. Користувач розрахував і провів нарахування відпуски з одним співробітником
  2. Потім замінив співробітника на іншого і провів документ
  3. У регістрі розрахунку залишився перший співробітник

Відповідно нарахування і виплата відпуски відбулася з помилковим співробітником, який був у регістрі розрахунку

Відтворити помилку на копії бази не вийшло. При проведенні документу нарахування відпуски у регістр записується правильний співробітник, із документа

Тобто на момент запису документа щось таке відбулося, що сам документ був записаний, але при цьому не відбувся запис у регістр розрахунку

Що могло спричинити таку ситуацію?

Автор: andr_andrey 02.05.23, 16:46

zay @ Сегодня, 13:57 * ,
Теоретично таке не повинно бути, якщо програміст розуміє, що таке логічна транзакція і сервер працює без падіння.
Але, як кажуть американці - "Shit happens".

Далі буде конспірологічна теорія: є підозра, що все залежить від версії платформи. Це не доведено, але сам шукав причину випадкового часткового проведення складського ордеру, і не знайшов.

Автор: zay 02.05.23, 18:52

Версія платформи 8.3.17.1549

Такі самі проблеми я спостерігав колись у іншій базі, при завантажені великої кількості (пара сотень за сеанс) документів на регулярній основі. Для себе пояснював конфліктом блокувань на рівні таблиці БД. Так, це повинно викликати виключення. Аля я вів логи проведення документів і виключень при проведенні не було

Але з цією відпусткою стандартний для 1С характер роботи. В базі працює всього декілька людей, кожен по своєму напрямку. Конфлікт блокувань регістра розрахунку теоретично не міг трапитися, зарплатні документи робіть тільки одна людина

Автор: Batchir 18.05.23, 9:44

Возможно п. 2 (Потім замінив співробітника на іншого і провів документ) выполнен не штатными средствами.
Например, если использовать групповую обработку изменения данных, то она просто меняет ссылки, но документ не пререпроводит с первого раза.
Если меняли какими-то обработками сотрудника и затем вызвали команду типа ДокументОбъект.Записать() без параметров, то документ будет просто записан без перепроведения.

Но в таком случае если руками открыть документ и провести, то движения должны стать корректными.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua