Запись с такими ключевыми полями существует! #577723


#0 by IT_PROGRAMMIST
Привет всем.)УПП 1.3.11.5,пл.8.2.13.219. Такая проблема.Есть кадровые документы(Прием,Отсутствие,Возврат,Увольнение),которые дают движения по регистру сведений СостояниеРаботниковПредприяти(Структура регистра: измерения:ФизЛицо,ДатаРаботы,ресурс: состояние).В данный регистр заносится состояние работника(т.е работает, на больничном, в отпуске и т.д.)Регистр подчинен регистратору с периодичностью "В пределах дня".Что только не перепробывал!!При проведении кадрового документа пишет ошибку: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ОбработкаПроведения': {Документ.Увольнение}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : СостояниеРаботниковПредприятия: 13.10.2011 0:00:00, , 10.10.2011 13:14:20 (Регистр сведений: Состояние работников предприятия; Номер строки: 2) Пробовал: 1)менять периодичность на "По позиции регистратора" 2) добавил дополнительное измерение дата. Ничего не помогает.Помогите,как можно выйти из ситуации????Заранее благодарен
#1 by YauheniL
ПРоверь, нет ли в документе дублирующихся строк по измерениям.
#2 by YauheniL
Если у тебя 1 и 101 строи совпадают с учетом измерений, то ты будешь такую ошибку всегда ловить, независимо от периодичности. Тут только свертка таб. части нужда
#3 by YauheniL
*нужна
#4 by IT_PROGRAMMIST
в документе нет дублирующихся строк
#5 by IT_PROGRAMMIST
а можешь по подробней объяснить.Как свертку сделать?
#6 by YauheniL
я бы все-таки проверил. В противном случае, периодичность является измерением, и ты умудрился (в случае с периодичностью "по позиции регитсратора") создать документ с уже занятым GUID
#7 by YauheniL
Это просто, строишь запрос к таб. части с группировкой по полям измерения, передаешь результат в таблицу для проведения... Ну, или выгружаешь таб. часть в таблицу значений, затем используешь метод таблицы значений "Свернуть". Только важно, чтобы по измерениям регистра она проводилась (при возможности), без посторонних полей группировки, а то дубли могут получится
#8 by IT_PROGRAMMIST
Регистр подчинен регистратору с периодичностью "В пределах дня".Насчет по позиции регистратора" то я просто проверял,получится или нет
#9 by IT_PROGRAMMIST
я так понимаю сдесь свертка нужна, чтобы не было повторений в табличной части. У меня к примеру в одном документе 2(разные) записи, при проведении пишет туже ошибку.
#10 by YauheniL
Переподчини в "по позиции" и глянь, что идет в таблицу проведения по регистру. Там должно быть все видно. Если дублей нет, то запишется; если есть -- будет ясно откуда взялись
#11 by YauheniL
Да. Именно для этого. Хотя, при проведении, таблица проведения составляется особенным образом для каждого вида документа, поэтому надо глянуть в ту таблицу значений, которая идет в регистр, какие там значения
#12 by IT_PROGRAMMIST
в таблице пишет: Сотрудник Период   НомерСтроки  Дата Иванов    01.10.11  0           08.10.11 15:00:00 Петров    01.10.11  0           08.10.11 15:00:00
#13 by IT_PROGRAMMIST
из за номера строки?
#14 by YauheniL
А какая структура регистра?
#15 by YauheniL
Я думаю, в состояние рабтников идет физ. лицо, а они -- разные
#16 by IT_PROGRAMMIST
Структура регистра: измерения:ФизЛицо,ДатаРаботы,ресурс: состояние
#17 by YauheniL
Таблица при периодичности "В пределах дня"? Если да -- ищи документы с такими же строками. Если нет -- не понятно, физ лица разные, в пределах документа быть конфикта не должно
#18 by catena
Про дубли строк УПП вроде как сообщает. Про другие документы - сомневаюсь, если ошибка валится на разных людях. Хотя, могли и сделать что-нить массовое :) Что в регистре-то на эту дату? Ну и, если регистр в порядке, я бы смотрела, не срабатывает ли два раза проведение.
#19 by МимохожийОднако
Посмотри, кто во второй строке документа. Есть ли он в регистре до проведения документа. Есть ли он в табличной части документа еще. Измерение дата работы как дата или как ДатаВремя?
#20 by SeraFim
"Что в регистре-то на эту дату? " Быть может, одним документом ты отправил человека в отпуск а другим документом отмечаешь, что с этого же дня он болеет? Вот программа и не понимает, где сотрудник окажется - в отпуске или на больничном)
#21 by IT_PROGRAMMIST
согласен с , так и есть. Получается у меня есть больничный, с 18 по 20, система в регистре прописывает,что человек на больничном с 18 по 20, а с 21 автоматически выходит на работу. Потом отдел кадров делает еще один документ, в котором указывают,что данный человек с 21 по 22 в отпуске.А так как он у меня уже работает система и ругается.Как выйти из ситуации?????? Вот для наглядности обработка проведения док отсутствие на работе:
#22 by catena
Убрать строчку "работает" в больничном
#23 by andrewks
столкнулся примерно с таким же в ЗУП. помогло: сначала распровести документ, потом опять провести
#24 by IT_PROGRAMMIST
оно не даёт проводить с данной ошибкой
#25 by IT_PROGRAMMIST
какие ещё варианты есть?
#26 by catena
->
#27 by IT_PROGRAMMIST
у меня при больничном не добавляется автоматически "работает".
#28 by catena
У меня, правда, Табель самописный и он эти ситуации отрабатывает, в типовой надо будет проверить.
#29 by IT_PROGRAMMIST
всем спасибо за помошь!!!Все получилось
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С