Имя: Пароль:
1C
1С v8
Ошибка кода при программном создании элемента справочника
, ,
0 Дух1984
 
09.12.16
15:31
При программном создании элемента справочника 1С в момент записи присваивает элементу существующий код. Соответственно все вываливается в ошибку "Код не уникален". Автонумерация включена, уникальность кодов во всем справочнике, справочник не иерархический. Ручного ввода элементов нет. Запись элементов происходит в результате работы регламентного задания. Регламентное задание в системе единственное, элементы пишутся последовательно. База SQL.
1 Дух1984
 
09.12.16
15:34
Тестирование базы делал, не помогло
2 KishMish
 
09.12.16
15:34
(0) возможно исползуьзвется ЗаполнитьЗначенияСвойств и происходит заполнение Кода
3 Дух1984
 
09.12.16
15:35
Нет. Все поля прописаны вручную.
4 Дух1984
 
09.12.16
15:35
Новая_EDI_РН = Справочники.EDI_РН.СоздатьЭлемент();
                                Новая_EDI_РН.ДатаФормирования = ТекущаяДата();
                                Новая_EDI_РН.KEY = КлючЗагрузки;
                                Новая_EDI_РН.НомерДокумента1С = НомерРН;
                                Новая_EDI_РН.ДатаДокумента1С = ДатаРН;
                                Новая_EDI_РН.Заявка_EDI = Найденный_EDI_Заказ;
                                Новая_EDI_РН.Представительство = Найденный_EDI_Заказ.Представительство;
                                Новая_EDI_РН.Записать();
5 lucbak
 
09.12.16
15:36
Видимо тип кода "строка" длиной 2,3 смивола
6 Дух1984
 
09.12.16
15:36
Тип кода: Число, длина 38
7 dka80
 
09.12.16
15:37
1. Возможно все-таки номер руками изменили
2. Перенумеруй элементы групповой обработкой
3. Возможно есть подписка при установке номера
4. Возможно в результате обмена данными пришли элементы из другой базы с одинаковыми номерами
8 mehfk
 
09.12.16
15:37
(0) Пригласите программиста.
9 lucbak
 
09.12.16
15:38
(6) тогда смотри, что происходит в модуле объекта (перед\при записи)
10 FIXXXL
 
09.12.16
15:38
(0) ОбновитьНумерациюОбъектов() попробуй
11 Дух1984
 
09.12.16
15:39
(9) Там нет процедур
12 Дух1984
 
09.12.16
15:41
(7)
1: Исключено, база промежуточная. Я - админ, единственный пользователь.
2: Уже
3: Нет подписок. Базу писал сам, так что уверен :)
4: Обменов нет. Система закачивает данные из одних файлов и формирует другие. Это все, чем она занимается.
13 lucbak
 
09.12.16
15:42
какой код пытается записать?
зачем длина 38? (просто интересно)
14 Дух1984
 
09.12.16
15:45
(13) уже существующие: в результате последовательных попыток: 544,545, 546, 547 и т.д.

Длина нужна для хранения огромного количества элементов :)
15 lucbak
 
09.12.16
15:49
(14) Серии кодов "Во всем справочнике" ? автонумерация?
16 Дух1984
 
09.12.16
15:49
(15) см (0)
17 lucbak
 
09.12.16
15:51
(16) почему то на ум приходит только одно выражение "чудес не бывает" :)
18 Мимохожий Однако
 
09.12.16
15:54
Записывай приходящий код в реквизит справочника, а код элемента оставь в покое. Хотя бы на время загрузки. Потом из вспомогательного кода попробуешь записать в код. Хотя не понятно зачем.
19 Дух1984
 
09.12.16
16:16
Помогло ОбновитьНумерациюОбъектов(). Спасибо, FIXXXL!!!
20 shpioleg
 
09.12.16
16:27
(6) Длина 38.
>Длина нужна для хранения огромного количества элементов :)

Вот это ты отжигаешь. Пишешь конфу по учету атомов во вселенной? :)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой