Вызватьисключение строковыефункцииклиентсервер подставитьпараметрывстроку

Ошибка при выполнении обработчика — ‘ПередЗаписью’

Я
   vsafonin Делаю документ, задача документа распределение аналитики.

В создал процедуру в ней делаю проводки:

Процедура ФормированиеДвижений(СчетДТ, СчетКТ, Сумма, СубконтоДТ1, СубконтоДТ2, СубконтоДТ3, СубконтоКТ1, СубконтоКТ2, СубконтоКТ3); Движение = Движения.Хозрасчетный.Добавить(); Движение.СчетДт = СчетДт; Движение.СчетКт = СчетКт; Движение.Период = Дата; Движение.Сумма = Сумма; //Формируем движения по регистру бухгалтерии (тип субконто определяется с помощью вспомогательной //Функции ОпределитьТипСубконто Движение.СубконтоДт=СубконтоДТ1; Движение.СубконтоДт=СубконтоДТ2; Движение.СубконтоДт=СубконтоДТ3; Движение.СубконтоКт=СубконтоКТ1; Движение.СубконтоКт=СубконтоКТ2; Движение.СубконтоКт=СубконтоКТ3; КонецПроцедуры Сама процедура ошибок не вызывает, но документ все равно не проводится, вылетает с ошибкой:

Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{РегистрБухгалтерии.Хозрасчетный.МодульНабораЗаписей(122)}: Значение не является значением объектного типа (Типы)
Код из Модуля Набора записей:

Для Каждого Субконто Из Проводка.СубконтоДт Цикл Составной = ВидыСоставныхСубконто.Получить(Субконто.Ключ); // Если Составной=неопределено Тогда // Составной = Субконто.Ключ.ТипЗначения.Типы().Количество() > 1; // Кэширование: вид субконто + признак Составной ВидыСоставныхСубконто.Вставить(Субконто.Ключ,Составной); // КонецЕсли; // Если Составной И НЕ ЗначениеЗаполнено(Субконто.Значение) И НЕ (Субконто.Значение = Неопределено) Тогда Проводка.СубконтоДт.Вставить(Субконто.Ключ, Неопределено); КонецЕсли; КонецЦикла; Чую где то косяк, но не пойму где….
 
     vsafonin

Хотябы в какую сторону копать, может я не туда смотрю?

   vicof (1) Движение.СубконтоДт=СубконтоДТ1; Движение.СубконтоДт=СубконтоДТ2; Движение.СубконтоДт=СубконтоДТ3; Движение.СубконтоКт=СубконтоКТ1; Движение.СубконтоКт=СубконтоКТ2; Движение.СубконтоКт=СубконтоКТ3;    vicof копать в эту сторону.

Если этобухня, то в модуле БухгалтерскийУчет было что-то типа УстановитьСубконто()

   Serg_1960

(0) Алгоритм, ты уж извини меня, паршивенький. Обращение без анализа и проверки значений. И если «Составной» не равно «Неопределено», — работать как оно будет?

Составной = ВидыСоставныхСубконто.Получить(Субконто.Ключ);

Если Составной…

   Serg_1960

В «Субконто.Ключ» может быть «Неопределено»?

PS: почти аннологичная тема v8: Выбрать в запросе Пустые Субконто

   vsafonin

(3) Да бухня! Обратился с помощью БухгалтерскийУчет.УстановитьСубконто , и у меня все работает!

Ошибка при выполнении обработчика — ‘ПередЗаписью’

Спасибо

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

TurboConf 5 — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Исправление типовых правил обмена, помогите плиз

Я
   Demetri__ Задача наладить синхронизацию из БП в УНФ односторонний обмен (релизы последние) БП доработана! В основном ошибки при синхронизации возникают из за того, что в справочник «Виды контактной информации» добавлен ПРЕДОПРЕДЕЛЕННЫЙ реквизит «Юр адрес в акт».

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

Событие: Отправка.
ПОД: Справочник_Контрагенты_Отправка.
ПКО: Справочник_Контрагенты_Отправка.
Объект: Справочник объект: Контрагенты, Яковлева О.В. ИП (e1cib/data/Справочник.Контрагенты?ref=b941772681feb8ce44d504ae12b51e31).
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(835)}: Ошибка формирования объекта XDTO: Тип свойства <Таблица>. Имя свойства: <КонтактнаяИнформация>.

{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(835)}: Ошибка формирования объекта XDTO: Тип свойства <ОбычноеСвойство>. Имя свойства: <ВидКонтактнойИнформации>.

{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(3511)}: Не найдено правило конвертации для значения предопределенных данных. Тип значения источника: <Вид контактной информации> Значение источника: <Юр адрес контрагента в акт>         ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(             ВызватьИсключение ТекстОшибки;             ВызватьИсключение ТекстОшибки; При синхронизации через типовые правила обмена конфигурации (опять же только на тех контрагентов у которых заполнен этот доработанный предопределенный реквизит) вываливаются ошибки типа:

{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(170)}: Не удалось загрузить данные из «ООО «МИР РЕКЛАМЫ»» (этап анализа данных).
            ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( С конфой «Конвертация данных 3.0» не знаком, читал статью, там танцы с бубнами ужасные, что бы что либо подправить.

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

Заранее благодарю за ответы 🙂
 
     Franchiser

Загрузить типовые правила 3.0 в конвертацию и посмотреть в чем причина, ну или просто в отладке смотреть (остановка по ошибке)

   Demetri__ Franchiser, спасибо. Если бы я еще разбирался в конвертации) А если в модуле просто вырубить это исключениепо ошибке?)
Какие еще есть быстрые способы устранить проблему?    Рэйв

(2)Самый быстрый — позвать того кто разбирается в КД чтобы он поправил правила

   Альбатрос

(3) Или удалить добавленный предопределенный элемент 🙂

   Demetri__ Я правильно понимаю, если использовать типовые правила обмена (не универсальный формат), то добавленный предопределенный реквизит не должен мешать синхронизации?!

Тогда почему вываливается ошибка:

{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(170)}: Не удалось загрузить данные из «ООО «МИР РЕКЛАМЫ»» (этап анализа данных).             ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Обе базы файловые, лежать на одном диске

   Demetri__

Может быть дело в обновлении…

счас попробуем

   Cyberhawk

А ты там кем?

   Demetri__

Я правильно понимаю, если использовать типовые правила обмена (не универсальный формат), то добавленный предопределенный реквизит не должен мешать синхронизации?!

   hhhh

(8) если использовать типовые правила обмена (не универсальный формат) — типовых правил таких нет, поэтому не можем проверить ваше предположение.

   Demetri__

(9) правила есть!

Короче тему закрываем. Удалось синхронизировать типовым механизмом. Проблема была как это банально не звучит в версиях БП и УНФ, обновил я их до более менее свежих и все удалось. В БП правила обмена я загрузил тупо отдельно с поставки обновления

 
 

TurboConf 5 — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ!

Com-соединение и подписки на события, которые мешают создать документ.

Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Очистка регистра сведений «Реестра документов». УТ 11

Обработка исключений

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

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

Если исключение вызвано в ходе выполнения модуля, то работа модуля прекращается. Однако существует возможность обработать исключение оператором «Попытка – Исключение». Это предоставляет возможность для восстановимых ошибок обработать исключение. При этом можно вызвать его повторно (оператором ВызватьИсключение) или не вызывать.

Ошибка при выполнении проведения документа «Бухгалтерская Операция»

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

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

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

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

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

Рекомендуется также ознакомиться с разделами:
• Почему в режиме 1С:Предприятие прикладное решение завершает работу, если обнаружена синтаксическая ошибка в вызываемом модуле?
• Ошибки базы данных и транзакции
• Бесконечная рекурсия