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

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

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

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день!
Делаю обработку,корректировка номенклатуры ,вылетает ошибка
{Форма.Форма.Форма(597)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
ИзменитьРеквизиты(МассивРеквизитов, ДобавленныеРеквизиты.ВыгрузитьЗначения());
по причине:
Неуникальное имя реквизита. Имя: "ДрагоценныеМатериалы"

Вот кусок обработки:

//Доп реквизиты
    Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                | ДополнительныеРеквизитыИСведения.Наименование КАК Наименование,
                | ДополнительныеРеквизитыИСведения.Ссылка,
| ДополнительныеРеквизитыИСведения.ТипЗначения
|ИЗ
                | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
                |ГДЕ
                | ДополнительныеРеквизитыИСведения.НаборСвойств = &НаборСвойств";
Запрос.УстановитьПараметр("НаборСвойств",Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
пИмяКолонки = ЗаменитьНедопустимыеСимволыВИмениФайла(ВыборкаДетальныеЗаписи.Наименование,"");
//пИмяКолонки = СтрЗаменить(ВыборкаДетальныеЗаписи.Наименование, " ", "");
РеквизитФормы = Новый РеквизитФормы(пИмяКолонки,ВыборкаДетальныеЗаписи.ТипЗначения, ТаблицаЭлемент.Имя, ВыборкаДетальныеЗаписи.Наименование);
Если МассивИменРеквизитов.Найти(пИмяКолонки) = Неопределено Тогда
МассивРеквизитов.Добавить(РеквизитФормы);
МассивИменРеквизитов.Добавить(Колонка.Имя);
КонецЕсли;
КонецЦикла;
//Доп реквизиты
ИзменитьРеквизиты(МассивРеквизитов, ДобавленныеРеквизиты.ВыгрузитьЗначения());
ДобавленныеРеквизиты.Очистить();

Это возникает когда начинаю добавлять отбор по группе,если без отбора то список товаров появляется нормально.


Оффлайн Rasty

  • *****
  • Сообщений: 988
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
а по моему все логично, такое имя реквизита уже есть/уже добавлено, задайте другое имя
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
а по моему все логично, такое имя реквизита уже есть/уже добавлено, задайте другое имя
А как поправить? подскажите не допетриваю что то ...
Как то надо очищать предыдущий отбор ?

Оффлайн Rasty

  • *****
  • Сообщений: 988
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
перед тем как вы создаете реквизиты, посмотрите в отладчике какие реквизиты у вас есть, а чтоб вообще не мучиться, давайте им именна Имя +"1", тогда точно не будет таких проблем
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
И точно,проверил,если сразу делать отбор на пустом списке,тогда все работает,а если потом менять отбор на другой,то выдает такую ошибку,надо очищать форму перед новым отбором,только как не понимаю..

Вот что дальше в коде:
//добавляем элементы управления
Для Каждого Реквизит Из МассивРеквизитов Цикл

Если Реквизит.ТипЗначения.СодержитТип(Тип("ТаблицаЗначений")) Тогда
Продолжить;
КонецЕсли;

Если Реквизит.Имя = "ДополнительныеРеквизиты" Тогда

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

//заполнение данными
РедТЗ = РеквизитФормыВЗначение(ТаблицаЭлемент.Имя);
РедТЗ.Очистить();
Для Каждого Стр ИЗ ТЗ Цикл
НовСтр = РедТЗ.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, Стр);
НовСтр.ЗаменитьНа = Справочники.Номенклатура.ПустаяСсылка();

НовСтр.Выбрать = Истина;

Если ОбъектПоиска = Неопределено Тогда
Продолжить;
КонецЕсли;

Если ОбъектПоиска.Тип = "Справочник" Тогда
Если Стр.Объект.ЭтоГруппа Тогда
Если Стр.Объект.ПометкаУдаления Тогда
НовСтр.Картинка = БиблиотекаКартинок.Папка;
Иначе
НовСтр.Картинка = БиблиотекаКартинок.Папка;
КонецЕсли;
Иначе
Если Стр.Объект.ПометкаУдаления Тогда   
НовСтр.Картинка = БиблиотекаКартинок.ПометитьНаУдаление;
Иначе
НовСтр.Картинка = БиблиотекаКартинок.ПустаяКартинка;
КонецЕсли;
КонецЕсли;
Иначе
Если Стр.Объект.Проведен Тогда
НовСтр.Картинка = 7;
ИначеЕсли Стр.Объект.ПометкаУдаления Тогда
НовСтр.Картинка = 8;
Иначе
НовСтр.Картинка = 6;
КонецЕсли;
КонецЕсли;
КонецЦикла;

ЗначениеВРеквизитФормы(РедТЗ, ТаблицаЭлемент.Имя);

Оффлайн Rasty

  • *****
  • Сообщений: 988
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
сохраните куда нибудь имена созданных вами реквизитов, а перед заполнением удалите их
ну или вставьте в имя какой нибудь определитель чтобы все имена реквизитов, которые вы создали, вы смогли отличить.
я добавляю в имена реквизитов строку перед ним "мрк" + Имя, а потом перебором ищу их Если СтрНайти(ИмяРеквизита,"мрк") > 0 Тогда
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)


Теги:
 

как получить значение реквизита "Код" в обработке "ПодборНоменклатуры" в УТ10.3

Автор JalibРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1074
Последний ответ 02 Дек 2016, 12:58
от Jalib
Заполнение табличной части при выборе реквизита другой табличной части в документе.

Автор Vlad-93Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 310
Последний ответ 25 Окт 2017, 14:15
от Vlad-93
КД, Перенос Реквизита справочника (7.7) в ТЧ справочника 8.2.

Автор EvgenyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3650
Последний ответ 17 Сен 2014, 13:39
от Kironten
получаю значение реквизита формы, дает значение 0

Автор mikel10Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3403
Последний ответ 12 Июл 2013, 15:35
от mikel10
Автоматическое заполнение реквизита "Наименование"

Автор AlieramadaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3357
Последний ответ 23 Фев 2014, 10:17
от sadovod

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
168 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal