Устроился на работу, досталась не очень хорошая конфигурация для сопровождения. Изначально была под версию 7.7, затем в несколько заходов мигрировала до 8.2, приложение обычное. Вопрос заключается в следующем: каким образом заполнять автоматически определенными значениями пустое поле ввода табличного поля на форме, когда форма заполняется либо вручную, либо автоматически на основе выбранного заказа?
По сути я уже так думал, нужно реализовать механизм типа такого: после создании новой строки, если данное поле остается пустым - установить значение по умолчанию, иначе - не трогать. Значения заполняются из перечисления. Я с 1С знаком не так уж и давно, так что знаю далеко не все педали.
Попробовал решить так, вроде работает, но только при активации строки. А мне нужно просто при добавлении новой строки или заполнении из заказа.
Процедура СоставПриАктивизацииСтроки(Элемент)
Для Каждого стрОснование из Состав цикл
Если стрОснование.ВидДеятельностиНДС <> Неопределено Тогда
стрОснование.ВидДеятельностиНДС = Перечисления.ВидыДеятельностиНДС.Облагаемая;
стрОснование.ВидНалоговойДеятельности = Справочники.ВидыНалоговойДеятельности.ОблагаемаяПоОбычнойСтавке;
ТекСтрока = ЭлементыФормы.Состав.ТекущиеДанные;
ТекСтрока.СтатьяКнигиПриобретения = ОпределитьСтатьюНалоговойДекларации(ТекСтрока);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Если код подходит, в какую процедуру его совать тогда, чтоб работало именно в нужных мне случаях?
Как редактировать сообщение не нашел, потому дописываю сюда.
В общем код немного переделал, так как в предыдущем сделал не верное условие, теперь это все выглядит вот так:
Процедура СоставПриАктивизацииСтроки(Элемент)
Для Каждого стрСостав из Состав цикл
Если НЕ ЗначениеЗаполнено(стрСостав.ВидДеятельностиНДС) Тогда
стрСостав.ВидДеятельностиНДС = Перечисления.ВидыДеятельностиНДС.Облагаемая;
стрСостав.ВидНалоговойДеятельности = Справочники.ВидыНалоговойДеятельности.ОблагаемаяПоОбычнойСтавке;
ТекСтрока = ЭлементыФормы.Состав.ТекущиеДанные;
ТекСтрока.СтатьяКнигиПриобретения = ОпределитьСтатьюНалоговойДекларации(ТекСтрока);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Осталось только понять в какую процедуру поместить, чтобы срабатывало когда пользователь добавляет новую строку в табличное поле или когда табличное поле само заполняется из заказа.