Версия для печати темы (https://pro1c.org.ua/index.php?s=e54df524d499babc6aeb877e74739234&showtopic=63118)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Условия сохранения определенного документа (1с 7.7.27)

Автор: andrew76 25.11.20, 16:58

Добрый вечер !

Имеется определённый документ с реквизитом Сотрудник.
Как сделать так ,чтобы документ не могли сохранить пользователи,
при условии если реквизит Сотрудники не заполнен ?

Автор: denis84 25.11.20, 17:54

andrew76 @ Сегодня, 16:58 * ,
Добрый день! Если "сотрудник" в шапке документа то в модуле документа пишем:

// ===========================
Функция ПроверкаШапки()
    глВсеВыбрано = 1;
    глВыбранЛи(сотрудник,"сотрудник");
    //глВыбранЛи(Цех,"Цех");
    Возврат глВсеВыбрано;
КонецФункции


А если в строке, то так:
// ===========================
Функция ПроверкаСтроки()
    глВсеВыбрано = 1;
    глВыбранЛи(сотрудник,"сотрудник",НомерСтроки);
    Возврат глВсеВыбрано;
КонецФункции


А потом в обработке проведения проверяем:
// ===========================
Процедура ОбработкаПроведения()


Если ПроверкаШапки() = 0 Тогда
    глНеПроводить(Контекст);
    Возврат;
КонецЕсли;


ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
    Если ПроверкаСтроки() = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
КонецЦикла;
КонецПроцедуры

Автор: andrew76 25.11.20, 18:57

denis84 @ Сегодня, 20:54 * ,

У меня этот документ проводить не надо.
Проблема только при сохранении с условием заполнения реквизита.
Табличной части нет тоже,реквизит Сотрудник находится в шапке документа.

Автор: denis84 25.11.20, 19:53

andrew76 @ Сегодня, 18:57 * ,
При записи тоже есть такая процедура там и проверьте заполняемость реквизита

https://pro1c.org.ua/redirect.php?https://www.about1c.ru/v77/language-reference/complex-data-types/reference/list-form-predefined/procedure-onwrite

И вот тут полезно почитать:
https://pro1c.org.ua/index.php?showtopic=18589

Автор: andrew76 26.11.20, 3:44

Цитата(denis84 @ 25.11.20, 22:53) *
И вот тут полезно почитать


c 1c 8 проще конечно.

Автор: 29a 26.11.20, 11:40

andrew76 @ Сегодня, 4:44 * ,

В модуле формы

// ===============================
Процедура ПриЗаписи()
    Если ПустоеЗначение(Сотрудник)=1 Тогда
        Сообщить("Не заполнен сотрудник");
        СтатусВозврата(0);
    КонецЕсли;
КонецПроцедуры[


Если сотрудник в табличной части, перебрать ТЧ

Автор: andrew76 26.11.20, 16:03

29a @ Сегодня, 14:40 * ,

Так и сделал.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua