Имя: Пароль:
1C
 
Что забыл при создании справочника
0 rt2000
 
16.03.15
14:38
Копирую справочник "договоры", пытаюсь его записать возникает ошибка: "реквизит код не заполнено".

КопДоговор = Выборка.Ссылка.ДоговорВзаиморасчетов.Скопировать();
                    
                    КопДоговор.Организация = Орган;
                    КопДоговор.подразделение = Выборка.Ссылка.ПодразделениеКомпании;
                //    КопДоговор.УстановитьНовыйКод();
                    КопДоговор.Записать();
                    ОбСсылка = Выборка.Ссылка.ПолучитьОбъект();


если добавить строку
КопДоговор.УстановитьНовыйКод();
то ошибка: "код не уникальный"
1 Бубка Гоп
 
16.03.15
14:43
а если сделать через Создать() и ЗаполнитьЗначенияСвойств(), а не через Скопировать() ?
2 Лефмихалыч
 
16.03.15
14:46
(0) код очисти перед записью - он генерится заново только, если пустой
3 hhhh
 
16.03.15
14:48
отладчком посмотри какой код. Похоже дошли до максимально возможного "999". Дальше коды заканчиваются.
4 Бубка Гоп
 
16.03.15
14:49
(2) а разве УстановитьНовыйКод() не должен генерировать новый код? хотя конечно неизвестно что там у тс с нумерацией
5 Лефмихалыч
 
16.03.15
14:52
(4) если он вызывается, то должен. А он платформой вызывается ТОЛЬКО, если перед записью нового код еще не заполнен
6 rt2000
 
16.03.15
14:53
Код "   "
СтрДлина(КопДоговор.код) 8 символов
Очищаю код
КопДоговор.Код= "", все равно 8 символов остается
Как код очистить?
7 kosts
 
16.03.15
14:54
(6) Это нормально
8 Мэс33
 
16.03.15
14:55
А договор не является подчиненным справочнику Контрагенты?
9 Лефмихалыч
 
16.03.15
14:55
(6) тебе знакомо понятие "фиксированная строка"?
10 rt2000
 
16.03.15
14:58
(9) имеешь ввиду, что в любом случае всегда будет одинаковая длина.
11 rt2000
 
16.03.15
14:59
(8) у договора владелец Контрагент. Насколько знаю во всех базах так.
12 Лефмихалыч
 
16.03.15
15:00
(10) как ты так быстро догадался?
13 rt2000
 
16.03.15
15:01
(12) наверное опыт работы в 1с.
Так что там с кодом, мысли есть еще?
14 Лефмихалыч
 
16.03.15
15:03
(13) ты чистишь код и при записи все равно он не уникален?
15 hhhh
 
16.03.15
15:04
(13) ну так
16 hhhh
 
16.03.15
15:04
КопДоговор.УстановитьНовыйКод();
Сообщить(КопДоговор.Код);
17 rt2000
 
16.03.15
15:05
эта строчка
КопДоговор.УстановитьНовыйКод();
она заполняет код, но код такой уже есть у другого справочника.
На данный момент код "ЦБ000212" задается, на записать с таким кодом не получается.
18 Лефмихалыч
 
16.03.15
15:05
(13) а почему опыт не подсказывает тебе, что пора уже в отладчике посмотреть, что происходит?
19 Лефмихалыч
 
16.03.15
15:06
(17) ты какие-то сказки рассказываешь.
а что будет, если КопДоговор.УстановитьНовыйКод("ЦБ")?
20 alex_shkut
 
16.03.15
15:16
Поищи на предмет "ручного" кода типа ЦБ0000211/а. Иногда после такого кодирования сбивается автогенератор. С платежками такое было. Пришлось через LIKE  и шаблон генерировать
21 bolobol
 
16.03.15
17:19
База файловая?