Ошибка при вызове метода контекста (Скопировать)
17.07.2019, 22:40. Показов 5240. Ответов 3

Добрый день!
Бухгалтерия 3.0 КОРП
При проведении дописанного документа «корректировка реализации» вылезает ошибка:
{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(209)}: Ошибка при вызове метода контекста (Скопировать)
Возврат ИсходнаяТаблица.Скопировать(, СписокКолонок);
по причине:
Неверное имя колонки
Неверное имя колонки
Перечень переменной «СписокКолонок»:
Кликните здесь для просмотра всего текста
ИмяСписка,НомерСтроки,Номенклатура,Количество,СуммаВзаиморасчетов,СуммаРуб,Сумма НДСРуб,СуммаБУ,СуммаНУ,СчетДоходов,Субконто,СтавкаНДС,СчетУчетаНДСПоРеализации,С уммаСписания,СуммаСписанияНУ,КорСчет,КорСубконто1,КорСубконто2,КорСубконто3,Конт рагент,ВалютаВзаиморасчетов,Подразделение,ПодразделениеЗатрат,ЭтоКомиссия,ЭтоУсл уга,Комитент,ДоговорКомиссии,СчетРасчетовСКомитентом,СчетАвансовСКомитентом,Валю таРасчетовСКомитентом,СуммаРасчетовСКомитентом,СуммаПоступленияОтКомитента
Из всего списка внесенный дополнительный элемент «ПодразделениеЗатрат».
Не могу понять в каком направлении искать причину.
0
2021-09-17_19-32-03.mp4
Информация для технической поддержки
Платформа: 8.3.19.1229
Режим БД: клиент-серверный
Конфигурация. Название: 1С:ERP Управление предприятием 2 (2.5.6.261)
Конфигурация. Основной режим запуска: Управляемое приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим управления блокировкой данных: Управляемый
Конфигурация. Режим совместимости: Версия8_3_16
Конфигурация. Версия БСП: 301
Инструменты разработчика. Версия: Портативный 6.09.1p
Инструменты разработчика. Инструмент: Консоль запросов
Инструменты разработчика. Перехват клавиатурного ввода: Да
Инструменты разработчика. Объекты на сервере: Нет
Инструменты разработчика. Серверный модуль: Да
Клиент. ОС: Майкрософт Windows 10 Pro 64-разрядная Русский
Клиент. Приложение: Обычное приложение 64б
Клиент. Проверка модальных вызовов: Нет
Клиент. Язык интерфейса конфигурации: ru
Клиент. Язык интерфейса системы: ru
Клиент. От имени администратора Windows: Нет
Сервер. ОС: Windows x86-64 Microsoft Windows 10 version 10.0 (Build 19043)
При клике на ячейку в нижней ТЧ на вкладке «Поля объединения» возникает ошибка при установленном флажке «Автоматически отвязывать текущее поле»:
Ошибка при вызове метода контекста (Скопировать)
{ВнешняяОбработка.ирКлсПолеТекстаПрограммы.Форма.КонструкторЗапроса.Форма(4141)}: ИмяПоля = ирОбщий.АвтоУникальноеИмяВКоллекцииЛкс(СтрокаПоля.Владелец().Скопировать(ОтборКонкурентов, "НИмя"), ИмяПоля, "НИмя",,,, Истина);
{ВнешняяОбработка.ирКлсПолеТекстаПрограммы.Форма.КонструкторЗапроса.Форма(8425)}: АвтоПсевдонимОтвязанногоПоля = ПолучитьАвтоПсевдонимПоля(СтрокаДляОтвязки, ВыбраннаяЧасть);
{ВнешняяОбработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(2760)}: РезультатФормы = КонструкторЗапроса.ОткрытьМодально();
{ВнешняяОбработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(930)}: Результат = ВызватьКонструкторЗапросов(Истина);
{ВнешняяОбработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(891)}: Результат = ВыполнитьКоманду(Команда);
{ВнешняяОбработка.ирКонсольЗапросов.Форма.Форма.Форма(284)}: Результат = ЭкземплярКомпоненты.Нажатие(Кнопка);
по причине:
Неверное имя колонки
Пример запроса:
ВЫБРАТЬ
"Тест" КАК Поле1,
NULL КАК Поле2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
NULL КАК Поле1,
"Тест" КАК Поле2
Неверное имя колонки |
Я |
05.05.15 — 17:54
День добрый! Подскажите, пожалуйста, подгружаю документы из txt внешней обработкой, досталась от предыдущего программиста, после обновления выдает такое сообщение
{Обработка.ИмпортДокументов.Форма.ФормаУправляемая.Форма(1824)}: Ошибка при вызове метода контекста (Записать)
Возв.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(195)}: Ошибка при вызове метода контекста (Скопировать)
Возврат ИсходнаяТаблица.Скопировать(, СписокКолонок);
по причине:
Неверное имя колонки
В какую сторону смотреть?
1 — 05.05.15 — 17:56
(0) в сторону неверного имени колонки)
2 — 05.05.15 — 17:58
(1) которые находятся в списке СписокКолонок. Вдруг так понятнее будет.
3 — 06.05.15 — 09:02
Как ни странно, я догадался что в СписокКолонок, как мне именно этот список увидеть, я пересмотрел все, где именно формируется этот список не понял(
4 — 06.05.15 — 09:04
в отладчике же
5 — 06.05.15 — 09:06
(0) стань курсором на СписокКолонок и нажми F12
6 — 06.05.15 — 09:07
(1) Не, должен быть более захватывающий сюжет!
7 — 06.05.15 — 09:08
(5) Получит параметр процедуры. И что дальше?
Не, только (4) спасёт отца русской демократии!
8 — 06.05.15 — 09:12
(7) Если пришло параметром в процедуру, то стек вызовов дальше используем (в отладчике конечно) 
9 — 06.05.15 — 09:15
(8) Мне не нужно объяснять. Нужно ТС дать рекомендацию, которая максимально поможет. А это точка прерывания и просмотр значения переменной в отладчике.
Значение переменной может формироваться динамически на основании данных запроса, например.
10 — 06.05.15 — 17:43
При F12 натыкаюсь сюда
Функция ПолучитьТаблицуПараметровПроведения(ИсходнаяТаблица, СписокКолонок) Экспорт
Если ИсходнаяТаблица = Неопределено Тогда
ТаблицаРезультат = Новый ТаблицаЗначений;
Колонки = Новый Структура(СписокКолонок);
Для каждого Колонка Из Колонки Цикл
ТаблицаРезультат.Колонки.Добавить(Колонка.Ключ);
КонецЦикла;
Возврат ТаблицаРезультат;
Иначе
Возврат ИсходнаяТаблица.Скопировать(, СписокКолонок);
КонецЕсли;
КонецФункции
11 — 06.05.15 — 17:47
(10) и что в этой процедуре непонятного?
12 — 06.05.15 — 17:48
непонятно из каких колонок состоит этот СписокКолонок
13 — 06.05.15 — 17:49
из колонок ИсходнаяТаблица? Внезапно…
14 — 06.05.15 — 17:50
Согласен, тупанул, ИсходнаяТаблица — она каким образом и с какими колонками формируется
15 — 06.05.15 — 17:50
(14) отладчик?
16 — 06.05.15 — 17:54
далее чем Если ИсходнаяТаблица = Неопределено Тогда
отладчик никуда не идет
17 — 06.05.15 — 17:55
(16) тебе дальше и не нужно, переменную списокКолонок посмотри отладчиком, чего тупишь?
18 — 06.05.15 — 17:59
посмотрел, до обновления там есть список колонок по названиям, после обновления, там пустота, функция экспортная, откуда в эту переменную передаются колонки, не пойму
Serg_1960
19 — 06.05.15 — 18:04
Анализируй стек вызовов — строки выше по списку, чем строка с вызовом функции ПолучитьТаблицуПараметровПроведения()
В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.
Исправляем ситуацию
Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.
Приглашаем на
бесплатный вебинар!
06 июня в 11:00 мск
1 час
Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| ";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.
Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа ";
НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
КонецЦикла;

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

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

Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.
-
Добрый день!возникла такая проблема с загрузкой файла. Есть центральная база,обмен данными идем с двумя другими,на одной из них при загрузке данных выдает сообщение( см.ниже) хотя выгрузка идет! 1с 8.2
Ошибка при копировании файла из \192.168.10.2ExchangeMessage_111_333.zip в C:Documents and SettingsОбмен_РИБLocal SettingsTemp1ПолныйМагистральнаяMessage_111_333.zip
Ошибка при вызове метода контекста (КопироватьФайл): Ошибка копирования файлов: Ошибка копирования файлов из ‘\192.168.10.2ExchangeMessage_111_333.zip’ в ‘C:Documents and SettingsОбмен_РИБLocal SettingsTemp1ПолныйМагистральнаяMessage_111_333.zip’ : Ошибка доступа к файлуТехническая информация:
{ОбщийМодуль.ПроцедурыОбменаДанными.Модуль(571)}: Ошибка при вызове метода контекста (КопироватьФайл): Ошибка копирования файлов: Ошибка копирования файлов из ‘\192.168.10.2ExchangeMessage_111_333.zip’ в ‘C:Documents and SettingsОбмен_РИБLocal SettingsTemp1ПолныйМагистральнаяMessage_111_333.zip’ : Ошибка доступа к файлу -
Offline
Элла
Опытный в 1С- Регистрация:
- 19 фев 2013
- Сообщения:
- 59
- Симпатии:
- 0
- Баллы:
- 26
Вроде написано — «Ошибка доступа к файлу»
Значит нужно проверить права доступа к расположению файлов тех пользователей, под которыми запускается 1С.
По крайнер мере это первое, что приходит в голову…. -
Общий доступ открыт…он файл то выгружает в ту папку,но не может чтото сделать с загрузкой…
просто в папку Exchange захожу и нормально -
Offline
Dmitriy_76
Опытный в 1С
Команда форума- Регистрация:
- 26 мар 2011
- Сообщения:
- 2.224
- Симпатии:
- 15
- Баллы:
- 29
ну а в паку : C:Documents and SettingsОбмен_РИБLocal SettingsTemp1ПолныйМагистральная как заходишь ?
-
это локальная папка на серваке,просто заходит и все,а и кстати когда захожу просто в Exchange и хочу копировать,пишет сетевое имя более не доступно
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
папка то на серваке, а обращаетесь вы к ней с обычного рабочего компа?
вот так он ищет по адресу в сети у вас \192.168.10.2ExchangeMessage_111_333.zip, а так на конкретной машине на диске С — C:Documents and SettingsОбмен_РИБLocal SettingsTemp1ПолныйМагистральнаяMessage_111_333.zip, проверьте адрес
-
\192.168.10.2ExchangeMessage_111_333.zip — это папка на др.сервере(общий доступ) с которой качаются файлы для обмена… вон этот файл: Message_111_333.zip по идее должен копировать в C:Documents and SettingsОбмен_РИБLocal SettingsTemp1ПолныйМагистральная и там как то делает в .xml
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
я не совсем поняла, доступа нет к какому файлу? к тому что на сервере или на машине?

