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

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

  1. Приобрел у Вас обработку для VirtueMart 2.0.x.
    Настроил как в прямом подключении к БД, так и при обычном подключении к сайту возникает одна и таже ошибка:

    {Обработка.VirtueMart_v3cr.МодульОбъекта(349)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныйТовар = ТоварыНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки.

    Подскажите как можно исправить эту ошибку?

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

    index.png

  3. Здравствуйте, у меня возникла точно такая же проблема — при выгрузке товара на сайт появляется эта же ошибка, 10 раз проверила все настройки, все правильно, и префикс таблицы вбит правильно…
    Как решить эту проблему?

  4. Добрый день
    Тоже недавно получил модуль и никак не могу побороть эту ошибку

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(687)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

  5. У меня эта проблема решилась путем выключения реквизита прямой доступ к базе данных mysql, с самыми простыми настройками

  6. У меня эта ошибка выглядит так:
    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(1936)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

    И никакие настройки модуля не помогают от нее избавится…

  7. Ошибка получается в этом куске кода:

    Попытка   
                           
                            ЗначениеЧисло = Число(СвойствоНайденное.Значение);
                            idФильтра = 0;
                           
                        Исключение
                           
                            ЗначениеТекст = СокрЛП(СвойствоНайденное.Значение);
                            ЗначениеЧисло = 0;
                            //находим айди товара по артикулу
                            Отбор = Новый Структура();
                            Отбор.Вставить("value",СокрЛП(СвойствоНайденное.Значение));
                            Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
                            Если Найденный.Количество()>0 Тогда
                                idФильтра = Найденный[0].id;
                            КонецЕсли;
     
                        КонецПопытки;                         
       
                        НоваяСатрока = ТипыТовараДляВыгрузкиMyExt.Добавить();
                        НоваяСатрока.DATA = "('"+ Формат(idТовара, "ЧГ=0") + "','" + Формат(idДанных, "ЧГ=0") + "','" + СокрЛП(idФильтра) + "','"  + Формат(ЗначениеЧисло, "ЧГ=0") + "')";       
                                                               
                    КонецЦикла;
     
                Иначе
                   
    

    Вот в этой строке: Отбор.Вставить(«value»,СокрЛП(СвойствоНайденное.Значение));

  8. тоже не работает

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(517)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

    причем у меня в настройках сайта префикс для таблиц VirtueMart (1.1.5) все же стоит — vm
    а при выборе в окне своей базы автоматом ставится — jos_vm
    но не работает не так не так.

  9. Префикс можно узнать использую эту инструкцию, раздел «настройка»

  10. тоже не работает!

    {ВнешняяОбработка.JoomShopping_v3cr.МодульОбъекта(148)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ЕдиницНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

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

  11. при этом кнопка «Очистить таблицы JoomShopping» работает нормально — товары с сайта удалились.

  12. точно такая же ошибка при работе через tunnel.php!

  13. Читайте инструкцию в ней описана ситуация, когда не работает подключение через туннель, и написано, что можно сделать — http://help.1c-mart.ru/

  14. инструкцию читал — все настройки для tunnel.php сделаны. выставлены права доступа, внесена строчка в .htaccess.
    по-прежнему не работает.

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

    что делать-то?

  15. все локально установлено — 1с, апач, пхп, мускл.

  16. Точно такая же история
    {Внешняя Обработка.OpenCart_v4cr.Форма.Форма.Форма(2775)}: Ошибка при вызове метода контекста (НайтиСтроки) НайденныйBrend = БрендыНаСайте.НайтиСтроки(ОтборBrend); по причине: Неверное имя колонки

    После этого обработка пишет «ошибка соединения» и так минут 5-10

    В базе данных на сайте удалил всех производителей, выгружаю заново, но производители выгружаются, а товары нет/ И снова в 1с такая же ошибка

    В чем может быть дело?

  17. Нет, opencart 2x. Подключение через тунель Ввша команда настраивала


    Administrator нравится это.

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

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


Форум "Автоматизация электронной коммерции"

   pasha_d

11.10.10 — 11:29

Обработка выдает ошибку…

Выборка = ЭлементыФормы.Отраж.Значение;

   
   Док = Выборка.ПолучитьОбъект();

   

   
   Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду(«000»);

   ПараметрыОтбора = Новый Структура;

   ПараметрыОтбора.Вставить(«СчетУчета», Счет);

   МассивСтрок = Док.ТаблицаРегистровНакопления.НайтиСтроки(ПараметрыОтбора);

   
   
   Для Каждого ЗаписьТЧ Из МассивСтрок Цикл

       Док.ТаблицаРегистровНакопления.Удалить(ЗаписьТЧ);

   КонецЦикла;

       
   Док.Записать();

{Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (НайтиСтроки)

   МассивСтрок = Док.ТаблицаРегистровНакопления.НайтиСтроки(ПараметрыОтбора);

по причине:

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

Подскажите, если кто сталкивался…

   DrShad

1 — 11.10.10 — 11:31

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

   Mitriy

2 — 11.10.10 — 11:32

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

   DrShad

3 — 11.10.10 — 11:32

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

   DrShad

4 — 11.10.10 — 11:33

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

   DrShad

5 — 11.10.10 — 11:34

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

   pasha_d

6 — 11.10.10 — 11:36

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

   DrShad

7 — 11.10.10 — 11:37

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

   DrShad

8 — 11.10.10 — 11:38

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

   pasha_d

9 — 11.10.10 — 11:38

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

   hhhh

10 — 11.10.10 — 11:43

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

   DrShad

11 — 11.10.10 — 11:45

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

   ПульсЪ

12 — 11.10.10 — 11:45

качни книгу 1C_Predpriyatie_8.1._Prostye_primery_razrabotki

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

   DrShad

13 — 11.10.10 — 11:46

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

   DrShad

14 — 11.10.10 — 11:48

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

   ПульсЪ

15 — 11.10.10 — 11:50

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

   ПульсЪ

16 — 11.10.10 — 11:51

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

   Mitriy

17 — 11.10.10 — 11:52

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

   ПульсЪ

18 — 11.10.10 — 11:53

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

   DrShad

19 — 11.10.10 — 11:55

(17) пример в студию

   DrShad

20 — 11.10.10 — 11:56

+(19) из книги естественно

   Suzuki

21 — 11.10.10 — 11:59

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);

НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл

   // Чтение и сообщение данных полей записи.
   Сообщить(Строка(Запись.Период) + » » + Строка(Запись.ТипЦен) +» «+ Строка(Запись.Номенклатура) + » » + Строка(Запись.Цена) + » » + Строка(Запись.ПроцентСкидкиНаценки));

   // Изменение данных полей записи.
   Запись.ПроцентСкидкиНаценки = 0;
КонецЦикла;

НаборЗаписей.Записать();

   Mitriy

22 — 11.10.10 — 11:59

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

   Aprobator

23 — 11.10.10 — 12:01

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

   ПульсЪ

24 — 11.10.10 — 12:02

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

   DrShad

25 — 11.10.10 — 12:02

(21) тут нет удаления записи

   Suzuki

26 — 11.10.10 — 12:04

Запрос = Новый Запрос;
Запрос.Текст = »
|    ВЫБРАТЬ
|    ЦеныНоменклатурыКонтрагентов.Регистратор
|ИЗ
|    РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов»;

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
   НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
   НаборЗаписей.Записать();
КонецЦикла;

   DrShad

27 — 11.10.10 — 12:04

(23) +100

   ПульсЪ

28 — 11.10.10 — 12:05

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

   ПульсЪ

29 — 11.10.10 — 12:05

тока там проще чуть

   DrShad

30 — 11.10.10 — 12:05

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

   DrShad

31 — 11.10.10 — 12:09

кстати а где ТС?

   Aprobator

32 — 11.10.10 — 12:11

(31) ушел на обед.

   Suzuki

33 — 11.10.10 — 12:13

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

   DrShad

34 — 11.10.10 — 12:14

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

   DrShad

35 — 11.10.10 — 12:14

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

   ПульсЪ

36 — 11.10.10 — 12:17

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

   ПульсЪ

37 — 11.10.10 — 12:17

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

   DrShad

38 — 11.10.10 — 12:17

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

   DrShad

39 — 11.10.10 — 12:18

+(38) а ведь он простой

   Suzuki

40 — 11.10.10 — 12:19

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

   Aprobator

41 — 11.10.10 — 12:20

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

   DrShad

42 — 11.10.10 — 12:22

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

   DrShad

43 — 11.10.10 — 12:23

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

   ПульсЪ

44 — 11.10.10 — 12:25

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

   DrShad

45 — 11.10.10 — 12:29

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

  

DrShad

54 — 11.10.10 — 12:41

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

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

  1. Приобрел у Вас обработку для VirtueMart 2.0.x.
    Настроил как в прямом подключении к БД, так и при обычном подключении к сайту возникает одна и таже ошибка:

    {Обработка.VirtueMart_v3cr.МодульОбъекта(349)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныйТовар = ТоварыНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки.

    Подскажите как можно исправить эту ошибку?

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

    index.png

  3. Здравствуйте, у меня возникла точно такая же проблема — при выгрузке товара на сайт появляется эта же ошибка, 10 раз проверила все настройки, все правильно, и префикс таблицы вбит правильно…
    Как решить эту проблему?

  4. Добрый день
    Тоже недавно получил модуль и никак не могу побороть эту ошибку

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(687)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

  5. У меня эта проблема решилась путем выключения реквизита прямой доступ к базе данных mysql, с самыми простыми настройками

  6. У меня эта ошибка выглядит так:
    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(1936)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

    И никакие настройки модуля не помогают от нее избавится…

  7. Ошибка получается в этом куске кода:

    Попытка   
                           
                            ЗначениеЧисло = Число(СвойствоНайденное.Значение);
                            idФильтра = 0;
                           
                        Исключение
                           
                            ЗначениеТекст = СокрЛП(СвойствоНайденное.Значение);
                            ЗначениеЧисло = 0;
                            //находим айди товара по артикулу
                            Отбор = Новый Структура();
                            Отбор.Вставить("value",СокрЛП(СвойствоНайденное.Значение));
                            Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
                            Если Найденный.Количество()>0 Тогда
                                idФильтра = Найденный[0].id;
                            КонецЕсли;
     
                        КонецПопытки;                         
       
                        НоваяСатрока = ТипыТовараДляВыгрузкиMyExt.Добавить();
                        НоваяСатрока.DATA = "('"+ Формат(idТовара, "ЧГ=0") + "','" + Формат(idДанных, "ЧГ=0") + "','" + СокрЛП(idФильтра) + "','"  + Формат(ЗначениеЧисло, "ЧГ=0") + "')";       
                                                               
                    КонецЦикла;
     
                Иначе
                   
    

    Вот в этой строке: Отбор.Вставить(«value»,СокрЛП(СвойствоНайденное.Значение));

  8. тоже не работает

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(517)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

    причем у меня в настройках сайта префикс для таблиц VirtueMart (1.1.5) все же стоит — vm
    а при выборе в окне своей базы автоматом ставится — jos_vm
    но не работает не так не так.

  9. Префикс можно узнать использую эту инструкцию, раздел «настройка»

  10. тоже не работает!

    {ВнешняяОбработка.JoomShopping_v3cr.МодульОбъекта(148)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ЕдиницНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

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

  11. при этом кнопка «Очистить таблицы JoomShopping» работает нормально — товары с сайта удалились.

  12. точно такая же ошибка при работе через tunnel.php!

  13. Читайте инструкцию в ней описана ситуация, когда не работает подключение через туннель, и написано, что можно сделать — http://help.1c-mart.ru/

  14. инструкцию читал — все настройки для tunnel.php сделаны. выставлены права доступа, внесена строчка в .htaccess.
    по-прежнему не работает.

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

    что делать-то?

  15. все локально установлено — 1с, апач, пхп, мускл.

  16. Точно такая же история
    {Внешняя Обработка.OpenCart_v4cr.Форма.Форма.Форма(2775)}: Ошибка при вызове метода контекста (НайтиСтроки) НайденныйBrend = БрендыНаСайте.НайтиСтроки(ОтборBrend); по причине: Неверное имя колонки

    После этого обработка пишет «ошибка соединения» и так минут 5-10

    В базе данных на сайте удалил всех производителей, выгружаю заново, но производители выгружаются, а товары нет/ И снова в 1с такая же ошибка

    В чем может быть дело?

  17. Нет, opencart 2x. Подключение через тунель Ввша команда настраивала


    Administrator нравится это.

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

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

Вот код

Функция ВыгрузитьТаблицуЗначенийВДеревоЗначений(Таблица, КлючСтроки = «КлючСтроки», ЗначениеПоказателя = «ЗначениеПоказателя») Экспорт

   Дерево = Новый ДеревоЗначений;

   Для Каждого Колонка Из Таблица.Колонки Цикл

       Дерево.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения);

   КонецЦикла;

   Для Каждого СтрокаТаблицы Из Таблица Цикл

       СтрокаГруппировки = Дерево.Строки.Найти(СтрокаТаблицы[ЗначениеПоказателя], КлючСтроки,Истина);

       Если СтрокаГруппировки = Неопределено Тогда

           ЗаполнитьЗначенияСвойств(Дерево.Строки.Добавить(), СтрокаТаблицы);

       Иначе

           ЗаполнитьЗначенияСвойств(СтрокаГруппировки.Строки.Добавить(), СтрокаТаблицы);

       КонецЕсли;

   КонецЦикла;

   Возврат Дерево;

КонецФункции //ВыгрузитьТаблицуЗначенийВДеревоЗначений()

Выдает ошибку

{ОбщийМодуль.О_РаботаСДеревомЗначений.Модуль(87)}: Ошибка при вызове метода контекста (Найти)

       СтрокаГруппировки = Дерево.Строки.Найти(СтрокаТаблицы[ЗначениеПоказателя], КлючСтроки,Истина);

СтрокаГруппировки = Дерево.Строки.Найти(СтрокаТаблицы[ЗначениеПоказателя], КлючСтроки,Истина);

СтрокаТаблицы  = в отладчике —>>>

СоответствуетНормативу    Ложь    Булево

СтрокаТаблицы    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений

ЕдиницаИзмерения    м2    СправочникСсылка.КлассификаторЕдиницИзмерения

ЗначениеПоказателя    99    Число

ЗначениеПоказателяПечать    99    Число

МаксЗначениеПоказателя    0    Число

МаксЗначениеПоказателяПечать    0    Число

НомерСтроки    1    Число

ПоказательАнализа    test    СправочникСсылка.О_ПоказателиАнализовНоменклатуры

В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.

Исправляем ситуацию

Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.

Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:


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

Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.


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

Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

Рис.3 Синтакс-помощник

Рис.3 Синтакс-помощник

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

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Чаще всего причиной подобных ошибок выступают следующие факторы:

  1. Невнимательность;
  2. Отсутствие опыта или знаний;
  3. Несогласованность действий разработчиков друг с другом;
  4. Изменения в методах контекста в новых версиях платформы.

Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.

1

2

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Zebraaa

Дата регистрации: 16.03.2012
Сообщений: 23

Платформа 1с 8.2.15.310, релиз 1.0.12.2 При открытии стандартного отчета Карточка субконто выдается сообщение: Ошибка при вызове метода контекста (Найти поле). Если доступные поля. Найти поле(Отборы.Элементы [Я]_ Левое значение).=Неопределенно Тогда по причине Несоответствии типов (параметр номер 1) <br>Причем такая ошибка выходит только у одного пользователя, у других все нормально открывается.

Sh_S

Дата регистрации: 02.03.2007
Сообщений: 7730

где-то стоит отбор со сравнением с пустым значением, зайдите в настройку и посмотрите

Zebraaa

Дата регистрации: 16.03.2012
Сообщений: 23

А можно ,пожалуиста, по подробнее!

Sh_S

Дата регистрации: 02.03.2007
Сообщений: 7730

мне кажется теперь, что я не права. Под рукой бухгалтерии нет, но в УПП и ЗУПе если поставить отбор по пустому значению выходит просто шапка отчета. Но все-таки посмотрите внимательно на отборы в настройках.

Zebraaa

Дата регистрации: 16.03.2012
Сообщений: 23

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

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

Платформу обновить до последней. Выполнить тестирование и исправление со всеми флагами.

Zebraaa

Дата регистрации: 16.03.2012
Сообщений: 23

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

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

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

Zebraaa

Дата регистрации: 16.03.2012
Сообщений: 23

Кстати, самое интересное, что сохраненных настроек по этому пользователю нет, а по другим есть.

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

Имеются ввиду «Сохраненные варианты отчета».

Всем прив. Такая трабла: есть УТ 10.3 со справочником «ИнформационныеКарты». Так вот, справочники.информационныеКарты.найтиПоКоду(«0000001») — ошибка при вызове метода контекста найтиПоКоду о_О. Тип кода — строка. С пустой строкой в параметре тоже самое. И с числом. В лыжах уже стою на асфальте. Help…

текст ошибки целиком — у пушкина?

Платформа 8.2.13.219 Конфигурация 10.3.8.9 (с поддержки снята) Ошибка: Ошибка при вызове метода контекста (НайтиПоКоду)    дКарта = Справочники.ИнформационныеКарты.НайтиПоКоду(сокрЛП(СтрПолучитьСтроку(стрМн, 8))); по причине: по причине: В данной транзакции уже происходили ошибки! Из отладчика: сокрЛП(СтрПолучитьСтроку(стрМн, 8)) = «000004020»

Такая болезненная реакция только на этот код информационной карты. Например «000001016» отлично находи. Тестирование и исправление (переиндексация, проверка целостности) делал. Безрезультатно.

«В данной транзакции уже происходили ошибки! » Раньше ошибка уже была

ошибка у тебя в СтрПолучитьСтроку(стрМн, 8), а не в поиске по коду

Из отладчика: сокрЛП(СтрПолучитьСтроку(стрМн, 8)) = «000004020»

попробуй на две строки разбей. там попытка идет?

Попытки нет. Могу конечно сделать, но надо причину выяснить. Элемент справочника с таким кодом существует. Еще момент. Около недели назад коды были полностью заменены у всех элементов. Перенумеровали их. А как это на две строки разбить? Переменную для кода сделать? Не помогает.

— да. Ошибка совершенно в другом месте. Всем спасибо за помощь!

Тэги: 1С 8

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

Помогите создать отчет

Автор Люсёк, 20 окт 2010, 18:17

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

Вниз
Страницы1234567810

Если нет найденных строк, т.е. количество элементов в  МассивСтрок = 0, вот этот код НайденнаяСтрока = МассивСтрок[0]; вызовет ошибку.


А эта ошибка что значит?

{Документ.НачислениеЗарплатыРаботникамОрганизаций.Форма.ФормаДокумента(4852)}: Ошибка при вызове метода контекста (НайтиСтроки): Неверное имя колонки
           МассивСтрок = ТЗ.НайтиСтроки(Отбор);


В колонках отбора и самой таблицы разные имена

Отбор.Вставить(«ВидРасчета»  <-


точно разные((( и чего делать?


:) Назвать в отборе так как в ТЗ.

Отбор.Вставить(«ИМЯ_КОЛОНКИ_КАК_В_ТЗ», СтрокаТЧ.Сотрудник);


у меня массив строк получается пустым, хотя не должен.


Проверьте, правильные ли вы значения в отбор передаете.


а что делать если в таблицеНачислений «оплата за выезды», а в ТЗ «количество выездов»



вы сказали проверить правильные ли значения я передаю в отбор. Дык вот, например, в ТаблицеНачислений: Сотрудник — «оплата за выезды»=2. В ТЗ: этот же Сотрудник — «количество выездов»=3.


Вверх
Страницы1234567810

Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Помогите создать отчет

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

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Довольно часто начинающие 1С разработчики сталкиваются с ошибками, которых достаточно легко избежать. Ниже мы рассмотрим топ 11 ошибок и способы их исправления. Также доступна видеоверсия статьи

Содержание

Поле объекта не обнаружено

1С ошибка Поле объекта не обнаружено

Существует множество статей, которые описывают возможные причины возникновения в 1С ошибки “Поле объекта не обнаружено”. Порой это связывают с обновлением платформы, обновлением типового релиза, или с какими-то другими причинами.

Мы же будем оперировать фактами. В конце статьи прилагается внешняя обработка, в которой воспроизведена данная ошибка.

Такое сообщение платформа выдает, когда пытается обратиться к свойству объекта языка, которого у данного объекта нет. Не важно, что это за объект – документ, справочник, таблица значений , или сообщение пользователю.

  • Удалили табличную часть, к которой обращаемся в коде?
  • Переименовали реквизит, а в коде не исправили?
  • Заменили значение со ссылки на неопределено?

Вуаля – платформа выдаст ошибку “Поле объекта не обнаружено”!

Как исправить? Исходя из природы ошибки – переименовать реквизит на нужное имя, отредактировать код, или использовать правильные обращения к стандартным свойствам объекта.

Например, у объекта “СообщениеПользователю” нет свойства “Таблица”, и следующий код приведет к ошибке:

Сообщение = Новый СообщениеПользователю;
Сообщение.Таблица = “Ошибка”;

Индекс находится за границами массива

1С ошибка Индекс находится за пределами массива

Что означает такое сообщение системы? Как правило, с данной ошибкой разработчик сталкивается при некорректной работе с коллекциями. Самые частые случаи появления ошибки “Индекс находится за границами массива”.

  • Использование при обходе коллекции количества элементов вместо индекса. Индексы начинаются с нуля, а количество элементов – с единицы. Поэтому следующий код гарантированно приведет к ошибке: Массив[Массив.Количество()]
  • Последствия удаления элементов из коллекции, очистки коллекции или замены коллекции на пустую
  • Ошибочное увеличение счетчика в цикле “Для”

 Как исправить? Для удаления элементов из коллекции по условию – использовать обратный цикл. Добавлять условие на соответствие счетчика цикла и индекса массива. Не увеличивать счетчик внутри кода цикла Для … Цикл … КонецЦикла

Обращение к процедуре как к функции

ОШибка

Суть этой ошибки в том, что процедура не может возвращать значение. И если мы в коде используем вызов процедуры справа от знака присваивания, это приведет к ошибке.

Данная ошибка имеет две вариации – если используется стандартная процедура из методов какого-нибудь объекта, то фраза будет звучать “Обращение к процедуре объекта как к функции”. Если же использовать процедуру, объявленную в коде, то текст ошибки будет “Обращение к процедуре как к функции”.
При этом ошибка использования процедуры объекта является ошибкой времени выполнения – т.е. на этапе сохранения и проверки конфигурации платформа эту ошибку не обнаружит.

А вот неправильное использование процедуры синтаксическая проверка (Ctrl + F7) успешно обнаруживает, и не даст сохранить конфигурацию или внешнюю обработку/отчет, пока ошибка не будет устранена.

Рассмотрим два примера:

1. Воспроизведем ошибку “Обращение к процедуре как к функции”. При этом платформа не даст сохранить изменения, т.к. не проходит синтакс-контроль.

2. Воспроизведем ошибку “Обращение к процедуре объекта как к функции”. Здесь мы неверно используем метод объекта массива “Добавить”, который является процедурой.

Как исправить? Ошибка тривиальная, и исправление тоже. Чаще всего, достаточно внимательно прочитать описание методов объекта во встроенной справке или синтакс-помощнике. Если метод является процедурой, то значений он возвращать не может. Следовательно, нужно модифицировать код так, чтобы такого ошибочного вызова не было.
Если же используется процедура, объявленная в коде, возможно, есть необходимость изменить ее на функцию, либо также скорректировать код, который эту процедуру использует.

Процедура не может возвращать значение

Родственная предыдущей ошибка. Для того, чтобы код возвращал какое-то значение, следует этот код размещать в функции, а не в процедуре.

В процедуре можно написать ключевое слово “Возврат” без параметров. Это будет означать выход из процедуры.

Следующий код является ошибочным, т.к. в теле процедуры Возврат используется с параметром:

Процедура ПроцедураНеМожетВозвращатьЗначение(Команда)
Возврат "Ошибка";
КонецПроцедуры

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

Переменная не определена

Такой текст ошибки платформа 1С выдает на этапе синтаксического контроля, при сохранении конфигурации, внешнего отчета или обработки.
Причин у этой ошибки может быть несколько.

  • Опечатка в имени переменной
  • Обращение к переменной, которая нигде в области видимости не объявлена (неявной инициализацией с присвоением значения, явным образом с использованием ключевого слова “Перем”, или передана в качестве параметра)
  • Написание на клиенте серверного кода. Например, обращение к менеджеру справочников “Справочники”, и т.п. Клиентская часть приложения “не видит ” серверные объекты языка
  • Также ошибка может появиться, если ранее код использовался в режиме толстого клиента, но после был запущен в тонком клиенте.

Как исправить?

Внимательно следить за правильностью набранного кода, своевременно объявлять переменные или передавать их в качестве параметров. Писать серверный код только в серверных модулях, а также использовать соответствующие инструкции препроцессора, например “&НаСервере”.

Значение не является значением объектного типа

Ошибка “Значение не является значением объектного типа” может возникнуть при неверном обращении к объекту языка. Объектный тип – это такие объекты языка, которые содержат в себе другие объекты – свойства, реквизиты и т.п. Эти свойства доступны через точку, например “Объект.СвойствоЭтогоОбъекта”

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

Разберем более сложный пример:

&НаСервере
Процедура ЗначениеНеЯвляетсяЗначениемОбъектногоТипаНаСервере(Справочники = Ложь)
Сообщить(Справочники.Сотрудники.ПустаяСсылка());
КонецПроцедуры

Ошибка может быть “плавающей”. Если вместо параметра по умолчанию “Справочники = Ложь” будет передан менеджер справочников, то ошибки возникать не будет. А если вызвать процедуру без параметров, то будет использоваться параметр по умолчанию с типом Булево, что и приведет к ошибке.

Чаще всего чтобы исправить ошибку, нужно в отладчике посмотреть, какой тип значения используется. Можно внести изменения в код, чтобы обеспечить корректное поведение (например, в запросе вместо наименования товара выбрать ссылку, и в коде через точку уже обращаться к свойствам ссылки, а не текстового наименования). А можно добавить проверку на нужный тип значения. Т.е. – если значение того типа, который мы ожидаем – выполняем код. Иначе – не выполняем.

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

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

Обнаружены ошибки в 1С Синтаксическая ошибка

В языке 1С у разных объектов (запросов, справочников, табличных документов и др.) есть предопределенные методы, предусмотренные платформой. Обращение к этим методам требует соблюдения порядка и параметров, правильного синтаксиса и соблюдения условий использования. Например, при чтении табличного документа из файла он не должен быть открыт в другой программе, при подключении к http-соединению оно должно быть доступно, и т.п.

Если эти условия не соблюдать, платформа в зависимости от версии может выдавать сообщения вида “Ошибка при вызове метода контекста”, и далее будут следовать более подробные сведения об ошибке – стек вызовов, приведших к ошибке, номер строки и позиции в строке, где произошла ошибка.

Чаще всего ошибка при вызове метода контекста встречается в следующих методах:

  1. Записать
  2. Прочитать
  3. Выполнить
  4. Создать
  5. ПроверитьВывод

Разберем эту ошибку на примере метода Выполнить объекта Запрос:

Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 1 ГДЕ ИСТИНА И");
Запрос.Выполнить();

В тексте запроса допущена ошибка –  после первого условия “ГДЕ ИСТИНА” указан оператор И, но после него нет еще одного условия. В результате при попытке выполнения запроса, платформа вернет ошибку.

Для исправления ошибки зачастую достаточно внимательно использовать методы, при необходимости уточнять порядок, количество и тип параметров – это можно сделать в справке или синтакс-помощнике (встать курсором на имя метода в коде, и нажать сочетание клавиш Ctrl+F1). В случае запроса – нужно передавать синтаксически корректный текст запроса; в случае проверки вывода на печать – в системе должен быть установлен принтер; в случае подключения к почте – должны быть корректно указаны логин и пароль, и т.п.

Тип не может быть выбран в запросе в 1С 8.3 (8.2)

Ошибка Тип не может быть выбран в запросе

С такой ошибкой начинающие разработчики (да и не только начинающие 😉 ) сталкиваются чаще всего, при чтении запросом данных из таблиц значений, либо из регистров сведений. Все дело в том, что запросы поддерживают далеко не все типы значений. Так, например, нельзя запросом выбрать тип Картинка, ХранилищеЗначений, Шрифт, и многие другие типы, которые не относятся к примитивным или ссылочным типам значений.

Так, если ресурс регистра сведений имеет тип ХранилищеЗначений, выбрать его запросом будет нельзя. Также, если в таблицу значений поместить значения не подходящих типов, а после передать эту таблицу в качестве параметра-источника данных, выполнение запроса также приведет к ошибке “Тип не может быть выбран в запросе”.

Еще одна ситуация, когда запрос будет выдавать ошибку – если таблица значений, которая передается в качестве параметра, имеет не типизированные колонки.

Неверно:

//ТЗОшибочныйТип.Колонки.Добавить("Контрагент");

Верно:

//ТЗОшибочныйТип.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));

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

Использование в 1С модальных окон в данном режиме запрещено

Ошибка Использование в 1С модальных окон в данном режиме запрещено​

Платформа будет выдавать такое сообщение, если в коде используются методы, приводящие к открытию модальных окон. Модальные окна – это окна, которые при открытии блокируют весь остальной интерфейс. В 1С есть несколько модальных методов – например – “Вопрос”, “ОткрытьЗначение”, “Предупреждение”. Кроме того, в коде может использоваться модальный синтаксис открытия форм: “ОткрытьМодально()”

Если в свойствах конфигурации выбран режим использования модальности “Не использовать”, то выполнение модальных методов будет приводить к этой ошибке “Использование в 1С модальных окон в данном режиме запрещено”.

Для устранения ошибки можно пойти несколькими путями. Как водится, один – быстрый, другой – правильный 🙂

Быстрый способ – переключить режим использования модальности в положение “Использовать”.

Более правильный способ – использовать в коде немодальные вызовы методов. Например, у метода “Вопрос” есть немодальный аналог  – “ПоказатьВопрос”, у метода “Предупреждение” – “ПоказатьПредупреждение”, и т.п. Чаще всего об этих методах дополнительно указано в синтакс-помощнике и справке.

Кроме того, в последних версиях платформы появились асинхронные методы – “ВопросАсинх”, “ПредупреждениеАсинх” и др. Появление этих методов позволяет писать более простой и понятный асинхронный код, и направлено в первую очередь, на более полноценную поддержку браузерами и работу в веб-клиенте.

1С 8.3 и 8.2: Запись с такими ключевыми полями существует!

Данная ошибка появляется при некорректной записи в регистр сведений. Чаще всего с этой ошибкой сталкиваются начинающие разработчики, не до конца понимающие механизмы работы с ключевыми полями (измерениями).

Суть ошибки следующая – регистр сведений позволяет записать запись (строку таблицы) с уникальным набором ключевых полей – а для периодических регистров также и поля Период. Если следующая запись полностью повторяет значение ключевых полей, но осуществляется методом Записать с параметром Замещать = Истина, то запись в таблице регистра просто заменится на идентичную.

Однако если поместить две абсолютно одинаковые записи в набор записей, и попытаться его записать – платформа выдаст ошибку. Еще один распространенный случай, когда 1С сообщает “Запись с такими ключевыми полями существует” – это запись в периодический регистр сведений с периодичностью от “День” и выше, подчиненный регистратору.

В типовых конфигурациях часто эту ошибку можно воспроизвести, если в пользовательском режиме создать два документа “Установка цен номенклатуры” с одной и той же номенклатурой и за один и тот же день. Попытка провести второй документ приведет к ошибке.

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

Поле объекта недоступно для записи в 1С

Ошибка Поле объекта недоступно для записи в 1С​

Чаще всего начинающие программисты 1С сталкиваются с этой ошибкой в двух ситуациях.

Первый случай – это попытка редактирования системных полей, недоступных для записи. Например, в модуле формы сама форма будет содержаться в объекте ЭтаФорма. И попытка присвоить этому реквизиту любое значение приведет к ошибке “Поле объекта недоступно для записи”.

Второй случай – и с ним новички как раз допускают больше всего ошибок – это попытка редактирования полей ссылки, а не самого объекта. Чаще всего код выглядит примерно так:

Элемент = Справочники.Сотрудники.НайтиПоКоду("12345");
Элемент.Наименование = "Новое наименование";

Исполнение данного кода приведет к ошибке, т.к. поля ссылки доступны только для чтения, а метод НайтиПоКоду вернет именно ссылку. Чтобы можно было внести изменения, следует из ссылки получить сам объект – используя соответствующий метод ПолучитьОбъект().

Для исправления ошибки зачастую достаточно получить объект из ссылки. В случае же попытки редактирования свойств, доступных только на чтение самый правильный подход – анализировать имеющуюся документацию по этим свойствам, и не пытаться присваивать им значения, если платформа этого не предусматривает.

Ссылка на обработку

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

Заключение

Как видите, зачастую ошибки тривиальны, и достаточно просто исправляются. Общие рекомендации – внимательно читать документацию и справку, корректно использовать методы, активно пользоваться отладчиком. Если вы новичок, и хотите освоить программирование в 1С с нуля – могу предложить приобрести мой базовый курс для начинающих. Более подробная информация – по ссылке.

{ВнешняяОбработка.ирОбщий.МодульОбъекта(16745)}: Ошибка при вызове метода контекста (НайтиСтроки)
Для Каждого СтрокаДопСвойства Из ПараметрыЗаписи.ДополнительныеСвойства.НайтиСтроки(Новый Структура(«Пометка», Истина)) Цикл
по причине:
Неверное имя колонки

Версия: Портативный 6.35.1p — «Редактор объекта БД»
В предыдущей версии ошибки нет.
Возникает при попытке записи (кнопка ОК) документа, документ имеет табличную часть (в частности расходная накладная).
Т.к. уже откатил версию, не знаю как ведет себя со справочниками и прочим.

Платформа: 8.3.10.2466
Режим БД: клиент-серверный
Конфигурация. Основной режим запуска: Обычное приложение

Содержание:

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. Общие ошибки, возникающие при работе с XML
  3. Ситуации, возникающие при обмене данными в рамках распределенной информационной базы
  4. Управляемая форма. Работа с данными

Обработка ошибок, возникающих при обмене данными в распределенной информационной базе

При организации обмена данными в рамках распределенной информационной базы могут возникать различные ситуации, приводящие к сообщениям об ошибках. Однако не все подобные ситуации являются ошибками в чистом виде: некоторые из них могут быть отнесены к штатным ситуациям, соответствующим протоколу обмена данными, некоторые — к неадаптированности конфигурации для работы в рамках распределенной информационной базе.

Общие ошибки, возникающие при работе с XML

Сообщение обмена данными является документом XML, поэтому имеет смысл описать возможные ошибки, которые могут возникнуть во время чтения/записи сообщений обмена данными при использовании средств чтения/записи данных XML, предоставляемых платформой «1С:Предприятие 8». При работе с данными в формате XML может возникать множество различных ситуаций, однако в данной статье будут рассмотрены только те, которые так или иначе имеют отношение к обмену данными в рамках распределенной информационной базы.

Значение URI пространства имен должно соответствовать рекомендации Namespaces in XML (см. http://www.w3.org/TR/REC-xml-names)

Производится попытка записи в XML значения, для типа которого не определена процедура записи в XML. Или производится попытка чтения из XML значения неизвестного типа или типа, для которого не определена процедура чтения из XML.

При обмене данными в рамках распределенной информационной базы используются штатные механизмы записи/чтения XML — ситуации, связанные с передачей некорректных данных, могут возникать только вследствие искажения сообщения обмена данными. В таком случае необходимо получить новое сообщение обмена данными от информационной базы — источника сообщения.
Если же сообщение содержит корректные данные и ошибка возникает в процессе считывания данных из базы данных (для последующего изменения их данными из сообщения обмена), то необходимо проверить наличие прав пользователя, от имени которого производится чтения сообщения обмена.
Также необходимо удостовериться, что в процессе чтения сообщения не возникает блокировки данных (например, чтение производится в рамках транзакции, а данные заблокированы другим пользователем), можно предпринять попытку чтения сообщения в монопольном режиме доступа к информационной базе.
Если вышеперечисленные способы не привели к устранению ошибки, то необходимо проверить целостность данных информационной базы

Ситуации, возникающие при обмене данными в рамках распределенной информационной базы

Сообщение об ошибке Описание ошибки
Возможные пути исправления ошибки
Не установлен MS XML Core Services 4.0 На компьютере не установлен Microsoft XML Core Services 4.0, используемый «1С:Предприятием 8» для работы с XML
Установить Microsoft XML Core Services 4.0. При установке «1С:Предприятия 8» Microsoft XML Core Services 4.0 устанавливается автоматически
Ошибка разбора XML Ошибка, возникающая при синтаксическом анализе данных XML в процессе чтения.
Все ошибки, определенные в SAX2, трансформируются в данную ошибку, генерируемую платформой «1С:Предприятие 8»
Проверить правильность оформления и синтаксис данных XML (см. http://www.w3.org/TR/REC-xml).
Ошибочный порядок записи XML Методы записи содержимого документа XML вызываются в неправильном порядке. Например, запись атрибута вызывается после записи текста элемента.
Выявить и исправить места некорректного порядка вызова методов
Текст XML содержит недопустимые символы Записываемый текст XML содержит недопустимые символы.
Текст XML должен соответствовать требованиям, изложенным в главе 2.2 рекомендации XML (см. http://www.w3.org/TR/REC-xml#charsets)
Недопустимое имя XML Записываемое имя XML содержит недопустимые символы.
Имя XML должно соответствовать требованиям, изложенным в главе 2.3 рекомендации XML (см. http://www.w3.org/TR/REC-xml#NT-Name)
Пустое значение URI допустимо только для пространства имен по умолчанию Производится попытка записать соответствие пространства имен, в котором URI пространства имен, представленному пустой строкой, соответствует непустой префикс.
Переопределение пространства имен по умолчанию для текущего элемента XML недопустимо Текущий записываемый элемент не относится ни к какому пространству имен. Поэтому для него недопустимо определение непустого пространства имен по умолчанию.
Переопределение пространства имен по умолчанию для элемента, не относящегося ни к какому пространству имен -запрещено
Ошибка преобразования данных XML Ошибка возникает вследствие нарушения структуры передаваемых данных.
При чтении данных XML платформой производится автоматическое определение типа получаемых данных, кроме случаев, когда тип данных указан при вызове операции чтения. Если структура данных XML не соответствует структуре данных, определяемых типом, то будет сгенерировано данное сообщение об ошибке.
При обмене данными в рамках распределенной информационной базы используются штатные механизмы записи/чтения XML. Данная ошибка является следствием искажения сообщения обмена. Необходимо повторно получить сообщение от информационной базы — источника сообщения
Значения данного типа не могут быть представлены в XML
Ошибка может возникнуть при участии в обмене информационных баз, имеющих различные конфигурации. Однако при обмене данными в рамках распределенной информационной базы поддерживается идентичность конфигураций информационных баз, участвующих в обмене. Данная ошибка является следствием искажения сообщения обмена. Необходимо повторно получить сообщение от информационной базы — источника сообщения
Ошибка данных XML Ошибка возникает при получении некорректных данных из источника XML или же в случаях неудачного считывания из базы данных содержимого объекта, данные которого должны быть прочитаны из источника XML: блокировка объекта или же отсутствие прав на чтение данного объекта.
Например, чтение существующего элемента справочника: если элемент справочника является группой, а было прочитано то, что является элементом, будет сгенерирована данная ошибка.

В случае чтения сообщения обмена данными от подчиненного узла в главном узле данная ситуация является штатной и означает наличие изменений конфигурации, которые еще не были получены в подчиненном узле — источнике сообщения.

Если же чтение сообщения от главного узла производится в подчиненном узле, то данная ситуация является следствием изменения конфигурации в подчиненном узле. Необходимо удостовериться, что обмен производится в правильно настроенной распределенной информационной базе (создание подчиненных узлов производилось при помощи рекомендованных способов) и в процессе работы не производилось изменения конфигурации подчиненной информационной базы (изменение в штатном режиме невозможно). Изменения конфигурации подчиненного узла может быть осуществлено только после отключения информационной базы от распределенной информационной базы — установка значения главного узла в Неопределено . В случае несанкционированного изменения конфигурации в подчиненном узле необходимо восстановить соответствие конфигураций путем полной загрузки конфигурации из главного узла

Сообщение об ошибке Описание ошибки
Возможные пути исправления ошибки
Узел не является узлом распределенной ИБ При вызове одного из методов встроенного языка, относящегося к распределенной ИБ, значение переданного параметра — узла плана обмена — не принадлежит плану обмена с установленным признаком «Распределенная информационная база».
Необходимо убедиться в правильности передаваемого в метод параметра
Запись сообщения обмена данными не начата В метод записи изменения данных передан в качестве параметра объект ЗаписьСообщенияОбмена , у которого не был вызван метод НачатьЗапись или был вызван метод завершения записи ( ПрерватьЗапись , ЗакончитьЗапись ).
Убедиться, что вызов записи изменений вызывается в рамках процесса записи объекта ЗаписьСообщенияОбмена
Чтение сообщения обмена данными не начато В метод чтения изменения данных передан в качестве параметра объект ЧтениеСообщенияОбмена , у которого не был вызван метод НачатьЧтение или был вызван метод завершения записи ( ПрерватьЧтение , ЗакончитьЧтение ).
Убедиться, что вызов чтения изменений вызывается в рамках процесса чтения объекта ЧтениеСообщенияОбмена .
Номер сообщения распределенной ИБ должен быть больше номера ранее принятого сообщения Производится попытка чтения старого (возможно, уже принятого) сообщения обмена данными.
Необходимо произвести синхронизации номера принятого сообщения в текущем узле распределенной ИБ и номера отправленного сообщения в узле — источнике сообщения обмена данными. Этого можно достичь при помощи непосредственного изменения соответствующих реквизитов у узлов плана обмена, по которому осуществляется работа, или выполнить запись необходимого количества сообщений обмена данными в узле — источнике сообщения
Начальный образ может быть выгружен только во вновь созданную или пустую ИБ По указанному месторасположению начального образа уже существует другая информационная база.
Необходимо убедиться, что при создании начального образа указано место, в котором не существует информационной базы
Ошибка формата представления изменений Структура и порядок следования элементов сообщения обмена данными не соответствуют требуемому.
При обмене данными в рамках распределенной информационной базы используются штатные механизмы записи/чтения XML. Данная ошибка является следствием искажения сообщения обмена данными. Необходимо повторно получить сообщение от информационной базы — источника сообщения
Попытка приема изменений от неизвестной конфигурации При попытке чтения сообщения обмена данными в рамках распределенной информационной базы обнаружено несоответствие конфигураций источника и приемника сообщения.
По всей видимости, сообщение обмена было записано для информационной базы, имеющей конфигурацию, отличную от данной. Подобная ситуация может произойти в случае ручной настройки распределенной информационной базы. Если подчиненный узел распределенной информационной базы создавался путем объединения конфигурации информационной базы и конфигурации главного узла, то внутренняя идентификация объектов метаданных не будет соответствовать конфигурации главного узла, что приводит к данной ошибке. Рекомендуется создавать информационные базы подчиненных узлов либо при помощи создания начального образа, либо при помощи полной загрузки конфигурации в информационную базу
Искажены изменения конфигурации! При попытке чтения сообщения обмена данными обнаружены искажения в передаваемых изменениях конфигурации.
Необходимо получить от источника сообщения новое сообщение обмена данными
Конфигурация узла распределенной ИБ не соответствует ожидаемой! Конфигурация текущей информационной базы была изменена по отношению к конфигурации информационной базы источника сообщения.
Изменения конфигурации не могут быть получены из подчиненного узла распределенной ИБ При чтении сообщения обмена, полученного от подчиненного узла, в нем обнаружены изменения конфигурации.
Подобная ситуация может возникнуть если имеет место искажение сообщения обмена, либо обмен производится в распределенной информационной базе с незавершенным процессом перестроения иерархии узлов. Необходимо убедится, что сообщение обмена получено без искажений и правильно заполнены узлы соответствующего плана обмена в обоих узлах распределенной информационной базы (источнике и приемнике сообщения).
Из главного узла распределенной ИБ получены изменения конфигурации.
Необходимо выполнить обновление конфигурации базы данных.
Обновление может быть выполнено в режиме Конфигуратор
Из главного узла получены изменения конфигурации.
Необходимо запустить систему в режиме Конфигуратор , произвести обновление конфигурации базы данных, после чего повторить чтение данного сообщения обмена в режиме 1С:Предприятие для завершения чтения сообщения.
Данные не входят в состав плана обмена При чтении сообщения обмена обнаружены данные, не входящие в состав плана обмена.
При обмене данными в рамках распределенной информационной базы используются штатные механизмы записи/чтения XML. Данная ошибка является следствием искажения сообщения обмена. Необходимо повторно получить сообщение от информационной базы — источника сообщения

При чтении сообщения обмена производится автоматическая запись полученных изменений данных в информационную базу. Если в процессе записи данных происходит ошибка, то процесс чтения сообщения прерывается. Для определения в процедурах записи элементов данных (объектов и наборов записей) режима записи после загрузки из сообщения обмена существует свойство Загрузка . Для корректной работы в рамках распределенной информационной базы процедуры записи элементов данных должны быть написаны с учетом произвольного порядка загрузки данных из сообщений обмена (например, не должны выполняться проверки связанной с записываемым элементом данных информации.

Источник

Управляемая форма. Работа с данными

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

Думаю при открытии на клиенте вызывать серверную процедуру которая вернет мне все данные, а уже потом эти данных хранить в переменных формы. Это правильный подход или можно как-то при создании на сервере это сделать?

Задачка несколько усложнилась, прошу совета как оптимальнее сделать.

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

К примеру есть Поле1, Поле2, Поле3, в зависимости от того что выбрано в Поле1 выбираем в Поле2 значение из определенного списка значений, и тоже в поле Поле3, т.е. Поле1 накладывает 2 ограничения на Поле2 и Поле3, может быть такое что для определенного значения Поле1 нужно вообще запретить ввод данных в Поле2 и Поле3.

Получается данные я могу собрать только на сервере (эту зависимость Поле2 и Поле3 от Поле1) она хранится в справочнике, как её передать на клиента? Таблицу значений не могу, хотя она по идее должна быть не большая (максимум строк 30, и колонок 2-3, правда в одну нужно запихнуть список значений получается). Есть мысль объявить глобальную переменную туда запихнуть эту таблицу, т.к. она своего рода константа, т.е. первый раз вызвали, нет таблицы — создали, далее уже обращается к созданной и через серверную функцию возвращать уже список значений. Или что-то интереснее кто предложит?

Источник

  

popeta

13.12.13 — 17:53

Здрасти!

Нахожу файлы, вывожу их в ТЗ, пытаюсь вывести итог по колонке

МассивНайденных = НайтиФайлы(ИсточникФайлов, ФильтрФайлов, Ложь);

    Для Каждого файл из МассивНайденных цикл

        НовСтр = ТабЗнач.Добавить();

        НовСтр.ИмяФайла = Файл.Имя;

        НовСтр.РазмерФайла = Файл.Размер()/1000;

        НовСтр.ВремяИзменения = Файл.ПолучитьВремяИзменения();    

    КонецЦикла;

ИтогИмя = ТабЗнач.Итог(«Имя файла»);

Но пишет, что

{Форма.Форма.Форма(79)}: Ошибка при вызове метода контекста (Итог)

    ИтогИмя = ТабЗнач.Итог(«Имя файла»);

по причине:

Неизвестная колонка

Не пойму, что не так делаю?

  

ДенисЧ

1 — 13.12.13 — 17:54

Итог по именам файла? О_о круто…

  

ДенисЧ

2 — 13.12.13 — 17:55

НовСтр.ИмяФайла

ТабЗнач.Итог(«Имя файла»);

Найди отличия

  

popeta

3 — 13.12.13 — 17:58

туплю, извиняюсь…

Вот теперь

МассивНайденных = НайтиФайлы(ИсточникФайлов, ФильтрФайлов, Ложь);

    Для Каждого файл из МассивНайденных цикл

        НовСтр = ТабЗнач.Добавить();

        НовСтр.ИмяФайла = Файл.Имя;

        НовСтр.РазмерФайла = Файл.Размер()/1000;

        НовСтр.ВремяИзменения = Файл.ПолучитьВремяИзменения();    

    КонецЦикла;

ИтогИмя = ТабЗнач.Итог(«ИмяФайла»);

теперь в любом случае выводит 0

  

Wobland

4 — 13.12.13 — 18:00

(3) ожидал что-то вроде «chemaxrus119.exe

«golden_earing_-_going_to_the_run_(zaycev.net).mp3»

hooters_-_johnny_b.mp3

«Irma Thomas — Anyone Who Knows What Love Is.mp3»

«Led Zeppelin — Immigrant Song.mp3» ?

  

Wobland

5 — 13.12.13 — 18:01

продам СП. 86му году скиди

  

Жан Пердежон

6 — 13.12.13 — 18:02

(5) не отбирай хлеб у Денисыча

  

popeta

7 — 13.12.13 — 18:04

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

  

Wobland

8 — 13.12.13 — 18:05

(7) что ты хочешь от строки? оставь её в покое

  

Wobland

9 — 13.12.13 — 18:05

(6) думаю, тут можно и два раза продать

  

popeta

10 — 13.12.13 — 18:06

вывести в итог количество строк в таблице

  

Wobland

11 — 13.12.13 — 18:06

(10) количество, говоришь?

  

Жан Пердежон

12 — 13.12.13 — 18:07

(10) и причем тут колонка, если тебе нужно количество строк?

  

Wobland

13 — 13.12.13 — 18:07

(12) бывают такие таблицы, у которых количество строк не совпадает по колонкам. я видел не так давно здесь

  

popeta

14 — 13.12.13 — 18:11

короче никто не подскажет?

  

Wobland

15 — 13.12.13 — 18:11

(14) клчств

  

Euguln

16 — 13.12.13 — 18:13

(13) 0_о  о как, а мужики то не знают.

  

Euguln

17 — 13.12.13 — 18:14

(14) Тупой но надежный способ

МассивНайденных = НайтиФайлы(ИсточникФайлов, ФильтрФайлов, Ложь);

КоличествоСтрок = 0;

    Для Каждого файл из МассивНайденных цикл

        НовСтр = ТабЗнач.Добавить();

        НовСтр.ИмяФайла = Файл.Имя;

        НовСтр.РазмерФайла = Файл.Размер()/1000;

        НовСтр.ВремяИзменения = Файл.ПолучитьВремяИзменения();

КоличествоСтрок = КоличествоСтрок + 1;  

    КонецЦикла;

  

popeta

18 — 13.12.13 — 18:15

спс, рзбрлс

Содержание:

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Пробуем:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Марина Богданович

Дата регистрации: 11.01.2017
Сообщений: 1

Добрый день!перестал проводиться документ»Начисление зарплаты» после установки обновления.Программа пишет «Ошибка при вызове метода контекста (Свернуть).Неверное имя колонки».что это может быть и как исправляется?или только обновлением лечится?

kubiky

Дата регистрации: 15.01.2007
Сообщений: 88

Жертва 1С

Дата регистрации: 08.10.2016
Сообщений: 468

2.0.66.7 релиз БП был отозван то ли 10.01, то ли 09.01.2017

Показывать по
10
20
40
сообщений

Доброй ночи, уважаемые коллеги!

Очень нужна ваша помощь!!! 1С:Предприятие 8.3 (8.3.15.1489), Конфигурация: Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.71.89) 
При закрытии месяца вылезает такая ошибка:
 Обработка Реализация (акт, накладная) 0000-000001 от 14.06.2019 12:00:01 не выполнена по причине: 
{Обработка.ГрупповоеПерепроведениеДокументов.МодульМенеджера(1986)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ОбработкаПроведения’: {ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(209)}: Ошибка при вызове метода контекста (Скопировать): Неверное имя колонки.

Отдельно провести эти документы тоже не дает, пишет неверное имя колонки. Где копать? Что искать? Вчера все было нормально. Очень надеюсь на вашу помощь!!! Заранее всем благодарна!

Заполнить и подать уведомление об исчисленных суммах налогов и взносов

г. Московская область6 221 балл

Попробуйте из конфигуратора запустить тестирование и исправление базы
Только предварительно скопируйте базу

Настя_Д, Спасибо огромное!! Все получилось👏

Часто встречаемые ошибки

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

  • Всплывающие окно «Предупреждение безопасности»



    Если у вас возникает такое всплывающие окно, необходимо нажать «да». После этого еще раз нажать «ок» в следующем окне. Еще раз нажать «да» в следующем окне.

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

  • Ошибка «Неверное имя колонки»

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

    Необходимо открыть phpmyadmin открыть таблицу товаров и найти колонки ext_id и ext_update_id если их нет, попробуйте создать их вручную командой ALTER TABLE jos_virtuemart_products ADD ext_id VARCHAR( 256 );

    Если появляется сообщение «#1118 — Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs» значит ошибка происходит. Для ее устранения нужно найти колонку в таблице которая занимает много места, в данном случае это колонка называется — intnotes и занимает она 18000 знаков, это очень много. Необходимо перевести тип этой колонки в text

    Только для продвинутых пользователей.

  • Лицензия не создана. Более подробно об этой ошибке — 1c-mart.ru/litsenziya-ne-sozdana

    Если у вас возникает данная ошибка необходимо: пройти по ссылке и ответить на все вопросы и выполнить все пункты.

    Также можно проверить следующие моменты:

    1. Проверить заведена ли организация на которую был куплен модуль в базу 1C: Предприятие (ИНН), если нет, необходимо обязательно ее создать в базе 1С.

    2. Если организация заведена и раньше модуль работал исправно, тогда нужно проверить устанавливали ли вы модуль на другой ПК, меняли железо ПК, переустанавливали Windows если устанавливали Вам необходимо сбросить привязку к ПК. Для этого необходимо зайти в свой личный кабинет и выполнить сброс привязки, более подробно по работе с личным кабинетом можно узнать по ссылке.

    3. Если вбить организацию по какой-то причине в 1C: Предприятие нельзя в этом случае можно передать лицензию другому юр.лицу. Для этого необходимо написать письмо на почту info@1c-mart.ru с пометкой передача лицензии другому юр. лицу указать в теле письма старые и новые реквизиты и причину передачи. Пример (Покупали модуль на дизайн студию а пользоваться модулем будет заказчик сайта).

    4. Если лицензия не создается даже если все прописано попробуйте открыть сайт www.1c-mart.ru в IE именно из IE берутся настройки соединие с интернетом и иногда интернет как бы работает а лицензия не создана.

    5. Если лицензия не создается даже если все прописано а раньше все работало, тогда возможно наш сервер лицензий заблокировал ваш IP из-за частых обращений к серверу лицензии.Также при этом не открывается наш www.1c-mart.ru ни в каком браузере.

    В одну лицензию входи одновременное использование до трех раб. мест.

  • Модуль работает как демоверсия, необходимо получить лицензию!

    Если у вас возникает данная ошибка необходимо: пройти по ссылке и ответить на все вопросы и выполнить все пункты.

    Также можно проверить следующие моменты:

    1. Проверить заведена ли организация на которую был куплен модуль в базу 1C: Предприятие (ИНН), если нет, необходимо обязательно ее создать в базе 1С.

    2. Если организация заведена и раньше модуль работал исправно, тогда нужно проверить устанавливали ли вы модуль на другой ПК, меняли железо ПК, переустанавливали Windows если устанавливали Вам необходимо сбросить привязку к ПК. Для этого необходимо зайти в свой личный кабинет и выполнить сброс привязки, более подробно по работе с личным кабинетом можно узнать по ссылке.

    3. Если вбить организацию по какой-то причине в 1C: Предприятие нельзя в этом случае можно передать лицензию другому юр.лицу. Для этого необходимо написать письмо на почту info@1c-mart.ru с пометкой передача лицензии другому юр. лицу указать в теле письма старые и новые реквизиты и причину передачи. Пример (Покупали модуль на дизайн студию а пользоваться модулем будет заказчик сайта).

    4. Если лицензия не создается даже если все прописано попробуйте открыть сайт www.1c-mart.ru в IE именно из IE берутся настройки соединие с интернетом и иногда интернет как бы работает а лицензия не создана.

    5. Если лицензия не создается даже если все прописано а раньше все работало, тогда возможно наш сервер лицензий заблокировал ваш IP из-за частых обращений к серверу лицензии.Также при этом не открывается наш www.1c-mart.ru ни в каком браузере.

    В одну лицензию входи одновременное использование до трех раб. мест.

  • При возникновении данной ошибки обратитесь к http://help3.1c-mart.ru/bugs.php

    Если у вас возникает данная ошибка необходимо: Проверить соединение с сайтом.

  • Ошибка загрузки документа. Внешняя обработка не может быть прочитана текущей версией программы

    Если у вас возникает данная ошибка, необходимо:
    1. Открыть конфигуратор

    2. Выбрать пункт Файл — > Открыть (Cntr-O)
    3. Выбрать файл который вы не можете открыть epf

    4. Нажать кнопку «Да»
    5. Закрыть конфигуратор.
    6. Запустить модуль заново, ошибка «Ошибка загрузки документа. Внешняя обработка не может быть прочитана текущей версией программы» — пропадет
    Проделать нужно всего один раз. В дальнейшем данная ошибка возникать не будет.
     

  • Не выгружается товар (У нас очень много товара более 10 тысяч шт.)

    При большом кол-ве товаров рекомендуется подключаться напрямую т.е. напрямую к MYSQL (Второй способ подключения)

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

  • Не выгружается товар (соединение по tunnel.php)

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

    Строгий режим появился еще в MySQL 5.1, но стал обязательным в MySQL 5.7.

    Строгий режим отключается в конфигурационных файлах:

    /etc/my.cnf
    /etc/mysql/my.cnf
    SYSCONFDIR/my.cnf
    $MYSQL_HOME/my.cnf
    ~/my.cnf

    Необходимо выставить такие значения:

    [mysqld]
    sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

  • Конструктор не найден

    {Форма.Форма(номер_строки,номер_символа)}: Конструктор не найден Сервер = Новый FTPСоединение(ФТПСервер, , ПользовательФТП, ПарольФТП, , ПассивныйРежим, ) ;

    Если у вас возникает данная ошибка необходимо обновить платформу 1С:Предприятие 8.1 до последнего релиза 8.1.15.14

  • Раньше картинки выгружались, а сейчас нет

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

  • Если не выгружаются изображения товаров на сайт через tunnel.php

    Если у вас выгружается товар, но не выгружаются изображения товара через tunnel.php, тогда попробуйте уменьшить Размер архива (mb) до 1 mb. Возможно ваш хостер не позволяет загружать большие объемы через php. Если при уменьшении Размер архива (mb) картинки стали выгружаться, тогда вам нужно написать вашему хостингу с просьбой об увеличении лимита загрузки файлов до требуемого вам размеров.

  • «Итератор не найден» или «Итератор для значения не определен»

    Данная ошибка может возникнуть при запуске на одном пк модуля на разных конфигурациях, например запускаете модуль под Розница ред.2.2 и Управление торговлей ред.11. Для ее устранения нужно очистить временную папку temp пользователя windows.

  • Не хватает прав на открытие внешней обработке (Нарушение прав доступа)


    Если у вас при открытии модуля интеграции возникает такая ошибка, значит у пользователя под которым вы запускаете модуль не достаточно прав, для устранения ошибки нужно добавить роль пользователю — «Интерактивное открытие внешних отчетов и обработок» в конфигураторе у выбранного пользователя 1С в настройках пользователя.

  • Нет выпадающего списка баз MYSQL

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

  • В настройках модуля нет вкладки «SEO»

    Если у вас конфигурация «Управление Торговлей ред. 11» и в разделе настройки нет вкладки «SEO». Вам нужно перейти «НСИ и администрирование» — «Общие настройки» — «Дополнительные реквизиты и сведения» и поставить галочку «Дополнительные реквизиты и сведения»

  • Не отображаются товары на сайте.

    Если у вас не отображаются товары на сайте, но в админ части сайта они есть, возможно статус публикации товара — не опубликовывать. По умолчанию модуль выгружает товар на сайт, но если у него нет цены и остатка, такой товар не публикуется. Также товар без остатка тоже не публикуемая. Для отмены этих правил в настройках модуля есть соответствующие галочки «Публиковать весь товар» и «Публиковать отсутствующий товар»

  • (VPS) Соединение есть, но при выгрузке возникает ошибки

    Если вы используете VPS и при соединении у вас есть коннект, но при выгрузке модуль выдает ошибки, возможно это связанно с некорректным настроенным MYSQL.

    По умолчанию mysql (по крайней мере последних версий) идёт с настройками NO_ZERO_DATE, NO_ZERO_IN_DATE и strict sql mode которые не позволяют иметь поля типа даты со значением по умолчанию типа 0000-00-00.

    В файле /etc/mysql/mysql.conf.d/mysql.cnf: в конце нужно добавить параметр :

    sql_mode=ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,
    NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

  • Вместо русских букв после обновление товаров на сайте, появляются знаки вопросов «?????»

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

    Первый способ решение вопроса:

    Для решение этого вопроса необходимо открыть phpMyAdmin вашей базы данных сайта, выбрать базу вашего интернет-магазина, перейти во вкладку «Операции» в меню «Сравнение» необходимо выбрать utf8_general_ci нажать кнопку «ok»

    Второй способ решение вопроса:

    Для решение этого вопроса необходимо открыть phpMyAdmin вашей базы данных сайта, выбрать базу вашего интернет-магазина, перейти во вкладку «SQL«

    Выполнить запрос:

    SELECT CONCAT( ‘ALTER TABLE `’, t.`TABLE_SCHEMA` , ‘`.`’, t.`TABLE_NAME` , ‘` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;’ ) AS sqlcode
    FROM `information_schema`.`TABLES` t
    WHERE 1
    AND t.`TABLE_SCHEMA` = ‘My_DB_for_convert’
    ORDER BY 1
    LIMIT 0 , 90

    Вместо My_DB_for_convert необходимо указать имя базы данных

  • Вместо русских букв после выгрузки товаров на сайте — «Каракули»

    Особенностью этой ошибки являться то, что она появлется только при использовании типа соеднения сайта через файл tunnel.php.

    Cпособ решение вопроса:

    Для решение этого вопроса необходимо сгенерировать файл tunnel.php по ссылке — сгенерировать файл

  • Превышен максимальный расход памяти сервера за один вызов

    Данная ошибка вызывается из-за настроек сервера 1С. В настройках сервера в параметре «Безопасный расход памяти за один вызов» по умолчанию указано значение «0».

    Нулевое значение параметров «Максимальный объем памяти рабочих процессов» и «Безопасный расход памяти за один вызов» значит использование величины по умолчанию, которая равна 80% объема физической оперативной памяти и 10% от «Максимального объема памяти рабочих процессов» соответственно.

    Решение:

    Для отмены ограничения можно установить значение -1 в параметр «Безопасный расход памяти за один вызов». После установки параметров необходимо перезагрузить сервер 1С.

    Так же нужно увеличить файл подкачки на WINDOWS SERVER

  • Нет выпадающего списка Категорий на сайте, при использовании «КатегорииНаСайте«

    Если у вас нет в выпадающем списке категорий которые вы завели на сайте через админку сайта, нужно проверить русифицирован ваш CMS или нет, если не русифицирован — нужно русифицировать .

Если вы не нашли ответа на свой вопрос по настройкеработе модуля в инструкции в разделах «Установканастройкаиспользование», вы можете получить ответ на этот вопрос в службе технической поддержки в личном кабинете на нашем сайте. Подробнее как это сделать

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

  1. Приобрел у Вас обработку для VirtueMart 2.0.x.
    Настроил как в прямом подключении к БД, так и при обычном подключении к сайту возникает одна и таже ошибка:

    {Обработка.VirtueMart_v3cr.МодульОбъекта(349)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныйТовар = ТоварыНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки.

    Подскажите как можно исправить эту ошибку?

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

    index.png

  3. Здравствуйте, у меня возникла точно такая же проблема — при выгрузке товара на сайт появляется эта же ошибка, 10 раз проверила все настройки, все правильно, и префикс таблицы вбит правильно…
    Как решить эту проблему?

  4. Добрый день
    Тоже недавно получил модуль и никак не могу побороть эту ошибку

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(687)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

  5. У меня эта проблема решилась путем выключения реквизита прямой доступ к базе данных mysql, с самыми простыми настройками

  6. У меня эта ошибка выглядит так:
    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(1936)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

    И никакие настройки модуля не помогают от нее избавится…

  7. Ошибка получается в этом куске кода:

    Попытка   
                           
                            ЗначениеЧисло = Число(СвойствоНайденное.Значение);
                            idФильтра = 0;
                           
                        Исключение
                           
                            ЗначениеТекст = СокрЛП(СвойствоНайденное.Значение);
                            ЗначениеЧисло = 0;
                            //находим айди товара по артикулу
                            Отбор = Новый Структура();
                            Отбор.Вставить("value",СокрЛП(СвойствоНайденное.Значение));
                            Найденный = ТаблицаЗначенийСвойств.НайтиСтроки(Отбор);
                            Если Найденный.Количество()>0 Тогда
                                idФильтра = Найденный[0].id;
                            КонецЕсли;
     
                        КонецПопытки;                         
       
                        НоваяСатрока = ТипыТовараДляВыгрузкиMyExt.Добавить();
                        НоваяСатрока.DATA = "('"+ Формат(idТовара, "ЧГ=0") + "','" + Формат(idДанных, "ЧГ=0") + "','" + СокрЛП(idФильтра) + "','"  + Формат(ЗначениеЧисло, "ЧГ=0") + "')";       
                                                               
                    КонецЦикла;
     
                Иначе
                   
    

    Вот в этой строке: Отбор.Вставить(«value»,СокрЛП(СвойствоНайденное.Значение));

  8. тоже не работает

    {ВнешняяОбработка.VirtueMart_v3cr.МодульОбъекта(517)}: Ошибка при вызове метода контекста (НайтиСтроки)
    НайденныаяСсылкаГруппа = ТаблицаКатегорий.НайтиСтроки(Отборссылки);
    по причине:
    Неверное имя колонки

    причем у меня в настройках сайта префикс для таблиц VirtueMart (1.1.5) все же стоит — vm
    а при выборе в окне своей базы автоматом ставится — jos_vm
    но не работает не так не так.

  9. Префикс можно узнать использую эту инструкцию, раздел «настройка»

  10. тоже не работает!

    {ВнешняяОбработка.JoomShopping_v3cr.МодульОбъекта(148)}: Ошибка при вызове метода контекста (НайтиСтроки)
    Найденный = ЕдиницНаСайте.НайтиСтроки(Отбор);
    по причине:
    Неверное имя колонки

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

  11. при этом кнопка «Очистить таблицы JoomShopping» работает нормально — товары с сайта удалились.

  12. точно такая же ошибка при работе через tunnel.php!

  13. Читайте инструкцию в ней описана ситуация, когда не работает подключение через туннель, и написано, что можно сделать — http://help.1c-mart.ru/

  14. инструкцию читал — все настройки для tunnel.php сделаны. выставлены права доступа, внесена строчка в .htaccess.
    по-прежнему не работает.

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

    что делать-то?

  15. все локально установлено — 1с, апач, пхп, мускл.

  16. Точно такая же история
    {Внешняя Обработка.OpenCart_v4cr.Форма.Форма.Форма(2775)}: Ошибка при вызове метода контекста (НайтиСтроки) НайденныйBrend = БрендыНаСайте.НайтиСтроки(ОтборBrend); по причине: Неверное имя колонки

    После этого обработка пишет «ошибка соединения» и так минут 5-10

    В базе данных на сайте удалил всех производителей, выгружаю заново, но производители выгружаются, а товары нет/ И снова в 1с такая же ошибка

    В чем может быть дело?

  17. Нет, opencart 2x. Подключение через тунель Ввша команда настраивала


    Administrator нравится это.

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

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

  • Ошибка при вызове метода контекста найтипоуникальномуидентификатору
  • Ошибка при вызове метода контекста найтипонаименованию несоответствие типов параметр номер 4
  • Ошибка при вызове метода контекста найтипотипу несоответствие типов параметр номер 1
  • Ошибка при вызове метода контекста найтипонаименованию нарушение прав доступа
  • Ошибка при вызове метода контекста найтипомеченныенаудаление