8.х Неверное имя колонки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем zuppa, 19 дек 2008.

  1. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    Создаю объект "ТаблицаЗначений", добавляю колонку:

    Код:
      
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Колонка");
    
    
    Получаю ошибку:
    "Ошибка при вызове метода контекста (Добавить): Неверное имя колонки
    ТаблицаЗначений.Колонки.Добавить("Колонка");
    по причине:
    Неверное имя колонки"

    По какой-то причине не устраивает тип значения имени колонки...
    Помогите пожалуйста разобраться!
  2. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Вот именно тот текст, что в посте работает без проблем.

    Посмотрите, может где-то уже добавили в эту ТЗ такую колонку.
    И попытка добавить вторую колонку с тем же именем дает такую ошибку.
  3. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    проверял в пустой обработке:
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Колонка");
    
    КонецПроцедуры
    
    
    результат тот-же(
  4. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Мда...
    У меня в БП все пошло...

    Вот тут все работает...

    А пустая обработка - насколько она пустая?
    Изменить имя ТЗ не пробовали?

    Вложения:

    • zz.epf
      Размер файла:
      4,6 КБ
      Просмотров:
      80
  5. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    а у меня с вашей обработкой таже проблема...как же такое понимать? :unsure:
  6. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Попробуйте все же имя ТЗ поменять. Да и Колонка "Колонка" не очень звучит...

    И еще. А в какой конфе-то не работает? А в отладке что видно? На момент добавления колонки - там такой еще нет?
  7. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    версия платформы и конфигурации в студию!

    у мну работает без проблем. 8.0 УТ 10.2
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Имя колонки поменяйте - на некоторых платформах не обрабатывается. Типа зарезервированное слово
  9. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Платформа: 8.1
    Конфигурация: УТ (10.3.3.3)

    Оригинальный код, по сути не отличающийся от приведенного выше:
    Код:
    	Отступ=0;
    Индекс=0;
    ТаблицаТоваров = Новый ТаблицаЗначений;
    МассивИмен = Новый Массив();
    Чтение = Новый ЧтениеXML;
    Чтение.ОткрытьФайл("D:\tmp\ЗагрузкаXML.xml");
    
    Пока Чтение.Прочитать() Цикл;
    Если  Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
    
    Отступ = Отступ + 1;
    Если Отступ = 4  Тогда
    
    МассивИмен.Добавить(Чтение.Значение);
    ТаблицаТоваров.Колонки.Добавить(МассивИмен[Индекс]);
    
    Отступ=3;
    Индекс = Индекс+1;
    КонецЕсли;				
    КонецЕсли;
    КонецЦикла;	
    
    Показания дебагера при отладке в файле.

    Вложения:

    • pic.gif
      pic.gif
      Размер файла:
      24,8 КБ
      Просмотров:
      156
  10. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Так в имени колонки нельзя пробелы использовать
  11. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    в картинке специально вывел результат вычисления ТаблицаТоваров.Колонки.Добавить("ИмяКол")
    там таже проблема.
    На всякий случай проверил вашу гипотезу и убрал из строки пробелы - результат тот же.((((
  12. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Гипотезы нет - пробелов нельзя делать, а также любых символов, за исключением алфавитно-цифровых.

    По скрину видно, что там куча пробелов.

    Вместо добавления колонки сделай вывод на экран в ковычках - что бы увидеть, какие имена пытаются присвоиться.
    Результат покажи.
  13. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Увы, результат такойже

    Вложения:

    • pic.gif
      pic.gif
      Размер файла:
      23,7 КБ
      Просмотров:
      121
  14. coder1cv8
    Offline

    coder1cv8 Опытный в 1С

    Регистрация:
    30 авг 2007
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    Не парь людям мозги! ) На момент добавления у тебя уже есть ТЗ колонка с таким именем.
  15. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    оказывается в метод "добавить" не надо передавать параметр...непонятно каким образом туда попадает очередное имя...
  16. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    У метода добавить есть ряд определенных параметров. В синтакс-помощнике есть понятное описание каждого из них. И там по-русски написано, что если опустить параметр "Имя", то будет создана колонка с пустым именем, т.е. обратиться к ней можно будет только по номеру. И вообще, Вам уже несколько раз конкретно написали в чем ошибка. Просто перед ошибкой просмотрите имена уже созданных колонок. Все сразу встанет на свои места.
  17. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    До сих пор ответа на вопрос не получил т.к., возможно, не совсем полно описал проблему. Креплю специально написанный для демонстрации ошибки код, неработоспособность которого ставит меня в тупик.
    Код:
    Перем Индекс;
    
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Индекс=0;
    ТаблицаТоваров = Новый ТаблицаЗначений();
    
    Если  Индекс < 3 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда			</span>
    ТаблицаТоваров.Колонки.Добавить(Строка(Индекс));		
    Индекс = Индекс+1;
    КонецЕсли;
    
    КонецПроцедуры
    
    
    Простите за назойливость. :unsure:
  18. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Можно багу выставлять? данный трабл проявляется при использовании "Если Тогда"
    Если организовывать цикл "Для По Цикл" -все работает... :unsure:
  19. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Можно выставить багу, если действительно это у Вас в цикле работает :) На самом деле, к именам колонок применяются те же требования, что и к именам переменных, процедур и функций. То есть имя может начинаться только с буквы или знака подчеркивания. В Вашем коде имя получается "0" - так работать НЕ ДОЛЖНО.
  20. TopicStarter Overlay
    zuppa
    Offline

    zuppa

    Регистрация:
    14 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    ок), проверьте так:

    Код:
    	Если  Индекс < 3 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда			</span>
    ТаблицаТоваров.Колонки.Добавить("Кол"+Строка(Индекс));		
    Индекс = Индекс+1;
    КонецЕсли;
    

Поделиться этой страницей