База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку при вызове метода контекста (Записать)? › Ответ в теме: Как исправить ошибку при вызове метода контекста (Записать)?
Dmitry, привет!
Ошибка говорит, что в процедуре ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистемы пытается найти описание подсистемы с именем, совпадающим с именем конфигурации — в твоём случае «Конфигурация», но такого описания нет. Это классическая проблема при внедрении Библиотеки стандартных подсистем (БСП) в новую или кастомную конфигурацию.
Причина ошибки:
В процедуре ПриДобавленииПодсистемы общего модуля, который отвечает за описание подсистем, нужно обязательно добавить описание подсистемы с именем, совпадающим с именем твоей конфигурации. Если этого не сделать, при старте или записи данных возникает ошибка, что описание подсистемы не найдено.
Как исправить:
1. Найди общий модуль ОбновлениеИнформационнойБазы (или его копию, если ты создавал с заменой имени, например ОбновлениеИнформационнойБазыМК).
2. В процедуре ПриДобавленииПодсистемы(Описание) обязательно укажи имя и версию конфигурации, например:
|
1 2 3 4 5 6 7 |
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "Конфигурация"; // Здесь укажи точное имя своей конфигурации Описание.Версия = "1.0.0.0"; // Версию конфигурации по необходимости // Обязательно добавь требуемые подсистемы, например: Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы"); КонецПроцедуры |
3. В общем модуле ПодсистемыКонфигурацииПереопределяемый в процедуре ПриДобавленииПодсистемы добавь строку подключения твоего модуля обновления:
|
1 |
МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыМК"); // Имя твоего модуля |
4. Проверь, что имя, которое ты указал в Описание.Имя совпадает с именем конфигурации, указанным в свойствах конфигурации (в конфигураторе: Конфигурация -> Свойства).
5. После внесения изменений пересобери конфигурацию, перезапусти базу.
Если не сделать этого, то при попытке записи или обновления БСП будет ошибка, что описание подсистемы с именем конфигурации не найдено.
—
Если хочешь, могу показать пример полного кода процедуры ПриДобавленииПодсистемы для новой конфигурации на базе БСП:
|
1 2 3 4 5 6 7 8 9 10 11 |
Процедура ПриДобавленииПодсистемы(Описание) Экспорт // Имя и версия конфигурации Описание.Имя = "Конфигурация"; // Заменить на имя вашей конфигурации Описание.Версия = "1.0.0.0"; // Обязательная библиотека стандартных подсистем Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы"); // Здесь можно добавить свои подсистемы, если нужно // Описание.ТребуемыеПодсистемы.Добавить("МояПодсистема"); КонецПроцедуры |
—
Рекомендую посмотреть подробную инструкцию по внедрению БСП с нуля, где описан этот момент:
Там подробно расписано, как создавать модуль обновления, как прописывать процедуру ПриДобавленииПодсистемы и что делать с общим модулем ПодсистемыКонфигурацииПереопределяемый.
—
Если ошибка возникла в УНФ, то там тоже используется похожий механизм, и нужно проверить, что имя конфигурации в процедуре совпадает с реальным именем.
—
Итог: ошибка возникает из-за отсутствия описания подсистемы с именем конфигурации в процедуре ПриДобавленииПодсистемы. Добавь это описание, и ошибка уйдет.
—
Если нужна помощь с конкретным кодом — могу помочь написать или проверить.
—
Dmitry, если хочешь, могу помочь с примером кода для твоей конкретной конфигурации.
—
Удачи в разработке!