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

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

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

  • *****
  • Сообщений: 809
  • РЕПУТАЦИЯ: 171
  • КПД: 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

  • *****
  • Сообщений: 809
  • РЕПУТАЦИЯ: 171
  • КПД: 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 »
а тип кода в табличке?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

oleg-x
122 Сообщений
alex0402
106 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
ilyay ilyay
50 Сообщений
Golickoff Golickoff
49 Сообщений
AIFrame
48 Сообщений
ab30ru
38 Сообщений
wise wise
36 Сообщений
Амал
32 Сообщений
Dethmontt Dethmontt
25 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal