Реквизит "Наименование", справочник "Контрагенты"

Новая тема
"почему 1С программно не даёт менять реквизит "Наименование" (не путать с "ПолнНаименование", т.е. в структуре этого справочника грубо говоря 3 поля: Код, Наименование, Полное наименование) хотя при редактировании этого реквизита из самой 1С проблем нет???



Контр=СоздатьОбъект("Справочник.Контрагенты");

...



Контр.Наименование=""""; // для примера присваиваем пустую строку



говорит — "Изменено наименование! Может быть нарушена целостность выборки!"







Для чего ВСЁ это нужно: пишу обработку чтобы исправить всех контрагентов у которых в поле "наименование" есть ЗАО, ООО, ОАО и т.д. + прочие "левые" символы типа кавычек, пробелов и т.д. на тоже самое, но без этого "лишнего"... потому что, как правило, поиск происходит по этому реквизиту... а тупые бухгалтера заводят новых контрагентов как попало и сами же не могут найти потом то, что ввели 15 минут назад :-("
"Потому, что изменение наименование контрагента происходит при выборке элементов, т. е. ВыбратьЭлементы() и поэтому при сохранении нового наименования контрагента нужно поставить опять комманду ВыбратьЭлементы(). Пример:



ВыбратьЭлементы();

Пока ПолучитьЭлемент() = 1 Цикл

Наименование = """";

Записать();

ВыбратьЭлементы();

КонецЦикла;"
"Глупости! Ошибка возникает как раз в том месте, где идёт присвоение нового значения!!!



В Вашем примере как раз



   Наименование="""";



и была бы ошибка :-)





т.е. даже не доходит до следующих операторов...





P. S. И использование ВыбратьЭлементы() внутри цикла ИМХО приведёт к зависанию обработки и всего 1С."
Короче всё намного проще...

Нужно перед ВыбратьЭлементы() поставить ПорядокКодов() чтобы выборка шла по кодам, а не по наименованию!
Читают тему
(гостей: 1)

Быстрый переход