Почему возникает ошибка «При проверке запрета изменения не найдены источники данных для таблицы» при добавлении нового документа в 1С?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При разработке или внедрении новых объектов метаданных в типовые конфигурации на базе БСП (Библиотеки Стандартных Подсистем), такие как БП 3.0, разработчики нередко сталкиваются с ошибкой при попытке записи или открытия нового документа. Сообщение «При проверке запрета изменения не найдены источники данных для таблицы» указывает на то, что подсистема «Даты запрета изменения» не получила необходимых сведений о новом объекте.

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

Понимание механизма проверки дат запрета

Система «Даты запрета изменения» в 1С — это сложный механизм, который проверяет, не была ли изменена дата документа, попадающая в период, закрытый для редактирования. Чтобы эта проверка работала для любого документа, платформа должна «знать» о нем: какие реквизиты отвечают за дату документа и организацию, и к какому разделу учета он относится.

Когда мы добавляем собственный документ, система автоматически не регистрирует его в подсистеме дат запрета. В момент обращения к объекту алгоритм проверки запрашивает список доступных источников, и, не находя там нашего нового документа, выбрасывает исключение. Рассмотрим, как именно нужно зарегистрировать наш документ, чтобы система «увидела» его и начала корректно обрабатывать.

Пошаговое руководство по исправлению ошибки

Для решения проблемы нам необходимо внести изменения в общий модуль, отвечающий за логику дат запрета. Чаще всего это модуль ДатыЗапретаИзмененияПереопределяемый. Выполним настройку по шагам:

  1. Откройте конфигуратор и перейдите в ветку «Общие» -> «Общие модули».
  2. Найдите модуль с именем ДатыЗапретаИзмененияПереопределяемый.
  3. Внутри модуля найдите процедуру ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения. Именно в этой процедуре происходит регистрация всех объектов, для которых допустима проверка даты запрета.
  4. Вам необходимо добавить вызов метода для регистрации вашего нового документа. Используйте уже существующие примеры в этой процедуре для понимания синтаксиса.

Пример реализации кода регистрации

Чтобы зарегистрировать новый документ, например, АвансовыйОтчетСписок, добавьте строку по аналогии с типовым кодом. Рассмотрим структуру вызова:


// В процедуре ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения
// добавляем строку регистрации:
ДатыЗапретаИзменения.ДобавитьСтроку(
    ИсточникиДанных, 
    "Документ.АвансовыйОтчетСписок", 
    "Дата", 
    "ВашРазделУчета", 
    "Организация"
);

Разберем параметры этого вызова подробно:

Важные рекомендации при внесении изменений

Рассмотрим, на что еще стоит обратить внимание после внесения кода:

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

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

В-третьих, если ваш документ не использует классическую схему (например, имеет сложную логику определения даты или организации), возможно, потребуется более глубокое переопределение функций в модуле ДатыЗапретаИзмененияПереопределяемый. Однако в 90% случаев для БП 3.0 достаточно простой регистрации, описанной выше.

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

← На главную