Иконка корзины 0

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

Как проверить существование общего модуля?

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

&НаКлиенте
Процедура v8PRO_МояПроцедура() Экспорт

	// Если работаем на сервере, то нужно заменить ОбщегоНазначенияКлиент на ОбщегоНазначения
	ОМ_СкидкиНаценки = ОбщегоНазначенияКлиент.ОбщийМодуль(v8PRO_ПолучитьИмяМодульСкидкиНаценки());
	ОМ_СкидкиНаценки.СброситьФлагСкидкиРассчитаны(ЭтотОбъект);
		

КонецПроцедуры

&НаСервере
Функция v8PRO_ПолучитьИмяМодульСкидкиНаценки()
	
	ИмяОбщегоМодуля = "СкидкиНаценкиЗаполнениеКлиент"; // Появился в КА 2.5.6
	ОМ_Метаданные = Метаданные.ОбщиеМодули.Найти(ИмяОбщегоМодуля); 
	Если ОМ_Метаданные = Неопределено Тогда
		ИмяОбщегоМодуля = "СкидкиНаценкиКлиент";
	КонецЕсли;
	Возврат ИмяОбщегоМодуля;
	
КонецФункции

В дальнейшем к нужному модулю можно будет обратиться, если его присвоить некой переменной.

Как проверить существование процедуры или функции общего модуля?

Бывают ситуации когда оба модуля существуют и в старой и в новой конфигурации, но нужная процедура в старой конфигурации находится в модуле “СкидкиНаценкиКлиент”, а в новой конфигурации она уже в модуле “СкидкиНаценкиЗаполнениеКлиент”. В этом случае можно воспользоваться попыткой, но эту попытку нужно обернуть в метод “Выполнить” иначе наш модуль не пройдет синтаксический контроль.

	Выполнить("
	|Попытка
	|	// Для совместимости с УТ 11.4 
	|	СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтотОбъект);
	|Исключение
	|	// В версии КА 2.5.6 поменялось имя общего модула
	|	СкидкиНаценкиЗаполнениеКлиент.СброситьФлагСкидкиРассчитаны(ЭтотОбъект);
	|КонецПопытки;");

 

Добавить комментарий

Ваш адрес email адрес не будет опубликован. Обязательные поля помечены*

девятнадцать − 4 =

Интересное в нашем блоге

Сегодня, после обновления 1С:Бухгалтерия предприятия, при открытии Регламентированных отчетов стала появляться ошибка следующего: “Таблица не найдена «Константы»” Рассказываем о двух способах, как бесплатно решить эту проблему.

Ошибка: Таблица не найдена Константы. Константы КАК Константы

Как в 1С заполнить контрагента по ИНН? Каждая организация и индивидуальный предприниматель имеет свой уникальный идентификационный номер налогоплательщика (ИНН). Именно по этому номеру налоговая служба (ФНС) отличает их в своей базе контрагентов. Сегодня, любой может зайти на сайт nalog.ru и по ИНН получить информацию по нужной организации или ИП. Если вы хоть раз вводили контрагентов в […]

1С ИНН – обработка для заполнения реквизитов контрагентов

В этой статье мы собрали все ответы на вопросы, начинающиеся на “Где в 1С…”. Просто найдите нужный вопрос в списке и нажмите на него, чтобы раскрыть ответ. Мы постоянно будем пополнять новыми вопросами. Кстати, вы свой вопрос вы можете написать нам (смотрите раздел “Контакты”).

Где в 1С: Регистры накопления, сведений, бухгалтерии, расчетов

Рассказываем как подключиться к АПИ телеграм из 1С Предприятие 8, через прокси сервера сокс5. Простой способ: используйте его в своих разработках

Как настроить API telegram в 1С через proxy socks5

Рассказываем, как легко и просто можно скачать бесплатную версию продукта!

Как скачать бесплатную версию отчета для 1С?

Статья для тех, кто задаётся вопросом как же быстро загрузить табели в 1С из файла Excel (Эксель). Несколько лет назад мы разработали специальную обработку именно для этого случая и сегодня хотим рассказать о её плюсах и минусах. Обработка для загрузки табелей в 1С ЗУП (Зарплата и управление персоналом) работала следующим образом: В начале месяца отдел […]

Как загрузить табель из Excel в 1С ЗУП

Рассказываем как исправить популярную ошибку печати в 1С: “Ошибка при получении характеристик принтера”…

Ошибка при получении характеристик принтера 1С

Спасибо за доверие

Спасибо за доверие нашим 134 260 клиентам