У меня вопрос, может быть кто сталкивался, в базе абсолютная вся номенклатура создается программно, и при записи номер просто не задается:
В один прекрасный день вылезает ошибка "Значение "00-000003456" поля Код не уникален", хотя запрет на изменения стоит у всех, кроме Админа, и ручками никто не лазает там, проверил по журналу регистрации, а номенклатура пронумерована нормально - "00-000003456" - естественно занят. А последний номер "00-00007456". Следовательно, номенклатура должна была присвоить номер "00-00007457", но стучится все равно в 00-000003456, при этом когда появляться ошибка, при попытке очередной записи, номер увеличивается каждый раз +1: 00-000003457, 00-000003458 и т.д, но они все заняты, и из предприятия в тестовой базе такая же картина при попытке записи - ошибка и предупреждение каждый раз номер +1. Стандартная обработка Универсальный подбор и обработка объектов 1С 8.3.epf не помогает. Справился только рекурсией с "насильной" записью(код ниже), номер очищался и снова пускал в запись пока в итоге не записался объект номенклатуры, кто-нибудь сталкивался с такой проблемой?
Хоть и вопрос решен нужна профилактика, чтобы подобных ситуаций не повторялось т.к. загрузка просто встает.
P.S. хоть и можно закинуть этот код в попытку при записи, все же хотелось бы узнать причины такого поведения...
НоменклатураОбъект.Записать()
В один прекрасный день вылезает ошибка "Значение "00-000003456" поля Код не уникален", хотя запрет на изменения стоит у всех, кроме Админа, и ручками никто не лазает там, проверил по журналу регистрации, а номенклатура пронумерована нормально - "00-000003456" - естественно занят. А последний номер "00-00007456". Следовательно, номенклатура должна была присвоить номер "00-00007457", но стучится все равно в 00-000003456, при этом когда появляться ошибка, при попытке очередной записи, номер увеличивается каждый раз +1: 00-000003457, 00-000003458 и т.д, но они все заняты, и из предприятия в тестовой базе такая же картина при попытке записи - ошибка и предупреждение каждый раз номер +1. Стандартная обработка Универсальный подбор и обработка объектов 1С 8.3.epf не помогает. Справился только рекурсией с "насильной" записью(код ниже), номер очищался и снова пускал в запись пока в итоге не записался объект номенклатуры, кто-нибудь сталкивался с такой проблемой?
Хоть и вопрос решен нужна профилактика, чтобы подобных ситуаций не повторялось т.к. загрузка просто встает.
P.S. хоть и можно закинуть этот код в попытку при записи, все же хотелось бы узнать причины такого поведения...
&НаСервере
Процедура ПопыткаЗаписатьОбъект(Номенклатура)
Если НЕ ЗаписатьНоменклатуру(Номенклатура) Тогда
Номенклатура.КодДляПоиска = "";
Номенклатура.Код = "";
ПопыткаЗаписатьОбъект(Номенклатура);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЗаписатьНоменклатуру(Номенклатура)
Попытка
Номенклатура.Записать();
Возврат Истина;
Исключение
Возврат Ложь;
КонецПопытки;
КонецФункции
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ОбновитьНумерациюОбъектов (RefreshObjectsNumbering)
Выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но незаписанные номера, становятся невалидными т.к. не гарантируется их уникальность. Данный метод разрешено вызывать только администратору системы
Выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но незаписанные номера, становятся невалидными т.к. не гарантируется их уникальность. Данный метод разрешено вызывать только администратору системы
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот