Ошибка при вызове метода контекста добавить неверное имя колонки

Хочу ТЗ добавить колонки почему выдает ошибку

Я
   Genri

28.01.09 — 12:17

Тволна — ТЗ на форме;    

Для ин=1 по  52 цикл

       ИмяК=»К»+1;

       Тволна.Колонки.Добавить(ИмяК,Новый ОписаниеТипов(«Число»));

   КонецЦикла;

ПИШИТ:

{Форма.Форма(286)}: Ошибка при вызове метода контекста (Добавить): Неверное имя колонки

       Тволна.Колонки.Добавить(ИмяК,Новый ОписаниеТипов(«Число»));

по причине:

Неверное имя колонки

   ДенисЧ

1 — 28.01.09 — 12:17

Сообщить(ИмяКолонки) ?

   zbv

2 — 28.01.09 — 12:19

Одна из причин: есть уже такая колонка

   Asmody

3 — 28.01.09 — 12:19

ошибка тут ИмяК=»К»+1

   Euguln

4 — 28.01.09 — 12:19

Может все же
ИмяК=»К»+ин;

   Дуб

5 — 28.01.09 — 12:20

(3) +1
(0) ты одноимённую колонку пытаешься вводить, не делая инкремента номера..

   Asmody

6 — 28.01.09 — 12:21

пора книгу писать «Миста — как средство групповой отладки»

   Genri

7 — 28.01.09 — 12:21

(5)это я понял протупил делаю так

ИмяК=»К»+ин;

ПИШИТ:

{Форма.Форма(286)}: Ошибка при вызове метода контекста (Добавить): Неверное имя колонки

       Тволна.Колонки.Добавить(ИмяК,Новый ОписаниеТипов(«Число»));

по причине:

   Asmody

8 — 28.01.09 — 12:25

плин, ну воткни ты Сообщить(ИмяК); перед Тволна.Колонки.Добавить(); много интересного увидишь

   zbv

9 — 28.01.09 — 12:26

(6) +1

(7) добавь проверку на существующие колонки.

   Живой Ископаемый

10 — 28.01.09 — 12:27

пишИт

   Дуб

11 — 28.01.09 — 12:27

(9) при грамотном добавлении колонок проверять ничего не надо..

   Genri

12 — 28.01.09 — 12:28

(8)Счет идет К1,К2,К3…. но колонки на форме не добавляються.

   zbv

13 — 28.01.09 — 12:29

(11) согласен.

   Asmody

14 — 28.01.09 — 12:31

а сейчас товарищи объяснят, что «ТЗ на форме» — это небывает

   Genri

15 — 28.01.09 — 12:36

(14)В смысле небывает.

   Asmody

16 — 28.01.09 — 12:48

(15) в смысле, что на форме у тебя лежит табличное поле, к которому привязана таблица значений. а это суть разные объекты.

   dimoff

17 — 28.01.09 — 12:51

Хорошо когда на 16 дебильных постов один верный, значит не все так плохо, спасибо 4.

   Asmody

18 — 28.01.09 — 12:53

(17) для обучения есть два пути: сказать «вот так правильно» и сказать «вот так не правильно». в первом случае обучаемый получит рыбу, а во втором — удочку. разницу чуешь?

   Genri

19 — 28.01.09 — 12:55

Все, всем спасибо, разобрался…

   ТСтат=Новый ТаблицаЗначений;

   Для ин=1 по  52 цикл

       ИмяК=»К»+ин;

       ТСтат.Колонки.Добавить(ИмяК,Новый ОписаниеТипов(«Число»));

   КонецЦикла;

   ЭлементыФормы.ТВолна.Значение=ТСтат;

   ЭлементыФормы.ТВолна.СоздатьКолонки();

Так работает

   ДенисЧ

20 — 28.01.09 — 12:57

(17) На 19.

  

dimoff

21 — 28.01.09 — 13:06

(18) Да, ты тоже прав.

Содержание:

1.       Причина возникновения ошибки «Неверное имя колонки»

2.       Выявление места возникновения ошибки о неверном имени колонки   

1.      Причина возникновения ошибки «Неверное имя колонки»

Ошибка «Неверное имя колонки» может возникать при работе с таблицами. Ошибка связана с несоблюдением требований в части формата служебного свойства объекта встроенного языка.

Информации не так много про эти требования. Известно, что используется имя колонки как идентификатор, и должно удовлетворять следующим моментам:

·         Начинаться должно с символа подчеркивания, либо с буквы

·         Не должно содержать никаких символов кроме алфавитных, символа подчеркивания и цифр.

Таким образом, если при выполнении кода возникает ошибка «Неверное имя колонки» в 1С — смело целенаправленно смотрим на имя, которое мы пытаемся присвоить нашей колонке, возможно нужно изменить имя колонки.   

2.      Выявление места возникновения ошибки о неверном имени колонки

Пара способов, оба по-своему хороши:

1.       В тексте ошибки содержится информация о модуле, в котором произошла ошибка и номере строки. Нажимаем «Подробно» и смотрим, где что произошло:

Сообщение Неверное имя колонки


Неверное имя колонки в 1С Предприятие

Идем сверху вниз. На моем примере: строка 42 модуля управляемой формы моей внешней обработки 1С Предприятие повлекла за собой ошибку в 32 строке модуля формы, которая, в свою очередь, нашла свое отражение в 9 строке модуля формы моей внешней обработки. Т.е. неверное имя колонке я попытался присвоить в 42 строке кода модуля формы.

2.       В конфигураторе в режиме отладки: «Отладка» — «Остановка по ошибке» 

Остановка по ошибке

Останавливаться по ошибке Неверное имя колонки

При возникновении ошибки будет открыт модуль – источник, и активная строка в 1С, где произошла ошибка.

Модуль источник Неверного имя колонки

Далее, можно посмотреть, какое имя мы пытались присвоить колонке и внести изменения, чтобы имя колонки было указано верно.

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

Проверка изменения имени колонки

Пробуем:

1.       «1абвгдеёжзиклмнопрстуфхцчшщъыьэюя» — Нельзя

Пример Неверное имя колонки

2.       Убираем с первой позиции – Можно

Исправление Неверное имя колонки в 1С

3.       Пробелы – Нельзя

Пример Неверное имя колонки в 1С

4.       Точки, запятые и т.д. – Нельзя

Пример с точками и запятыми — Неверное имя колонки

5.       Знак подчеркивания «_» — Можно. Можно даже на первой позиции имени колонки

Пример с точками и запятыми Неверное имя колонки

6.       Пустая строка «» — как оказалось, можно

Пример отсутствия ошибки Неверное имя колонки

Специалист компании «Кодерлайн»

Сергей Пушкин

Страница 1 из 2

  1. Добрый день!
    Создаю объект «ТаблицаЗначений», добавляю колонку:

      
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Колонка");
    
    

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

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


  2. Melanto

    Offline

    Melanto
    Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26

    Вот именно тот текст, что в посте работает без проблем.

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

  3. проверял в пустой обработке:

    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Колонка");
    
    КонецПроцедуры
    
    

    результат тот-же(


  4. Melanto

    Offline

    Melanto
    Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26

    Мда…
    У меня в БП все пошло…

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

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

    Вложения:

    • zz.epf
      Размер файла:
      4,6 КБ
      Просмотров:
      86
  5. а у меня с вашей обработкой таже проблема…как же такое понимать? :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
    Симпатии:
    18
    Баллы:
    29

    Имя колонки поменяйте — на некоторых платформах не обрабатывается. Типа зарезервированное слово

  9. Платформа: 8.1
    Конфигурация: УТ (10.3.3.3)

    Оригинальный код, по сути не отличающийся от приведенного выше:

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

    Показания дебагера при отладке в файле.

    Вложения:

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

  10. ASh

    Offline

    ASh
    Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26

    Так в имени колонки нельзя пробелы использовать

  11. в картинке специально вывел результат вычисления ТаблицаТоваров.Колонки.Добавить(«ИмяКол»)
    там таже проблема.
    На всякий случай проверил вашу гипотезу и убрал из строки пробелы — результат тот же.((((


  12. BabySG

    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Гипотезы нет — пробелов нельзя делать, а также любых символов, за исключением алфавитно-цифровых.

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

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

  13. Увы, результат такойже

    Вложения:

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

  14. coder1cv8

    Offline

    coder1cv8
    Опытный в 1С

    Регистрация:
    30 авг 2007
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26

    Не парь людям мозги! ) На момент добавления у тебя уже есть ТЗ колонка с таким именем.

  15. оказывается в метод «добавить» не надо передавать параметр…непонятно каким образом туда попадает очередное имя…


  16. ASh

    Offline

    ASh
    Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26

    У метода добавить есть ряд определенных параметров. В синтакс-помощнике есть понятное описание каждого из них. И там по-русски написано, что если опустить параметр «Имя», то будет создана колонка с пустым именем, т.е. обратиться к ней можно будет только по номеру. И вообще, Вам уже несколько раз конкретно написали в чем ошибка. Просто перед ошибкой просмотрите имена уже созданных колонок. Все сразу встанет на свои места.

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

    Перем Индекс;
    
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Индекс=0;
    ТаблицаТоваров = Новый ТаблицаЗначений();
    
    Если  Индекс < 3 <span style='cursor: pointer; color:red' Onclick="window.open('/wiki/index.php/тогда')">Тогда			</span>
    ТаблицаТоваров.Колонки.Добавить(Строка(Индекс));		
    Индекс = Индекс+1;
    КонецЕсли;
    
    КонецПроцедуры
    
    

    Простите за назойливость. :unsure:

  18. Можно багу выставлять? данный трабл проявляется при использовании «Если Тогда»
    Если организовывать цикл «Для По Цикл» -все работает… :unsure:


  19. ASh

    Offline

    ASh
    Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26

    Можно выставить багу, если действительно это у Вас в цикле работает :) На самом деле, к именам колонок применяются те же требования, что и к именам переменных, процедур и функций. То есть имя может начинаться только с буквы или знака подчеркивания. В Вашем коде имя получается «0» — так работать НЕ ДОЛЖНО.

  20. ок), проверьте так:

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


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

 +1 

   

Распечатать

Функция Пребразует строку наименования в строку идентификатора колонки ТЗ

Когда программно создаете таблицу значений на основании каких-либо данных, то приходится создавать колонки этой ТЗ и назвать колонки наименованиями этих же данных.
Если в строке наименования для колонки присутствуют недопустимые символы, то вылетит ошибка Ошибка при вызове метода контекста (Добавить) или ТЗ.Колонки.Добавить(ИмяКолонки); по причине: Неверное имя колонки, данная функция поможет избавиться от всех недопустимых символов в названии колонки:

Код 1C v 8.х

 // Пребразует строку наименования в строку идентификатора колонки ТЗ 
// Аргументы:
// Наименование товара, которое будет преобразовано в наименование колонки ТЗ в соответствии с правилами именования переменных.
// Символ - символ, на который будут заменятся символы, не соответствующие правилам именования переменных.
Функция глНаименованиеКолонки(Элемент, Символ="_") Экспорт
Перем Результат;
Результат = "_"+СтрЗаменить(Элемент," ",Символ);
Результат = СтрЗаменить(Результат,"/",Символ);
Результат = СтрЗаменить(Результат,"",Символ);
Результат = СтрЗаменить(Результат,".",Символ);
Результат = СтрЗаменить(Результат,",",Символ);
Результат = СтрЗаменить(Результат,"+",Символ);
Результат = СтрЗаменить(Результат,"-",Символ);
Результат = СтрЗаменить(Результат,"!",Символ);
Результат = СтрЗаменить(Результат,"@",Символ);
Результат = СтрЗаменить(Результат,"#",Символ);
Результат = СтрЗаменить(Результат,"$",Символ);
Результат = СтрЗаменить(Результат,"%",Символ);
Результат = СтрЗаменить(Результат,"^",Символ);
Результат = СтрЗаменить(Результат,"&",Символ);
Результат = СтрЗаменить(Результат,"*",Символ);
Результат = СтрЗаменить(Результат,"(",Символ);
Результат = СтрЗаменить(Результат,")",Символ);
Результат = СтрЗаменить(Результат,"№",Символ);
Результат = СтрЗаменить(Результат,";",Символ);
Результат = СтрЗаменить(Результат,":",Символ);
Результат = СтрЗаменить(Результат,"?",Символ);
Возврат Результат;
КонецФункции

Обработка выдает ошибку… {Форма.Форма.Форма}: Ошибка при вызове метода контекста (НайтиСтроки) по причине: Неверное имя колонки Подскажите, если кто сталкивался…

так колонка то и неверное имя имеет

подсказываю: Неверное имя колонки

+ и телепатов тут по понедельникам нету обычно

обработку в топку что ты собрался учитывать на вспомогательном счете?

давно с клюшек перешел? учи матчасть

блин, надо удалить строки с счетом учета «000» из определенного документа «корректировка записей регистров»…

какая конфа, какой регистр корректируешь? и обычно колонка имеет другое имя

+ что у вас все выпытывать надо

8.2 УПП, регистр — НезавершенноеПроизводствоБухгалтерскийУчет

ТаблицаРегистровНакопления — красивое слово. Сам придумал такое? Ведь знаешь же еще из детского сада, что у этого документа никаких табличных частей нет. Надо править прямо в регистрах.

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

качни книгу 1C_Predpriyatie_8.1._Prostye_primery_razrabotki там много примеров найдешь, оч полезно новичку

как верно подметил рано тебе еще такие вещи делать

в топку книгу, хоть и не читал, но зуб даю что там нет примера как править НаборыЗаписей

невтопку) читтать нуна,что бы шарить боле менее, там не то что б книга, там сборник примеров

кстате, гони ЗУБ ) там есть пару примеров)

правильно… на фиг что-то читать… не царское это дело…

на фиг читать — это когда все знаешь )

угу… щас, штаны подтяну…

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

лень переписывать, копипаст не канает там, смотри сам )

кстате, код как пример в книге

это ты автору сейчас дал чтоб поприкалываться? он же ща грохнет все записи

это для ознакомления , куда ехать за зубом?

выборочное удалени записей там есть?

за зубом ехай в Неризиновск

не не, зуб обещал, давай гони делай фотку, закидыва в инет и ссылку в студию)

а тут посмотрим какого он цвета)

пример выборочного удаления записей

есть, читай, пастить влом

не отмазывайся, на пример правки наборов записей примеры и и катят. Так что, гони зуб ).

хрен с вами приезжайте в Нерезиновск состыкуемся для передачи оного

+ тока один на всех (мне как раз давно пора левую верхнюю восьмерку удалить) :)

выдирай пасатижами, кидайй в конверт и правь в Спб =))

8-ку пасатижами? это ж как надо рот раскрыть?

походу ТС пошел выпить яду

Тэги:

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста выгрузить
  • Ошибка при вызове метода контекста выполнитьзадачу
  • Ошибка при вызове метода контекста выполнитьвыгрузку
  • Ошибка при вызове метода контекста вывести построительотчета вывести табличныйдокумент
  • Ошибка при вызове метода контекста вывести несоответствие типов