Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:13

Неуникальное имя реквизита

Автор kim1graff, 30 окт 2018, 00:49

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

kim1graff

Работаю над обработкой, которая создает таблицу умножения. Количество строк и столбцов определяется пользователем. После этого таблица автоматически заполняется.
а вот когда меняю количество столбцов или строк, программа выдает ошибку

Цитировать{Обработка.ОБР1.Форма.Форма.Форма(36)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
   ИзменитьРеквизиты(МассивРеквизитов);
по причине:
Неуникальное имя реквизита. Имя: "Колонка1"

как это можно починить?
Код:

&НаКлиенте
Процедура Команда(ФормированиеТаблицыУмножения)

СерверныйВызовЗаполненияТаблицы();

КонецПроцедуры

&НаСервере
Процедура СерверныйВызовЗаполненияТаблицы()  экспорт
ТаблицаЗначений = Новый ТаблицаЗначений;
//1. Мы получаем 2 числа

//2. Добавить количество колонок в соответствии с числом А
Для ъ = 1 по КоличествоКолонок  Цикл
ТаблицаЗначений.Колонки.Добавить("Колонка"+ъ,,"Колонка"+ъ);
КонецЦикла;

//3. Добавить количество строк в соответствии с числом Б. Заполнить ТЗ таблицей умножения
ъъ = 1 ;
Пока ъъ <= КоличествоСтрок Цикл
Произведения = ТаблицаЗначений.Добавить();
Для Множитель2 = 1 по КоличествоКолонок Цикл
Произведения["Колонка" + Множитель2] = ъъ * Множитель2
КонецЦикла;

ъъ = ъъ + 1;
КонецЦикла;

//4. Вносим данные из ТаблицаЗначений в реквизит ГлавнаяТаблица и в элементы формы
МассивРеквизитов = Новый Массив;
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
МассивРеквизитов.Добавить(Новый РеквизитФормы
(Колонка.Имя, Новый ОписаниеТипов("Число"), "ГлавнаяТаблица", Колонка.Заголовок));
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);

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

bsn-chita

Вы добавляя второй раз реквизиты используете те же имена на что и ругается как я понял система. Попробуйте использовать второй параметр
ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск