Задать вопрос
@nurasyl
Fullstack разработчик

Как в 1C обрабатывать данные на стороне сервера?

Привет всем!
Я новичок в 1C программировании.

Как на стороне сервера обрабатывать входящих данных и записывать в базу данных?

Например на стороне клиента можно так:
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	Объект.Наименование = СокрЛП(Объект.Наименование); // Это позволяет обрабатывать и записать в базу данных, только обработка происходит на стороне сервера.
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	// Здесь я хочу обрабатывать данные и записывать.

	Объект.Наименование = СокрЛП(Объект.Наименование); // Это ничего не делает, не обновляет поле формы и не внесет изменения в базе данных.
КонецПроцедуры


Меня волнует вопрос безопасности, обработка данных на стороне сервера безопаснее.
  • Вопрос задан
  • 242 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
Это ничего не делает, не обновляет поле формы и не внесет изменения в базе данных
На самом деле обновляет, но от этого нет толку, так как данные из реквизита формы с именем "Объект" уже перенесены в реальный объект, который в процедуре ПередЗаписьюНаСервере() доступен под именем "ТекущийОбъект". После завершения транзакции записи происходит чтение из базы в реквизит на форме и все актуализируется (так как кроме серверных процедур формы объект перед записью может быть изменен в процедурах модуля своего объекта и в подписках на событие записи). Если нет 10 минут на чтение главы в учебнике по работе с объектами, то хотя бы прочитайте описание используемых процедур в Синтаксис-Помощнике (установите курсор на имя процедуры и нажмите Ctrl+F1).

Меня волнует вопрос безопасности, обработка данных на стороне сервера безопаснее.
Это лютый бред. Если у вас нет прав на доступ к данным, то вы их не получите ни на сервере, ни на клиенте. Если у вас есть админские права на SQL-сервер, то шифрование канала клиент-сервера и все ограничения по правам доступа - просто пшик.

Опытный программист могут написать свою клиентскую приложению с целью взлома
Максимум на что способен ваш хакер - это сделать инъекции кода в веб-клиент 1С, но для работы с сервером ему все равно нужно будет иметь логин/пароль и все что он сможет сделать с пропатченого клиента все равно будет ограничено на сервере настройками прав и профилей безопасности. А если у него есть нужные права, то и патчить ничего не нужно.

Я хочу получить данные с клиента и обрабатывать его на стороне сервера.
Все так и происходит. На клиенте делается работа с видимость/доступностью элементов формы и примитивные вычисления в духе "если покупаете 5 ручек по 100 рублей, то с вас 500 рублей".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
nki
@nki
bezkart.ru готовая система лояльности
Для определения "места" выполнения кода есть директивы НаКлиенте, НаСервере, НаСервереБезКонтекста. Разберитесь с ними и поймете как выполнять обработку на сервере.
Меня волнует вопрос безопасности, обработка данных на стороне сервера безопаснее.

Почему вы так решили?
Ответ написан
Комментировать
fosihas
@fosihas
Автоматизации учета на 1С.
Безопастней что...?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы