Как исправить ошибку записи документа в 1С из-за табуляции в «Назначении платежа

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как исправить ошибку записи документа в 1С из-за табуляции в «Назначении платежа

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36474
      Фото аватараOdineski
      Участник

        Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.193.19) (http://v8.1c.ru/buh8corp/)
        Copyright (С) ООО «1C-Софт», 2009 — 2026. Все права защищены
        (http://www.1c.ru)

        база с 2012 года, пытаюсь провести свертку до 2023 года, ошибка:

        Ошибка при вызове метода контекста (Записать)
        {Обработка.СверткаИнформационнойБазы.МодульМенеджера(1812)}:Данные.Записать();
        {Обработка.СверткаИнформационнойБазы.МодульМенеджера(948)}:ЗаписатьДанные(ДокументДляУдаления);
        {Обработка.СверткаИнформационнойБазы.МодульМенеджера(934)}:УстановитьПометкуНаУдалениеРегистратору(ВыборкаДетальныеЗаписи.Документ);
        {Обработка.СверткаИнформационнойБазы.МодульМенеджера(686)}:ПометитьДокументыНаУдаление(ТипДокумента.Имя, ПараметрыОбработки);
        {(1)}:Обработки.СверткаИнформационнойБазы.СвернутьИнформационнуюБазу(Параметры[0],Параметры[1])
        {ОбщийМодуль.ОбщегоНазначения.Модуль(6474)}:Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»; // АПК:487 Исполняемый код безопасен.
        {ОбщийМодуль.ДлительныеОперации.Модуль(1715)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
        {ОбщийМодуль.ДлительныеОперации.Модуль(1682)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);

        [ОшибкаВоВремяВыполненияВстроенногоЯзыка]
        по причине:
        Не удалось записать «Платежное поручение 00000000002 от 10.01.2012 14:18:06»!
        [ОшибкаХранимыхДанных]

        хочу удалить этот документ вручную (пометить на удаление) — Назначение платежа содержит табуляцию.
        я думаю таких документов в базе много, поскольку платёжка 00000000002 первая в списке (есть 00000000001 но она помечена на удаление).
        Нужен скрипт и полная инструкция для исправления базы, убрать все ошибки табуляции

      • #36475
        bot_avaOdin — Одинэсник
        Участник

          Ошибка записи документа «Платежное поручение» с табуляцией в поле «Назначение платежа» — классическая проблема, связанная с недопустимыми символами в реквизитах, которые база не пропускает при записи.

          Чтобы исправить ситуацию массово, нужно:

          1. Найти все документы «Платежное поручение списание денежных средств» (Документ.ПлатежноеПоручениеСписаниеДенежныхСредств) с табуляцией в поле «НазначениеПлатежа».

          2. Заменить символы табуляции (ASCII 9) на пробелы или удалить их.

          3. Записать исправленные документы.

          ### Практическое решение — скрипт на встроенном языке 1С (BSL):

          ### Инструкция по применению:

          1. Откройте базу в режиме «Конфигуратор».

          2. Создайте новый общий модуль (например, «ИсправлениеТабуляций»), с возможностью вызова из режима предприятия.

          3. В модуле вставьте приведённый выше код процедуры.

          4. Запустите процедуру ИсправитьТабуляцииВНазначенииПлатежа() из окна отладки или вызовите из интерфейса.

          5. После выполнения процедуры табуляции в поле «Назначение платежа» будут заменены на пробелы, документы можно будет записывать и помечать на удаление.

          ### Важные рекомендации:

          — Обязательно сделайте полную резервную копию базы перед запуском скрипта.

          — Если в базе много таких документов, скрипт может работать долго — лучше запускать в ночное время.

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

          — После исправления табуляций попробуйте повторно провести свертку.

          Если нужно, могу помочь с доработкой скрипта под другие документы или с автоматизацией запуска.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С