Имя: Пароль:
1C
 
Где надо располагать контроли документов
0 ИС-2
 
08.07.25
11:25
Задумался, в каком событии правильно расположить механизмы контролей (заполнение полей, наличие долгов или остатков и т.д).

С документом будут работать как интерактивно так и через программный интерфейс (например, групповое изменение).

Контроль остатков сейчас в обработчике проведения
Заполнение полей в ОбработкаПроверкиЗаполнения
Часть проверок в модуле формы
Другая часть в регистрах


В итоге, чтобы прогнать типовые контроли надо вызывать и проверку заполнения и проведение

        Отказ = Не Док.ПроверитьЗаполнение();
        Если Отказ Тогда
            счОшибок = счОшибок + 1;
        Иначе
            Попытка
                Док.Записать(л_РежимЗаписиДокумента);


Может проще все писать в Событии ПередЗаписью?
1 СвинТуз
 
08.07.25
11:29
Подписка перед записью
2 Волшебник
 
08.07.25
11:30
Главное, чтобы все контроли отключались при Объект.ОбменДанными.Загрузка = Истина
3 СвинТуз
 
08.07.25
11:30
Остатки
при проведении
не смешивать видимо
4 Ненавижу 1С
 
гуру
08.07.25
11:44
(0) а что в этом плохого?
Это разные проверки.
Проверка реквизитов - это целостность сущности документа. Внутреннее состояния объекта. Для этого не требуется транзакция, например.
А проверка остатков - это инвариант складской системы. Внешнее поведение. Поэтому транзакция необходима.
5 strange2007
 
08.07.25
12:31
(0) Если надо прям без возможностей мухлёвки, то только в подписке "ПередЗаписью", которая должна быть в самом конце. Если же надо оставить возможность корректировки для всяких роботов и злыдней, то можно прям в форме документа в таком же обработчике проверки вставить
6 Ногаминебить
 
08.07.25
13:07
Не давать даже записать, если не хватает остатков, — это, по-моему, в некотором роде перебор. Пользователи на вилы поднимут.
7 Ненавижу 1С
 
гуру
08.07.25
13:35
(5) форма документа это UI, не надо туда бизнес-логику пихать
8 Ненавижу 1С
 
гуру
08.07.25
13:37
(6) я думаю там будет условие по режиму записи проведение
9 Волшебник
 
08.07.25
13:37
(7) Для 1С это вполне допустимо
10 Ненавижу 1С
 
гуру
08.07.25
13:39
(9) от этого архитектура не перестает быть плохой
11 Волшебник
 
08.07.25
13:41
(10) Тогда берите Python и программируйте регистры.
12 Ненавижу 1С
 
гуру
08.07.25
13:54
(11) Берем. Но не пайтон, а шарп - там linq есть. Посмотрим, что из этого выйдет
13 maxab72
 
08.07.25
16:04
Сейчас нам напишут настоящего убийцу 1С на шарпе с линком? Или очередного?
14 Волшебник
 
08.07.25
16:05
(13) Надеюсь, там будет значение Неопределено ;)
15 maxab72
 
08.07.25
16:17
(14) лучше пусть будет переменная типа "ХЗ"...
16 Волшебник
 
08.07.25
16:43
(15) Да, и она пусть тоже будет.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший