Как добавить реквизит в общий журнал документов 1С 7.7 и избежать ошибки при сохранении конфигурации?

Программист 1С v7.7 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе разработки часто возникает необходимость вывести дополнительные реквизиты (например, Контрагент) в общий журнал документов. Однако при работе с SQL-версией платформы 1С 7.7 стандартные действия по добавлению графы отбора могут приводить к критическим ошибкам, таким как Incorrect syntax near the keyword 'TRANSACTION'. В данной статье мы разберем, как правильно реализовать эту задачу и что делать, если база данных начала выдавать ошибки при сохранении метаданных.

Способ 1: Оптимальный вывод информации через Глобальный модуль

Прежде чем прибегать к сложной перестройке структуры таблиц через графы отбора, рассмотрим более безопасный метод. Если ваша задача — просто видеть значение реквизита в колонке «Информация» общего журнала, воспользуйтесь правкой функции глИнформацияПоДокументуВЖурнале в глобальном модуле.

Этот подход не требует изменения структуры SQL-таблиц и исключает риск возникновения ошибок реструктуризации. Откройте глобальный модуль и внесите изменения в функцию следующим образом:


Функция глИнформацияПоДокументуВЖурнале(Док) Экспорт
    // ... существующий код ...
    ИначеЕсли (ВидДок = "ЧекККМ") или (ВидДок = "ОтчетККМ") Тогда
        Возврат Док.Контрагент + " " + Док.Касса;
    // ... 
КонецФункции

Данный метод позволяет динамически формировать строковое представление документа для отображения в журнале без вмешательства в движок базы данных.

Способ 2: Настройка графы отбора (если необходим поиск по реквизиту)

Если вам требуется именно функционал отбора по контрагенту в журнале, необходимо добавить графу отбора. Рассмотрим пошаговый алгоритм выполнения этой операции:

  1. Откройте Конфигуратор и перейдите в раздел Журналы документов.
  2. Выберите необходимый журнал и откройте вкладку Графы отбора.
  3. Добавьте новую графу, например, Контрагент.
  4. В настройках графы для документа ЧекККМ выберите соответствующий реквизит шапки документа.
  5. Сохраните изменения. Важно: делайте это на компьютере, где физически расположена база данных, чтобы избежать сетевых прерываний.

Что делать при ошибке «Incorrect syntax near the keyword 'TRANSACTION'»?

Если при сохранении конфигурации возникает ошибка TRANSACTION, это свидетельствует о повреждении системных таблиц (как правило, _1crdoc или _1sjournl). Разберем шаги по реанимации базы:

Шаг 1: Работа с файлом блокировки

При сбое процесса реструктуризации 1С создает файл 1srecalc.cmd в папке базы данных, который принудительно запускает пересчет при входе. Если процесс падает, переименуйте этот файл в 1srecalc_.cmd. Это позволит вам зайти в конфигуратор без автоматического запуска аварийного пересчета.

Шаг 2: Очистка служебных таблиц

Если ошибки продолжаются, необходимо выполнить очистку таблицы служебных ссылок. Это абсолютно безопасная процедура, так как данные в этой таблице являются производными.

В SQL Management Studio (или Query Analyzer) выполните следующую команду:

TRUNCATE TABLE _1crdoc;

После выполнения команды очистки выполните Тестирование и исправление базы данных в режиме Конфигуратора, обязательно отметив пункт «Пересчет служебных данных». Система сама восстановит структуру связей, основываясь на данных таблицы _1sjournl.

Рекомендации по безопасности

Работа с SQL-версией 1С 7.7 требует осторожности при изменении структуры метаданных:

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

← На главную