Значение поля "Номер" не уникально #766752


#0 by windows98a
Здравствуйте. Извините, сначала много букв, потому что все равно будут вопросы. УТ 10.3, немного дописанная. Есть холдинг из n организаций. Есть универсальный документ продажи, куда кассир долбит товары, не заморачиваясь, какой организации он принадлежит - все в один док. Этот универсальный документ, в зависимости от установленной галочки может принимать вид чек, реализация, возврат. В конце дня обработка преобразует эти универсальные кассовые документы в стандартные документы УТ 10.3 "отчеты ккм", "реализации товаров услуг", "возвраты от покупателя",  фасуя их по нужным организациям. Проблема в том, что реализацию клиенту уже нужно отдать с номером, а поскольку документ "реализация товаров и услуг" будет создан только вечером, программа по определенному алгоритму формирует и запоминает их номера в универсальном кассовом документе. Номера реализации формируются по принципу: префикс подразделения + "к" + номер кассового документа + "n" n - счетчик доков "реализация товаров услуг", которые содержит в себе один конкретный кассовый документ(соответсвует количеству различных организаций, присутствующих в кассовом документе). Эта схема работает уже 4 года без проблем, но вот настал день.. При преобразовании кассового документа в одну из "реализаций товаров услуг" выдается ошибка Значение  поля "Номер" не уникально. Отладчик с условием по этому номеру перед записью документа останавливается только один раз. Документа за период с таким номером в базе нет. Обновление нумерации не помогает. Попытка ДокументОбъект.Записать; Исключение Сообщить("Пытаюсь записать реализацию с номером " + Строка(ДокументОбъект.Номер));
#1 by Cyberhawk
"Документа за период с таким номером в базе нет" // Я тебе не верю, убеди меня
#2 by Записьдампа
Написано же: =)
#3 by windows98a
Хрень какая то... вот такой код: Исключение Сообщить("Пытаюсь записать реализацию с номером " + Строка(ДокументОбъект.Номер)); Выдает вот что: МКк00050491 02.03.2016 14:33:58 ТЦк00142711 02.03.2016 21:55:24 Реализация товаров и услуг ТЦк00142711 от 02.03.2016 17:40:48 Пытаюсь записать реализацию с номером ТЦк00142711 {Форма.Форма.Форма(1020)}: Ошибка при вызове метода контекста (Записать): Значение "ТЦк00142711" поля "Номер" не уникально
#4 by Ma3eIIa
так у тебя разная длина номера. приведи в одну длину
#5 by mistеr
Может ТИИ для начала?
#6 by Serg_1960
Не принципиально. Если номер формируется вручную, а не автонумерацией - не принципиально.
#7 by windows98a
МКк00050491 02.03.2016 14:33:58 ! ТЦк00142711 02.03.2016 21:55:24 ! {Форма.Форма.Форма(1054)}: Ошибка при вызове метода контекста (Записать): Значение "ТЦк00142711" поля "Номер" не уникально Создание документов прервано!
#8 by Serg_1960
Перед записью найди документ с номером нового и сообщи. А также сообщи номер нового документа, но после неудачной попытки записи. Будет весело - гарантирую :)
#9 by Serg_1960
Упс невидел
#10 by DJ Anthon
может, нумератор какой есть на несколько видов документов?
#11 by aleks_default
А че непонятного, вот же написано что уже есть документ с таким номером: Реализация товаров и услуг ТЦк00142711 от 02.03.2016 17:40:48
#12 by windows98a
вроде все подежания учел Сообщить(ДокументОбъект.Номер); Исключение Сообщить("Пытаюсь записать реализацию с номером " + Строка(ДокументОбъект.Номер)); ТЦк00142711 02.03.2016 21:55:24 !Не найден! Номер перед записью ТЦк00142711 {Форма.Форма.Форма(1055)}: Ошибка при вызове метода контекста (Записать): Значение "ТЦк00142711" поля "Номер" не уникально Создание документов прервано!
#13 by Serg_1960
(предположение) Ты, наверно, уже не первый раз запускаешь обработку, вылизывая алгоритм,... на тех-же исходных данных.
#14 by windows98a
ну колечно, я вот в 100 раз пытаюсь "свернуть" эту реализацию. Это имеет значение? Не пойму почему в исключении не отрабатывает строка Сообщить("Пытаюсь записать реализацию с номером " + Строка(ДокументОбъект.Номер));
#15 by Cyberhawk
Думаю, при записи документа где-то вызывается код по записи этого же вида документа с этим же номером
#16 by Serg_1960
"Не пойму почему в исключении не отрабатывает строка" - отрабатывает, судя по твоим постам - см. - перед текстом ошибки, строка "Пытаюсь записать...". Может напомнить автору что уникальность номера не только по периоду, но и по организации? Как вы думаете? :)
#17 by windows98a
в строчка есть, а в уже нет...
#18 by Cyberhawk
Это ж платформенное сообщение вроде у него, а не прикладным кодом выдаваемое, так что про организацию вряд ли
#19 by aleks_default
а у докмента-то периодичность нумерации вообще включена?
#20 by Cyberhawk
Или периодичность месяц, например, и документ в феврале есть такой
#21 by Cyberhawk
Хотя в этом случае ругаться не должен, отбой
#22 by windows98a
периодичность год, но я в найтипономеру указываю дату, так что в периоде нет
#23 by Serg_1960
По поводу "а в 12 уже нет": не исключаю варианты что а) автор изменил обработку, но не сохранил; б) платформа взяла "из кэша" обработку (предыдущий вариант запустила)
#24 by Serg_1960
(пальцем в небо, ибо мыслей уже нет) В алгоритм указан создания номера, в частности "Номера реализации формируются по принципу: префикс подразделения +..." - ты уверен в уникальности префикса подразделения?
#25 by Serg_1960
Ага, появилась мысль: покажи не только номер и дату, но и тип нового документа. Фиг его знает, может поиск номера по одному типу, а новый документ совсем другого... Всё, опять нет мыслей :)
#26 by windows98a
короче ошибка вылетала при записи приходника, который делался на основании этой реализации. номер у приходника такой же, поэтому произошла путаница. поэтому же не попадало в исключение. больно не пинайте, каюсь, большое Вам всем спасибо
#27 by windows98a
вчера падало на реализации, но теперь это уже не важно, исследование невозможно
#28 by Cyberhawk
Ну т.е. оказался ближе всего :)
#29 by DJ Anthon
да? ;)
#30 by Cyberhawk
С вызовом прикладного кода угадал, но ошибся насчет "этого же вида"
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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