Ошибка инициализации модуля

1. G_101821925179404875930 20.01.25 19:31 Сейчас в теме
Есть код (представлен ниже) И вроде я указал процедуру на сервере, и всё это в одном модуле и приложение у меня управляемое, но вот почему то при попытки повзаимодействовать с кодом выходит одна и таже ошибка, А именно. код ниже после ошибки. Может кто то знает подскажите что к чему, я только начал изучать 1с
Ошибка инициализации модуля: Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма
по причине:
{Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма(42,6)}: Процедура или функция с указанным именем не определена (ВызватьСервер)
<<?>>ВызватьСервер("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
[ОшибкаКомпиляцииВстроенногоЯзыка]

&НаКлиенте
Процедура ДатыТренеровокПриИзменении(Элемент)
	ОбновитьДанныеПосещаемости();
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьДанныеПосещаемости()
    ЗаполнитьДанныеПосещаемости();
    СформироватьКолонкиПосещаемости();
EndProcedure

&НаКлиенте
Процедура ЗаполнитьДанныеПосещаемости()
	// Получаем таблицу дат тренировок
	ТаблицаДаты = Объект.ДатыТренеровок;

    Для Каждого СтрокаПосещаемость Из Объект.Посещаемость Цикл
        СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
		Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
        	ДатаТренировки = СтрокаДаты.Дата;
			СтрокаПосещаемость.ДанныеПосещений.Вставить(ДатаТренировки, Ложь); //значение по умолчанию
        КонецЦикла;
    КонецЦикла;
EndProcedure

&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()
	
	ЭлементФормыПосещаемость = Элементы.Посещаемость;
	ЭлементФормыПосещаемость.Колонки.Очистить();
    ЭлементФормыПосещаемость.СоздатьКолонку("Ученик");
    ЭлементФормыПосещаемость.СоздатьКолонку("Оплаченно");
    ЭлементФормыПосещаемость.СоздатьКолонку("КПосещению");

	ТаблицаДаты = Объект.ДатыТренеровок;
	Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
    	ДатаТренировки = СтрокаДаты.Дата;
		ИмяКолонки = "Дата_" + Формат(ДатаТренировки, "ДФ=dd_MM_yy");
		НоваяКолонка = ЭлементФормыПосещаемость.СоздатьКолонку(ИмяКолонки);
		НоваяКолонка.Данные = "ДанныеПосещений[" + Строка(ДатаТренировки) + "]";
		НоваяКолонка.Ширина = 50;
    	ВызватьСервер("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
	КонецЦикла;
EndProcedure  

&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
	Если Режим = "КакФлажок" Тогда
		Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
	ИначеЕсли Режим = "КакТекст" Тогда
        Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
   ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
       Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
	КонецЕсли;
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
12. miniogn 44 20.01.25 20:11 Сейчас в теме
(9) А понятие "вызов сервера" в чистом виде есть в общих модулях.
То есть у общего модуля можно поставить галку "вызов сервера".
Тогда можно перенести твою процедуру "УстановитьРежимРедактированияКолонки()".
Если идет речь о тренировке создания общих модулей. Как-то так.
А модуль назвать:
МойСерверныйМодульВызовСервера

И вызов процедуры будет:
МойСерверныйМодульВызовСервера.УстановитьРежимРедактированияКолонки(...);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
15. user1863362 20.01.25 21:17 Сейчас в теме
(1)
ЭлементФормыПосещаемость.СоздатьКолонку("Ученик");

Опять нейросеть код написать не может, да что ж такое! Куда только Калимулин смотрит, когда ж это кончится?
2. miniogn 44 20.01.25 19:47 Сейчас в теме
Ну он же по русски пишет - Процедура не определена.
Создай такую процедуру.
3. G_101821925179404875930 20.01.25 19:48 Сейчас в теме
(2) Но она же у меня создана
4. G_101821925179404875930 20.01.25 19:49 Сейчас в теме
(3) Вот же она у меня
&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
Если Режим = "КакФлажок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
ИначеЕсли Режим = "КакТекст" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
КонецЕсли;
КонецПроцедуры
Показать
5. miniogn 44 20.01.25 19:50 Сейчас в теме
(4)
Процедура или функция с указанным именем не определена (ВызватьСервер)
6. G_101821925179404875930 20.01.25 19:53 Сейчас в теме
(5) но ВызватьСервер это же не сама функция это я обращаюсь к серверной функции которая определена ниже на сервере, в итоге я заменил конечно на вот такое написание ВызватьСервернуюПроцедуру("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
но ошибка таже только вместо вызватьСервер стало ВызватьСервернуюПроцедуру
7. miniogn 44 20.01.25 19:59 Сейчас в теме
(6)
определена ниже на сервере

Не совсем понятно что имеется ввиду
У тебя в этом же модуле должна быть конструкция:
&НаСервере
Процедура ВызватьСервер(...)

КонецПроцедуры
8. miniogn 44 20.01.25 20:01 Сейчас в теме
(6) Либо:
&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, КакФлажок)
	
КонецПроцедуры


Смотря чего добиваешься
9. G_101821925179404875930 20.01.25 20:02 Сейчас в теме
(8) я добиваюсь что бы при вызове процедуры "УстановитьРежимРедактированияКолонки" с сервера
у меня запускалась процедура которая определена на сервере, а именно
Процедура ВызватьСервернуюПроцедуру(УстановитьРежимРедактированияКолонки(Колонка, Режим))
	Если Режим = "КакФлажок" Тогда
		Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
	ИначеЕсли Режим = "КакТекст" Тогда
        Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
   ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
       Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
	КонецЕсли;
КонецПроцедуры
Показать
10. miniogn 44 20.01.25 20:05 Сейчас в теме
(9)
Прошу прощения не дописал в (8)
Должно быть:
&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()

УстановитьРежимРедактированияКолонки (Колонка, Режим);
...
EndProcedure 



&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
    
КонецПроцедуры

Показать
11. G_101821925179404875930 20.01.25 20:09 Сейчас в теме
(10) то есть вот сюда в самое начало нужно вписать и получить что то такое?
&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()
УстановитьРежимРедактированияКолонки(Колонка, Режим);
	
	ЭлементФормыПосещаемость = Элементы.Посещаемость;
	ЭлементФормыПосещаемость.Колонки.Очистить();
    ЭлементФормыПосещаемость.СоздатьКолонку("Ученик");
    ЭлементФормыПосещаемость.СоздатьКолонку("Оплаченно");
    ЭлементФормыПосещаемость.СоздатьКолонку("КПосещению");

	ТаблицаДаты = Объект.ДатыТренеровок;
	Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
    	ДатаТренировки = СтрокаДаты.Дата;
		ИмяКолонки = "Дата_" + Формат(ДатаТренировки, "ДФ=dd_MM_yy");
		НоваяКолонка = ЭлементФормыПосещаемость.СоздатьКолонку(ИмяКолонки);
		НоваяКолонка.Данные = "ДанныеПосещений[" + Строка(ДатаТренировки) + "]";
		НоваяКолонка.Ширина = 50;
    	ВызватьСервернуюПроцедуру("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
	КонецЦикла;
КонецПроцедуры  

&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
	Если Режим = "КакФлажок" Тогда
		Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
	ИначеЕсли Режим = "КакТекст" Тогда
        Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
   ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
       Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
	КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
13. miniogn 44 20.01.25 20:13 Сейчас в теме
(11)
&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()
УстановитьРежимРедактированияКолонки(Колонка, Режим);


Ближе к истине, только всю логику не забыть :)
14. G_101821925179404875930 20.01.25 20:14 Сейчас в теме
12. miniogn 44 20.01.25 20:11 Сейчас в теме
(9) А понятие "вызов сервера" в чистом виде есть в общих модулях.
То есть у общего модуля можно поставить галку "вызов сервера".
Тогда можно перенести твою процедуру "УстановитьРежимРедактированияКолонки()".
Если идет речь о тренировке создания общих модулей. Как-то так.
А модуль назвать:
МойСерверныйМодульВызовСервера

И вызов процедуры будет:
МойСерверныйМодульВызовСервера.УстановитьРежимРедактированияКолонки(...);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот