|
Ошибка при вызове метода контекста (Записать):Значение поля "Номер" не уникально | ☑ | ||
---|---|---|---|---|
0
sapravka
18.05.15
✎
22:44
|
Здравствуйте.
Если что не так, прошу сильно не ругать. Есть правила переноса из УТ 10.3 в БП 2.0 нескольких документов и вот при загрузке в БП 2.0 выходит ошибка: Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = ПоступлениеТоваровУслуг ТипОбъекта = Поступление товаров и услуг Объект = Поступление товаров и услуг ФЛ000000399 от 26.09.2014 0:00:02 Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Значение поля "Номер" не уникально ПозицияМодуля = (11) КодСообщения = 21 Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1630)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = ПоступлениеТоваровУслуг ТипОбъекта = Поступление товаров и услуг Объект = Поступление товаров и услуг ФЛ000000399 от 26.09.2014 0:00:02 Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Значение поля "Номер" не уникально ПозицияМодуля = (11) КодСообщения = 21 Окончание загрузки: 18.05.2015 22:13:02 и загрузка соответственно прекращается. В ПКО после загрузки прописано: Если НЕ Объект.Ссылка.ПометкаУдаления Тогда //если помечен на удаление, то ничего не делаем Если Объект.ЭтоНовый() Тогда //если новый документ, то сразу его проводим Попытка Объект.Записать(РежимЗаписиДокумента.Проведение); Сообщить("Документ реализации товаров и услуг № " + Объект.Номер + " от " + Объект.Дата + " УСПЕШНО ЗАГРУЖЕН И ПРОВЕДЕН"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Иначе Если объект.Проведен тогда //если объек проведен, то снимает проведение, что бы не было глюков Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения); Попытка Объект.Записать(РежимЗаписиДокумента.Проведение); Сообщить("Документ реализации товаров и услуг № " + Объект.Номер + " от " + Объект.Дата + " УСПЕШНО ЗАГРУЖЕН И ПРОВЕДЕН"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Иначе Попытка Объект.Записать(РежимЗаписиДокумента.Проведение); Сообщить("Документ реализации товаров и услуг № " + Объект.Номер + " от " + Объект.Дата + " УСПЕШНО ЗАГРУЖЕН И ПРОВЕДЕН"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЕсли; Иначе Сообщить("Проведение документа реализации товаров и услуг № " + Объект.Номер + " от " + Объект.Дата + " НЕВОЗМОЖНО, так как он помечен на удаление"); КонецЕсли; Убедительно прошу, подскажите, как реализовать в КД, что бы при загрузке если номер и дата совпадает документ замещался (перезаписывался) данными из базы источника? |
|||
1
Nikart
18.05.15
✎
23:06
|
Поставить поиск не по внутреннему идентификатору, а сначала по дате и номеру
|
|||
2
sapravka
18.05.15
✎
23:11
|
(1) Хоть убрал, хоть поставил все равно ошибка осталась:
http://s020.radikal.ru/i710/1505/af/cac36d028939.jpg |
|||
3
RomanYS
18.05.15
✎
23:15
|
(2) а поля поиска настроены?
|
|||
4
Nikart
18.05.15
✎
23:16
|
Скорее всего время разное у документов или даже дата. Вообще уникальный должен быть номер обычно в пределах года.
У тебя секунда в секунду совпадает? |
|||
5
sapravka
18.05.15
✎
23:23
|
(4) Номер есть в этом году, но он совсем с другой датой
|
|||
6
Nikart
18.05.15
✎
23:27
|
Навскидку не придумаю сейчас без КД перед глазами как сделать. Попробуй выделить тогда год,указать его параметром для поиска и номер.
|
|||
7
sapravka
18.05.15
✎
23:33
|
(6) А немного можно поподробнее, пожалуйста...
|
|||
8
Nikart
18.05.15
✎
23:38
|
Сс телефона пишу)
|
|||
9
RomanYS
18.05.15
✎
23:42
|
имхо без кода такое не сделаешь, там обработчик должен быть у ПКО по полям поиска - посмотри его описание, может поможет
|
|||
10
sapravka
19.05.15
✎
00:43
|
(9) Что то пока ничего не получается...
А можно пример в студию? |
|||
11
vicof
19.05.15
✎
00:54
|
Очень интересно, как получилось так, что в разных базах разные документы за разные даты с одним номером.
|
|||
12
sapravka
19.05.15
✎
07:41
|
(11) Так базы разные:
1. Источник - УТ 10.3 2. Приемник - БП 2.0 Вот как то так.... Подскажите пожалуйста, а лучше дайте пример кода: Как проверить при загрузке в загружаемом годе на уникальность номера и в случаи нахождения двойников - что бы делал код уникальным - например находил последний номер за этот год и прибавлял к нему 1. |
|||
13
Фрэнки
19.05.15
✎
07:57
|
(12) А если в базе приемнике просто перенумеровать уже существующие документы? Зачем при переносе данных по КД менять назначенные в источнике номера? Я бы понял если бы меняли префиксы или доля документов из источника или для документов в приемнике.
А код написать... код можно не успеть быстро придумать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |