Меню

1с ошибка компиляции при вычислении выражения или выполнении фрагмента кода

Доброго дня!

1С:Предприятие 8.3 (8.3.9.2170), Управление производственным предприятием, редакция 1.3 (1.3.90.1). Формы обычные.

Есть кусок кода (хранится в справочнике):

Если Не ГМЗ_СогласованиеДокументов.ТребоватьПроверкуРасценкиЗаказногоЛимита(ПараметрыВыполненияКода.СсылкаДокумента) Тогда
    // Два ЕСЛИ, чтобы сократить длину строки

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

В модуле формы обработки вызываю

ПараметрыВыполненияКода = Новый Структура("СсылкаДокумента, СсылкаПроверяемогоЭтапа, НовоеСостояниеДокумента, СтатусОбработкиДокумента");
ПараметрыВыполненияКода.СсылкаДокумента = СтрокаТабличнойЧасти.Ссылка; 
ПараметрыВыполненияКода.СсылкаПроверяемогоЭтапа = НовыйЭтап; 
ПараметрыВыполненияКода.НовоеСостояниеДокумента = НовоеСостояниеТекущегоДокумента;
ПараметрыВыполненияКода.СтатусОбработкиДокумента = ""; 
Выполнить(КодПостОбработки);

Вылезает вот такая ошибка: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(37,96)}: Ожидается символ ')'

Несмотря на это, при вставке кода напрямую в модуль формы (вместо Выполнить(КодПостОбработки)) все работает!

Я пытался уменьшить длину строк текста, все тщетно. Может, есть какие-то ограничения платформы?

Спасибо.

Доброе утро,у меня 1с 8,2 2.0.63.5
Набираю шаблон типовой операции,программа выдает ошибку:
Формула содержания операции:  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,20)}: Ожидается символ ‘;’
Формула суммы операции:  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,17)}: Неправильная константа типа Число
Что делать? Я не программист,может кто обычным птичьим языком объяснит?Спасибо.

Добрый день!

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

Цитата (оксана пытли):Доброе утро,у меня 1с 8,2 2.0.63.5
Набираю шаблон типовой операции,программа выдает ошибку:
Формула содержания операции:  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,20)}: Ожидается символ ‘;’
 

Программа состоит из операций — действий, каждая операция имеет свой синтаксис — правила написания, чтобы компьютер мог понять. Операция 1С должна заканчиваться точкой с запятой «;». Вы забыли этот знак поставить.

Цитата (оксана пытли):Формула суммы операции:  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,17)}: Неправильная константа типа Число
Что делать? Я не программист,может кто обычным птичьим языком объяснит? Спасибо.

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

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

Спасибо большое,надеюсь,в Новом году я буду задавать более сложные вопросы,ну,или сама находить на них ответы!!!!

Я программированием 1С не владею, поэтому использовал рекомендации из статьи «Загрузка данных в 1С из Excel. Часть 2. Загрузка справочника номенклатуры в 1С:Управление торговлей 8 из прайс-листа Excel» http://www.online-ufa.ru/conte… el_part_2/, где загрузка идет через типовую обработку «ЗагрузкаДанныхИзТабличногоДокумента.epf», которая приведена на диске ИТС.

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

Скриншот настройки загрузки для этого случая приведен во вложении.
И здесь «Выражение Искать по:» такое (я его не придумывал, оно приведено в статье):

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекущиеДанные["Артикул"]); 
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796); 
ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору";,БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры); 
Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); 
НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения); 
НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения; 
НайденнаяЕдиницаОбъект.Коэффициент = 1; 
НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры; 
Попытка НайденнаяЕдиницаОбъект.Записать(); 
Результат = НайденнаяЕдиницаОбъект.Ссылка; 
Исключение Сообщить("Не удалось записать"); 
КонецПопытки; 
Иначе Результат =ТекСпр.Ссылка; 
КонецЕсли;

При исполнении получаю диангостическое сообщение:

Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(3,79)}: Ожидается символ ‘)’

Что здесь неверно и как исправить?

Ошибка при выгрузке из УТ 10.3 в БП 2.0

Ситуация такая УТ нетиповая, БП — типовая
делаю выгрузку через УниверсальныйОбменXML по стандартным привилам УТ с БП 2.0
и при нажатии Выгрузить данные вылазит ошибка:

Ошибка в обработчике события ПередВыгрузкойДанных (конвертация)
Обработчик = ПередВыгрузкойДанных (конвертация)
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML(12582)
КодСообщения = 62

сам модуль перед выгрузкой вот:
Параметры.Вставить(«ВалютаРегламентированногоУчета», Константы.ВалютаРегламентированногоУчета.Получить());
Параметры.Вставить(«ВалютаУправленческогоУчета», Константы.ВалютаУправленческогоУчета.Получить());

Если НЕ Параметры.ПервыйОбмен Тогда

Параметры.Вставить(«ДатаНачалаВыгрузкиДокументов»,УзелДляОбмена.ДатаНачалаВыгрузкиДокументов);
Параметры.Вставить(«ПередаватьТолькоДокументыОтраженныеВБухгалтерскомУчете»,УзелДляОбмена.ПередаватьТолькоДокументыОтраженныеВБухгалтерскомУчете);

Параметры.Вставить(«ИспользоватьФильтрПоОрганизациям»,?(УзелДляОбмена.Организации.Количество()>0,Истина,Ложь));
Параметры.Вставить(«ИспользоватьФильтрПоСкладам»,?(УзелДляОбмена.Склады.Количество()>0,Истина,Ложь));
Параметры.Вставить(«ИспользоватьФильтрПоПодразделениям»,?(УзелДляОбмена.Подразделения.Количество()>0,Истина,Ложь));

Если Параметры.ИспользоватьФильтрПоОрганизациям Тогда

Параметры.Вставить(«МассивОрганизаций»,УзелДляОбмена.Организации.Выгрузить().ВыгрузитьКолонку(«Организация»));

КонецЕсли;

Если Параметры.ИспользоватьФильтрПоСкладам Тогда

Параметры.Вставить(«МассивСкладов»,УзелДляОбмена.Склады.Выгрузить().ВыгрузитьКолонку(«Склад»));

КонецЕсли;

Если Параметры.ИспользоватьФильтрПоПодразделениям Тогда

Параметры.Вставить(«МассивПодразделений»,УзелДляОбмена.Подразделения.Выгрузить().ВыгрузитьКолонку(«Подразделение»));

КонецЕсли;

МассивТиповДокументов = Новый Массив;

Для каждого МетаДокумент Из Метаданные.Документы цикл

МассивТиповДокументов.Добавить(Тип(«ДокументСсылка.» + МетаДокумент.Имя));
МассивТиповДокументов.Добавить(Тип(«ДокументОбъект.» + МетаДокумент.Имя));

КонецЦикла;

ОписаниеТиповДокументы = Новый ОписаниеТипов(МассивТиповДокументов);
Параметры.Вставить(«ОписаниеТиповДокументы»,ОписаниеТиповДокументы);

МассивТиповДокументов.Очистить();
МассивТиповДокументов.Добавить(Тип(«ДокументСсылка.СчетФактураВыданный»));
МассивТиповДокументов.Добавить(Тип(«ДокументСсылка.СчетФактураПолученный»));
МассивТиповДокументов.Добавить(Тип(«ДокументОбъект.СчетФактураПолученный»));
МассивТиповДокументов.Добавить(Тип(«ДокументОбъект.СчетФактураВыданный»));

ОписаниеТиповДокументы = Новый ОписаниеТипов(МассивТиповДокументов);

Параметры.Вставить(«ОписаниеТиповДокументыСФ»,ОписаниеТиповДокументы);

КонецЕсли;
// Документы расчетов (БП зачет аванса), несовместимые типы документов.
// Обмен не поддерживается.
СтруктураНевыгружаемыхДокументовРасчетов = Новый Структура();
// СписаниеСРасчетногоСчета
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.РеализацияТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«СписаниеСРасчетногоСчета», Массив);
// ПоступлениеНаРасчетныйСчет
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.АвансовыйОтчет»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеВыставленное»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслугВНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПереданное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПолученный»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПоступлениеНаРасчетныйСчет», Массив);
// ПоступлениеТоваровУслуг
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.ПриходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.РеализацияТоваровУслуг»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПоступлениеТоваровУслуг», Массив);
// ПриходныйКассовыйОрдер
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.КорректировкаДолгаПоВозвратнойТаре»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровОтПокупателя»));
Массив.Добавить(Тип(«ДокументСсылка.ПриходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеВыставленное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПереданное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПолученный»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПриходныйКассовыйОрдер», Массив);
// РасходныйКассовыйОрдер
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.КорректировкаДолгаПоВозвратнойТаре»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеИсходящее»));
Массив.Добавить(Тип(«ДокументСсылка.РасходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПереданный»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслугВНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«РасходныйКассовыйОрдер», Массив);
// РеализацияТоваровУслуг
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровОтПокупателя»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеИсходящее»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.РасходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПереданный»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.АвансовыйОтчет»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«РеализацияТоваровУслуг», Массив);
// ПоступлениеДопРасходов
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.ПриходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеВыставленное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПереданное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПолученный»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.РеализацияТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПоступлениеДопРасходов», Массив);
// ОтчетКомиссионераОПродажах
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровОтПокупателя»));
Массив.Добавить(Тип(«ДокументСсылка.ДокументРасчетовСКонтрагентом»));
Массив.Добавить(Тип(«ДокументСсылка.ДокументРасчетовСКонтрагентом»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеИсходящее»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.РасходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПереданный»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслугВНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.АвансовыйОтчет»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ОтчетКомиссионераОПродажах», Массив);
// КорректировкаДолга
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ОтражениеРеализацииТоваровИУслугНДС»));
Массив.Добавить(Тип(«ДокументСсылка.КорректировкаДолгаПоВозвратнойТаре»));
Массив.Добавить(Тип(«ДокументСсылка.ОплатаОтПокупателяПлатежнойКартой»));
Массив.Добавить(Тип(«ДокументСсылка.ОтражениеПоступленияТоваровИУслугНДС»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«КорректировкаДолга», Массив);
///////////////
Параметры.СтруктураНевыгружаемыхДокументовРасчетов = СтруктураНевыгружаемыхДокументовРасчетов;

Как решить такую проблему?

  1. 12.05.2017, 17:30


    #1

    Merya вне форума


    Гость форума


    По умолчанию Проблема с загрузкой данных в 1С 8.3 в формате XML Помогите!

    Через универсальный обмен данными в формате XML(2.1.8) пытаюсь загрузить данные с сайта бизнес ру Выдает ошибку

    Ошибка в обработчике события ПередЗагрузкойДанных (конвертация)
    Обработчик = ПередЗагрузкойДанных (конвертация)
    ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,47)}: Переменная не определена (УправлениеПользователями)
    ПозицияМодуля = Обработка.УниверсальныйОб� �енДаннымиXML.МодульОбъекта( 12497)
    КодСообщения = 22

    Я с 1 С 8.3. только начинаю работать, не могу понять причину. Помогите, пожалуйста!!!


  2. 13.05.2017, 12:07


    #2

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Проблема с загрузкой данных в 1С 8.3 в формате XML Помогите!

    Похоже у вас в правилах используется конфигурация «источник» отличная от той, что используется сейчас.

    Вот поэтому в обработке «перед выгрузкой» в правилах используется переменная, которой нет «в наличии».


September 22 2013, 10:43

Category:

  • IT
  • Cancel

exchСуть задачи: иногда возникает необходимость выгрузить данные из, например, 1С:Бухгалтерии предприятия в 1С:Управление торговлей, но не по узлам обмена распределенной информационной базы (РИБ), а через обработку Универсальный обмен данными XML. Это, например, может возникнуть когда Вы создаете новую базу УТ, и хотите импортировать справочник из БП в УТ, не настраивая двусторонний обмен данными или собственные правила обмена, или бухгалтеру привычнее и удобнее выгружать данные за выбранный период, а не по принципу регистрации обмена.

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

Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,52)}: Переменная не определена (УзелДляОбмена)

Вся проблема в том, что при выгрузке через РИБ, в контексте выполнения модулей правил обмена доступен узел обмена, в переменной «УзелДляОбмена», в реквизитах которого содержатся различные настройки. Собственно, пути решения два:

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

2. Дать доступ к вышеуказанной переменной.

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

1. Выгрузим правила обмена. Для этого, откроем конфигуратор, найдем в ветке ОбщиеМакеты макет, в данном случае, с названием ПравилаОбмена_БП_УТ, откроем его, и через меню «Файл/Сохранить как», сохраним с расширением .xml

2. Сохраним обработку УниверсальныйОбменДаннымиXML в файл. Найдем ее в дереве конфигурации, щелкнем правой кнопкой мыши, выберем «Сохранить как внешнюю обработку/отчет».

3. Откроем данную обработку (из файла), и добавим в нее реквизит УзелДляОбмена, тип данных, в нашем случае, «ПланОбменаСсылка.ОбменУправлениеТорговлейБухгалтерияКОРП».

4. В версии конфигурации Бухгалтерия предприятия, 2.0.37.12 (возможно, и в более ранних), нужно в модуль объекта данной обработки (в самый конец) вставить две строки, указанные ниже, иначе мы получим еще одно безрадостное сообщение типа «Переменная не определена»:

    мИнформацияОПользовательскихПоляхПоискаПриВыгрузкеДанных = Новый Соответствие();

мИнформацияОПользовательскихПоляхПоискаПриЗагрузкеДанных = Новый Соответствие();

5. Сохраняем и открываем обработку в режиме 1С:Предприятие.

6. В реквизите «УзелДляОбмена», который мы добавили, выбираем узел из плана обмена — лучше создать новый, и прописать в нем необходимые условия. К сожалению, в этом месте создается одна небольшая проблема: с этого момента все изменения информационной базы начинают регистрироваться и сохраняться в соответствующих таблицах. В связи с этим, я рекомендую периодически сбрасывать зарегистрированные объекты через Монитор обмена данными (закладка «Дополнительно», кнопка «Подробно», затем «Удалить всю регистрацию»). В прочем, этот процесс можно и автоматизировать, прописав соответствующие действия в обработке обмена, при каждом обмене данными.

7. Заполняем остальные реквизиты (выгруженные на шаге 1 правила обмена, файл данных или настройки прямого подключения, период выгрузки, отборы и т.п.)

8. Делаем выгрузку данных.

Соль/сахар по вкусу. Ваши вопросы оставляйте в комментариях.

Оригинал: http://delprog.ru/1s-bystryjj-sposob-ispolzovat-pravil/

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • 1с ошибка использование блокировки допустимо только внутри транзакции
  • 1с ошибка исполнения функции при отправке отчетности