Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Автозаполнение пустого поля ввода табличного поля          
Veizdem Подменю пользователя
сообщение 17.07.14, 9:45
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 96
Из: Кривой Рог, Украина
Спасибо сказали: 10 раз
Рейтинг: 0

Устроился на работу, досталась не очень хорошая конфигурация для сопровождения. Изначально была под версию 7.7, затем в несколько заходов мигрировала до 8.2, приложение обычное. Вопрос заключается в следующем: каким образом заполнять автоматически определенными значениями пустое поле ввода табличного поля на форме, когда форма заполняется либо вручную, либо автоматически на основе выбранного заказа?

По сути я уже так думал, нужно реализовать механизм типа такого: после создании новой строки, если данное поле остается пустым - установить значение по умолчанию, иначе - не трогать. Значения заполняются из перечисления. Я с 1С знаком не так уж и давно, так что знаю далеко не все педали.

Попробовал решить так, вроде работает, но только при активации строки. А мне нужно просто при добавлении новой строки или заполнении из заказа.
Процедура СоставПриАктивизацииСтроки(Элемент)
    Для Каждого стрОснование из Состав цикл
        Если стрОснование.ВидДеятельностиНДС <> Неопределено Тогда
            стрОснование.ВидДеятельностиНДС = Перечисления.ВидыДеятельностиНДС.Облагаемая;
            стрОснование.ВидНалоговойДеятельности = Справочники.ВидыНалоговойДеятельности.ОблагаемаяПоОбычнойСтавке;
            ТекСтрока = ЭлементыФормы.Состав.ТекущиеДанные;
            ТекСтрока.СтатьяКнигиПриобретения = ОпределитьСтатьюНалоговойДекларации(ТекСтрока);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры


Если код подходит, в какую процедуру его совать тогда, чтоб работало именно в нужных мне случаях?

Как редактировать сообщение не нашел, потому дописываю сюда.

В общем код немного переделал, так как в предыдущем сделал не верное условие, теперь это все выглядит вот так:
Процедура СоставПриАктивизацииСтроки(Элемент)
    Для Каждого стрСостав из Состав цикл
        Если НЕ ЗначениеЗаполнено(стрСостав.ВидДеятельностиНДС) Тогда
            стрСостав.ВидДеятельностиНДС = Перечисления.ВидыДеятельностиНДС.Облагаемая;
            стрСостав.ВидНалоговойДеятельности = Справочники.ВидыНалоговойДеятельности.ОблагаемаяПоОбычнойСтавке;
            ТекСтрока = ЭлементыФормы.Состав.ТекущиеДанные;
            ТекСтрока.СтатьяКнигиПриобретения = ОпределитьСтатьюНалоговойДекларации(ТекСтрока);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры


Осталось только понять в какую процедуру поместить, чтобы срабатывало когда пользователь добавляет новую строку в табличное поле или когда табличное поле само заполняется из заказа.


Signature
В моих жилах текут нолики и единички...

Rayne Подменю пользователя
сообщение 17.07.14, 10:03
Сообщение #2

Говорящий
Иконка группы
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0

В случае, когда новая строка:

// Процедура - обработчик события "ПриНачалеРедактирования" табличной части
Процедура СоставПриНачалеРедактирования(Элемент, НоваяСтрока)

    СтрокаТабличнойЧасти = ЭлементыФормы.Состав.ТекущиеДанные;

    Если НоваяСтрока Тогда
                Если НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.ВидДеятельностиНДС) Тогда
                       СтрокаТабличнойЧасти.ВидДеятельностиНДС = Перечисления.ВидыДеятельностиНДС.Облагаемая;
                       СтрокаТабличнойЧасти.ВидНалоговойДеятельности = Справочники.ВидыНалоговойДеятельности.ОблагаемаяПоОбычнойСтавке;                      
                       СтрокаТабличнойЧасти.СтатьяКнигиПриобретения = ОпределитьСтатьюНалоговойДекларации(СтрокаТабличнойЧасти);
                КонецЕсли;
    КонецЕсли;    


КонецПроцедуры


А табличное поле на основании заполняется из заказа? Если да - то процедура ОбработкаЗаполнения в модуле документа.


Signature
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im

Спасибо сказали: Veizdem,

Veizdem Подменю пользователя
сообщение 17.07.14, 15:28
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 96
Из: Кривой Рог, Украина
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(Rayne @ 17.07.14, 11:03) *
В случае, когда новая строка:

// Процедура - обработчик события "ПриНачалеРедактирования" табличной части
Процедура СоставПриНачалеРедактирования(Элемент, НоваяСтрока)

    СтрокаТабличнойЧасти = ЭлементыФормы.Состав.ТекущиеДанные;

    Если НоваяСтрока Тогда
                Если НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.ВидДеятельностиНДС) Тогда
                       СтрокаТабличнойЧасти.ВидДеятельностиНДС = Перечисления.ВидыДеятельностиНДС.Облагаемая;
                       СтрокаТабличнойЧасти.ВидНалоговойДеятельности = Справочники.ВидыНалоговойДеятельности.ОблагаемаяПоОбычнойСтавке;                      
                       СтрокаТабличнойЧасти.СтатьяКнигиПриобретения = ОпределитьСтатьюНалоговойДекларации(СтрокаТабличнойЧасти);
                КонецЕсли;
    КонецЕсли;    


КонецПроцедуры


А табличное поле на основании заполняется из заказа? Если да - то процедура ОбработкаЗаполнения в модуле документа.


Спасибо, все работает как надо.


Signature
В моих жилах текут нолики и единички...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 16:40
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!