Есть код (представлен ниже) И вроде я указал процедуру на сервере, и всё это в одном модуле и приложение у меня управляемое, но вот почему то при попытки повзаимодействовать с кодом выходит одна и таже ошибка, А именно. код ниже после ошибки. Может кто то знает подскажите что к чему, я только начал изучать 1с
Ошибка инициализации модуля: Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма
по причине:
{Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма(42,6)}: Процедура или функция с указанным именем не определена (ВызватьСервер)
<<?>>ВызватьСервер("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
[ОшибкаКомпиляцииВстроенногоЯзыка]
Ошибка инициализации модуля: Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма
по причине:
{Документ.РассписаниеТренеровок.Форма.ФормаДокумента.Форма(42,6)}: Процедура или функция с указанным именем не определена (ВызватьСервер)
<<?>>ВызватьСервер("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
[ОшибкаКомпиляцииВстроенногоЯзыка]
&НаКлиенте
Процедура ДатыТренеровокПриИзменении(Элемент)
ОбновитьДанныеПосещаемости();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьДанныеПосещаемости()
ЗаполнитьДанныеПосещаемости();
СформироватьКолонкиПосещаемости();
EndProcedure
&НаКлиенте
Процедура ЗаполнитьДанныеПосещаемости()
// Получаем таблицу дат тренировок
ТаблицаДаты = Объект.ДатыТренеровок;
Для Каждого СтрокаПосещаемость Из Объект.Посещаемость Цикл
СтрокаПосещаемость.ДанныеПосещений = Новый Структура();
Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
ДатаТренировки = СтрокаДаты.Дата;
СтрокаПосещаемость.ДанныеПосещений.Вставить(ДатаТренировки, Ложь); //значение по умолчанию
КонецЦикла;
КонецЦикла;
EndProcedure
&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()
ЭлементФормыПосещаемость = Элементы.Посещаемость;
ЭлементФормыПосещаемость.Колонки.Очистить();
ЭлементФормыПосещаемость.СоздатьКолонку("Ученик");
ЭлементФормыПосещаемость.СоздатьКолонку("Оплаченно");
ЭлементФормыПосещаемость.СоздатьКолонку("КПосещению");
ТаблицаДаты = Объект.ДатыТренеровок;
Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
ДатаТренировки = СтрокаДаты.Дата;
ИмяКолонки = "Дата_" + Формат(ДатаТренировки, "ДФ=dd_MM_yy");
НоваяКолонка = ЭлементФормыПосещаемость.СоздатьКолонку(ИмяКолонки);
НоваяКолонка.Данные = "ДанныеПосещений[" + Строка(ДатаТренировки) + "]";
НоваяКолонка.Ширина = 50;
ВызватьСервер("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
КонецЦикла;
EndProcedure
&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
Если Режим = "КакФлажок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
ИначеЕсли Режим = "КакТекст" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Найденные решения
(9) А понятие "вызов сервера" в чистом виде есть в общих модулях.
То есть у общего модуля можно поставить галку "вызов сервера".
Тогда можно перенести твою процедуру "УстановитьРежимРедактированияКолонки()".
Если идет речь о тренировке создания общих модулей. Как-то так.
А модуль назвать:
МойСерверныйМодульВызовСервера
И вызов процедуры будет:
То есть у общего модуля можно поставить галку "вызов сервера".
Тогда можно перенести твою процедуру "УстановитьРежимРедактированияКолонки()".
Если идет речь о тренировке создания общих модулей. Как-то так.
А модуль назвать:
МойСерверныйМодульВызовСервера
И вызов процедуры будет:
МойСерверныйМодульВызовСервера.УстановитьРежимРедактированияКолонки(...);
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Вот же она у меня
&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
Если Режим = "КакФлажок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
ИначеЕсли Режим = "КакТекст" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
КонецЕсли;
КонецПроцедуры
Показать
(5) но ВызватьСервер это же не сама функция это я обращаюсь к серверной функции которая определена ниже на сервере, в итоге я заменил конечно на вот такое написание ВызватьСервернуюПроцедуру("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
но ошибка таже только вместо вызватьСервер стало ВызватьСервернуюПроцедуру
но ошибка таже только вместо вызватьСервер стало ВызватьСервернуюПроцедуру
(8) я добиваюсь что бы при вызове процедуры "УстановитьРежимРедактированияКолонки" с сервера
у меня запускалась процедура которая определена на сервере, а именно
у меня запускалась процедура которая определена на сервере, а именно
Процедура ВызватьСервернуюПроцедуру(УстановитьРежимРедактированияКолонки(Колонка, Режим))
Если Режим = "КакФлажок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
ИначеЕсли Режим = "КакТекст" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
КонецЕсли;
КонецПроцедуры
Показать
(9)
Прошу прощения не дописал в (8)
Должно быть:
Прошу прощения не дописал в (8)
Должно быть:
&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()
УстановитьРежимРедактированияКолонки (Колонка, Режим);
...
EndProcedure
&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
КонецПроцедуры
Показать
(10) то есть вот сюда в самое начало нужно вписать и получить что то такое?
&НаКлиенте
Процедура СформироватьКолонкиПосещаемости()
УстановитьРежимРедактированияКолонки(Колонка, Режим);
ЭлементФормыПосещаемость = Элементы.Посещаемость;
ЭлементФормыПосещаемость.Колонки.Очистить();
ЭлементФормыПосещаемость.СоздатьКолонку("Ученик");
ЭлементФормыПосещаемость.СоздатьКолонку("Оплаченно");
ЭлементФормыПосещаемость.СоздатьКолонку("КПосещению");
ТаблицаДаты = Объект.ДатыТренеровок;
Для Каждого СтрокаДаты Из ТаблицаДаты Цикл
ДатаТренировки = СтрокаДаты.Дата;
ИмяКолонки = "Дата_" + Формат(ДатаТренировки, "ДФ=dd_MM_yy");
НоваяКолонка = ЭлементФормыПосещаемость.СоздатьКолонку(ИмяКолонки);
НоваяКолонка.Данные = "ДанныеПосещений[" + Строка(ДатаТренировки) + "]";
НоваяКолонка.Ширина = 50;
ВызватьСервернуюПроцедуру("УстановитьРежимРедактированияКолонки", НоваяКолонка, "КакФлажок");
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьРежимРедактированияКолонки(Колонка, Режим)
Если Режим = "КакФлажок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакФлажок;
ИначеЕсли Режим = "КакТекст" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакТекст;
ИначеЕсли Режим = "КакВыпадающийСписок" Тогда
Колонка.РежимРедактирования = Перечисления.РежимРедактированияКолонкиТаблицы.КакВыпадающийСписок;
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:

(9) А понятие "вызов сервера" в чистом виде есть в общих модулях.
То есть у общего модуля можно поставить галку "вызов сервера".
Тогда можно перенести твою процедуру "УстановитьРежимРедактированияКолонки()".
Если идет речь о тренировке создания общих модулей. Как-то так.
А модуль назвать:
МойСерверныйМодульВызовСервера
И вызов процедуры будет:
То есть у общего модуля можно поставить галку "вызов сервера".
Тогда можно перенести твою процедуру "УстановитьРежимРедактированияКолонки()".
Если идет речь о тренировке создания общих модулей. Как-то так.
А модуль назвать:
МойСерверныйМодульВызовСервера
И вызов процедуры будет:
МойСерверныйМодульВызовСервера.УстановитьРежимРедактированияКолонки(...);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот