Проверка при отмене проведения 1С
Как при отмене проведения документа проверить, если документ не содержит ответственный и текущий пользователь отличается отличается от пользователя, то не позволить проведение документа? Я так понимаю это через запрос нужно реализовать?
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Остались вопросы?
СПРОСИТЕ в комментариях!
Программист 1С:
Если конфигурация одна из типовых, то информация о текущем пользователе (справочник пользователи) хранится в параметре сеанса:
ПараметрыСеанса.ТекущийПользователь
Дмитрий:
Делаю через модуль и делаю ссылку на подписку, выдает ошибку » Поле объекта недоступно для записи (Наименование)»
Процедура ПриОтменеПроведенияДокументаОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Пользователь=ПользователиИнформационнойБазы.ТекущийПользователь();
Источник.Ответственный.Наименование=Пользователь.ПолноеИмя;
КонецПроцедуры
Дмитрий:
Я думаю что можно и без запроса обойтись, но только как?
Программист 1С:
1) Во-первых, вы можете изменять только реквизиты объектов.
Т.е изменить можно только Источник.Ответственный, но никак не Источник.Ответственный.Наименование (реквизит уже справочника «пользователи»)
2) Во-вторых, задача, вроде бы, сравнить текущего пользователя с пользователем системы. Верно?
Тогда получается нужно сравнить пользователя с пользователем документа и если он не совпадает — выдать ошибку.
Быстрое получение ссылки на текущего пользователя — «ПараметрыСеанса.ТекущийПользователь».
Что бы отменить действие, необходимо указать в переменную «Отказ» значение «Истина».
Специально не даю просто решение, что бы вы задумались))
Дмитрий:
Проведение документа проходит, но система не должна позволять отменить проведение документа, и еще нужно если реквизит не заполнен, то заполнить текущим пользователем, указываю переменной «Отказ» Ложь не работает… где то не правильно не могу разобраться
Процедура ПриОтменеПроведенияДокументаОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Пользователь=ПользователиИнформационнойБазы.ТекущийПользователь();
Если Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь
Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Программист 1С:
Проверяйте типы данных. Включите отладку.