1с зуп общий модуль инцидентыцккслужебный не существует
Как и любая программа, программа 1С состоит из модулей, частей. Существует несколько видов модулей:
- общие модули (проведение, отчеты, процедуры общего назначения и т.д.);
- модуль объекта (валюты);
- модуль формы (форма: списка, элемента, подбора и выбора);
- модуль приложения.
Программные модули состоят из разделов:
- объявления переменных;
- процедур и функций;
- основной программы.
Контекст в 1С заключается в окружении модуля и его разделов, т.е. это конкретные переменные, свойства, объекты, метод и события которые могут быть доступны в каждой конкретной точке.
- Глобальный контекст указывает открытые для вызова функции;
- Локальный контекст (более низкий уровень) становится доступен в каждой модульной части.
Существуют правила для доступа процедур, переменных, и функций в модулях:
- В общем модуле не будут доступны для экспорта переменные, процедуры и функции модульных приложений;
- В модульных приложениях существует доступ для экспорта процедур и функций общих модулей;
- В общих модульных частях открыт доступ к экспорту процедур и функций прочих общих модулей;
- Для модульных прикладных объектов и для модульных форм являются доступными переменные, функции и процедуры модулей приложений для экспорта и общих модулей.
Если какой-либо из форм присвоен основной реквизит, то в настройках этой формы будут содержаться свойство и метод, которые отвечают этому основному реквизиту.
Ошибка модуля
Готовые работы на аналогичную тему
Самые распространенные пояснения:
- записать;
- создать;
- подключиться;
- connect;
- проверить вывод;
- previewFile1C;
- прочитать;
- выполнить;
- выполнить пакет;
- прочитать изменения.
Данная ошибка может возникнуть по причинам:
- нарушена логическая и физическая целостность информационной базы;
- ошибки при обращении с программой;
- разработчиком ошибочно был введен код;
- внезапное закрытие программы.
Вы можете провести анализ ошибки:
Способы устранения ошибки
Перед началом работы с базой обязательно сделайте архивную копию!
Данная ошибка в 99% случаях легко решается. Для этого вам достаточно проанализировать проблему и вызвать справку. Так же вы можете забить конкретную ошибку с пояснением в поиск и найти решение проблемы.
Перед использованием любого метода вы можете получить подсказку о том, как его использовать. Для этого выберете требуемую функцию и нажмите на клавиши на клавиатуре «Ctrl + F1». Программа откроет подсказку по необходимому методу. В конце работы проверьте параметры, которые передаются в функцию, и правильность её использования.
Здравствуйте! Не удается установить обновление с релиза 1С-КАМИН: Зарплата для бюджетных учреждений. Версия 5.5 (5.5.46.4) на 5.5.47.3 (см. скрин). В чем может быть дело?
Вложения:
141
19
3318
954
190
37
Добрый день.
При обновлении на релиз 5.5.47.3 появились следующие ошибки.
1. При первом запуске в неразделенном режиме ИБД возникает ошибка (База опубликована на 1С Фреш):
"Общий модуль "ИнцидентыЦККСлужебный" не найден.
: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
: МодульИнцидентыЦККСлужебный = ОбщегоНазначения.ОбщийМодуль
("ИнцидентыЦККСлужебный");
: Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики);
: ИтерацииОбновления = ИтерацииОбновления();
: ИтерацииОбновления = ЗаблокироватьИБ(БлокировкаИБ,
ПараметрыОбновления.ИсключениеПриНевозможностиБлокировкиИБ);
: ДополнительныеПараметры = ДействияПередОбновлениемИнформационнойБазы(ПараметрыОбновления);
: Результат =
ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
:
ОбновлениеИнформационнойБазыСлужебныйВызовСервера.ВыполнитьОбновлениеИнформационнойБазы(Истина);
: ЗавершитьОбновлениеПараметровРаботыПрограммы(Результат,
ДополнительныеПараметры);
: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОЗавершении, Результат);
: ВыполнитьОповещение(ДлительнаяОперация, Статус);
: Если ПроконтролироватьДлительнуюОперацию(Операция, Статус) Тогда
: ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации.Список);"
2. При попытке обновить ИБД в разделенной области (осуществив первый вход в область после обновления) возникает след ошибка:
Общий модуль "ИнцидентыЦККСлужебный" не найден.
: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
: МодульИнцидентыЦККСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнцидентыЦККСлужебный");
: Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики);
: ИтерацииОбновления = ИтерацииОбновления();
: ИтерацииОбновления = ЗаблокироватьИБ(БлокировкаИБ, ПараметрыОбновления.ИсключениеПриНевозможностиБлокировкиИБ);
: ДополнительныеПараметры = ДействияПередОбновлениемИнформационнойБазы(ПараметрыОбновления);
: Результат = ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
: ОбновлениеИнформационнойБазыСлужебныйВызовСервера.ВыполнитьОбновлениеИнформационнойБазы(Истина);
: ЗавершитьОбновлениеПараметровРаботыПрограммы(Результат, ДополнительныеПараметры);
: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОЗавершении, Результат);
: ВыполнитьОповещение(ДлительнаяОперация, Статус);
: Если ПроконтролироватьДлительнуюОперацию(Операция, Статус) Тогда
: ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации.Список);
Значение не является значением объектного типа (Найти)
: Если ШаблоныЗаданийОчереди.Найти(КопияОтбора.Метаданные.Имя) <> Неопределено Тогда
: Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
: УстановитьОбновлениеДоступа(Истина, Истина);
: МодульУправлениеДоступомСлужебный.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия,
: ИнтеграцияПодсистемБСП.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия,
: ИтерацияОбновления.ОсновнойСерверныйМодуль.ПослеОбновленияИнформационнойБазы(
: Константы.ДетализироватьОбновлениеИБВЖурналеРегистрации.Получить(),
: ВыполнитьДействияПослеОбновленияИнформационнойБазы(ДополнительныеПараметры);
: Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
3. После выполнения обновления нет возможности подключиться из 1СФреш к опубликованной базе возникает след. ошибка:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неизвестная ошибка. : Ошибка при вызове метода контекста (Выполнить)
по причине:
: Ошибка при вызове метода контекста (Выполнить)
по причине:
по причине:
Ошибка выполнения запроса
по причине:
Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения'
Код ошибки: Client
Техническая информация:
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: :Exchange_2_0_1_6:Download()
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неизвестная ошибка. : Ошибка при вызове метода контекста (Выполнить)
по причине:
: Ошибка при вызове метода контекста (Выполнить)
по причине:
по причине:
Ошибка выполнения запроса
по причине:
Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения'
Код ошибки: Client
Техническая информация:
3318
954
Добрый день.
При обновлении на релиз 5.5.47.3 появились следующие ошибки.
1. При первом запуске в неразделенном режиме ИБД возникает ошибка (База опубликована на 1С Фреш):
"Общий модуль "ИнцидентыЦККСлужебный" не найден.
: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
: МодульИнцидентыЦККСлужебный = ОбщегоНазначения.ОбщийМодуль
("ИнцидентыЦККСлужебный");
: Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики);
: ИтерацииОбновления = ИтерацииОбновления();
: ИтерацииОбновления = ЗаблокироватьИБ(БлокировкаИБ,
ПараметрыОбновления.ИсключениеПриНевозможностиБлокировкиИБ);
: ДополнительныеПараметры = ДействияПередОбновлениемИнформационнойБазы(ПараметрыОбновления);
: Результат =
ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
:
ОбновлениеИнформационнойБазыСлужебныйВызовСервера.ВыполнитьОбновлениеИнформационнойБазы(Истина);
: ЗавершитьОбновлениеПараметровРаботыПрограммы(Результат,
ДополнительныеПараметры);
: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОЗавершении, Результат);
: ВыполнитьОповещение(ДлительнаяОперация, Статус);
: Если ПроконтролироватьДлительнуюОперацию(Операция, Статус) Тогда
: ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации.Список);"
2. При попытке обновить ИБД в разделенной области (осуществив первый вход в область после обновления) возникает след ошибка:
Общий модуль "ИнцидентыЦККСлужебный" не найден.
: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
: МодульИнцидентыЦККСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнцидентыЦККСлужебный");
: Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики);
: ИтерацииОбновления = ИтерацииОбновления();
: ИтерацииОбновления = ЗаблокироватьИБ(БлокировкаИБ, ПараметрыОбновления.ИсключениеПриНевозможностиБлокировкиИБ);
: ДополнительныеПараметры = ДействияПередОбновлениемИнформационнойБазы(ПараметрыОбновления);
: Результат = ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
: ОбновлениеИнформационнойБазыСлужебныйВызовСервера.ВыполнитьОбновлениеИнформационнойБазы(Истина);
: ЗавершитьОбновлениеПараметровРаботыПрограммы(Результат, ДополнительныеПараметры);
: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОЗавершении, Результат);
: ВыполнитьОповещение(ДлительнаяОперация, Статус);
: Если ПроконтролироватьДлительнуюОперацию(Операция, Статус) Тогда
: ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации.Список);
Значение не является значением объектного типа (Найти)
: Если ШаблоныЗаданийОчереди.Найти(КопияОтбора.Метаданные.Имя) <> Неопределено Тогда
: Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
: УстановитьОбновлениеДоступа(Истина, Истина);
: МодульУправлениеДоступомСлужебный.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия,
: ИнтеграцияПодсистемБСП.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия,
: ИтерацияОбновления.ОсновнойСерверныйМодуль.ПослеОбновленияИнформационнойБазы(
: Константы.ДетализироватьОбновлениеИБВЖурналеРегистрации.Получить(),
: ВыполнитьДействияПослеОбновленияИнформационнойБазы(ДополнительныеПараметры);
: Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
3. После выполнения обновления нет возможности подключиться из 1СФреш к опубликованной базе возникает след. ошибка:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неизвестная ошибка. : Ошибка при вызове метода контекста (Выполнить)
по причине:
: Ошибка при вызове метода контекста (Выполнить)
по причине:
по причине:
Ошибка выполнения запроса
по причине:
Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения'
Код ошибки: Client
Техническая информация:
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: :Exchange_2_0_1_6:Download()
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неизвестная ошибка. : Ошибка при вызове метода контекста (Выполнить)
по причине:
: Ошибка при вызове метода контекста (Выполнить)
по причине:
по причине:
Ошибка выполнения запроса
по причине:
Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения'
Код ошибки: Client
Техническая информация:
На сервисе 1cFresh.com обновление выполнено успешно.
Уточните, о каком сервисе и какой площадке идет речь?
На известных нам сервисах нет проблем с обновлением, если обновление выполняется через агент сервиса. Если обновление выполняется "вручную" через конфигуратор, то да, есть нюанс.
165
321
Добрый день, Владимир!
Указанная Вами ситуация возникает при обновлении конфигурации в сервисе посредством конфигуратора (через менеджер сервиса всё происходит автоматически).
Для исправления необходимо затем установить вручную расширение "fresh.cfe" выгруженное из общего макета "fresh" новой конфигурации.
190
37
Добрый день.
При обновлении на релиз 5.5.47.3 появились следующие ошибки.
1. При первом запуске в неразделенном режиме ИБД возникает ошибка (База опубликована на 1С Фреш):
"Общий модуль "ИнцидентыЦККСлужебный" не найден.
: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
: МодульИнцидентыЦККСлужебный = ОбщегоНазначения.ОбщийМодуль
("ИнцидентыЦККСлужебный");
: Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики);
: ИтерацииОбновления = ИтерацииОбновления();
: ИтерацииОбновления = ЗаблокироватьИБ(БлокировкаИБ,
ПараметрыОбновления.ИсключениеПриНевозможностиБлокировкиИБ);
: ДополнительныеПараметры = ДействияПередОбновлениемИнформационнойБазы(ПараметрыОбновления);
: Результат =
ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
:
ОбновлениеИнформационнойБазыСлужебныйВызовСервера.ВыполнитьОбновлениеИнформационнойБазы(Истина);
: ЗавершитьОбновлениеПараметровРаботыПрограммы(Результат,
ДополнительныеПараметры);
: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОЗавершении, Результат);
: ВыполнитьОповещение(ДлительнаяОперация, Статус);
: Если ПроконтролироватьДлительнуюОперацию(Операция, Статус) Тогда
: ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации.Список);"
2. При попытке обновить ИБД в разделенной области (осуществив первый вход в область после обновления) возникает след ошибка:
Общий модуль "ИнцидентыЦККСлужебный" не найден.
: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
: МодульИнцидентыЦККСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнцидентыЦККСлужебный");
: Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики);
: ИтерацииОбновления = ИтерацииОбновления();
: ИтерацииОбновления = ЗаблокироватьИБ(БлокировкаИБ, ПараметрыОбновления.ИсключениеПриНевозможностиБлокировкиИБ);
: ДополнительныеПараметры = ДействияПередОбновлениемИнформационнойБазы(ПараметрыОбновления);
: Результат = ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
: ОбновлениеИнформационнойБазыСлужебныйВызовСервера.ВыполнитьОбновлениеИнформационнойБазы(Истина);
: ЗавершитьОбновлениеПараметровРаботыПрограммы(Результат, ДополнительныеПараметры);
: ВыполнитьОбработкуОповещения(ДлительнаяОперация.ОповещениеОЗавершении, Результат);
: ВыполнитьОповещение(ДлительнаяОперация, Статус);
: Если ПроконтролироватьДлительнуюОперацию(Операция, Статус) Тогда
: ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации.Список);
Значение не является значением объектного типа (Найти)
: Если ШаблоныЗаданийОчереди.Найти(КопияОтбора.Метаданные.Имя) <> Неопределено Тогда
: Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
: УстановитьОбновлениеДоступа(Истина, Истина);
: МодульУправлениеДоступомСлужебный.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия,
: ИнтеграцияПодсистемБСП.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия,
: ИтерацияОбновления.ОсновнойСерверныйМодуль.ПослеОбновленияИнформационнойБазы(
: Константы.ДетализироватьОбновлениеИБВЖурналеРегистрации.Получить(),
: ВыполнитьДействияПослеОбновленияИнформационнойБазы(ДополнительныеПараметры);
: Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
3. После выполнения обновления нет возможности подключиться из 1СФреш к опубликованной базе возникает след. ошибка:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неизвестная ошибка. : Ошибка при вызове метода контекста (Выполнить)
по причине:
: Ошибка при вызове метода контекста (Выполнить)
по причине:
по причине:
Ошибка выполнения запроса
по причине:
Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения'
Код ошибки: Client
Техническая информация:
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: :Exchange_2_0_1_6:Download()
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неизвестная ошибка. : Ошибка при вызове метода контекста (Выполнить)
по причине:
: Ошибка при вызове метода контекста (Выполнить)
по причине:
по причине:
Ошибка выполнения запроса
по причине:
Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения'
Код ошибки: Client
Техническая информация:
На сервисе 1cFresh.com обновление выполнено успешно.
Уточните, о каком сервисе и какой площадке идет речь?
На известных нам сервисах нет проблем с обновлением, если обновление выполняется через агент сервиса. Если обновление выполняется "вручную" через конфигуратор, то да, есть нюанс.
Мы работам на 1С Фреш Менеджер сервиса версия 1.0.97.14
Мы обновление ставим вручную через конфигуратор. Почему есть нюанс и какой он?
Помогите туплю.
Конфигурация УНФ нужно запустить в толстом клиенте. В параметрах включаю режим управляемого и обычного приложения. На общем модуле "ПрисоединенныеФайлы" стоят галки Сервер, Внешнее соединение и Клиент (обычное приложение)
При попытке открыть список заказов вываливается ошибка инициализации менеджера справочника Контрагенты, так как не известна переменная "ПрисоединенныеФайлы".
Насколько я понимаю в толстом клиенте менеджер объекта выполняется на клиенте и у общего модуля стоит галка Клиент (обычное приложение), так почему же менеджер объекта не видит общий модуль.
Версия платформы (8.3.5.1119)
Режим совместимости "Версия 8.3.4"
(1) kyrasol, Для включения толстого клиента (управляемое приложение) не нужно никаких специальных настроек - все работает и так.
(4) если есть УНФ, попробуйте запустите толстый клиент в клиент-серверном варианте и попробуйте открыть список заказов.
Да кто знает откуда он выполняется? появляется ошибка ИНИЦИАЛИЗАЦИИ менеджера справочника, поскольку не виден общий модуль "ПрисоединенныеФайлы". У общего модуля стоят галки Сервер, Внешнее соединение, Клиент (обычное приложение) - значит он должен быть виден как при вызове с сервера, так и при вызове из клиента (обычное приложение)?
У кого есть УНФ попробуйте запустите в толстом клиенте и откройте список заказов.
кстати, ошибка появляется только в клиент-серверном варианте работы, в файловом все отлично работает
Разработка конфигураций, рассчитанных на режим управляемого приложения, как правило, ведется исходя из того, что в клиент-серверной архитектуре код следующих модулей компилируется и выполняется только на сервере
модуль менеджера;
модуль объекта;
модуль сеанса.
В частности, в указанных модулях может встречаться обращение к общим модулям, доступным только на сервере.
Однако в толстом клиенте, в режиме управляемого приложения, клиент-сервер, возможны ситуации, когда указанные модули могут начать компилироваться и выполняться на стороне клиента, в частности:
На общих модулях лежит обязанность хранения процедур и функций, которые вызываются из других мест системы 1С. Считается хорошим тоном размещение кода, вызывающегося несколько раз, в процедуре в общем модуле. Это правило универсально для всех конфигураций, поэтому любой разработчик 1С должен уметь работать с этими объектами конфигурации. Для этого нужно понимать все нюансы и уметь правильно использовать предоставленные платформой возможности.
Создание общего модуля в 1С
После создания функции в одном из модулей объекта возникла потребность использовать аналогичный алгоритм в другом месте. Самое правильно, что можно здесь сделать – перенести код в общий модуль, но перед этим необходимо создать его. Чтобы это сделать, нам нужно зайти в конфигуратор и в дереве конфигурации найти вкладку «Общие». Затем выделить «Общие модули» и воспользоваться кнопкой в виде белого плюса на зеленом кружке.
Рис.1 Общие модули
Справа откроются свойства добавленного общего модуля, и нам предстоит разобраться, что обозначает каждое из них. Они могут быть различной направленности, поэтому, перед тем как настраивать новый объект, желательно определиться, что мы там будем хранить. Если что, в будущем можно будет изменить свойства в соответствии с задачами:
- «Глобальный». Данный флаг ставится, если модуль предназначен для хранения процедур и функций, которые должны вызываться без указания имени модуля. Естественно, они должны быть экспортными, а их имена уникальными в разрезе всего глобального контекста. По использованию они не будут отличаться от стандартных функций платформы;
- «Клиент». Зависит от настроек системы и регламентирует, могут ли процедуры модуля выполняться на стороне клиента;
- «Сервер». Помечаются общие модули, в составе которых планируется помещать алгоритмы для выполнения на сервере;
- «Внешнее соединение». Процедуры модуля с активацией этого свойства смогут выполняться через подключение внешнего источника;
- «Вызов сервера». Отвечает за разрешения процедурам из модуля вызывать сервер, выполняясь на клиенте;
- «Привилегированный». Активация этой настройки позволит при работе кода процедур модуля не проверять права доступа. Вызвать общий модуль с такой настройкой можно только на сервере. Настройки «Клиент» и «Внешнее соединение» будут сброшены;
- «Повторное использование». Может принимать значения: «Не использовать», «На время сеанса», «На время вызова». При многократном вызове одной процедуры система может использовать рассчитанные ранее данные в рамках процедуры (вызов) или жизни всего сеанса (запуска 1С). Стоит быть очень осторожным с этой настройкой, так как из-за неправильного использования таких модулей могут возникать ошибки.
Рис.2 Свойства
Бывают ситуации, когда требуется создать общий модуль с вызовами процедуры на сервере и клиенте с отличиями в алгоритме. Для разграничения кода используются директивы препроцессора с проверкой. В результате для серверного вызова это будет один код, а для клиентского – другой.
Пример переноса кода в общий модуль 1С
Рассмотрим ситуацию, когда у нас два события на форме документа задействуют одну процедуру перемножения количества и цены в табличной части. Это достаточно распространенный алгоритм, так как он встречается во многих документах закупки и реализации. Перенесем код процедуры в общий модуль, который необходимо предварительно создать, чтобы получить возможность использовать этот код в других документах.
Так как для нашей задачи нам хватает вызова с клиента и не нужны данные из базы, ставим только флаг «Клиент». Если вы хотите в дальнейшем использовать этот же модуль для более сложных расчетов, то отметьте в свойствах еще и «Сервер». Подготовительный этап завершен и можем переходить к написанию кода.
Рис.3 Написание кода
Создадим экспортную процедуру в модуле и перенесем туда алгоритм расчета суммы из процедуры в модуле формы. В качестве параметра процедуры на входе будет использоваться строка табличной части. В модуле формы документа меняем вызовы процедуры в том же модуле на вызов процедуры из общего модуля.
Рис.4 Меняем вызовы процедуры
При запуске системы мы не заметим разницы, но такую структуру кода читать и сопровождать намного удобнее. Конечно, в данном примере количество кода не может показать всей пользы. В случае сложного алгоритма для десятков объектов конфигурации выигрыш в объеме кода и его структуры скажется и на быстродействии системы. Помимо этого опытные разработчики 1С рекомендуют в модулях формы не описывать алгоритмы, а помещать их в правильно настроенные общие модули.
При разработке общих модулей следует учитывать общепринятые правила по их созданию:
- Помещать в отдельный общий модуль процедуры и функции, относящиеся к сходному функционалу;
- В наименовании модуля отражать его принадлежность к контексту (Клиент, Сервер) и избегать общих слов (обработчики, процедуры и т.д.);
- Разделять внутреннюю серверную логику приложения и клиентскую для интерфейса;
- Будьте внимательны, создавая глобальный общий модуль. Отсутствие необходимости обращаться к процедуре через имя модуля может привести к путанице, особенно, если систему поддерживает несколько групп разработчиков.
Правильно созданные модули помогут вам намного быстрее ориентироваться в структуре конфигурации и делать доработки. Если вы видите возможность сделать полезную функцию универсальной и вынести ее в общий модуль, то сделайте это. В будущем вы и ваши коллеги будете благодарны за это решение.
Иногда случается, что после обновления 1С пишет «Поле объекта не обнаружено», с указанием на тот или иной объект. Это может случиться при входе в программу, при заполнении какой-либо формы и т.п.
Рис.1 «Поле объекта не обнаружено»
Модуль, к которому идет обращение, перестает работать, но работу программа может не прерывать. Когда ошибка находится в модуле приложения или обработки, то при его запуске программа может и не запуститься.
Обновление платформы
При этом важно посмотреть на описание поставки, которое открывается при установке обновления. Там обязательно указывают рекомендации по использованию версии платформы.
Рис.2 Рекомендации по обновлению платформы
Таким образом, первый и основной вариант решения проблемы – это обновление платформы «1С:Предприятие».
Чтобы посмотреть, какая платформа у нас установлена, необходимо зайти в пункт меню «Сервис» - «О программе», где в верхней строке мы видим версию нашей платформы и сравниваем с рекомендуемой, при установке обновления конфигурации.
Рис.3 Обновление платформы
Очистка настроек пользователя
Рис.4 Настройки пользователя и прав
В подразделе «Персональные настройки пользователя» переходим по гиперссылке «Очистка настроек», где мы можем выбрать – очистить настройки у всех пользователей или только у выбранного. Также мы можем выбрать – очистить все настройки или какие-то отдельные виды настроек.
Рис.5 Гиперссылка «Очистка настроек»
При этом пункт «Отдельные виды настроек» доступен только при очистке настроек конкретного пользователя.
Рис.6 При этом пункт «Отдельные виды настроек» доступен только при очистке настроек конкретного пользователя
Перед нами откроются настройки пользователя, в которых как раз он и мог использовать устаревшие объекты, на которые и ссылается ошибка программы. Мы можем выбрать конкретную настройку (по подсказке ошибки) или очистить все настройки.
Рис.7 Настройки пользователя
Тестирование и исправление информационной базы
В том случае, если возникновение ошибки не связано с платформой и настройками пользователя, то возможно произошел просто сбой в информационной базе, который повредил указанный объект. В таком случае рекомендуется провести «Тестирование и исправление информационной базы», в режиме Конфигуратор, в пункте меню «Администрирование». Обратите внимание, что работа в конфигураторе требует определенных знаний, поэтому, если вы не уверены в своих силах, обращайтесь за консультацией по программе 1С к специалистам.
В тестировании и исправлении необходимо проверить логическую и ссылочную целостность базы. Если произошло необнаружение объекта, мы можем задать настройки программе проверки, что делать с такими объектами – создавать объекты, очищать ссылки или не изменять.
Рис.9 Проверка информационной базы
При выборе варианта «Создавать объекты», программа при обнаружении несуществующей ссылки на объект формирует элемент, своего рода заглушку. При выборе варианта – «Очищать ссылки» или «Удалять объект», некорректные ссылки будут просто удалены. Если оставить переключатель в положении – «Не изменять», программа просто укажет нам на этот объект, не предпринимая никаких действий. Этот вариант нам явно не поможет.
Таким образом, любой ошибке в программе 1С есть логическое объяснение. Если у вас остались вопросы, связанные с исправлением ошибок, и вы нуждаетесь в консультации по программе 1С, звоните, а также оставляйте заявки на нашем сайте. Наши специалисты свяжутся с вами в кратчайшие сроки.
Читайте также: