При работе в конфигурации 1С:Бухгалтерия государственного учреждения 2.0 (БГУ 2.0) пользователи и технические специалисты часто сталкиваются с загадочной ошибкой: «Не задана схема компоновки у типовой операции». Данная проблема может возникнуть как при использовании стандартных (поставляемых) операций, так и при создании собственных настроек для формирования проводок. Рассмотрим подробно природу этой ошибки и разберем пошаговый алгоритм её устранения.
Для начала проанализируем, как работает механизм типовых операций в БГУ 2.0. В отличие от старых версий программ 1С, где алгоритмы заполнения были жестко прописаны в коде, БГУ 2.0 использует гибкий механизм динамического формирования движений. Когда вы выбираете типовую операцию в документе, система пытается «на лету» построить запрос к данным документа, используя механизм Схемы компоновки данных (СКД).
Если программный код не может собрать этот запрос (схему), он выдает сообщение о том, что схема не задана. Проанализируем основные факторы, которые приводят к «пустоте» в схеме компоновки:
NULL или неопределено.Рассмотрим алгоритм действий, который поможет нам локализовать проблемный участок в настройках типовой операции. Для этого выполним следующие действия:
Шаг 1. Переход в режим редактирования типовой операции. Нам необходимо открыть справочник ТиповыеОперации, найти ту операцию, на которую ругается система, и зайти в её форму. Обратите внимание на список проводок в нижней части формы.
Шаг 2. Проверка формул в строках проводки. Проанализируем каждую строку. Ошибка может скрываться в любом поле: СчетДебета, СчетКредита, Субконто, Сумма или Содержание. Нам нужно последовательно зайти в каждое поле, где используется формула (обозначается специальной иконкой или текстом выражения).
Шаг 3. Использование встроенного валидатора. В редакторе формул 1С:БГУ предусмотрена кнопка «Проверить формулы». Нажмем её. Однако стоит учитывать, что встроенная проверка не всегда ловит логические ошибки обращения к контексту документа, она проверяет только базовый синтаксис 1С.
Как показывает практика, чаще всего проблема решается путем нахождения синтаксической ошибки или удаления неправильно выбранного операнда формулы. Выясним, как правильно работать с операндами, чтобы избежать подобных сбоев.
При редактировании формулы крайне не рекомендуется писать имена реквизитов «по памяти». Вместо этого разберем правильный подход:
Объект.СуммаДокумента или Строка.Номенклатура) и дважды кликнем по нему.Если вы обнаружили, что в формуле используется обращение к реквизиту через точку от пустого значения, например Объект.Договор.ВидДоговора, а договор в документе не выбран, СКД может выдать ошибку компоновки. В таких случаях проанализируем ситуацию и добавим проверку:
?(ЗначениеЗаполнено(Объект.Договор), Объект.Договор.ВидДоговора, Справочники.ВидыДоговоров.ПустаяСсылка())
Иногда ошибка «Не задана схема компоновки» возникает на стандартных операциях, которые поставляются вместе с релизом БГУ. Это может показаться странным, ведь их настраивали разработчики фирмы 1С. Посмотрим, почему это происходит:
Во-первых, это может быть следствием некорректного обновления. Если при обновлении конфигурации или расширения была нарушена целостность структуры метаданных, типовая операция «теряет» связь с объектами. В этом случае попробуем создать копию этой операции и проверить, сохраняется ли ошибка в копии.
Во-вторых, проблема может быть в кэше метаданных. 1С хранит структуру схемы компоновки в локальном кэше пользователя. Выполним стандартную процедуру очистки кэша или запустим базу с параметром /ClearCache.
Если вы занимаетесь глубокой отладкой, полезно понимать, какой именно метод вызывает ошибку. В программном коде БГУ 2.0 за сборку схемы отвечает общий модуль, работающий с объектом СхемаКомпоновкиДанных. Ошибка генерируется в тот момент, когда вызывается метод Инициализировать() процессора компоновки данных, а в качестве параметра передается некорректно сформированный макет.
Посмотрим на пример того, как система пытается интерпретировать ваши настройки в типовой операции. Фактически, ваши формулы превращаются в части секции ВЫБРАТЬ запроса СКД. Если в этой секции оказывается «мусор» или обращение к несуществующему полю, весь механизм формирования проводок перестает функционировать.
Подведем итог: для исправления ошибки необходимо тщательно проверить настройки проводок в типовой операции. Помните, что сообщение системы «Не задана схема компоновки» — это всего лишь следствие того, что в формулах или параметрах проводки содержится ошибка, не позволяющая программе собрать текст внутреннего запроса.