Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 14:44

табЧасть

Автор Shaman_blr, 30 окт 2023, 14:36

0 Пользователей и 1 гость просматривают эту тему.

Shaman_blr

Всем привет.
Подскажите как получать таб.часть текущего документа при записи().
Нужно сделать условие если в таб.части поле Состояние Исполнен и поле отчет = "" то отказ от записи.

Если При записи() все понятно, я запросом поля вытащил условия наложил и все.

Shaman_blr

Вроде разобрался. Можно через Объект.""""""".Выгрузить(); и пройти циклом )

LexaK

ЦитироватьПодскажите как получать таб.часть
просто в цикле перебираете
Для каждого лкСтр из Объект.МояТабчасть цикл
или (зависит от контекста)
Для каждого лкСтр из ЭтотОбъект.МояТабчасть цикл
если помогло нажмите: Спасибо!

Shaman_blr

LexaK, А если в табчасти несколько записей. Первая запись Неправильная , Вторая запись правильная и он записывает документ.
А как написать условие если хоть одна строчка неправильная то не записываем.
ТабЧастьДокумент = Объект.Содержание.Выгрузить();
Для Каждого Данные Из ТабЧастьДокумент Цикл
Если Данные.Состояние = Перечисления.СВ_СостояниеДокумента.Исполнен и Данные.ОтчетОВыполнении = "" Тогда
ТекстСообщения = "Отказ в проведении! Если Состояние = ""Исполнен"", то Поле ""Отчет о выполнении"" должна быть заполнена.";
ОбщегоНазначения.ОшибкаПриПроведении(ТекстСообщения, Отказ);
Иначе
Отказ = Ложь;
КонецЕсли;
КонецЦикла;

LexaK

Shaman_blr, используйте событие перед записью (пример)
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

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

Теги:

Похожие темы (1)

Рейтинг@Mail.ru

Поиск