Как исправить ошибку «Таблица не найдена Документ.ПоступлениеТоваровУслуг.Товары» при открытии прайс-листа и установки цен в 1С:Управление торговлей 11.4?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Переход со старых редакций конфигурации «1С:Управление торговлей» (например, с УТ 11.2 или 11.3) на актуальную версию УТ 11.4/11.5 — это масштабный процесс, который нередко сопровождается техническими сложностями. Одной из наиболее частых и неприятных проблем, с которой сталкиваются как программисты, так и обычные пользователи (бухгалтеры, менеджеры по ценообразованию), является критический сбой при попытке открыть прайс-лист или создать документ УстановкаЦенНоменклатуры.

Система аварийно завершает работу, выдавая длинное техническое сообщение об ошибке инициализации схемы компоновки данных:

«Ошибка при вызове конструктора (ИсточникДоступныхНастроекКомпоновкиДанных) КомпоновщикНастроек.Инициализировать... по причине: Ошибка получения информации набора данных по причине: Ошибка в запросе набора данных по причине: {(26, 2)}: Таблица не найдена "Документ.ПоступлениеТоваровУслуг.Товары"»

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

Рассмотрим подробнее структуру метаданных и пошаговый алгоритм исправления базы данных.

Выясняем причину: почему возникает ошибка «Таблица не найдена»?

Корни этой проблемы кроются в масштабном рефакторинге метаданных, который разработчики компании «1С» провели при переходе к редакции УТ 11.4. В старых версиях программы (УТ 11.2 и ранее) ключевым документом для отражения закупок был документ ПоступлениеТоваровУслуг (в структуре базы данных — Документ.ПоступлениеТоваровУслуг).

Начиная с версии 11.3 и окончательно в 11.4, этот документ был полностью заменен новым объектом метаданных — ПриобретениеТоваровУслуг (в базе данных — Документ.ПриобретениеТоваровУслуг). Старая таблица Документ.ПоступлениеТоваровУслуг была физически удалена из конфигурации.

При этом алгоритмы расчета цен в 1С построены на механизме Схем компоновки данных (СКД). Эти схемы хранятся внутри справочника ВидыЦен. Если в вашей базе данных существовал хотя бы один вид цены (даже старый, неиспользуемый или помеченный на удаление), который рассчитывался по данным информационной базы (например, «Цены поступления»), его схема компоновки данных до сих пор хранит старый текстовый запрос. В этом запросе фигурирует обращение к несуществующей таблице Документ.ПоступлениеТоваровУслуг.Товары.

Когда вы открываете обработку «Прайс-лист» или создаете документ УстановкаЦенНоменклатуры, платформа инициализирует настройки всех видов цен для построения интерфейса. Программа натыкается на старый запрос, пытается получить структуру несуществующей таблицы закупки и выдает критическую ошибку.

Давайте разберем по шагам, как найти и исправить этот сбой.

Шаг 1. Находим проблемный вид цены

Для начала нам нужно локализовать элемент справочника ВидыЦен, который является источником ошибки. Сделать это несложно:

  1. Откроем программу и перейдем в раздел CRM и маркетинг.
  2. В панели навигации найдем группу Настройки и справочники и выберем пункт Цены и скидки (Виды цен).
  3. В открывшемся списке отобразятся все используемые виды цен. Нам необходимо проанализировать колонку «Способ задания цены». Особое внимание обращаем на элементы, у которых установлено:
    • «Произвольный запрос к данным ИБ»
    • «Заполнять по данным ИБ при поступлении»
  4. Важно: По умолчанию помеченные на удаление элементы могут быть скрыты в списке. Нажмем кнопку Еще в правом верхнем углу списка и проверим, включено ли отображение удаленных элементов. Старые виды цен, помеченные на удаление, очень часто содержат битые СКД и вызывают эту ошибку!

Шаг 2. Разрешаем редактирование реквизитов

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

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

Шаг 3. Запуск 1С:Предприятие в режиме «Толстого клиента»

Этот шаг является строго обязательным. Платформа «1С:Предприятие 8» накладывает ограничения на редактирование схем компоновки данных (СКД) в обычном тонком клиенте. Чтобы у нас была возможность открыть конструктор запросов или изменить текст СКД, базу необходимо запустить в режиме «Толстого клиента».

Проанализируем процедуру переключения режима запуска:

  1. Полностью закроем все запущенные сеансы работы с нашей базой данных 1С.
  2. Откроем стартер (окно со списком информационных баз 1С).
  3. Выделим нашу рабочую базу одним кликом мыши и в правой панели управления нажмем кнопку Изменить....
  4. В открывшемся мастере редактирования свойств нажимаем кнопку Далее, переходя к последней странице настроек (параметры запуска).
  5. Найдем параметр Основной режим запуска. По умолчанию там обычно стоит «Выбирать автоматически» или «Тонкий клиент».
  6. Переключим это значение на Толстый клиент.
  7. Нажимаем кнопку Готово для сохранения настроек и запускаем программу 1С в обычном режиме.

Шаг 4. Восстановление и корректировка СКД

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

Вариант А: Быстрый сброс к типовым настройкам (рекомендуется для пользователей и бухгалтеров)

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

  1. В карточке вида цены временно переключим тумблер Способ задания цены в положение Вручную.
  2. Запишем элемент, нажав кнопку Записать. Это очистит кэшированные некорректные настройки.
  3. Вернем переключатель Способ задания цены обратно в положение Заполнять по данным ИБ при поступлении (или «Произвольный запрос к данным ИБ»).
  4. В появившемся поле выбора схемы компоновки данных нажмем на кнопку выбора и выберем стандартный шаблон заново (например, Цены поступления).
  5. Платформа автоматически загрузит обновленный, корректный шаблон запроса, который уже ссылается на новые таблицы Документ.ПриобретениеТоваровУслуг.
  6. Нажимаем кнопку Записать и закрыть.

Вариант Б: Ручная правка запроса в СКД (рекомендуется для программистов)

Если схема компоновки была уникальной, содержала сложные доработки, интеграцию с дополнительными свойствами номенклатуры или нестандартные формулы, сбрасывать ее нельзя. Нам нужно вручную адаптировать текст запроса под метаданные УТ 11.4.

Разберем этот процесс по шагам:

  1. В карточке вида цены найдем поле Схема компоновки данных и нажмем кнопку Редактировать.
  2. В открывшемся окне редактирования схемы нажмем кнопку Редактировать схему компоновки.
  3. Перед нами откроется стандартный конструктор СКД. Перейдем на вкладку Наборы данных.
  4. В левой части выберем наш набор данных (обычно это НаборДанныхЗапрос). В правой части экрана отобразится поле с текстом SQL-подобного запроса 1С.
  5. Внимательно изучим текст запроса. Нам необходимо найти все упоминания старой таблицы Документ.ПоступлениеТоваровУслуг.Товары и заменить их на новые.

Проанализируем пример изменения кода запроса. Старый вариант обращения к таблице выглядел так:


ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    ПоступлениеТоваровУслугТовары.Характеристика КАК Характеристика,
    ПоступлениеТоваровУслугТовары.Цена КАК Цена,
    ПоступлениеТоваровУслугТовары.Ссылка.Валюта КАК Валюта
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары

Этот запрос вызывает падение системы. Изменим его, приведя к синтаксису УТ 11.4:


ВЫБРАТЬ
    ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
    ПриобретениеТоваровУслугТовары.Цена КАК Цена,
    ПриобретениеТоваровУслугТовары.Ссылка.Валюта КАК Валюта
ИЗ
    Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары

После замены текста запроса выполним следующие действия:

  1. Нажмем кнопку ОК в окне конструктора схемы компоновки.
  2. В окне выбора схемы нажмем кнопку Завершить редактирование.
  3. Сохраним изменения в карточке вида цены кнопкой Записать и закрыть.

Шаг 5. Очистка базы данных от старых помеченных объектов

Если сбой вызывал старый, давно заброшенный вид цены, который был помечен на удаление, но не удалялся из базы, рекомендуется полностью очистить базу от этого «мусора»:

  1. Перейдем в раздел НСИ и администрирование.
  2. Выберем пункт Обслуживание, далее перейдем в подраздел Удаление помеченных объектов.
  3. Запустим автоматический поиск помеченных объектов.
  4. Найдем в списке наш проблемный вид цены и попробуем его удалить.
  5. Если система сообщает о наличии связей и документов, которые мешают удалению, вернемся в карточку этого вида цены и выполним Вариант А из Шага 4 (просто переключим его способ расчета на ручной ввод и очистим СКД). После этого он перестанет влиять на запуск прайс-листа, даже оставаясь в базе данных.

Важная рекомендация после обновлений: Обязательно зайдите в раздел НСИ и администрирование -> Обслуживание -> Результаты обновления программы. Убедитесь, что все процедуры отложенного обновления данных успешно завершены. Иногда незавершенное отложенное обновление также может блокировать корректную работу механизмов ценообразования.

После выполнения указанных шагов запуск прайс-листа и создание документов установки цен будут происходить в штатном режиме без каких-либо ошибок!

← На главную