Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
23 Май 2017, 23:34
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Не уникальный  (Прочитано 1545 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ermak1985

  • **
  • Сообщений: 61
  • РЕПУТАЦИЯ: -6
  • Регистрация: 2016-02-01
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день! С толкнулся с такой глупой ошибкой
{Форма.Форма.Форма(120)}: Ошибка при вызове метода контекста (Записать)
         НовЭл.Записать();
по причине:
Значение "101000014" поля "Код" не уникально

 и не могу понять почему?

ИмяФайлаДанных="\\Ftp\ftp\ExportWindows\export.dbf";
ФайлДБФ = Новый XBASE;
ФайлДБФ.Кодировка = КодировкаXBase.OEM;
ФайлДБФ.ОткрытьФайл(ИмяФайлаДанных);
ФайлДБФ.Первая();
Номер=0;
ТЗ=Новый ТаблицаЗначений;
Запрос = Новый Запрос("ВЫБРАТЬ
| ЛицевыеСчетаАбонентовГРО.Код,
| ЛицевыеСчетаАбонентовГРО.Наименование,
| ЛицевыеСчетаАбонентовГРО.ФИО,
| ЛицевыеСчетаАбонентовГРО.Телефон,
| ЛицевыеСчетаАбонентовГРО.КороткийАдрес,
| ЛицевыеСчетаАбонентовГРО.Персонал,
| ЛицевыеСчетаАбонентовГРО.Участок,
| ЛицевыеСчетаАбонентовГРО.Оборудование.(
| Ссылка,
| НомерСтроки,
| Тип,
| Модель,
| Дата
| ),
| ЛицевыеСчетаАбонентовГРО.Долги.(
| Ссылка,
| НомерСтроки,
| Услуга,
| СуммаОстаток
| ),
| ЛицевыеСчетаАбонентовГРО.Ссылка
|ИЗ
| Справочник.ЛицевыеСчетаАбонентовГРО КАК ЛицевыеСчетаАбонентовГРО");
ТЗ = Запрос.Выполнить().Выгрузить();

Пока НЕ ФайлДБФ.ВКонце() Цикл
Номер=Номер+1;
ЛС = ФайлДБФ.ПолучитьЗначениеПоля("LSHET");
Если ТЗ.Найти(ЛС,"Код")=Неопределено Тогда
НовЭл = Справочники.ЛицевыеСчетаАбонентовГРО.СоздатьЭлемент();
НовЭл.Код=ЛС;
НовЭл.Записать();
КонецЕсли;
ФайлДБФ.Следующая();
КонецЦикла;
ФайлДБФ.ЗакрытьФайл();


Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: Не уникальный
« Ответ #1: 24 Фев 2016, 16:50 »
наверное такой элемент с таким кодом уже есть в базе
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Kironten

  • *****
  • Сообщений: 793
  • РЕПУТАЦИЯ: 169
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Re: Не уникальный
« Ответ #2: 24 Фев 2016, 16:55 »
Проверь длины кодов в справочнике базы и в дбф-е.
Возможно при попытке записи код обрезается, и из-за этого становится не уникальным

Оффлайн Ermak1985

  • **
  • Сообщений: 61
  • РЕПУТАЦИЯ: -6
  • Регистрация: 2016-02-01
  • Сайт: 
  • Профессия: Ученик 1С
Re: Не уникальный
« Ответ #3: 24 Фев 2016, 16:55 »
наверное такой элемент с таким кодом уже есть в базе
да он есть но у меня же условие стоит
Если ТЗ.Найти(ЛС,"Код")=Неопределено Тогда
, если он уже есть значит мы не создаем, почему он создает?
Добавлено: 24 Фев 2016, 16:57

А влияет если у них разный тип? Я переводил в один тип
...
Для Каждого СтрТЗ из ТЗ Цикл
КодЛС=Формат(СтрТЗ.Код,"ЧГ=0");
Если КодЛС<>ЛС Тогда
...
и все равно он выводил ошибку. В отладчике проверял не обрезает

Оффлайн Kironten

  • *****
  • Сообщений: 793
  • РЕПУТАЦИЯ: 169
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Re: Не уникальный
« Ответ #4: 24 Фев 2016, 17:16 »
А влияет если у них разный тип? Я переводил в один тип
Должно влиять.
Обычно Код в базе это строковое значение.
Поэтому переводите значение из иксбейз в тип кода в базе, и уже так ищите.
Причем если в базе код - строка, то заодно и через СокрЛП прогоните и там и там, и уже потом ищите.

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: Не уникальный
« Ответ #5: 24 Фев 2016, 17:18 »
СтрЗаменить(СокрЛП(ЛС),Символы.НПП,"")
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Ermak1985

  • **
  • Сообщений: 61
  • РЕПУТАЦИЯ: -6
  • Регистрация: 2016-02-01
  • Сайт: 
  • Профессия: Ученик 1С
Re: Не уникальный
« Ответ #6: 24 Фев 2016, 17:21 »
СтрЗаменить(СокрЛП(ЛС),Символы.НПП,"")
все равно выводит ошибку, что еще может быть не так?
		КодЛС=СтрЗаменить(СокрЛП(ЛС),Символы.НПП,"");
Если ТЗ.Найти(КодЛС,"Код")=Неопределено Тогда

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: Не уникальный
« Ответ #7: 24 Фев 2016, 17:25 »
может типы разные?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Ermak1985

  • **
  • Сообщений: 61
  • РЕПУТАЦИЯ: -6
  • Регистрация: 2016-02-01
  • Сайт: 
  • Профессия: Ученик 1С
Re: Не уникальный
« Ответ #8: 24 Фев 2016, 17:26 »
В отладчике посмотрел Тип Строка и без пробелов, почему тогда условие не работает?

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: Не уникальный
« Ответ #9: 24 Фев 2016, 17:28 »
а тип кода в табличке?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
96 Сообщений
Dethmontt Dethmontt
71 Сообщений
alex0402
69 Сообщений
MuI_I_Ika MuI_I_Ika
61 Сообщений
wise wise
50 Сообщений
Сергей Федоров Сергей Федоров
41 Сообщений
ilyay ilyay
39 Сообщений
BuhRust
22 Сообщений
ilnur75
21 Сообщений
videomause
20 Сообщений

* Кто онлайн

  • Точка Гостей: 310
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal