В процессе разработки часто возникает необходимость вывести дополнительные реквизиты (например, Контрагент) в общий журнал документов. Однако при работе с SQL-версией платформы 1С 7.7 стандартные действия по добавлению графы отбора могут приводить к критическим ошибкам, таким как Incorrect syntax near the keyword 'TRANSACTION'. В данной статье мы разберем, как правильно реализовать эту задачу и что делать, если база данных начала выдавать ошибки при сохранении метаданных.
Прежде чем прибегать к сложной перестройке структуры таблиц через графы отбора, рассмотрим более безопасный метод. Если ваша задача — просто видеть значение реквизита в колонке «Информация» общего журнала, воспользуйтесь правкой функции глИнформацияПоДокументуВЖурнале в глобальном модуле.
Этот подход не требует изменения структуры SQL-таблиц и исключает риск возникновения ошибок реструктуризации. Откройте глобальный модуль и внесите изменения в функцию следующим образом:
Функция глИнформацияПоДокументуВЖурнале(Док) Экспорт
// ... существующий код ...
ИначеЕсли (ВидДок = "ЧекККМ") или (ВидДок = "ОтчетККМ") Тогда
Возврат Док.Контрагент + " " + Док.Касса;
// ...
КонецФункции
Данный метод позволяет динамически формировать строковое представление документа для отображения в журнале без вмешательства в движок базы данных.
Если вам требуется именно функционал отбора по контрагенту в журнале, необходимо добавить графу отбора. Рассмотрим пошаговый алгоритм выполнения этой операции:
Контрагент.ЧекККМ выберите соответствующий реквизит шапки документа.Если при сохранении конфигурации возникает ошибка TRANSACTION, это свидетельствует о повреждении системных таблиц (как правило, _1crdoc или _1sjournl). Разберем шаги по реанимации базы:
При сбое процесса реструктуризации 1С создает файл 1srecalc.cmd в папке базы данных, который принудительно запускает пересчет при входе. Если процесс падает, переименуйте этот файл в 1srecalc_.cmd. Это позволит вам зайти в конфигуратор без автоматического запуска аварийного пересчета.
Если ошибки продолжаются, необходимо выполнить очистку таблицы служебных ссылок. Это абсолютно безопасная процедура, так как данные в этой таблице являются производными.
В SQL Management Studio (или Query Analyzer) выполните следующую команду:
TRUNCATE TABLE _1crdoc;
После выполнения команды очистки выполните Тестирование и исправление базы данных в режиме Конфигуратора, обязательно отметив пункт «Пересчет служебных данных». Система сама восстановит структуру связей, основываясь на данных таблицы _1sjournl.
Работа с SQL-версией 1С 7.7 требует осторожности при изменении структуры метаданных:
_1crdoc и _1sjournl.Следуя этим рекомендациям, вы сможете успешно расширить функционал вашего общего журнала, обеспечив при этом стабильность работы базы данных 1С 7.7.