#0
by Хорт
Создаю правило. Использую алгоритм. В алгоритме используется переменная Источник. На нее ругается при обмене, мол так и так, НЕ бывает такой. Подскажите, что не так.
#12
by Зойч
Запрос.УстановитьПараметр("Контрагент", ?(ТипЗнч(Источник.Ссылка) = Тип("СправочникСсылка.КонтактныеЛица"), ВходящиеДанные.КонтактноеЛицоКонтрагента, Источник.Ссылка));
#18
by Steini
Короче, пилю свою историю, может поможет. Для обмена по самописным правилам есть два способа: 1) подкинуть свои правила в типовой обмен, 2) использовать обработку УниверсальныйОбменВФорматеХМЛ или же использовать свою обработку, вызывающюю ту и подкидывающую ей самописные правила. Так вот. Конфа "Конвертация данных", как я понимаю, написана под актуальную версию обработки УниверсальныйОбменВФорматеХМЛ. А при обмене через типовой обмен используется не она, а вот на 99,999% такой же код, но с маааалюсеньким различием. Но это мааалюсенькое различие способно такооого натворить. В общем, мое мнение: надо запускать в режиме отладки и смотреть именно в том конкретном месте доступны ли те или иные переменный. Ведь всякие "Объект", "Источник" - это просто локальные переменные обработки загрузки и ничего более. Весь код твоих правил выполняется в "Выполнить" обработки загрузки.
#19
by Хорт
Я пытаюсь воспользоваться отладкой, получаю : {ВнешняяОбработка.ОтладкаПравил.МодульОбъекта(164,51)}: Переменная не определена (Источник) Запрос.УстановитьПараметр("Контрагент", ?(ТипЗнч(<<?>>Источник.Ссылка) = Тип("СправочникСсылка.КонтактныеЛица"), ВходящиеДанные.КонтактноеЛицоКонтрагента, Источник.Ссылка)); (Проверка: Толстый клиент (обычное приложение)) {ВнешняяОбработка.ОтладкаПравил.МодульОбъекта(164,152)}: Переменная не определена (Источник) Запрос.УстановитьПараметр("Контрагент", ?(ТипЗнч(Источник.Ссылка) = Тип("СправочникСсылка.КонтактныеЛица"), ВходящиеДанные.КонтактноеЛицоКонтрагента, <<?>>Источник.Ссылка)); (Проверка: Толстый клиент (обычное приложение)) {ВнешняяОбработка.ОтладкаПравил.МодульОбъекта(164,110)}: Переменная не определена (ВходящиеДанные) Запрос.УстановитьПараметр("Контрагент", ?(ТипЗнч(Источник.Ссылка) = Тип("СправочникСсылка.КонтактныеЛица"), <<?>>ВходящиеДанные.КонтактноеЛицоКонтрагента, Источник.Ссылка)); (Проверка: Толстый клиент (обычное приложение))
#22
by GenAcid
А про ограничения при режимах отладки алгоритмов читал? Режим “Вызывать алгоритмы как процедуры” рекомендуется использовать в тех случаях, когда необходимо проводить отладку кода алгоритмов. Алгоритмы выгружаются как отдельные процедуры, а их вызовы вставляются в код обработчиков или других алгоритмов. Для передачи параметров в алгоритмы используется глобальная переменная “Параметры”. Этот способ является рекомендуемым. Однако если разработчик использует какой-либо другой способ передачи параметров (например, используются локальные переменные обработчика), то при попытке запуска выгрузки или загрузки в режиме отладки обработчиков программа выдаст ошибку создания внешней обработки. Для отладки таких алгоритмов существует третий режим. В режиме “Подставлять код алгоритмов по месту вызова” текст алгоритмов подставляется прямо в текст вызывающих их обработчиков или других алгоритмов с учетом вложенности вызовов. В этом режиме сняты ограничения на использование локальных переменных, однако есть ограничение на отладку рекурсивных алгоритмов. В момент формирования модуля отладки при обнаружении рекурсивных вызовов алгоритмов программа сообщит об ошибке.
#23
by Steini
Нет, коллеги, я, когда у меня возникали ошибки при обмене через ХМЛ, и было совершенно неясно, что за ошибки, куда копать, брал конфигуратор, ставил "останавливать отладку при ошибке", запускал обмен (типовой), и далее уже смотрел конкретное место в коде, где был вызван этот алгоритм. Если надо - пользовался стеком вызовов. Вот, допустим, нашел процедуру, где исполняется этот алгоритм посредством "Выполнить", посмотрел, а в какой момент это вообще происходит - при загрузке или после, свойства или конвертации. Тут же в отладчике можно посмотреть, а чему равны всякие локальные переменные, типа Источник или Объект, или структура параметров. Тут же сам текст алгоритма проверил, мало ли. Вся информация будет как на ладони.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Алгоритмы
- Конвертация справочников из 77 в УПП 80? Конфа конвертация данных 2.0. КАК7
- Конвертация данных - конвертация реквизитов дока.
- Шахматное программирование: Алгоритмы, События....
- Конвертация Значений. (Конвертация данных 2.0)
- Конвертация данных 2, V8.1, конвертация периодических реквизитов
- Конвертация данных. Конвертация двух реквизитов в один.
- Конвертация Данных. конвертация одного реквизита в другой
В этой группе 1С
- бух 3.0 ругается что нет предопределенного значения справочника ПрочиеДоходыИРа
- Иконки для интерфейса такси
- v7: Код не уникален
- Правилах конвертации. УТ-БП
- Реализация НЕ списывает комиссионный товар с 004 счета
- УПП. Способы распределения затрат на выпуск.
- УТ 11: Сообщение пользователю в фоновом задании
- Справка-объективка
- В регистре хозрасчетном проводки без регистратора.. Проблема с запросом..
- СКД Почему не работает отбор по измерению?
- Настройка пользовательских полей в отчете на СКД
- v7: Постоянные транзакции и блокировки 1SJOURN
- УТ 11. Накопительные дисконтные карты
- 1c УТ11.1 Видимость элементов формы
- БП 3.0 Как изменить движения документа без перепроведения
- Можно ли средствами 1С 8 представить обычную строку, в кодировке Base64?
- В данной транзакции уже были ошибки, Константы[ИмяПараметраВР], хелп... !!
- Посоветуйте ЗУП 2.5 или ЗУП 3.0 ?
- ЗУП 3.0 Возврат/удержание откл подотчетных сумм - отражение в расчетном листке
- ЗУП 3.0 - почтовый сбор, ручное редактирование