No Image

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

СОДЕРЖАНИЕ
0 просмотров
22 января 2020

&НаКлиенте Процедура ВыполнитьСинхронизацию(Команда) // готовим структуру команды вКоманда = Новый Структура; ЗаполнитьСтруктуруВыполняемойКоманды(вКоманда,»Моя доп.обработка»); Если ЗначениеЗаполнено(вКоманда) Тогда ЗаголовокСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Команда «»%1″» подготовлена к исполнению.’»),вКоманда.Представление); // оповещаем себя о том, что команда подготовлена и передается на исполнение //ПоказатьОповещениеПользователя(ЗаголовокСостояния + «…», , , БиблиотекаКартинок.ДлительнаяОперация48); Сообщить(ЗаголовокСостояния); // вызываем процедуру исполнения команды в фоне на сервере ДлительнаяОперация = НачатьВыполнениеСервернойКомандыВФоне(вКоманда, УникальныйИдентификатор); // подготавливаем данные и выводим «ожидающее» оповещение ЗаголовокСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Команда «»%1″» выполняется.’»),вКоманда.Представление); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ПараметрыОжидания.ТекстСообщения = ЗаголовокСостояния; // не будем оповещать себя после завершения штатным образом ПараметрыОжидания.ОповещениеПользователя.Показать = Ложь; // а вот окно «ожидания» просим показать ПараметрыОжидания.ВыводитьОкноОжидания = Истина; // непосредственно «ожидаем» ОповещениеОЗавершении = Новый ОписаниеОповещения(«ПослеЗавершенияВыполнения», ЭтотОбъект, вКоманда); ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПослеЗавершенияВыполнения(Задание, ВыполняемаяКоманда) Экспорт // процедура, которая указана ранее для вызова после завершения исполнения Если Задание.Статус = «Ошибка» Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Не удалось выполнить команду по причине: |%1.’»), Задание.КраткоеПредставлениеОшибки); Иначе // Оповещаем все открытые формы и динамические списки об изменениях (обязательно) Результат = ПолучитьИзВременногоХранилища(Задание.АдресРезультата); ОповеститьФормы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, «ОповеститьФормы»); Если ОповеститьФормы <> Неопределено Тогда СтандартныеПодсистемыКлиент.ОповеститьФормыОбИзменении(ОповеститьФормы); КонецЕсли; // Оповещаем себя, поскольку ранее в ПараметрыОжидания записали Ложь ЗаголовокСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Команда «»%1″» выполнена.’»),ВыполняемаяКоманда.Представление); Сообщить(ЗаголовокСостояния); КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Процедура ЗаполнитьСтруктуруВыполняемойКоманды(ВыполняемаяКоманда,НаименованиеОбработки) // заполняем структуру команды запрошенной обработки ДопОбработкаСсылка=Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(НаименованиеОбработки); Если ЗначениеЗаполнено(ДопОбработкаСсылка) Тогда ВыполняемаяКоманда = Новый Структура; ВыполняемаяКоманда.Вставить(«Ссылка»,ДопОбработкаСсылка); ВыполняемаяКоманда.Вставить(«Представление»,ДопОбработкаСсылка.Команды.Представление); ВыполняемаяКоманда.Вставить(«Идентификатор»,ДопОбработкаСсылка.Команды.Идентификатор); ВыполняемаяКоманда.Вставить(«ВариантЗапуска»,ДопОбработкаСсылка.Команды.ВариантЗапуска); ВыполняемаяКоманда.Вставить(«ПоказыватьОповещение»,ДопОбработкаСсылка.Команды.ПоказыватьОповещение); ВыполняемаяКоманда.Вставить(«Модификатор»,ДопОбработкаСсылка.Команды.Модификатор); ВыполняемаяКоманда.Вставить(«ОбъектыНазначения»,Неопределено); ВыполняемаяКоманда.Вставить(«Вид»,ДопОбработкаСсылка.Вид); ВыполняемаяКоманда.Вставить(«ЭтоОтчет»,Ложь); Иначе ВыполняемаяКоманда = Неопределено; КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Функция НачатьВыполнениеСервернойКомандыВФоне(ВыполняемаяКоманда, УникальныйИдентификатор) ИмяПроцедуры = «ДополнительныеОтчетыИОбработки.ВыполнитьКоманду»; ПараметрыПроцедуры = Новый Структура(«ДополнительнаяОбработкаСсылка, ИдентификаторКоманды, ОбъектыНазначения»); ПараметрыПроцедуры.ДополнительнаяОбработкаСсылка = ВыполняемаяКоманда.Ссылка; ПараметрыПроцедуры.ИдентификаторКоманды = ВыполняемаяКоманда.Идентификатор; ПараметрыПроцедуры.ОбъектыНазначения = ВыполняемаяКоманда.ОбъектыНазначения; НастройкиЗапуска = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); НастройкиЗапуска.НаименованиеФоновогоЗадания = НСтр(«ru = ‘Дополнительные отчеты и обработки: Выполнение серверного метода обработки’»); Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, НастройкиЗапуска); КонецФункции

Посмотреть еще:

Материалы Проводки по Приходу ГЛАВНАЯ СТРАНИЦА НАЛОГОВЫЕ НОВОСТИ БУХГАЛТЕРСКИЕ НОВОСТИ БУХГАЛТЕРСКИЙ УЧЕТ ГОДОВОЙ ОТЧЕТ И…

Часто ли наказывают по п. 1 ст. 126 НК РФ?П. 1 ст. 126 НК РФ…

Операции с недвижимым имуществом за вознаграждение или на договорной основеПодкласс 68.3 содержит две группы кодов:…

Двойное налогообложениеДвойное налогообложение — одновременное обложение в разных странах одинаковыми налогами доходов. Двойное налогообложение вызвано…

Департамент Росприроднадзора по Крымскому федеральному округу, Керчь Выбор территориального органаЦентральный аппарат Росприроднадзора02 Управление Росприроднадзора по…

Статьи, обзоры, комментарии экспертов

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

Я 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 копать в эту сторону.
Читайте также:  Сравнение материнских плат b450

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

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" не знаком, читал статью, там танцы с бубнами ужасные, что бы что либо подправить.

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

Заранее благодарю за ответы &#128578;

Franchiser

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

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

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

Альбатрос

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

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

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

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

Demetri__

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

Cyberhawk Demetri__

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

Читайте также:  Утюг с парогенератором philips инструкция

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

Demetri__

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Цифровое тв без приставки своими руками

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

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

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

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

После обновления бухгалтерии перестала работать синхронизация УТ 10.3 — БП. Синхронизация настроена через типовой план обмена. Правила обмена тоже типовые, но доработаны.

Ошибка возникает при загрузке выгруженного из УТ 10.3 файла.

Запись в журнале регистрации следующая:

<Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(606)>: Не удалось загрузить данные из "Управление торговлей, ред" (этап автоматического сопоставления данных).
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(

Требуется доработать правила обмена под обновленную Бухгалтерию.

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector