Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 00:56

Функция выдает ошибку в общем модуле.

Автор maxxi, 21 сен 2022, 06:05

0 Пользователей и 1 гость просматривают эту тему.

maxxi

Есть обработчик и функция.

Обработчик вызывает функцию.

Я разместила их в общем модуле для использования в Регламентных заданиях.

Но функция выдет такую ошибку:


{ОбщийМодуль.РегЗад.Модуль(39,15)}: Процедура или функция с указанным именем не определена (ПолучитьСтрокиКарт)
СтрокаКарты = <<?>>ПолучитьСтрокиКарт(СтрокаРазделителя); (Проверка: Тонкий клиент)



Если разместить их в форме обработчик, все работает норм.

Пожалуйста, подскажите, как поступить.

Спасибо.

Ивашка

Сделайте эту процедуру экспортной,
функция() Экспорт

maxxi

Сделала, но увы пока результат тот же.

maxxi

Вот Процедура вызывающая функцию в общий модуле :

(4)

Процедура ЗаписьДанных() Экспорт

СтрокаРазделителя = "*";

ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл("C:\Users\User\Desktop\Новаяпапка\Список_дисконт.xml");

// Записать директиву.

ЗаписьXML.ЗаписатьОбъявлениеXML();

// Записать начало корневого элемента.

ЗаписьXML.ЗаписатьНачалоЭлемента("ContragentList");

// Записать атрибут корневого элемента.

ЗаписьXML.ЗаписатьАтрибут("ИмяСправочника", "Контрагенты");

ЗаписьXML.ЗаписатьКомментарий("Выгрузка элементов справочника");

// Получить данные карт в виде одной большой строки.

СтрокаКарты = ПолучитьСтрокиКарт(СтрокаРазделителя);

// Получить массив строк для каждого сотрудника.

СтрокиКарт = СтрРазделить(СтрокаКарты, Символы.ПС);

Для ТекущаяСтрока = 0 По СтрокиКарт.Количество() - 1 Цикл

// Получить данные каждого сотрудника.

Данные = СтрРазделить(СтрокиКарт[ТекущаяСтрока], СтрокаРазделителя);

ЗаписьXML.ЗаписатьНачалоЭлемента("ЭлементСправочника");

ЗаписьXML.ЗаписатьНачалоЭлемента("Код");

ЗаписьXML.ЗаписатьТекст(Данные[0]);

ЗаписьXML.ЗаписатьКонецЭлемента();

ЗаписьXML.ЗаписатьНачалоЭлемента("Наименование");

ЗаписьXML.ЗаписатьТекст(Данные[1]);

ЗаписьXML.ЗаписатьКонецЭлемента();

ЗаписьXML.ЗаписатьНачалоЭлемента("ДатаРождения");

ЗаписьXML.ЗаписатьТекст(Данные[2]);

ЗаписьXML.ЗаписатьКонецЭлемента();

КонецЦикла;   

ЗаписьXML.ЗаписатьКонецЭлемента();

ЗаписьXML.Закрыть();

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


А вот сама функция:


Функция ПолучитьСтрокиКарт(Разделитель)  Экспорт

СтрокаКарты = Новый Массив();

МассивСтрокКарт = Новый Массив();
 
Выборка = Справочники.ДисконтКарты.Выбрать();

//Выборка = Справочники.ДисконтКарты.Выбрать();

Пока Выборка.Следующий() Цикл

СтрокаКарты.Очистить();

СтрокаКарты.Добавить(Выборка.Наименование);

СтрокаКарты.Добавить(Выборка.ПолноеНаименование);

//СтрокаКарты.Добавить(Формат(Выборка.ДатаРождения, "ДЛФ=D"));

СтрокаКарты.Добавить(Выборка.УНП);

Данные = СтрСоединить(СтрокаКарты, Разделитель);

МассивСтрокКарт.Добавить(Данные);

КонецЦикла;   

Возврат СтрСоединить(МассивСтрокКарт, Символы.ПС);

КонецФункции



Клиент=Истина
Сервер=Истина
Вызов сервера=Истина

Ивашка

не надо ставить на модуле и клиент и сервер и вызов сервера, т.к. вызов сервера никогда не сработает.
вызов сервер и клиент галку уберите

Ивашка

и да еще перед Процедура ЗаписьДанных()
поставьте директиву &НаКлиенте, если у вас упр.формы

maxxi


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск