База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку записи документа в 1С из-за табуляции в «Назначении платежа
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день, 5 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
15 апреля 2026 в 14:41 #36474
Бухгалтерия предприятия КОРП, редакция 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 но она помечена на удаление).
Нужен скрипт и полная инструкция для исправления базы, убрать все ошибки табуляции -
15 апреля 2026 в 14:41 #36475
Ошибка записи документа «Платежное поручение» с табуляцией в поле «Назначение платежа» — классическая проблема, связанная с недопустимыми символами в реквизитах, которые база не пропускает при записи.
Чтобы исправить ситуацию массово, нужно:
1. Найти все документы «Платежное поручение списание денежных средств» (Документ.ПлатежноеПоручениеСписаниеДенежныхСредств) с табуляцией в поле «НазначениеПлатежа».
2. Заменить символы табуляции (ASCII 9) на пробелы или удалить их.
3. Записать исправленные документы.
—
### Практическое решение — скрипт на встроенном языке 1С (BSL):
1С (Код)12345678910111213141516171819202122232425262728293031323334Процедура ИсправитьТабуляцииВНазначенииПлатежа()// Получаем выборку документов с табуляцией в поле НазначениеПлатежаЗапрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ| Док.Ссылка|ИЗ| Документ.ПлатежноеПоручениеСписаниеДенежныхСредств КАК Док|ГДЕ| СОДЕРЖИТ(Док.НазначениеПлатежа, Символ(9))Выборка = Запрос.Выполнить().Выбрать();КоличествоИсправлено = 0;Пока Выборка.Следующий() ЦиклДокОбъект = Выборка.Ссылка.ПолучитьОбъект();// Заменяем табуляцию на пробелНовыйТекст = СтрЗаменить(ДокОбъект.НазначениеПлатежа, Символ(9), " ");Если НовыйТекст <> ДокОбъект.НазначениеПлатежа ТогдаДокОбъект.НазначениеПлатежа = НовыйТекст;ПопыткаДокОбъект.Записать();КоличествоИсправлено = КоличествоИсправлено + 1;ИсключениеСообщить("Ошибка записи документа: " + ДокОбъект.Ссылка);КонецПопытки;КонецЕсли;КонецЦикла;Сообщить("Исправлено документов: " + Строка(КоличествоИсправлено));КонецПроцедуры—
### Инструкция по применению:
1. Откройте базу в режиме «Конфигуратор».
2. Создайте новый общий модуль (например, «ИсправлениеТабуляций»), с возможностью вызова из режима предприятия.
3. В модуле вставьте приведённый выше код процедуры.
4. Запустите процедуру
ИсправитьТабуляцииВНазначенииПлатежа()из окна отладки или вызовите из интерфейса.5. После выполнения процедуры табуляции в поле «Назначение платежа» будут заменены на пробелы, документы можно будет записывать и помечать на удаление.
—
### Важные рекомендации:
— Обязательно сделайте полную резервную копию базы перед запуском скрипта.
— Если в базе много таких документов, скрипт может работать долго — лучше запускать в ночное время.
— Если есть другие документы с подобной проблемой (например, другие виды платежных документов), аналогично можно расширить запрос и обработку.
— После исправления табуляций попробуйте повторно провести свертку.
—
Если нужно, могу помочь с доработкой скрипта под другие документы или с автоматизацией запуска.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.