Имя: Пароль:
1C
1С v8
работа c DBF файлом
0 sovsemnovichek
 
17.07.13
10:23
нужно сделать поле "Код" уникальным и по наименованию найти номенклатуру и присвоить ей код
Вот код
Процедура КнопкаВыполнитьНажатие(Кнопка)
Файл = Новый XBASE;
Файл.ОткрытьФайл("D:\Base\SprVino.dbf");
Если Файл.Открыта() Тогда
   Сообщить("Работает");
Файл.Первая();


Пока НЕ Файл.ВКонце() Цикл
   Номер = Файл.CODE;
   Номенклатура = Файл.NAME;
   ШтрихКод = Файл.SCODE;
   Файл.Следующая();
   
ТекНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура);
Сообщить(ТекНоменклатура);
ТекНоменклатураОбъект = ТекНоменклатура.ПолучитьОбъект();
ТекНоменклатураОбъект.Код = Номер;//"Мой номер";
ТекНоменклатураОбъект.Записать();
КонецЦикла;

КонецЕсли;
Файл.ЗакрытьФайл();
   
   
КонецПроцедуры
1 SherifSP
 
17.07.13
10:24
(0) 1000 рублей)
2 Wobland
 
17.07.13
10:26
(0) благословляю
3 sovsemnovichek
 
17.07.13
10:27
а вы само благородство, я думал на форуме помогают, а не деньги трясут
4 Wobland
 
17.07.13
10:27
(3) иногда помогают, да. а иногда новости рассказывают
5 sovsemnovichek
 
17.07.13
10:29
Так вот мне нужна помощь) ибо наслышан об этом форуме, говорят только положительные вещи, пришел просить помощи, я новичок
6 Wobland
 
17.07.13
10:29
(5) да ты спрашивай, не стесняйся
8 sovsemnovichek
 
17.07.13
10:30
так проблема сверху написана, первым сообщением =)
9 SherifSP
 
17.07.13
10:31
(0) Здесь только на внятные вопросы могут дать ответ
10 sovsemnovichek
 
17.07.13
10:31
там даже код есть, прошу подсказать че делать то мне
11 SherifSP
 
17.07.13
10:31
+(9) Нам код не нужен, вопрос внятно напиши
12 sovsemnovichek
 
17.07.13
10:32
Процедура КнопкаВыполнитьНажатие(Кнопка)
Файл = Новый XBASE;
Файл.ОткрытьФайл("D:\Base\SprVino.dbf");
Если Файл.Открыта() Тогда
   Сообщить("Работает");
Файл.Первая();


Пока НЕ Файл.ВКонце() Цикл
   Номер = Файл.CODE;
   Номенклатура = Файл.NAME;
   ШтрихКод = Файл.SCODE;
   Файл.Следующая();
   
ТекНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура);
Сообщить(ТекНоменклатура);
ТекНоменклатураОбъект = ТекНоменклатура.ПолучитьОбъект();
ТекНоменклатураОбъект.Код = Номер;//"Мой номер";
ТекНоменклатураОбъект.Записать();
КонецЦикла;

КонецЕсли;
Файл.ЗакрытьФайл();
   
   
КонецПроцедуры

он орет, что поле "Код" не уникально. Как это исправить?
13 Wobland
 
17.07.13
10:32
(8) проблема понята: надо, а не выходит
(10) пишите, Шура, пишите
14 EvgeniuXP
 
17.07.13
10:32
(17) а если две номенклатуры с одним наименованием, какой код присвоишь?
15 Wobland
 
17.07.13
10:33
(12) присваивать уникальный код, разумеется
16 SherifSP
 
17.07.13
10:34
(12) Сделать проверку, если код уже существует, присваиваешь другой код)
17 sovsemnovichek
 
17.07.13
10:34
дак как сделать код уникальным? может каждому коду присвоить префикс?
18 Wobland
 
17.07.13
10:35
(17) предварительно поищи такой и подумай, что делать, если есть
19 EvgeniuXP
 
17.07.13
10:35
ищешь, в существующем поле "Код", если нет то присваивай, если есть, то формируй другой код.
20 SherifSP
 
17.07.13
10:35
+(16) Тот же код который не уникальный, только с префиксом, потом по префиксу отборы сделаешь и вручную переприсвоишь код на уникальный
21 EvgeniuXP
 
17.07.13
10:37
да добавь реквизит новый, пронумеруй от 1 до количества номенклатур. Почисти код, перенеси из реквизита в код. Потом зайди в справочник и поставь галку "Уникальный код".
22 Kreont
 
17.07.13
10:37
Открой сначала свою ДБФ и там порядок наведи. Даже простым екселем сделай сверную таблицу и будут только уник.коды.
А толку гнать кривые даные в 1с?
23 SherifSP
 
17.07.13
10:41
(22) Пусть учится делать сразу универсальную обработку)
24 sovsemnovichek
 
17.07.13
10:43
Спасибо за помощь)
25 EvgeniuXP
 
17.07.13
10:51
(23) повесится :)